#1006764 libc6: i18n causes deadlocks with malloc interposers like libasan (AddressSanitizer)

Package:
libc6
Source:
glibc
Description:
GNU C Library: Shared libraries
Submitter:
Vincent Lefevre
Date:
2026-01-10 11:39:44 UTC
Severity:
normal
Tags:
#1006764#5
Date:
2022-03-04 13:36:07 UTC
From:
To:
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>
[...]

#1006764#12
Date:
2026-01-10 10:08:08 UTC
From:
To:
Es gibt eine Familienspende in Höhe von 1.850.000,00 USD von Cheng Charlie
Saephan. Bitte antworten Sie für weitere Informationen. Denken Sie daran,
Ihrer Familie und den Bedürftigen in Ihrer Umgebung Gutes zu tun.

Dies ist bereits der zweite Versuch, Sie zu erreichen. Bitte antworten Sie
für weitere Details.