The latest thunderbird ebuild crashes at startup with a segmentation fault. I am in the process of downgrading to thunderbird-10.0.4 so I can access my e-mail again. Reproducible: Always $emerge --info thunderbird Portage 2.1.10.63 (hardened/linux/amd64/no-multilib/selinux, gcc-4.5.3, glibc-2.15-r2, 3.3.6-hardened-r1-Stan x86_64) ================================================================= System Settings ================================================================= System uname: Linux-3.3.6-hardened-r1-Stan-x86_64-AMD_Athlon-tm-_64_X2_Dual_Core_Processor_3800+-with-gentoo-2.1 Timestamp of tree: Fri, 25 May 2012 09:45:01 +0000 app-shells/bash: 4.2_p28 dev-java/java-config: 2.1.11-r3 dev-lang/python: 2.7.3-r2, 3.2.3-r1 dev-util/cmake: 2.8.8-r2 dev-util/pkgconfig: 0.26 sys-apps/baselayout: 2.1-r1 sys-apps/openrc: 0.10.1 sys-apps/sandbox: 2.5 sys-devel/autoconf: 2.13, 2.69 sys-devel/automake: 1.11.5 sys-devel/binutils: 2.22-r1 sys-devel/gcc: 4.5.3-r2 sys-devel/gcc-config: 1.7.1 sys-devel/libtool: 2.4.2 sys-devel/make: 3.82-r3 sys-kernel/linux-headers: 3.4 (virtual/os-headers) sys-libs/glibc: 2.15-r2 Repositories: gentoo hardened-dev x-portage ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="*" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=athlon64 -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /etc/apache2 /etc/group /lib/udev/rules.d/ /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/sendmail-cf" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-march=athlon64 -O2 -pipe" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--with-bdeps y --autounmask=n --keep-going --quiet-build" FEATURES="assume-digests binpkg-logs ccache collision-protect config-protect-if-modified distlocks ebuild-locks fixlafiles news nostrip parallel-fetch parse-eapi-ebuild-head protect-owned sandbox selinux sesandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox xattr" FFLAGS="" GENTOO_MIRRORS="http://mirror.mcs.anl.gov/pub/gentoo http://www.gtlib.gatech.edu/pub/gentoo http://lug.mtu.edu/gentoo/ http://gentoo.mirrors.easynews.com/linux/gentoo http://distfiles.gentoo.org http://www.ibiblio.org/pub/Linux/distributions/gentoo" LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" LINGUAS="en en_US" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/var/lib/layman/hardened-development /usr/local/portage" SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage" USE="3dnow 3dnowext 64bit a52 aac aalib acpi amd amd64 apache2 audiofile bacula-console bash-completion berkdb branding bzip2 cairo caps cdda cddb cdparanoia cdr cgi clamav clamd cli client cracklib crypt cscope css cups curl curlwrappers cxx dbus dga directfb dri dvd dvdr dvdread encode exif expat ffmpeg firefox flac fontconfig ftp fusion gcj gd gdbm gif gimp glut gmp gnutls gpg gphoto2 gpm graphite graphviz grub gs gsl gsm gtk gzip handbook hardened hddtemp iconv imagemagick innodb iodbc ipv6 java6 javascript jbig jpeg jpeg2k justify kde kdm ladspa lame latex lcms ldap libcaca libnotify libsamplerate libwww lm_sensors logrotate lzma lzo mad mbox milter mime mmap mms mmx mmxext mng modules motif mp3 mp4 mpeg mpi mplayer mudflap musepack mysql mysqli ncurses nptl nsplugin odbc ofx ogg open_perms openal openexr opengl openmp osc oss pam pax_kernel pcre pdf peer_perms perl phonon pic plasma png posix ppds pppd pulseaudio python qt3support qt4 quicktime readline rss samba sdl sdl-image selinux semantic-desktop sensord server session sharedmem smp sndfile sockets sound soundex sox spell sqlite sqlite3 sse sse2 ssl startup-notification svg symlink syslog sysvipc taglib tcl tesseract threads tiff tk truetype ubac udev unicode urandom usb vcd vcdx vdr vim vim-pager vim-syntax vorbis wav wmf xattr xcb xcomposite xft xinetd xml xmp xmpp xorg xpm xscreensaver xulrunner xv xvid zlib" ALSA_CARDS="*" ALSA_PCM_PLUGINS="*" APACHE2_MODULES="alias authz_host auth_basic auth_digest authn_alias authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_owner authz_user autoindex dir env expires filter headers imagemap include log_config mime mime_magic rewrite setenvif speling vhost_alias substitute unique_id dav dav_fs dav_lock cgid" APACHE2_MPMS="worker" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="*" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en en_US" PHP_TARGETS="php5-3" PYTHON_TARGETS="python3_2 python2_7" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="radeon fbdev" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON ================================================================= Package Settings ================================================================= mail-client/thunderbird-12.0.1-r1 was built with the following: USE="alsa crashreporter crypt dbus ipc libnotify lightning minimal (selinux) startup-notification system-sqlite webm -bindist -custom-cflags -custom-optimization -debug -gconf -jit -mozdom -wifi" LINGUAS="-ar -ast -be -bg -bn_BD -br -ca -cs -da -de -el -en_GB -es_AR -es_ES -et -eu -fi -fr -fy_NL -ga_IE -gd -gl -he -hu -id -is -it -ja -ko -lt -nb_NO -nl -nn_NO -pa_IN -pl -pt_BR -pt_PT -rm -ro -ru -si -sk -sl -sq -sr -sv_SE -ta_LK -tr -uk -vi -zh_CN -zh_TW" CFLAGS="-march=athlon64 -pipe -Wno-return-type -w -mno-avx" CXXFLAGS="-march=athlon64 -pipe -Wno-return-type -w -mno-avx"
Created attachment 313181 [details] strace of thunderbird
turns out 10.0.4 does the same thing. So something else has gotten whacked on my system. Maybe with the strace someone can point me in a direction.
(In reply to comment #2) > turns out 10.0.4 does the same thing. So something else has gotten whacked > on my system. Maybe with the strace someone can point me in a direction. start with a revdep-rebuild, if you are still having issues please get a proper backtrace. http://www.gentoo.org/proj/en/qa/backtraces.xml
revdep-rebuild says everything is fine. I always run that after any world updates. I'm rebuilding tbird with the -ggdb added to CFLAGS. I'll try to get a more useful trace soon.
After rebuilding xulrunner so that the debug symbols would be included, the problem no longer happens. Apparently there was an issue in my build of xulrunner that was not detected by revdep-rebuild, nor did it affect firefox which has been running fine this whole time. I have the binaries with the gdb symbols not stripped, so if the problem comes back, I can post a decent trace.
(In reply to comment #5) > After rebuilding xulrunner so that the debug symbols would be included, the > problem no longer happens. Apparently there was an issue in my build of > xulrunner that was not detected by revdep-rebuild, nor did it affect firefox > which has been running fine this whole time. I have the binaries with the > gdb symbols not stripped, so if the problem comes back, I can post a decent > trace. xulrunner is not used by tb/fx in a good while, is there a particular reason you still have xulrunner on your system?
On the xulrunner, didn't realize it was no longer a dependency. At some point I must have forgotten a -1 on an emerge command and it was added to my world file. I've corrected that now. On the thunderbird issue -- I read an old post somewhere where running nscd kept thunderbird from segfaulting at startup. It does help in this case....I forgot about nscd running and wasn't able to reproduce the segfault. So running nscd is an acceptable workaround, but not sure that making it a requirement for using thunderbird is a good permanent solution. Now that I have some way of working around the issue and reproducing it I tried again to get a backtrace to post -- sigh --- I'm not much good at that yet apparently. If I let thunderbird create a core file and then try to run gdb on it, gdb segfaults!!!?????!! If I run thunderbird with thunderbird -g thunderbird-bin -d gdb I can't get a useful backtrace, this is all I get from gdb: (gdb) run Starting program: /usr/lib64/thunderbird/thunderbird-bin thunderbird-bin warning: no loadable sections found in added symbol-file system-supplied DSO at 0x34800f00000 Program received signal SIGSEGV, Segmentation fault. 0x0000034800280eab in ?? () (gdb) thread apply all bt full Thread 1 (LWP 13816): #0 0x0000034800280eab in ?? () No symbol table info available. #1 0x0000000000000000 in ?? () No symbol table info available. (gdb) quit Not sure what I need to rebuild next to get the needed symbols. So far I've rebuilt glibc, nspr, and thunderbird.
If nscd is working around the problem it is a known issue upstream and we are working on it. This would really be a dupe of bug 377261
I am using nss_ldap and pam_ldap as I have migrated to LDAP for authentication and no longer have local user accounts on the system. I would try nss-ldapd, but the gentoo ebuild for that seems dead. As long as nscd works, I can live with that for now. I'd help more, but coding in C/C++ is beyond my skill set. Not directly related to this bug, but any idea why gdb would crash when trying to load the core file from tbird on this bug? Should I create a bug on that and post the gdb backtrace from gdb's crash?
(In reply to comment #9) > I am using nss_ldap and pam_ldap as I have migrated to LDAP for > authentication and no longer have local user accounts on the system. I > would try nss-ldapd, but the gentoo ebuild for that seems dead. As long as > nscd works, I can live with that for now. I'd help more, but coding in > C/C++ is beyond my skill set. Not directly related to this bug, but any > idea why gdb would crash when trying to load the core file from tbird on > this bug? Should I create a bug on that and post the gdb backtrace from > gdb's crash? I am actually testing something right now, if it works out here I will publish it here for you to test for us. If it resolves your problem I will push it to tree and then upstream.
Created attachment 313619 [details, diff] rename ldap libs Drop this into /etc/portage/patches/mail-client/thunderbird and re-emerge then test with nscd disabled.
It's building with the patch....... * Done with patching * edos2unix ./db/makefiles.sh * Applying user patches from /etc/portage/patches//mail-client/thunderbird-12.0.1-r1 ... * fix_ldap_name.patch ... [ ok ] * Done with patching * Running eautoreconf in '/var/tmp/portage/mail-client/thunderbird-12.0.1-r1/work/comm-release' ... * Running autoconf ... [ ok ] Will report results later.............
Created attachment 313641 [details] backtrace on core file Still segfaults. Attaching a backtrace on the core file. Missing some symbols from some of the libraries, so don't know if I need to re-emerge some more packages so the symbols will be available or if this is enough. Let me know, I'd be happy to re-emerge whatever needed to get a good backtrace for you. Thanks for looking at this. Got to be a nasty bug since it looks like it goes back quite a ways.
(In reply to comment #13) > Created attachment 313641 [details] > backtrace on core file > > Still segfaults. Attaching a backtrace on the core file. Missing some > symbols from some of the libraries, so don't know if I need to re-emerge > some more packages so the symbols will be available or if this is enough. > Let me know, I'd be happy to re-emerge whatever needed to get a good > backtrace for you. Thanks for looking at this. Got to be a nasty bug since > it looks like it goes back quite a ways. your bt shows libnss_ldap still please get me an lddtree of libxul, libmoz* from /usr/lib/thunderbird/ also please provide an "strace -f thunderbird 2&> thunderbird.log"
Created attachment 313723 [details] lddtree output As requested libmoz* and libxul
Created attachment 313725 [details] strace -f of thunderbird As requested
(In reply to comment #16) > Created attachment 313725 [details] > strace -f of thunderbird > > As requested Your strace show you have libnss_ldap installed in /usr/lib/thunderbird can you explain this? Also you show plugins that are loading libldap can you plz check on this.
No I don't know why it would think libnss_ldap is in thunderbird. $ls -ld /usr/lib lrwxrwxrwx. 1 root root 5 May 1 2009 /usr/lib -> lib64 $ls /usr/lib64/thunderbird application.ini defaults libmozprldap60.so removed-files bin distribution libxpcom.so run-mozilla.sh blocklist.xml extensions libxul.so searchplugins chrome isp mozilla-xremote-client Throbber-small.gif chrome.manifest jsloader omni.ja thunderbird components libmozalloc.so platform.ini thunderbird-bin crashreporter libmozldap60.so plugin-container xpcom-config.h crashreporter.ini libmozldif60.so plugins Running an equery g with a depth of 2 shows that curl is pulling in libldap. The ldap USE flag is enabled on curl. I actually have the ldap USE flag in my make.conf. My reasoning is that everything that can use/need ldap support will get it except for those specific packages where an exception needs to be made, then I turn the flag off in package.use. Currently the only package where I have done that is cups. Right off hand I can't think of any pressing need to have ldap support for curl, so I am re-emerging curl with the ldap flag off. I'll let you know how that goes.
still segfaults, and even though I'm not good at reading a backtrace, I can see that something is still pulling in libldap. I'm going to re-emerge nss_ldap and openldap so that the debug symbols will be avail for the backtrace and see if that will help track it down.
(In reply to comment #17) > (In reply to comment #16) > > Created attachment 313725 [details] > > strace -f of thunderbird > > > > As requested > > Your strace show you have libnss_ldap installed in /usr/lib/thunderbird can > you explain this? Also you show plugins that are loading libldap can you plz > check on this. I did an strace -f on thunderbird with nscd running (no segfault) and without it running (segfaults). I can see that thunderbird searches for libnss_ldap in /usr/lib64/thunderbird, but does not actually find it there. It does find it in /lib64: [pid 10675] open("/usr/lib64/thunderbird/libnss_ldap.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) [pid 10675] open("/usr/lib64/thunderbird/plugins/libnss_ldap.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) [pid 10675] open("/lib64/libnss_ldap.so.2", O_RDONLY|O_CLOEXEC) = 14 What is interesting is that if nscd is running, thunderbird connects to the nscd socket, if the nscd socket does not exist, it then opens libnss_{dns, files, ldap} presumably (by me) based on what it read from nsswitch.conf Here are some grep from the two traces. thunderbird.log is without nscd running and thunderbird-nscd is with nscd running: grep libnss thunderbird.log [pid 10683] open("/lib64/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 3 open("/usr/lib64/thunderbird/libnss3.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/usr/lib64/thunderbird/plugins/libnss3.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/usr/lib64/libnss3.so", O_RDONLY|O_CLOEXEC) = 3 open("/usr/lib64/thunderbird/libnssutil3.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/usr/lib64/thunderbird/plugins/libnssutil3.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/usr/lib64/libnssutil3.so", O_RDONLY|O_CLOEXEC) = 3 open("/usr/lib64/thunderbird/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/usr/lib64/thunderbird/plugins/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/lib64/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 7 open("/usr/lib64/thunderbird/libnss_dns.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/usr/lib64/thunderbird/plugins/libnss_dns.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/lib64/libnss_dns.so.2", O_RDONLY|O_CLOEXEC) = 7 [pid 10675] open("/usr/lib64/thunderbird/libnss_ldap.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) [pid 10675] open("/usr/lib64/thunderbird/plugins/libnss_ldap.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) [pid 10675] open("/lib64/libnss_ldap.so.2", O_RDONLY|O_CLOEXEC) = 14 grep libnss thunderbird-nscd.log open("/usr/lib64/thunderbird/libnss3.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/usr/lib64/thunderbird/plugins/libnss3.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/usr/lib64/libnss3.so", O_RDONLY|O_CLOEXEC) = 3 open("/usr/lib64/thunderbird/libnssutil3.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/usr/lib64/thunderbird/plugins/libnssutil3.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/usr/lib64/libnssutil3.so", O_RDONLY|O_CLOEXEC) = 3 grep nscd thunderbird-nscd.log [pid 10614] connect(3, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = 0 [pid 10614] connect(3, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = 0 [pid 10614] connect(3, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = 0 [pid 10614] connect(3, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = 0 connect(7, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = 0 connect(7, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = 0 [pid 10606] connect(14, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = 0 [pid 10606] connect(14, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = 0 grep nscd thunderbird.log [pid 10683] connect(3, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) [pid 10683] connect(3, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) [pid 10683] connect(3, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) [pid 10683] connect(3, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) connect(7, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) connect(7, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) [pid 10675] connect(14, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) [pid 10675] connect(14, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
*** Bug 377261 has been marked as a duplicate of this bug. ***
Created attachment 313907 [details, diff] use bundled ldap instead of system ldap r.1.0 Please throw out the outdated patch and give it a spin, if all goes well I have finally forced the use of bundled ldap for thunderbird :)
Created attachment 313957 [details] backtrace on core file Still no joy :( I've attached the latest backtrace, but I doubt it will be all that different than the ones you've already seen. Looks to me like it is still pulling in nss_ldap: #11 do_init () at ldap-nss.c:1351 and the exception is raised in the same call as before: #3 strtok_r () at ../sysdeps/x86_64/strtok.S:190 No locals. #4 0x00000331519c3ab3 in ldap_str2charray
Why not to use system ldap? Currently my only solution to run thunderbird is: cd /usr/lib64/thunderbird rm libldap60.so ln -s ../libldap.so ./libldap60.so (In reply to comment #22) > Created attachment 313907 [details, diff] [details, diff] > use bundled ldap instead of system ldap r.1.0 > > Please throw out the outdated patch and give it a spin, if all goes well I > have finally forced the use of bundled ldap for thunderbird :)
I'm also hitting this bug. 3.1 and older has been masked and pending removal, but without a fix for this, removing thunderbird-3 from the tree is feels wrong. Deleting the built-in libldap solved it for me Cheers
*** Bug 425540 has been marked as a duplicate of this bug. ***
Any progress on solving this bug? Right now it seems that on my system if I use sys-auth/nss-pam-ldapd then thunderbird works with ldap authorization. When using sys-auth/pam_ldap, thunderbird still segfaults....
It's a clash of symbols from libldap-2.4.so and libldap60.so, namely "ldap_str2charray". A workround is to (re)start nscd in order to avoid calling the symbol. See also on the upstream bugtracker: https://bugzilla.mozilla.org/show_bug.cgi?id=292127#c79 If you introduce a USE flag for ldap ( see bug 439278 ), you can disable ldap and get rid of the problem.
*** Bug 463658 has been marked as a duplicate of this bug. ***
If you feel I have closed your bug and it is still a current issue, please reopen and update it completely. We will not work bugs that have no ebuild in tree any longer or can not be reproduced with a current system. Thank You for your support and understanding The Mozilla Team