Date: Sun, 10 Mar 2013 10:44:03 +0100 From: Per olof Ljungmark <peo@intersonic.se> To: "Hartmann, O." <ohartman@zedat.fu-berlin.de> Cc: FreeBSD Current <freebsd-current@freebsd.org> Subject: Re: CURRENT (r248061):Thunderbird SIGNAL 11 with OpenLDAP / nscd(1) broken pipe/ Message-ID: <513C55E3.9060409@intersonic.se> In-Reply-To: <513BC76F.6000609@zedat.fu-berlin.de> References: <513AFBE3.8070506@zedat.fu-berlin.de> <513AFFF0.6010500@zedat.fu-berlin.de> <513BB5F7.10201@intersonic.se> <513BC76F.6000609@zedat.fu-berlin.de>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2013-03-10 00:36, Hartmann, O. wrote: > Am 03/09/13 23:21, schrieb Per olof Ljungmark: >> On 2013-03-09 10:25, Hartmann, O. wrote: >>> Am 03/09/13 10:07, schrieb Hartmann, O.: >>>> For the introduction, I filed a PR for this at beginning of 2012 and >>>> suffered from the very same problem close to two years before on ALL >>>> FreeBSD versions and platforms using OpenLDAP as the user backend: >>>> >>>> ports/164239: [PATCH] mail/thunderbird: crash with nss_ldap >>>> >>>> Even with the suggested patch by the maintainer the problem stayed. >>>> >>>> With the introduction of bad code due to updates with > r247804 and the >>>> following issues of SIGNAL 13/broken pipe, the problem now is even worse >>>> in FreeBSD 10.0 r248061. >>>> From my limited point of view I guess this long lasting unresolved >>>> problem could have been revealed itself and I hope this could be fixed >>>> along with fixing nscd(1). >>>> >>>> Again, Thunderbird in all flavours since 2010 crashes on FreeBSD 8/9 and >>>> now 10.0-CURRENT when it is used on systems with user backend in >>>> OpenLDAP or any LDAP (Thunderbird works on non-OpenLDAP backed systems >>>> of the same OS revision). >>>> >>>> I was able to "solve" the problem by starting Firefox first and only >>>> Firefox getting started prior to Thunderbird resolved the problem for a >>>> while, but closing Firefox and waiting a bit left Thunderbird >>>> unstarteable again until Firefox was closed and reopened again. >>>> >>>> I guess this strange behaviour reveals a deeper issue not necessarily >>>> bound to nscd(1) (since the problem with Thunderbird also occurs without >>>> nscd(1), BUT always bound to the use of OpenLDAP backend (with >>>> security/pam_ldap and net/nss_ldap from ports). >>>> >>>> Now, on FreeBSD 10.0-CURRENT r248061/amd64, Thunderbird dies immediately >>>> with SIGNAL 11 on those boxes with OpenLDAP backend and no "trick" makes >>>> Thunderbird starting enymore. >>>> >>>> In my desperation, I did a truss, see below and it seems to me that >>>> there is a problem getting the effective UID, since the SIGNAL 11 arises >>>> after geteuid(). >>>> >>>> At the moment, I have switched off nscd(1) by default since it is broken >>>> in CURRENT or doing very strange things (see list about broken pipe in >>>> the system, sudo(1) or even the port's system (SIGNAL 13)). >>>> >>>> I think there is a major issue covered and I hope this could be solved >>>> by the problems triggered. >>>> >>>> it is hard to believe that I'm the only one using FreeBSD for both >>>> workstation and server environment in conjuction with OpenLDAP and >>>> facing the problem with a popular software like Thunderbird. >>>> >>>> If it is a stupid configuation problem then this must be very, very >>>> special since it is now sticky with me for years. >>>> >>>> Here comes the truss ...: >>>> >>>> open("/etc/pwd.db",O_RDONLY,00) = 4 (0x4) >>>> fcntl(4,F_SETFD,FD_CLOEXEC) = 0 (0x0) >>>> fstat(4,{ mode=-rw-r--r-- ,inode=117927,size=40960,blksize=16384 }) = 0 >>>> (0x0) >>>> read(4,"\0\^F\^Ua\0\0\0\^B\0\0\^D\M-R\0"...,260) = 260 (0x104) >>>> pread(0x4,0x801bfc000,0x1000,0x6000,0x1,0x0) = 4096 (0x1000) >>>> pread(0x4,0x813927000,0x1000,0x2000,0x1,0x0) = 4096 (0x1000) >>>> close(4) = 0 (0x0) >>>> socket(PF_LOCAL,SOCK_STREAM,0) = 4 (0x4) >>>> connect(4,{ AF_UNIX "/var/run/nscd" },15) ERR#2 'No such file or >>>> directory' >>>> close(4) = 0 (0x0) >>>> sigprocmask(SIG_SETMASK,SIGHUP|SIGINT|SIGQUIT|SIGILL|SIGTRAP|SIGABRT|SIGEMT|SIGFPE|SIGKILL|SIGBUS|SIGSEGV|SIGSYS|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) >>>> = 0 (0x0) >>>> sigaction(SIGPIPE,{ SIG_IGN 0x0 ss_t },{ SIG_IGN SA_RESTART ss_t }) = 0 >>>> (0x0) >>>> sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) >>>> getpid() = 3235 (0xca3) >>>> geteuid() = 2002 (0x7d2) >>>> open("/usr/local/etc/nss_ldap.conf",O_RDONLY,0666) = 4 (0x4) >>>> fstat(4,{ mode=-rw-r--r-- ,inode=5818085,size=7997,blksize=16384 }) = 0 >>>> (0x0) >>>> fstat(4,{ mode=-rw-r--r-- ,inode=5818085,size=7997,blksize=16384 }) = 0 >>>> (0x0) >>>> read(4,"@(#)$Id: ldap.conf,v 2.47 2006/0"...,16384) = 7997 (0x1f3d) >>>> read(4,0x813928000,16384) = 0 (0x0) >>>> close(4) = 0 (0x0) >>>> __sysctl(0x7fffffffb1f8,0x2,0x7fffffffb220,0x7fffffffb200,0x0,0x0) = 0 (0x0) >>>> gettimeofday({1362819606.123684 },0x0) = 0 (0x0) >>>> getpid() = 3235 (0xca3) >>>> issetugid(0x35001c1c,0x80,0x801b1b600,0x10,0x2,0x1) = 0 (0x0) >>>> open("/etc/resolv.conf",O_RDONLY,0666) = 4 (0x4) >>>> fstat(4,{ mode=-rw-r--r-- ,inode=117845,size=101,blksize=16384 }) = 0 (0x0) >>>> read(4,"# Generated by resolvconf\nnames"...,16384) = 101 (0x65) >>>> read(4,0x813928000,16384) = 0 (0x0) >>>> close(4) = 0 (0x0) >>>> __sysctl(0x7fffffffab28,0x2,0x7fffffffad20,0x7fffffffab30,0x0,0x0) = 0 (0x0) >>>> issetugid(0x801526ae8,0x2e,0x2e,0x2e,0x101010101010101,0x8080808080808080) >>>> = 0 (0x0) >>>> stat("/etc/nsswitch.conf",{ mode=-rw-r--r-- >>>> ,inode=117790,size=991,blksize=16384 }) = 0 (0x0) >>>> open("/etc/hosts",O_RDONLY,0666) = 4 (0x4) >>>> fstat(4,{ mode=-rw-r--r-- ,inode=117862,size=2418,blksize=16384 }) = 0 (0x0) >>>> read(4,"# $FreeBSD: head/etc/hosts 10999"...,16384) = 2418 (0x972) >>>> close(4) = 0 (0x0) >>>> open("/usr/local/etc/openldap/ldap.conf",O_RDONLY,0666) = 4 (0x4) >>>> fstat(4,{ mode=-rw-r--r-- ,inode=5817420,size=410,blksize=16384 }) = 0 (0x0) >>>> read(4,"#\n# LDAP Defaults\n#\n\n# See l"...,16384) = 410 (0x19a) >>>> read(4,0x813928000,16384) = 0 (0x0) >>>> close(4) = 0 (0x0) >>>> geteuid() = 2002 (0x7d2) >>>> getuid() = 2002 (0x7d2) >>>> open("/home/ohartmann/ldaprc",O_RDONLY,0666) ERR#2 'No such file or >>>> directory' >>>> open("/home/ohartmann/.ldaprc",O_RDONLY,0666) ERR#2 'No such file or >>>> directory' >>>> open("ldaprc",O_RDONLY,0666) ERR#2 'No such file or >>>> directory' >>>> sigprocmask(SIG_SETMASK,SIGHUP|SIGINT|SIGQUIT|SIGILL|SIGTRAP|SIGABRT|SIGEMT|SIGFPE|SIGKILL|SIGBUS|SIGSEGV|SIGSYS|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) >>>> = 0 (0x0) >>>> sigaction(SIGPIPE,{ SIG_IGN SA_RESTART ss_t },{ SIG_IGN 0x0 ss_t }) = 0 >>>> (0x0) >>>> sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) >>>> getuid() = 2002 (0x7d2) >>>> stat("/etc/nsswitch.conf",{ mode=-rw-r--r-- >>>> ,inode=117790,size=991,blksize=16384 }) = 0 (0x0) >>>> geteuid() = 2002 (0x7d2) >>>> open("/etc/pwd.db",O_RDONLY,00) = 4 (0x4) >>>> fcntl(4,F_SETFD,FD_CLOEXEC) = 0 (0x0) >>>> fstat(4,{ mode=-rw-r--r-- ,inode=117927,size=40960,blksize=16384 }) = 0 >>>> (0x0) >>>> read(4,"\0\^F\^Ua\0\0\0\^B\0\0\^D\M-R\0"...,260) = 260 (0x104) >>>> pread(0x4,0x813928000,0x1000,0x6000,0x1,0x0) = 4096 (0x1000) >>>> pread(0x4,0x813929000,0x1000,0x5000,0x1,0x0) = 4096 (0x1000) >>>> close(4) = 0 (0x0) >>>> socket(PF_LOCAL,SOCK_STREAM,0) = 4 (0x4) >>>> connect(4,{ AF_UNIX "/var/run/nscd" },15) ERR#2 'No such file or >>>> directory' >>>> close(4) = 0 (0x0) >>>> sigprocmask(SIG_SETMASK,SIGHUP|SIGINT|SIGQUIT|SIGILL|SIGTRAP|SIGABRT|SIGEMT|SIGFPE|SIGKILL|SIGBUS|SIGSEGV|SIGSYS|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) >>>> = 0 (0x0) >>>> sigaction(SIGPIPE,{ SIG_IGN 0x0 ss_t },{ SIG_IGN SA_RESTART ss_t }) = 0 >>>> (0x0) >>>> sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) >>>> stat("/usr/local/etc/nss_ldap.conf",{ mode=-rw-r--r-- >>>> ,inode=5818085,size=7997,blksize=16384 }) = 0 (0x0) >>>> getpid() = 3235 (0xca3) >>>> geteuid() = 2002 (0x7d2) >>>> SIGNAL 11 (SIGSEGV) >>>> process exit, rval = 0 >>> >>> Deleting /usr/local/etc/nss_ldap.conf, which is a link (hard or soft, >>> doesn't matter the result) to /usr/local/etc/ldap.conf, makes >>> Thunderbird start again as OpenLDAP backend wasn't configured/installed. >>> >>> But in that case, no OpenLDAP backed up users are available on the system.SE556539368201 >> >> Not 100% sure but I believe I'm working right now on a system with >> LDAP-based user accounts ( a Samba LDAP directory ) through pam_ldap (in >> pam.d), nss_ldap (nsswitch.conf) and /usr/local/etc/nss_ldap.conf >> exactly as you describe. >> >> Never had issues similar to the above in the 7-STABLE through 9-STABLE >> series. The only problem I have with TB is its apetite for memory. >> >> Perhaps I'm missing something? May the difference be that my account is >> in /etc/passwd too? I could log in as a different user and check if >> you'd like. >> >> id peo >> uid=1001(peo) gid=0(wheel) groups=0(wheel),513(domusers),512(domadmin) >> >> Cheers, >> >> //per >> > > > My account is on LDAP. > Can you try with a user on LDAP? > Logging in as a user present only in the LDAP database shows me that a piece of user information is missing: [I have no name!@kreutzman ~]$ If you know what is missing please let me know so I can fix it. If I am logged in as the above user and do a "ls -l" only the numerical id is shown as file owner. However, when I start TB it does complain over missing user info but runs fine nevertheless. Cheers, //per
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?513C55E3.9060409>