Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 3 Aug 2003 22:47:59 +0200 (CEST)
From:      Ulrich Spoerlein <q@uni.de>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/55219: devel/fam: NFS support broken
Message-ID:  <200308032047.h73KlxHh058746@roadrunner.local>
Resent-Message-ID: <200308032050.h73KoFQS014447@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         55219
>Category:       ports
>Synopsis:       devel/fam: NFS support broken
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Aug 03 13:50:15 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator:     Ulrich Spoerlein
>Release:        FreeBSD 5.1-RELEASE i386
>Organization:
>Environment:
System: FreeBSD roadrunner 5.1-RELEASE FreeBSD 5.1-RELEASE #5: Thu Jul 17 17:32:28 CEST 2003 root@roadrunner:/usr/obj/usr/src/sys/ROADRUNNER i386
>Description:
An assertion in fam fails when it should monitor NFS files/dirs.
>How-To-Repeat:
$ fam -d -v

Start kmplayer as a user, who's $HOME is mounted via NFS

(gdb) r -f -v
Starting program: /usr/local/bin/fam -f -v
fam[13539]: log level is LOG_INFO
fam[13539]: Shutting down connection
fam[13539]: built with IMonNone, so /dev/imon won't be opened.
fam[13539]: Couldn't create RPC TCP/IP client: Invalid argument
Assertion failed: (!strncmp(local_path, dir(), local_dir_len)), function hl_map_path, file NFSFileSy
stem.c++, line 222.

Program received signal SIGABRT, Aborted.
(gdb) bt
#0  0x281ad473 in kill () at {standard input}:15
#1  0x2821827c in abort () at /usr/src/lib/libc/stdlib/abort.c:72
#2  0x281f16ff in __assert () at /usr/src/lib/libc/gen/assert.c:58
#3  0x080579f0 in NFSFileSystem::hl_map_path(char*, char const*, Cred const&) (this=0x8070000, 
    remote_path=0xbfbfe9d0 "$ \a\b\f \006\b\001", path=0x806d400 "/usr/local/share/servicetypes", 
    cr=@0x8071488) at NFSFileSystem.c++:222
#4  0x080578d3 in NFSFileSystem::hl_monitor(ClientInterest*, ClientInterest::Type) (
    this=0x8070000, ci=0x8071400, type=DIRECTORY) at NFSFileSystem.c++:194
#5  0x0804e310 in FileSystem::monitor(ClientInterest*, ClientInterest::Type) (this=0x8070000, 
    cip=0x8071400, type=DIRECTORY) at FileSystem.c++:63
#6  0x0804a751 in ClientInterest (this=0x8071400, name=0xbfbfef20 "/usr/local/share/servicetypes", 
    c=0x8072800, r=2, cr=@0xbfbfef00, type=DIRECTORY) at ClientInterest.c++:54
#7  0x0804c80c in Directory (this=0x8071400, name=0xbfbfef20 "/usr/local/share/servicetypes", 
    c=0x8072800, r=2, cr=@0xbfbfef00) at Directory.c++:46
#8  0x08055790 in MxClient::monitor_dir(int, char const*, Cred const&) (this=0x8072800, request=2, 
    path=0xbfbfef20 "/usr/local/share/servicetypes", cred=@0xbfbfef00) at MxClient.c++:92
#9  0x0805fbd8 in TCP_Client::input_msg(char const*, int) (this=0x8072800, 
    msg=0x8072842 "M2 1000 0 /usr/local/share/servicetypes\n", size=75) at TCP_Client.c++:198
#10 0x0805f703 in TCP_Client::input_handler(char const*, unsigned, void*) (
    msg=0x8072842 "M2 1000 0 /usr/local/share/servicetypes\n", nbytes=75, closure=0x8072800)
    at TCP_Client.c++:69
#11 0x0804a4e7 in ClientConnection::input_msg(char const*, unsigned) (this=0x807282c, 
    msg=0x8072842 "M2 1000 0 /usr/local/share/servicetypes\n", nbytes=75)
    at ClientConnection.c++:40
#12 0x0805816b in NetConnection::deliver_input() (this=0x807282c) at NetConnection.c++:170
#13 0x08058095 in NetConnection::input() (this=0x807282c) at NetConnection.c++:144
#14 0x08057f9f in NetConnection::read_handler(int, void*) (fd=9, closure=0x807282c)
    at NetConnection.c++:114
#15 0x0805ca92 in Scheduler::handle_io(fd_set const*, Scheduler::FDInfo::FDIOHandler Scheduler::FDIn
#16 0x0805cb6c in Scheduler::select() () at Scheduler.c++:343
#17 0x08060fcd in Scheduler::loop() () at Scheduler.h:89
#18 0x0806089a in main (argc=3, argv=0xbfbff65c) at main.c++:290
#19 0x08049f95 in _start ()
(gdb) f 3
#3  0x080579f0 in NFSFileSystem::hl_map_path(char*, char const*, Cred const&) (this=0x8070000, 
    remote_path=0xbfbfe9d0 "$ \a\b\f \006\b\001", path=0x806d400 "/usr/local/share/servicetypes", 
    cr=@0x8071488) at NFSFileSystem.c++:222
222         {   assert(!strncmp(local_path, dir(), local_dir_len));
Current language:  auto; currently c++
(gdb) l
217     NFSFileSystem::hl_map_path(char *remote_path, const char *path, const Cred& cr)
218     {
219         char local_path[PATH_MAX];
220         cr.become_user();
221         if (realpath(path, local_path))
222         {   assert(!strncmp(local_path, dir(), local_dir_len));
223             (void) strcpy(remote_path, remote_dir);
224             (void) strcpy(remote_path + remote_dir_len,
225                            local_path + local_dir_len);
226         }
(gdb) p path
$1 = 0x806d400 "/usr/local/share/servicetypes"
(gdb) p local_path
$2 = "/usr/local/share/servicetypes\0types\0\200\001\a\b\224í¿¿\024s!(\r\0\0\0Ôv\"(øå¿¿ðé¿¿built with IMonNone, so /dev/imon won't be opened.\n(\0\0\0\001Ðá\a(\2200\b(\0\0\0\0dæ¿¿7Å\006(À\221\004\b²\232«\a\0%\b(\001\0\0\0\222v!(\0%\b(\204æ¿\001Ðá\a(=\0\0\0\0\0\0\0äæ¿¿FÃ\006(\236q!(²\232«\a\bÐ\a("...
(gdb) p mydir    ( dir() is a macro, which returns mydir)
$6 = 0x806f2f0 "/usr/home"

Where does "/usr/local/share/servicetypes" come from?
>Fix:
Don't know.
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200308032047.h73KlxHh058746>