Bug#1006764: libc6: i18n causes deadlocks with malloc interposers like libasan (AddressSanitizer)
Package: libc6
Version: 2.33-7
Severity: normal
Tags: upstream
Forwarded: https://sourceware.org/bugzilla/show_bug.cgi?id=27653
Affects: libasan6
This has been reported upstream, but let's give it more visibility
(this could save hours of debugging...).
In short, using LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libasan.so.6
with some executables can make the executable hang.
Examples:
With
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libasan.so.6 inkscape
Thread 1 (Thread 0x7f07770c8bc0 (LWP 424733) "inkscape"):
#0 __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0x7f077dd21be8 <_nl_state_lock+8>, expected=expected@entry=2, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=false) at ../sysdeps/nptl/futex-internal.c:87
err = -512
op = 393
#1 0x00007f077db3f148 in __GI___futex_abstimed_wait64 (futex_word=futex_word@entry=0x7f077dd21be8 <_nl_state_lock+8>, expected=expected@entry=2, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ../sysdeps/nptl/futex-internal.c:112
#2 0x00007f077db37ad5 in __pthread_rwlock_wrlock_full64 (abstime=0x0, clockid=0, rwlock=0x7f077dd21be0 <_nl_state_lock>) at pthread_rwlock_common.c:829
private = 0
err = <optimized out>
may_share_futex_used_flag = <optimized out>
wpf = <optimized out>
ready = false
r = <optimized out>
result = <optimized out>
#3 __GI___pthread_rwlock_wrlock (rwlock=0x7f077dd21be0 <_nl_state_lock>) at pthread_rwlock_wrlock.c:27
result = <optimized out>
#4 0x00007f077db8375e in set_binding_values (domainname=0x7f077b8be5b7 "gspell-1", dirnamep=0x0, codesetp=0x7ffdaf37e428) at bindtextdom.c:91
__p = <optimized out>
binding = <optimized out>
modified = <optimized out>
#5 0x00007f077db83bd1 in set_binding_values (codesetp=0x7ffdaf37e428, dirnamep=0x0, domainname=<optimized out>) at bindtextdom.c:82
[...]
and with
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libasan.so.6 vlc
Thread 1 (Thread 0x7f2f9be09340 (LWP 424824) "vlc"):
#0 __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0x7f2f9c651be8 <_nl_state_lock+8>, expected=expected@entry=2, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=false) at ../sysdeps/nptl/futex-internal.c:87
clockbit = <optimized out>
err = -512
op = 393
#1 0x00007f2f9c675148 in __GI___futex_abstimed_wait64 (futex_word=futex_word@entry=0x7f2f9c651be8 <_nl_state_lock+8>, expected=expected@entry=2, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ../sysdeps/nptl/futex-internal.c:112
No locals.
#2 0x00007f2f9c66dad5 in __pthread_rwlock_wrlock_full64 (abstime=0x0, clockid=0, rwlock=0x7f2f9c651be0 <_nl_state_lock>) at pthread_rwlock_common.c:829
private = 0
err = <optimized out>
may_share_futex_used_flag = <optimized out>
wpf = <optimized out>
ready = false
r = <optimized out>
may_share_futex_used_flag = <optimized out>
r = <optimized out>
done = <optimized out>
wpf = <optimized out>
ready = <optimized out>
__value = <optimized out>
prefer_writer = <optimized out>
private = <optimized out>
wf = <optimized out>
err = <optimized out>
w = <optimized out>
w = <optimized out>
private = <optimized out>
err = <optimized out>
w = <optimized out>
wf = <optimized out>
wf = <optimized out>
__value = <optimized out>
#3 __GI___pthread_rwlock_wrlock (rwlock=0x7f2f9c651be0 <_nl_state_lock>) at pthread_rwlock_wrlock.c:27
result = <optimized out>
#4 0x00007f2f9c4b375e in set_binding_values (domainname=0x7f2f9c2f666b "vlc", dirnamep=0x0, codesetp=0x7fff24056378) at bindtextdom.c:91
__p = <optimized out>
binding = <optimized out>
modified = <optimized out>
[...]
and similarly with gnuplot:
Thread 1 (Thread 0x7fbcf39e4bc0 (LWP 424576) "gnuplot"):
#0 __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0x7fbcf8be8be8 <_nl_state_lock+8>, expected=expected@entry=2, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=false) at ../sysdeps/nptl/futex-internal.c:87
err = -512
op = 393
#1 0x00007fbcf8c06148 in __GI___futex_abstimed_wait64 (futex_word=futex_word@entry=0x7fbcf8be8be8 <_nl_state_lock+8>, expected=expected@entry=2, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ../sysdeps/nptl/futex-internal.c:112
#2 0x00007fbcf8bfead5 in __pthread_rwlock_wrlock_full64 (abstime=0x0, clockid=0, rwlock=0x7fbcf8be8be0 <_nl_state_lock>) at pthread_rwlock_common.c:829
private = 0
err = <optimized out>
may_share_futex_used_flag = <optimized out>
wpf = <optimized out>
ready = false
r = <optimized out>
result = <optimized out>
#3 __GI___pthread_rwlock_wrlock (rwlock=0x7fbcf8be8be0 <_nl_state_lock>) at pthread_rwlock_wrlock.c:27
result = <optimized out>
#4 0x00007fbcf8a4a75e in set_binding_values (domainname=0x7fbcf7de4f51 "gtk30-properties", dirnamep=0x7fff4f41f848, codesetp=0x0) at bindtextdom.c:91
__p = <optimized out>
binding = <optimized out>
modified = <optimized out>
[...]
-- System Information:
Debian Release: bookworm/sid
APT prefers unstable-debug
APT policy: (500, 'unstable-debug'), (500, 'stable-updates'), (500, 'stable-security'), (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 5.16.0-3-amd64 (SMP w/8 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=POSIX, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages libc6 depends on:
ii libgcc-s1 12-20220302-1
Versions of packages libc6 recommends:
ii libidn2-0 2.3.2-2
Versions of packages libc6 suggests:
ii debconf [debconf-2.0] 1.5.79
ii glibc-doc 2.33-7
ii libc-l10n 2.33-7
pn libnss-nis <none>
pn libnss-nisplus <none>
ii locales 2.33-7
-- debconf information excluded
--
Vincent Lefèvre <vincent@vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
Reply to: