Control: reassign -1 torsocks Since the strace indicates the program gets stuck inside jemalloc, I’ve tried to recompile dig with and without jemalloc and the aforementioned behavior doesn’t happen when BIND 9 is not compiled with jemalloc.
This can be hardly fixed on BIND 9 side as it happens before the control is passed to the main library. I’ll leave it up for the torsocks maintainer to decide whether this is problem in torsocks or in jemalloc. #0 futex_wait (private=0, expected=2, futex_word=0x7ffff7cd57c0 <init_lock+64>) at ../sysdeps/nptl/ futex-internal.h:146 #1 __GI___lll_lock_wait (futex=futex@entry=0x7fff f7cd57c0 <init_lock+64>, private=0) at ./nptl/lowlevellock.c:49 #2 0x00007ffff76ab3d2 in lll_mutex_lock_optimized (mutex=0x7ffff7cd57c0 <init_lock+64>) at ./nptl/p thread_mutex_lock.c:48 #3 ___pthread_mutex_lock (mutex=mutex@entry=0x7ff ff7cd57c0 <init_lock+64>) at ./nptl/pthread_mutex_lock.c:93 #4 0x00007ffff7c923a0 in malloc_mutex_lock_final (mutex=0x7ffff7cd5780 <init_lock>) at include/jema lloc/internal/mutex.h:151 #5 je_malloc_mutex_lock_slow (mutex=mutex@entry=0 x7ffff7cd5780 <init_lock>) at src/mutex.c:90 #6 0x00007ffff7c21249 in malloc_mutex_lock (mutex =0x7ffff7cd5780 <init_lock>, tsdn=0x0) at include/jemalloc/internal/mutex.h:217 #7 malloc_init_hard () at src/jemalloc.c:2118 #8 0x00007ffff7c22755 in malloc_init () at src/je malloc.c:298 #9 imalloc_init_check (dopts=<synthetic pointer>, sopts=<synthetic pointer>) at src/jemalloc.c:2658 #10 imalloc (dopts=<optimized out>, sopts=<optimized out>) at src/jemalloc.c:2689 #11 je_malloc_default (size=40) at src/jemalloc.c:2722 #12 0x00007ffff7fcd900 in malloc (size=40) at ../include/rtld-malloc.h:56 #13 _dl_map_object_deps (map=map@entry=0x7ffff7f07580, preloads=preloads@entry=0x0, npreloads=nprelo ads@entry=0, trace_mode=trace_mode@entry=0, open_mode=open_mode@entry=-2147483648) at ./elf/dl-deps. c:463 #14 0x00007ffff7fd6a6d in dl_open_worker_begin (a= a@entry=0x7fffffffac30) at ./elf/dl-open.c:592 #15 0x00007ffff776dfca in __GI__dl_catch_exception (exception=<optimized out>, operate=<optimized out>, args=<optimized out>) at ./elf/dl-error-skelet on.c:208 #16 0x00007ffff7fd61c6 in dl_open_worker (a=a@entr y=0x7fffffffac30) at ./elf/dl-open.c:782 #17 0x00007ffff776dfca in __GI__dl_catch_exception (exception=<optimized out>, operate=<optimized ou t>, args=<optimized out>) at ./elf/dl-error-skeleton.c:208 #18 0x00007ffff7fd65b8 in _dl_open (file=0x7ffff7fba04c "libc.so.6", mode=<optimized out>, caller_dl open=0x7ffff7faf9bf <tsocks_init+127>, nsid=<optimized out>, argc=3, argv=0x7fffffffdd98, env=0x7fff ffffddb8) at ./elf/dl-open.c:884 #19 0x00007ffff76a4438 in dlopen_doit (a=a@entry=0 x7fffffffaea0) at ./dlfcn/dlopen.c:56 #20 0x00007ffff776dfca in __GI__dl_catch_exception (exception=exception@entry=0x7fffffffae00, operate=<optimized out>, args=<optimized out>) at ./elf/ dl-error-skeleton.c:208 #21 0x00007ffff776e07f in __GI__dl_catch_error (ob jname=0x7fffffffae58, errstring=0x7fffffffae60, mallocedp=0x7fffffffae57, operate=<optimized out>, a rgs=<optimized out>) at ./elf/dl-error-skeleton.c:227 #22 0x00007ffff76a3f27 in _dlerror_run (operate=op erate@entry=0x7ffff76a43e0 <dlopen_doit>, args=args@entry=0x7fffffffaea0) at ./dlfcn/dlerror.c:138 #23 0x00007ffff76a44e9 in dlopen_implementation (dl_caller=<optimized out>, mode=<optimized out>, fi le=<optimized out>) at ./dlfcn/dlopen.c:71 #24 ___dlopen (file=<optimized out>, mode=<optimiz ed out>) at ./dlfcn/dlopen.c:81 #25 0x00007ffff7faf9bf in init_libc_symbols () at ./src/lib/torsocks.c:233 #26 tsocks_init () at ./src/lib/torsocks.c:332 #27 0x00007ffff7fb6616 in tsocks_once (o=0x7ffff7fc2060 <init_once>, init_routine=0x7ffff7faf940 <ts ocks_init>) at ./src/common/compat.c:94 #28 0x00007ffff7fcf9ce in call_init ( env=0x7fffffffddb8, argv=0x7fffffffdd98, argc=3, l=<optimized out>) at ./elf/dl-init.c:74 #29 call_init (l=<optimized out>, argc=3, argv=0x7fffffffdd98, env=0x7fffffffddb8) at ./elf/dl-init.c:26 #30 0x00007ffff7fcfab4 in _dl_init ( main_map=0x7ffff7ffe2e0, argc=3, argv=0x7fffffffdd98, env=0x7fffffffddb8) at ./elf/dl-init.c:121 #31 0x00007ffff7fe5a80 in _dl_start_user () from /lib64/ld-linux-x86-64.so.2 #32 0x0000000000000003 in ?? () #33 0x00007fffffffe09e in ?? () #34 0x00007fffffffe0cc in ?? () #35 0x00007fffffffe0cf in ?? () #0 futex_wait (private=0, expected=2, futex_word=0x7ffff7cd57c0 <init_lock+64>) at ../sysdeps/nptl/ futex-internal.h:146 #1 __GI___lll_lock_wait (futex=futex@entry=0x7fff f7cd57c0 <init_lock+64>, private=0) at ./nptl/lowlevellock.c:49 #2 0x00007ffff76ab3d2 in lll_mutex_lock_optimized (mutex=0x7ffff7cd57c0 <init_lock+64>) at ./nptl/p thread_mutex_lock.c:48 #3 ___pthread_mutex_lock (mutex=mutex@entry=0x7ff ff7cd57c0 <init_lock+64>) at ./nptl/pthread_mutex_lock.c:93 #4 0x00007ffff7c923a0 in malloc_mutex_lock_final (mutex=0x7ffff7cd5780 <init_lock>) at include/jema lloc/internal/mutex.h:151 #5 je_malloc_mutex_lock_slow (mutex=mutex@entry=0 x7ffff7cd5780 <init_lock>) at src/mutex.c:90 #6 0x00007ffff7c21249 in malloc_mutex_lock (mutex =0x7ffff7cd5780 <init_lock>, tsdn=0x0) at include/jemalloc/internal/mutex.h:217 #7 malloc_init_hard () at src/jemalloc.c:2118 #8 0x00007ffff7c22755 in malloc_init () at src/jemalloc.c:298 #9 imalloc_init_check (dopts=<synthetic pointer>, sopts=<synthetic pointer>) at src/jemalloc.c:2658 #10 imalloc (dopts=<optimized out>, sopts=<optimized out>) at src/jemalloc.c:2689 #11 je_malloc_default (size=40) at src/jemalloc.c:2722 #12 0x00007ffff7fcd900 in malloc (size=40) at ../include/rtld-malloc.h:56 #13 _dl_map_object_deps (map=map@entry=0x7ffff7f07580, preloads=preloads@entry=0x0, npreloads=nprelo ads@entry=0, trace_mode=trace_mode@entry=0, open_mode=open_mode@entry=-2147483648) at ./elf/dl-deps. c:463 #14 0x00007ffff7fd6a6d in dl_open_worker_begin (a= a@entry=0x7fffffffac30) at ./elf/dl-open.c:592 #15 0x00007ffff776dfca in __GI__dl_catch_exception (exception=<optimized out>, operate=<optimized out>, args=<optimized out>) at ./elf/dl-error-skelet on.c:208 #16 0x00007ffff7fd61c6 in dl_open_worker (a=a@entr y=0x7fffffffac30) at ./elf/dl-open.c:782 #17 0x00007ffff776dfca in __GI__dl_catch_exception (exception=<optimized out>, operate=<optimized ou t>, args=<optimized out>) at ./elf/dl-error-skeleton.c:208 #18 0x00007ffff7fd65b8 in _dl_open (file=0x7ffff7fba04c "libc.so.6", mode=<optimized out>, caller_dl open=0x7ffff7faf9bf <tsocks_init+127>, nsid=<optimized out>, argc=3, argv=0x7fffffffdd98, env=0x7fff ffffddb8) at ./elf/dl-open.c:884 #19 0x00007ffff76a4438 in dlopen_doit (a=a@entry=0 x7fffffffaea0) at ./dlfcn/dlopen.c:56 #20 0x00007ffff776dfca in __GI__dl_catch_exception (exception=exception@entry=0x7fffffffae00, operate=<optimized out>, args=<optimized out>) at ./elf/ dl-error-skeleton.c:208 #21 0x00007ffff776e07f in __GI__dl_catch_error (ob jname=0x7fffffffae58, errstring=0x7fffffffae60, mallocedp=0x7fffffffae57, operate=<optimized out>, a rgs=<optimized out>) at ./elf/dl-error-skeleton.c:227 #22 0x00007ffff76a3f27 in _dlerror_run (operate=operate@entry=0x7ffff76a43e0 <dlopen_doit>, args=arg s@entry=0x7fffffffaea0) at ./dlfcn/dlerror.c:138 #23 0x00007ffff76a44e9 in dlopen_implementation (dl_caller=<optimized out>, mode=<optimized out>, fi le=<optimized out>) at ./dlfcn/dlopen.c:71 #24 ___dlopen (file=<optimized out>, mode=<optimiz ed out>) at ./dlfcn/dlopen.c:81 #25 0x00007ffff7faf9bf in init_libc_symbols () at ./src/lib/torsocks.c:233 #26 tsocks_init () at ./src/lib/torsocks.c:332 #27 0x00007ffff7fb6616 in tsocks_once (o=0x7ffff7fc2060 <init_once>, init_routine=0x7ffff7faf940 <ts ocks_init>) at ./src/common/compat.c:94 #28 0x00007ffff7faf74b in tsocks_initialize () at ./src/lib/torsocks.c:711 #29 0x00007ffff7fb3235 in syscall (number=number@e ntry=2) at ./src/lib/syscall.c:628 #30 0x00007ffff7c9503b in os_overcommits_proc () a t src/pages.c:627 #31 je_pages_boot () at src/pages.c:789 #32 0x00007ffff7c206a5 in malloc_init_hard_a0_locked () at src/jemalloc.c:1834 #33 0x00007ffff7c20fe1 in malloc_init_hard () at src/jemalloc.c:2129 #34 0x00007ffff7c22755 in malloc_init () at src/jemalloc.c:298 #35 imalloc_init_check (dopts=<synthetic pointer>, sopts=<synthetic pointer>) at src/jemalloc.c:2658 #36 imalloc (dopts=<optimized out>, sopts=<optimized out>) at src/jemalloc.c:2689 #37 je_malloc_default (size=72704) at src/jemalloc.c:2722 #38 0x00007ffff74a57ba in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6 #39 0x00007ffff7fcf9ce in call_init (env=0x7fffffffddb8, argv=0x7fffffffdd98, argc=3, l=<optimized o ut>) at ./elf/dl-init.c:74 #40 call_init (l=<optimized out>, argc=3, argv=0x7 fffffffdd98, env=0x7fffffffddb8) at ./elf/dl-init.c:26 #41 0x00007ffff7fcfab4 in _dl_init (main_map=0x7ffff7ffe2e0, argc=3, argv=0x7fffffffdd98, env=0x7fff ffffddb8) at ./elf/dl-init.c:121 #42 0x00007ffff7fe5a80 in _dl_start_user () from / lib64/ld-linux-x86-64.so.2 #43 0x0000000000000003 in ?? () #44 0x00007fffffffe09e in ?? () #45 0x00007fffffffe0cc in ?? () #46 0x00007fffffffe0cf in ?? () #47 0x0000000000000000 in ?? () Ondrej -- Ondřej Surý (He/Him) > On 4. 9. 2024, at 14:39, Ondřej Surý <ond...@sury.org> wrote: > > >> On 4. 9. 2024, at 14:12, Manny <debbug.1080...@sideload.33mail.com> wrote: >> The “-d” parameter is undocumented (another bug) > > No, it’s not a bug. > >> and in this case it has no effect. > > This probably means that dig isn’t executed at all. > >> No output is generated before the hang. When “strace >> -f” is used as follows: >> >> $ torsocks strace -f dig @"$dns_server" -d -t mx -q "$email_domain" +noclass >> +nocomments +nostats +short +tcp +nosearch >> >> The tail of the output when it hangs is as follows: > > The last few lines are useless. Full output is needed. > > Ondrej > -- > Ondřej Surý (He/Him) >