Bug 170310 - mail/thunderbird: coredump/crash when used with OpenLDAP
Summary: mail/thunderbird: coredump/crash when used with OpenLDAP
Status: Closed DUPLICATE of bug 165263
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-gecko (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-08-01 14:50 UTC by O. Hartmann
Modified: 2014-06-13 00:20 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description O. Hartmann 2012-08-01 14:50:04 UTC
Using mail/thunderbird as the prefered mail cleint in a multiuser/server environment with users backed up by OpenLDAP, thunderbird crashes on all versions of FreeBSD ranging from 8.3 to 10.0-CURRENT (all amd64). A truss output is provided below.

Error:

ohartmann@telesto: [~] thunderbird
Bus error


This bug occurs on all setups of FreeBSD involving OpenLDAP backend for user management, utilizing nss_ldap, pam_ldap. The crashes don't occur on boxes without OpenLDAP setup.

I was wondering that nobody else using FreeBSD in an larger server/client environment beyond SoHo size utilizing OpenLDAP has ever faced this problem. 

In rare cases - mostly on slower dual core Core2Duo boxes, it is possible to start mail/thunderbird by starting www/firefox first and while firefox is still loading, trying to start mail/thunderbird. This behaviour is now observed for almost one and a half years on several thunderbird versions.

Confusingly, on fast modern machines the "trick" initially starting www/firefox doesn't work anymore and I have no glue why this is that way.

I'm really confused about the fact that this bug is lasting for that long in thunderbird.


-------
truss thunderbird


[...]
SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
access("/usr/local/lib/gcc46/nss_nis.so.1",0)    ERR#2 'No such file or directory'
access("/usr/local/lib/thunderbird/nss_nis.so.1",0) ERR#2 'No such file or directory'
access("/lib/nss_nis.so.1",0)                    ERR#2 'No such file or directory'
access("/usr/lib/nss_nis.so.1",0)                ERR#2 'No such file or directory'
access("/usr/lib/compat/nss_nis.so.1",0)         ERR#2 'No such file or directory'
access("/usr/local/lib/nss_nis.so.1",0)          ERR#2 'No such file or directory'
access("/usr/local/grass-6.4.2/lib/nss_nis.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/kde4/lib/nss_nis.so.1",0)     ERR#2 'No such file or directory'
access("/usr/local/lib/alsa-lib/nss_nis.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/lib/compat/nss_nis.so.1",0)   ERR#2 'No such file or directory'
access("/usr/local/lib/event2/nss_nis.so.1",0)   ERR#2 'No such file or directory'
access("/usr/local/lib/fricas/target/amd64-portbld-freebsd10.0/lib/nss_nis.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/lib/gcc46/nss_nis.so.1",0)    ERR#2 'No such file or directory'
access("/usr/local/lib/gcc47/nss_nis.so.1",0)    ERR#2 'No such file or directory'
access("/usr/local/lib/gegl-0.1/nss_nis.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/lib/graphviz/nss_nis.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/lib/libxul/nss_nis.so.1",0)   ERR#2 'No such file or directory'
access("/usr/local/lib/mysql/nss_nis.so.1",0)    ERR#2 'No such file or directory'
access("/usr/local/lib/nss/nss_nis.so.1",0)      ERR#2 'No such file or directory'
access("/usr/local/lib/pth/nss_nis.so.1",0)      ERR#2 'No such file or directory'
access("/usr/local/lib/qt4/nss_nis.so.1",0)      ERR#2 'No such file or directory'
access("/usr/local/lib/qtcreator/nss_nis.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/lib/virtualbox/nss_nis.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/libexec/openldap/nss_nis.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/mpi/openmpi/lib/nss_nis.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/mpi/openmpi/lib/openmpi/nss_nis.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/isis/3.3.1/lib/nss_nis.so.1",0) ERR#2 'No such file or directory'
access("/lib/nss_nis.so.1",0)                    ERR#2 'No such file or directory'
access("/usr/lib/nss_nis.so.1",0)                ERR#2 'No such file or directory'
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
access("/usr/local/lib/gcc46/nss_compat.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/lib/thunderbird/nss_compat.so.1",0) ERR#2 'No such file or directory'
access("/lib/nss_compat.so.1",0)                 ERR#2 'No such file or directory'
access("/usr/lib/nss_compat.so.1",0)             ERR#2 'No such file or directory'
access("/usr/lib/compat/nss_compat.so.1",0)      ERR#2 'No such file or directory'
access("/usr/local/lib/nss_compat.so.1",0)       ERR#2 'No such file or directory'
access("/usr/local/grass-6.4.2/lib/nss_compat.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/kde4/lib/nss_compat.so.1",0)  ERR#2 'No such file or directory'
access("/usr/local/lib/alsa-lib/nss_compat.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/lib/compat/nss_compat.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/lib/event2/nss_compat.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/lib/fricas/target/amd64-portbld-freebsd10.0/lib/nss_compat.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/lib/gcc46/nss_compat.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/lib/gcc47/nss_compat.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/lib/gegl-0.1/nss_compat.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/lib/graphviz/nss_compat.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/lib/libxul/nss_compat.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/lib/mysql/nss_compat.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/lib/nss/nss_compat.so.1",0)   ERR#2 'No such file or directory'
access("/usr/local/lib/pth/nss_compat.so.1",0)   ERR#2 'No such file or directory'
access("/usr/local/lib/qt4/nss_compat.so.1",0)   ERR#2 'No such file or directory'
access("/usr/local/lib/qtcreator/nss_compat.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/lib/virtualbox/nss_compat.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/libexec/openldap/nss_compat.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/mpi/openmpi/lib/nss_compat.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/mpi/openmpi/lib/openmpi/nss_compat.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/isis/3.3.1/lib/nss_compat.so.1",0) ERR#2 'No such file or directory'
access("/lib/nss_compat.so.1",0)                 ERR#2 'No such file or directory'
access("/usr/lib/nss_compat.so.1",0)             ERR#2 'No such file or directory'
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
access("/usr/local/lib/gcc46/nss_dns.so.1",0)    ERR#2 'No such file or directory'
access("/usr/local/lib/thunderbird/nss_dns.so.1",0) ERR#2 'No such file or directory'
access("/lib/nss_dns.so.1",0)                    ERR#2 'No such file or directory'
access("/usr/lib/nss_dns.so.1",0)                ERR#2 'No such file or directory'
access("/usr/lib/compat/nss_dns.so.1",0)         ERR#2 'No such file or directory'
access("/usr/local/lib/nss_dns.so.1",0)          ERR#2 'No such file or directory'
access("/usr/local/grass-6.4.2/lib/nss_dns.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/kde4/lib/nss_dns.so.1",0)     ERR#2 'No such file or directory'
access("/usr/local/lib/alsa-lib/nss_dns.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/lib/compat/nss_dns.so.1",0)   ERR#2 'No such file or directory'
access("/usr/local/lib/event2/nss_dns.so.1",0)   ERR#2 'No such file or directory'
access("/usr/local/lib/fricas/target/amd64-portbld-freebsd10.0/lib/nss_dns.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/lib/gcc46/nss_dns.so.1",0)    ERR#2 'No such file or directory'
access("/usr/local/lib/gcc47/nss_dns.so.1",0)    ERR#2 'No such file or directory'
access("/usr/local/lib/gegl-0.1/nss_dns.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/lib/graphviz/nss_dns.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/lib/libxul/nss_dns.so.1",0)   ERR#2 'No such file or directory'
access("/usr/local/lib/mysql/nss_dns.so.1",0)    ERR#2 'No such file or directory'
access("/usr/local/lib/nss/nss_dns.so.1",0)      ERR#2 'No such file or directory'
access("/usr/local/lib/pth/nss_dns.so.1",0)      ERR#2 'No such file or directory'
access("/usr/local/lib/qt4/nss_dns.so.1",0)      ERR#2 'No such file or directory'
access("/usr/local/lib/qtcreator/nss_dns.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/lib/virtualbox/nss_dns.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/libexec/openldap/nss_dns.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/mpi/openmpi/lib/nss_dns.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/mpi/openmpi/lib/openmpi/nss_dns.so.1",0) ERR#2 'No such file or directory'
access("/usr/local/isis/3.3.1/lib/nss_dns.so.1",0) ERR#2 'No such file or directory'
access("/lib/nss_dns.so.1",0)                    ERR#2 'No such file or directory'
access("/usr/lib/nss_dns.so.1",0)                ERR#2 'No such file or directory'
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
read(4,0x80210f000,16384)                        = 0 (0x0)
ioctl(4,TIOCGETA,0xffffc1a0)                     ERR#25 'Inappropriate ioctl for device'
close(4)                                         = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
geteuid()                                        = 2001 (0x7d1)
open("/etc/pwd.db",O_RDONLY,00)                  = 4 (0x4)
fcntl(4,F_SETFD,FD_CLOEXEC)                      = 0 (0x0)
fstat(4,{ mode=-rw-r--r-- ,inode=235658,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,0x80210f000,0x1000,0x6000,0x1,0x0)     = 4096 (0x1000)
pread(0x4,0x802110000,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)        = 0 (0x0)
fcntl(4,F_SETFL,O_NONBLOCK)                      = 0 (0x0)
kqueue(0x800631330,0x3,0x60,0x4,0x802114010,0x1) = 5 (0x5)
kevent(5,{0x4,EVFILT_WRITE,EV_ADD,0,0x0,0x0},1,0x0,0,0x0) = 0 (0x0)
kqueue(0x5,0x7fffffffc1e0,0x1,0x0,0x0,0x0)       = 6 (0x6)
kevent(6,{0x4,EVFILT_READ,EV_ADD,0,0x0,0x0},1,0x0,0,0x0) = 0 (0x0)
kevent(5,{0x4,EVFILT_WRITE,EV_ADD,1,0x4,0x0},1,0x0,0,0x0) = 0 (0x0)
kevent(5,0x0,0,{0x4,EVFILT_WRITE,0x0,0,0x2000,0x0},1,0x0) = 1 (0x1)
sendmsg(0x4,0x7fffffffbfc0,0x0,0x1,0x1,0x0)      = 4 (0x4)
kevent(5,{0x4,EVFILT_WRITE,EV_ADD,0,0x0,0x0},1,0x0,0,0x0) = 0 (0x0)
kevent(5,0x0,0,{0x4,EVFILT_WRITE,0x0,0,0x2000,0x0},1,{4.000000000 }) = 1 (0x1)
write(4,"\^F\0\0\0\0\0\0\0",8)                   = 8 (0x8)
kevent(5,0x0,0,{0x4,EVFILT_WRITE,0x0,0,0x1ff8,0x0},1,{4.000000000 }) = 1 (0x1)
write(4,"\^N\0\0\0\0\0\0\0",8)                   = 8 (0x8)
kevent(5,0x0,0,{0x4,EVFILT_WRITE,0x0,0,0x2000,0x0},1,{4.000000000 }) = 1 (0x1)
write(4,"passwd",6)                              = 6 (0x6)
kevent(5,0x0,0,{0x4,EVFILT_WRITE,0x0,0,0x1ffa,0x0},1,{4.000000000 }) = 1 (0x1)
write(4,"\^A\0\0\0ohartmann\0",14)               = 14 (0xe)
kevent(6,0x0,0,{0x4,EVFILT_READ,EV_EOF,0,0x4,0x0},1,{4.000000000 }) = 1 (0x1)
read(4,"\M^?\M^?\M^?\M^?",4)                     = 4 (0x4)
close(4)                                         = 0 (0x0)
close(6)                                         = 0 (0x0)
close(5)                                         = 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()                                         = 56431 (0xdc6f)
geteuid()                                        = 2001 (0x7d1)
open("/usr/local/etc/nss_ldap.conf",O_RDONLY,0666) = 4 (0x4)
fstat(4,{ mode=-rw-r--r-- ,inode=4946654,size=7983,blksize=16384 }) = 0 (0x0)
fstat(4,{ mode=-rw-r--r-- ,inode=4946654,size=7983,blksize=16384 }) = 0 (0x0)
read(4,"@(#)$Id: ldap.conf,v 2.47 2006/0"...,16384) = 7983 (0x1f2f)
read(4,0x80210f000,16384)                        = 0 (0x0)
close(4)                                         = 0 (0x0)
__sysctl(0x7fffffffae48,0x2,0x7fffffffae70,0x7fffffffae50,0x0,0x0) = 0 (0x0)
getpid()                                         = 56431 (0xdc6f)
issetugid(0x80,0x80201b980,0x10,0x2,0x2,0x0)     = 0 (0x0)
open("/etc/resolv.conf",O_RDONLY,0666)           = 4 (0x4)
fstat(4,{ mode=-rw-r--r-- ,inode=235865,size=100,blksize=16384 }) = 0 (0x0)
read(4,"# Generated by resolvconf\ndomai"...,16384) = 100 (0x64)
read(4,0x80210f000,16384)                        = 0 (0x0)
close(4)                                         = 0 (0x0)
issetugid(0x801810936,0x2e,0x2e,0x2e,0x7fffffff9e70,0x801c00180) = 0 (0x0)
stat("/etc/nsswitch.conf",{ mode=-rw-r--r-- ,inode=235558,size=1164,blksize=16384 }) = 0 (0x0)
open("/etc/hosts",O_RDONLY,0666)                 = 4 (0x4)
fstat(4,{ mode=-rw-r--r-- ,inode=235545,size=1437,blksize=16384 }) = 0 (0x0)
read(4,"# $FreeBSD: head/etc/hosts 10999"...,16384) = 1437 (0x59d)
close(4)                                         = 0 (0x0)
open("/usr/local/etc/openldap/ldap.conf",O_RDONLY,0666) = 4 (0x4)
fstat(4,{ mode=-rw-r--r-- ,inode=4945974,size=305,blksize=16384 }) = 0 (0x0)
read(4,"#\n# LDAP Defaults\n#\n\n# See l"...,16384) = 305 (0x131)
read(4,0x80210f000,16384)                        = 0 (0x0)
close(4)                                         = 0 (0x0)
geteuid()                                        = 2001 (0x7d1)
getuid()                                         = 2001 (0x7d1)
open("/home/ohartmann/ldaprc",O_RDONLY,0666)     ERR#2 'No such file or directory'
open("/home/ohartmann/.ldaprc",O_RDONLY,0666)    = 4 (0x4)
fstat(4,{ mode=-rw-r----- ,inode=355229,size=0,blksize=4096 }) = 0 (0x0)
read(4,0x80210f000,4096)                         = 0 (0x0)
close(4)                                         = 0 (0x0)
open("ldaprc",O_RDONLY,0666)                     ERR#2 'No such file or directory'
SIGNAL 10 (SIGBUS)
process exit, rval = 0

Fix: 

No general fix known.
How-To-Repeat: Use FreeBSD 9/10 amd64 with a OpenLDAP backed user environment. Setup pam_ldap and nss_ldap to be used for user authentication via PAM.

Install mail/thunderbird (most recent) and try to start thunderbird from a user account of a user which is kept in OpenLDAP database. Obviously it doesn't matter whether the OpenLDAP server is located on the same box as the client user tries to start thunderbird or accessing a remote OpenLDAP server.

If you're on a "slower" machine, like an older Core2Duo based 2-core or 4-core machine, try to startup www/firefox and while firefox is starting, try to start mail/thunderbird (repeat, if the first attempt fails). In my case, this is the only way to startup thunderbird. This "trick" fails on every box based on modern hardware like SandyBridge 6-core or IvyBridge 4-core (no 2-core of that type available here. Maybe this observation is useless, but anyway, I'll provide it.

There were suggestions at PR ports/164239: [PATCH] mail/thunderbird: crash with nss_ldap, I tried, but with no success.
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2012-08-01 14:50:16 UTC
Responsible Changed
From-To: freebsd-ports-bugs->gecko

Over to maintainer (via the GNATS Auto Assign Tool)
Comment 2 Jan Beich freebsd_committer freebsd_triage 2014-06-13 00:20:01 UTC
Likely same issue as bug 165263.

*** This bug has been marked as a duplicate of bug 165263 ***