dig crash: l = query->lookup;
dig
crashed in the serve-stale
system test on v9_11_sub
(25bd30914f5d8ce2b78717599757105ea0d11035) with recent serve stale backports in place:
I:serve-stale:flush cache, re-enable serve-stale and query again (38)
tests.sh: line 439: 27066 Segmentation fault (core dumped) $DIG -p ${PORT} @10.53.0.1 data.example TXT > dig.out.test$n
I:serve-stale:failed
I:serve-stale:Core dump(s) found: serve-stale/core.27066
R:serve-stale:FAIL
D:serve-stale:backtrace from serve-stale/core.27066:
D:serve-stale:--------------------------------------------------------------------------------
D:serve-stale:Core was generated by `/builds/isc-private/bind9/bin/dig/.libs/dig -p 5200 @10.53.0.1 data.example TXT'.
D:serve-stale:Program terminated with signal SIGSEGV, Segmentation fault.
D:serve-stale:#0 0x000055f3182e09f5 in send_udp (query=0xffffffffffffffff) at dighost.c:3164
D:serve-stale:3164 l = query->lookup;
D:serve-stale:[Current thread is 1 (Thread 0x7f0951828700 (LWP 27080))]
D:serve-stale:#0 0x000055f3182e09f5 in send_udp (query=0xffffffffffffffff) at dighost.c:3164
D:serve-stale:#1 0x000055f3182df69a in send_done (_task=0x7f095182f010, event=0x7f095182e170) at dighost.c:2937
D:serve-stale:#2 0x00007f09542a0fd2 in dispatch (manager=0x7f095182e010) at task.c:1157
D:serve-stale:#3 0x00007f09542a16e8 in run (uap=0x7f095182e010) at task.c:1331
D:serve-stale:#4 0x00007f0953f7ffa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
D:serve-stale:#5 0x00007f0953d054cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
D:serve-stale:--------------------------------------------------------------------------------
D:serve-stale:full backtrace from serve-stale/core.27066 saved in serve-stale/core.27066-backtrace.txt
D:serve-stale:core dump serve-stale/core.27066 archived as serve-stale/core.27066.gz
[New LWP 27080]
[New LWP 27066]
[New LWP 27082]
[New LWP 27081]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/builds/isc-private/bind9/bin/dig/.libs/dig -p 5200 @10.53.0.1 data.example TXT'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x000055f3182e09f5 in send_udp (query=0xffffffffffffffff) at dighost.c:3164
3164 l = query->lookup;
[Current thread is 1 (Thread 0x7f0951828700 (LWP 27080))]
Thread 4 (Thread 0x7f0951027700 (LWP 27081)):
#0 futex_wait_cancelable (private=0, expected=0, futex_word=0x7f09518300a0) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
__ret = -512
oldtype = 0
err = <optimized out>
oldtype = <optimized out>
err = <optimized out>
__ret = <optimized out>
resultvar = <optimized out>
__arg4 = <optimized out>
__arg3 = <optimized out>
__arg2 = <optimized out>
__arg1 = <optimized out>
_a4 = <optimized out>
_a3 = <optimized out>
_a2 = <optimized out>
_a1 = <optimized out>
#1 __pthread_cond_wait_common (abstime=0x0, mutex=0x7f0951830028, cond=0x7f0951830078) at pthread_cond_wait.c:502
spin = 0
buffer = {__routine = 0x7f0953f85d80 <__condvar_cleanup_waiting>, __arg = 0x7f0951026e10, __canceltype = 1359113760, __prev = 0x0}
cbuffer = {wseq = 12, cond = 0x7f0951830078, mutex = 0x7f0951830028, private = 0}
rt = <optimized out>
err = <optimized out>
g = 0
flags = <optimized out>
g1_start = <optimized out>
signals = <optimized out>
result = 0
wseq = 12
seq = 6
private = 0
maxspin = <optimized out>
err = <optimized out>
result = <optimized out>
wseq = <optimized out>
g = <optimized out>
seq = <optimized out>
flags = <optimized out>
private = <optimized out>
signals = <optimized out>
g1_start = <optimized out>
spin = <optimized out>
buffer = <optimized out>
cbuffer = <optimized out>
rt = <optimized out>
s = <optimized out>
#2 __pthread_cond_wait (cond=0x7f0951830078, mutex=0x7f0951830028) at pthread_cond_wait.c:655
No locals.
#3 0x00007f09542abe22 in run (uap=0x7f0951830010) at timer.c:817
manager = 0x7f0951830010
now = {seconds = 1616408150, nanoseconds = 831112000}
result = 0
#4 0x00007f0953f7ffa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
ret = <optimized out>
pd = <optimized out>
now = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139677990549248, -8078676509628610609, 140720729018446, 140720729018447, 139677990549248, 0, 8210172624732112847, 8210169235483740111}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
#5 0x00007f0953d054cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.
Thread 3 (Thread 0x7f0950826700 (LWP 27082)):
#0 0x00007f0953d057ef in epoll_wait (epfd=5, events=0x7f0951832010, maxevents=64, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
resultvar = 18446744073709551612
sc_cancel_oldtype = 0
sc_ret = <optimized out>
#1 0x00007f09542cdcb6 in watcher (uap=0x7f095182ef30) at socket.c:4318
manager = 0x7f095182ef30
done = false
cc = 1
fnname = 0x7f09542f0a65 "epoll_wait()"
strbuf = '\000' <repeats 127 times>
#2 0x00007f0953f7ffa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
ret = <optimized out>
pd = <optimized out>
now = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139677982156544, -8078676509628610609, 140720729018270, 140720729018271, 139677982156544, 0, 8210175923803867087, 8210169235483740111}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
#3 0x00007f0953d054cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.
Thread 2 (Thread 0x7f095186a780 (LWP 27066)):
#0 0x00007f0953c43b36 in __GI___sigsuspend (set=0x7ffc1910d0f0) at ../sysdeps/unix/sysv/linux/sigsuspend.c:26
resultvar = 18446744073709551102
sc_cancel_oldtype = 0
sc_ret = <optimized out>
#1 0x00007f09542aeff5 in isc__app_ctxrun (ctx0=0x7f0954328ba0 <isc_g_appctx>) at app.c:723
result = 0
ctx = 0x7f0954328ba0 <isc_g_appctx>
event = 0x0
next_event = 0x0
task = 0x0
sset = {__val = {0 <repeats 16 times>}}
strbuf = "\000\000\000\000\000\000\000\000\250\214\062T\t\177\000\000P\321\020\031\374\177\000\000p\321\020\031\374\177\000\000\360\322\020\031\374\177\000\000\246\327-T\t\177\000\000\200\321\020\031+\000\000\000\340\031.T#\000\000\000\255\322.T\t\177\000\000\300\214\062T\t\177\000\000\020\321\020\031\374\177\000\000\263\201%T\t\177\000\000h", '\000' <repeats 15 times>, "\341\214.\030\363U\000\000\020\360\202Q\001\000\005"
#2 0x00007f09542af3b7 in isc__app_run () at app.c:760
No locals.
#3 0x00007f09542b1969 in isc_app_run () at ../app_api.c:207
result = 32521
#4 0x000055f3182d23bb in dig_startup () at dig.c:2346
result = 0
#5 0x000055f3182d256a in main (argc=6, argv=0x7ffc1910d2f8) at dig.c:2378
No locals.
Thread 1 (Thread 0x7f0951828700 (LWP 27080)):
#0 0x000055f3182e09f5 in send_udp (query=0xffffffffffffffff) at dighost.c:3164
l = 0x0
result = 22003
sendbuf = 0x7f0951829058
next = 0x7f0951827df0
#1 0x000055f3182df69a in send_done (_task=0x7f095182f010, event=0x7f095182e170) at dighost.c:2937
sevent = 0x7f095182e170
b = 0x0
query = 0x7f095183c018
next = 0xffffffffffffffff
l = 0x55f319f08488
#2 0x00007f09542a0fd2 in dispatch (manager=0x7f095182e010) at task.c:1157
dispatch_count = 3
done = false
finished = false
requeue = false
event = 0x7f095182e170
task = 0x7f095182f010
#3 0x00007f09542a16e8 in run (uap=0x7f095182e010) at task.c:1331
manager = 0x7f095182e010
#4 0x00007f0953f7ffa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
ret = <optimized out>
pd = <optimized out>
now = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139677998941952, -8078676509628610609, 140720729018382, 140720729018383, 139677998941952, 0, 8210173723706869711, 8210169235483740111}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
#5 0x00007f0953d054cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.
Core dump: core.27066.gz