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>