Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 1 Aug 2012 13:49:50 GMT
From:      Oliver Hartmann <ohartman@zedat.fu-berlin.de>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/170310: mail/thunderbird: coredump/crash when used with OpenLDAP
Message-ID:  <201208011349.q71DnoNk085355@red.freebsd.org>
Resent-Message-ID: <201208011350.q71Do4aE051162@freefall.freebsd.org>

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

>Number:         170310
>Category:       ports
>Synopsis:       mail/thunderbird: coredump/crash when used with OpenLDAP
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Aug 01 13:50:04 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Oliver Hartmann
>Release:        FreeBSD 9.0-STABLE/amd64, FreeBSD 10.0-CURRENT/amd64 (CLANG built)
>Organization:
FU Berlin
>Environment:
FreeBSD 10.0-CURRENT #2 r238945: Tue Jul 31 14:45:00 CEST 2012

thunderbird-14.0    Mozilla Thunderbird is standalone mail and news that stands
thunderbird-enigmail-1.4.2 A GnuPG extension for the Thunderbird mail client
thunderbird-i18n-14.0 Localized interface for Thunderbird

pam_ldap-1.8.6_2    A pam module for authenticating with LDAP

nss_ldap-1.265_7    RFC 2307 NSS module

openldap-sasl-client-2.4.32_1 Open source LDAP client implementation with SASL2 support
openldap-sasl-server-2.4.32_1 Open source LDAP server implementation


>Description:
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

>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.
>Fix:
No general fix known. 

>Release-Note:
>Audit-Trail:
>Unformatted:



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