Bug 3749 - Claws-mail 3.14.1 only runs with LD_PRELOAD=/lib64/libpthread.so.0
Summary: Claws-mail 3.14.1 only runs with LD_PRELOAD=/lib64/libpthread.so.0
Status: RESOLVED INVALID
Alias: None
Product: Claws Mail (GTK 2)
Classification: Unclassified
Component: Other (show other bugs)
Version: 3.14.1
Hardware: PC Linux
: P3 normal
Assignee: users
URL:
Depends on:
Blocks:
 
Reported: 2016-12-21 16:23 UTC by Dan
Modified: 2016-12-21 18:58 UTC (History)
0 users

See Also:


Attachments

Description Dan 2016-12-21 16:23:03 UTC
I'm not sure if it is exactly a bug, but I decided to report just in case. This happens just with Claws (all other GTK2 apps run fine...).

Claws-mail 3.14.1 was running fine (on Linux). Then I made a massive clean up on my system, a huge upgrade and now I'm left with Claws stalling at the start (details below). The workaround was to preload libpthread:

LD_PRELOAD=/lib64/libpthread.so.0 claws-mail

so it seems I'm having a problem linking libpthread. Running it with strace gives me different results each time:

1) fails with "tpp.c:84: __pthread_tpp_change_priority: Assertion `new_prio == -1 || (new_prio >= fifo_min_prio && new_prio <= fifo_max_prio)"

open("/usr/share/locale/en_US/LC_MESSAGES/messages.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/messages.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
futex(0x7f74ad5e0468, 0x81 /* FUTEX_??? */, 2147483647) = 0
open("/usr/local/share/locale/en_US/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/share/locale/en/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
futex(0x7f74abcc50a8, 0x81 /* FUTEX_??? */, 2147483647) = 0
rt_sigaction(SIGPIPE, {SIG_IGN}, {SIG_DFL}, 8) = 0
futex(0x7f74ad5e0468, 0x81 /* FUTEX_??? */, 2147483647) = 0
sched_getparam(11701, { 0 })            = 0
sched_getscheduler(11701)               = 0 (SCHED_OTHER)
sched_get_priority_max(SCHED_FIFO)      = 99
sched_get_priority_min(SCHED_FIFO)      = 1
write(2, "claws-mail: tpp.c:84: __pthread_"..., 148claws-mail: tpp.c:84: __pthread_tpp_change_priority: Assertion `new_prio == -1 || (new_prio >= fifo_min_prio && new_prio <= fifo_max_prio)' failed.
) = 148
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f74b46a1000
rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], [], 8) = 0
getpid()                                = 11701
gettid()                                = 11701
tgkill(11701, 11701, SIGABRT)           = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGABRT (Aborted) @ 0 (0) ---
+++ killed by SIGABRT +++
Process 11701 detached

***

2) stalls at FUTEX:

access("/usr/xorg/share/X11/locale/en_US.UTF-8/XLC_LOCALE", R_OK) = 0
open("/usr/xorg/share/X11/locale/en_US.UTF-8/XLC_LOCALE", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=4250, ...}) = 0
read(4, "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"..., 4096) = 4096
read(4, " \n#\tcs20 class\ncs15\t{\n\tside\t\tGR\n"..., 4096) = 154
read(4, "", 4096)                       = 0
close(4)                                = 0
getresuid([501], [501], [501])          = 0
getresgid([100], [100], [100])          = 0
open("/usr/share/locale/en_US/LC_MESSAGES/messages.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/messages.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
futex(0x7f450702a468, 0x81 /* FUTEX_??? */, 2147483647) = 0
open("/usr/local/share/locale/en_US/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/share/locale/en/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
futex(0x7f450570f0a8, 0x81 /* FUTEX_??? */, 2147483647) = 0
rt_sigaction(SIGPIPE, {SIG_IGN}, {SIG_DFL}, 8) = 0
futex(0x7f450702a468, 0x81 /* FUTEX_??? */, 2147483647) = 0
futex(0x2322250, FUTEX_WAIT, 2, NULL

3) stalls at rt_sigsuspend:

open("/usr/share/locale/en_US/LC_MESSAGES/messages.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/messages.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
futex(0x7f97589a8468, 0x81 /* FUTEX_??? */, 2147483647) = 0
open("/usr/local/share/locale/en_US/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/share/locale/en/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
futex(0x7fff0737157c, 0x7 /* FUTEX_??? */, 0) = -1 EPERM (Operation not permitted)
futex(0x7f975708d0a8, 0x81 /* FUTEX_??? */, 2147483647) = 0
rt_sigaction(SIGPIPE, {SIG_IGN}, {SIG_DFL}, 8) = 0
futex(0x7f97589a8468, 0x81 /* FUTEX_??? */, 2147483647) = 0
futex(0x269d250, 0x6 /* FUTEX_??? */, 1) = -1 EDEADLK (Resource deadlock avoided)
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigsuspend([]

***

Here's the output of ldd (as you can see, libpthread is here):

        linux-vdso.so.1 (0x00007fff4e6c1000)
        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f11b05a9000)
        libgtk-x11-2.0.so.0 => /usr/local/lib/libgtk-x11-2.0.so.0 (0x00007f11afe79000)
        libgdk-x11-2.0.so.0 => /usr/local/lib/libgdk-x11-2.0.so.0 (0x00007f11afba1000)
        libatk-1.0.so.0 => /usr/local/lib/libatk-1.0.so.0 (0x00007f11af97b000)
        libpangocairo-1.0.so.0 => /usr/local/lib/libpangocairo-1.0.so.0 (0x00007f11af76d000)
        libpangoft2-1.0.so.0 => /usr/local/lib/libpangoft2-1.0.so.0 (0x00007f11af556000)
        libgdk_pixbuf-2.0.so.0 => /usr/local/lib/libgdk_pixbuf-2.0.so.0 (0x00007f11af32b000)
        libcairo.so.2 => /usr/local/lib/libcairo.so.2 (0x00007f11aefdd000)
        libpixman-1.so.0 => /usr/xorg/lib64/libpixman-1.so.0 (0x00007f11aed14000)
        libxcb-shm.so.0 => /usr/xorg/lib64/libxcb-shm.so.0 (0x00007f11aeb11000)
        libxcb-render.so.0 => /usr/xorg/lib64/libxcb-render.so.0 (0x00007f11ae903000)
        libXrender.so.1 => /usr/xorg/lib64/libXrender.so.1 (0x00007f11ae6f9000)
        libXext.so.6 => /usr/xorg/lib64/libXext.so.6 (0x00007f11ae4e4000)
        libpango-1.0.so.0 => /usr/local/lib/libpango-1.0.so.0 (0x00007f11ae291000)
        libgthread-2.0.so.0 => /usr/local/lib/libgthread-2.0.so.0 (0x00007f11ae08f000)
        libfontconfig.so.1 => /usr/xorg/lib64/libfontconfig.so.1 (0x00007f11ade3b000)
        libexpat.so.1 => /usr/local/lib/libexpat.so.1 (0x00007f11adc0c000)
        libpng16.so.16 => /usr/local/lib/libpng16.so.16 (0x00007f11ad9d0000)
        libharfbuzz.so.0 => /usr/local/lib/libharfbuzz.so.0 (0x00007f11ad766000)
        libfreetype.so.6 => /usr/local/lib/libfreetype.so.6 (0x00007f11ad490000)
        libgnutls.so.30 => /usr/local/lib/libgnutls.so.30 (0x00007f11ad167000)
        libidn.so.11 => /usr/local/lib/libidn.so.11 (0x00007f11acf33000)
        libtasn1.so.6 => /usr/local/lib/libtasn1.so.6 (0x00007f11acd1f000)
        libnettle.so.6 => /usr/local/lib/../lib64/libnettle.so.6 (0x00007f11acae3000)
        libhogweed.so.4 => /usr/local/lib/../lib64/libhogweed.so.4 (0x00007f11ac8ae000)
        libgmp.so.10 => /usr/local/lib/libgmp.so.10 (0x00007f11ac628000)
        libSM.so.6 => /usr/xorg/lib64/libSM.so.6 (0x00007f11ac41f000)
        libICE.so.6 => /usr/xorg/lib64/libICE.so.6 (0x00007f11ac202000)
        libstartup-notification-1.so.0 => /usr/local/lib/libstartup-notification-1.so.0 (0x00007f11abff8000)
        libxcb-util.so.1 => /usr/xorg/lib64/libxcb-util.so.1 (0x00007f11abdf2000)
        libX11-xcb.so.1 => /usr/xorg/lib64/libX11-xcb.so.1 (0x00007f11abbf0000)
        libX11.so.6 => /usr/xorg/lib64/libX11.so.6 (0x00007f11ab89f000)
        libxcb.so.1 => /usr/xorg/lib64/libxcb.so.1 (0x00007f11ab677000)
        libpthread-stubs.so.0 => /usr/xorg/lib64/libpthread-stubs.so.0 (0x00007f11ab475000)
        libXau.so.6 => /usr/xorg/lib64/libXau.so.6 (0x00007f11ab271000)
        libXdmcp.so.6 => /usr/xorg/lib64/libXdmcp.so.6 (0x00007f11ab06b000)
        libdbus-glib-1.so.2 => /usr/local/lib/libdbus-glib-1.so.2 (0x00007f11aae40000)
        libgio-2.0.so.0 => /usr/local/lib/libgio-2.0.so.0 (0x00007f11aaa91000)
        libgmodule-2.0.so.0 => /usr/local/lib/libgmodule-2.0.so.0 (0x00007f11aa88d000)
        libmount.so.1 => /lib64/libmount.so.1 (0x00007f11aa645000)
        libblkid.so.1 => /lib64/libblkid.so.1 (0x00007f11aa403000)
        libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f11aa1ff000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f11a9ff7000)
        libdbus-1.so.3 => /usr/local/lib/libdbus-1.so.3 (0x00007f11a9da0000)
        libgobject-2.0.so.0 => /usr/local/lib/libgobject-2.0.so.0 (0x00007f11a9b4c000)
        libffi.so.6 => /usr/local/lib/../lib64/libffi.so.6 (0x00007f11a9941000)
        libglib-2.0.so.0 => /usr/local/lib/libglib-2.0.so.0 (0x00007f11a9618000)
        libpcre.so.1 => /usr/local/lib/libpcre.so.1 (0x00007f11a93d2000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f11a91b5000)
        libetpan.so.17 => /usr/local/lib/libetpan.so.17 (0x00007f11a8ee2000)
        libstdc++.so.6 => /usr/local/lib/../lib64/libstdc++.so.6 (0x00007f11a8b4c000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f11a8851000)
        libdb-6.1.so => /usr/local/BerkeleyDB/lib/libdb-6.1.so (0x00007f11a8459000)
        libz.so.1 => /usr/local/lib/libz.so.1 (0x00007f11a8242000)
        libsasl2.so.3 => /usr/local/lib/libsasl2.so.3 (0x00007f11a8025000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f11a7e21000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f11a7c0a000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f11a786c000)
        libXinerama.so.1 => /usr/xorg/lib/libXinerama.so.1 (0x00007f11a7669000)
        libXrandr.so.2 => /usr/xorg/lib/libXrandr.so.2 (0x00007f11a745e000)
        libXcursor.so.1 => /usr/xorg/lib/libXcursor.so.1 (0x00007f11a7252000)
        libXcomposite.so.1 => /usr/xorg/lib/libXcomposite.so.1 (0x00007f11a704f000)
        libXdamage.so.1 => /usr/xorg/lib/libXdamage.so.1 (0x00007f11a6e4c000)
        libXfixes.so.3 => /usr/xorg/lib/libXfixes.so.3 (0x00007f11a6c46000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f11b07e0000)
        libgcc_s.so.1 => /usr/local/lib/../lib64/libgcc_s.so.1 (0x00007f11a6a2e000)

Output of --version-full:

Claws Mail version 3.14.1
runtime GTK+ 2.24.31 / GLib 2.50.2
buildtime GTK+ 2.24.31 / GLib 2.50.2
Compiled-in features:
 GnuTLS
 IPv6
 iconv
 libetpan 1.6
 libSM

I even tried to compile with debug symbols and run it through gdb, but since gdb complains about libpthread, the only way to run it is forcing gdb to preload the libpthread (so I can't figure it out why libpthread isn't being linked first of all).

If it's not a bug, sorry about posting it here. I think it's interesting since other GTK2 apps don't show this behaviour. Or maybe I just broke something here. In this case you can close it and I will try the mailing list instead.

Thanks!
Comment 1 Michael Schwendt 2016-12-21 18:30:54 UTC
Just a note: The problem is specific to your installation. Discussing it on the mailing-list would have been the better decision. Don't forget giving more details about what kind of "massive clean up" and "huge upgrade" you've performed. Have you messed with glibc? That's where the tpp.c assertion comes from, btw.
Comment 2 Dan 2016-12-21 18:58:09 UTC
Ok Michael, so I'm closing here and I'll post on the mailing list.

Sorry about that.

Note You need to log in before you can comment on or make changes to this bug.