REQUIRE(!atomic_load_acquire(&adb->exiting)); assertion failed on shutdown
The following crash happened during the rpzrecurse
system test on
main
, in a scheduled pipeline:
https://gitlab.isc.org/isc-projects/bind9/-/jobs/2458715
Backtrace excerpt:
D:rpzrecurse:#3 0x00007fbf4510086a in isc_assertion_failed (file=file@entry=0x7fbf44e69daa "adb.c", line=line@entry=2172, type=type@entry=isc_assertiontype_require, cond=cond@entry=0x7fbf44e68568 "!__extension__ ({ __auto_type __atomic_load_ptr = ((&adb->exiting)); __typeof__ (*__atomic_load_ptr) __atomic_load_tmp; __atomic_load (__atomic_load_ptr, &__atomic_load_tmp, (memory_order_acquire)); _"...) at assertions.c:49
D:rpzrecurse:#4 0x00007fbf44cfda70 in dns__adb_attach (adb=adb@entry=0x7fbf16242b00, adbp=adbp@entry=0x7fbf144a8178, func=func@entry=0x7fbf44e6a430 <__func__.13849> "new_adbfind", file=file@entry=0x7fbf44e69daa "adb.c", line=line@entry=1481) at adb.c:2172
D:rpzrecurse:#5 0x00007fbf44d03d7b in new_adbfind (port=<optimized out>, adb=0x7fbf16242b00) at adb.c:1481
D:rpzrecurse:#6 dns_adb_createfind (adb=0x7fbf16242b00, task=0x7fbf16272a80, action=action@entry=0x7fbf44de6720 <fctx_finddone>, arg=0x7fbf1635d000, name=name@entry=0x7fbf2e7f7fe0, qname=0x7fbf1635d010, qtype=28, options=255, now=<optimized out>, target=0x0, port=31475, depth=2, qc=0x7fbf0151c040, findp=0x7fbf2e7f7a90) at adb.c:2333
D:rpzrecurse:#7 0x00007fbf44de25b9 in findname (fctx=<optimized out>, fctx@entry=0x7fbf1635d000, name=name@entry=0x7fbf2e7f7fe0, port=port@entry=0, options=<optimized out>, options@entry=31, flags=flags@entry=0, now=1650586109, overquota=0x7fbf2e7f7f88, need_alternate=0x7fbf2e7f7f67, no_addresses=0x7fbf2e7f7f6c) at resolver.c:3315
D:rpzrecurse:#8 0x00007fbf44de5018 in fctx_getaddresses (badcache=false, fctx=0x7fbf1635d000) at resolver.c:3651
D:rpzrecurse:#9 fctx_try (fctx=0x7fbf1635d000, retrying=retrying@entry=false, badcache=badcache@entry=false) at resolver.c:4041
D:rpzrecurse:#10 0x00007fbf44de610d in fctx_start (task=<optimized out>, event=<optimized out>) at resolver.c:4550
The crashing code line is:
2165 void
2166 dns__adb_attach(dns_adb_t *adb, dns_adb_t **adbp, const char *func,
2167 const char *file, unsigned int line) {
2168 uint_fast32_t refs;
2169
2170 REQUIRE(DNS_ADB_VALID(adb));
2171 REQUIRE(adbp != NULL && *adbp == NULL);
2172 >>> REQUIRE(!atomic_load_acquire(&adb->exiting));
2173
2174 refs = isc_refcount_increment(&adb->references);
Click to expand/collapse full test log
S:rpzrecurse:2022-04-22T00:05:50+0000
T:rpzrecurse:1:A
A:rpzrecurse:System test rpzrecurse
I:rpzrecurse:PORTS:31475,31476,31477,31478,31479,31480,31481,31482,31483,31484,31485,31486,31487
I:rpzrecurse:starting servers
I:rpzrecurse:running native RPZ sub-test
I:rpzrecurse:testing that l1.l0 exists without RPZ (1)
I:rpzrecurse:testing that l2.l1.l0 returns SERVFAIL without RPZ (2)
I:rpzrecurse:stopping resolver
I:rpzrecurse:starting resolver using named.1a.conf
I:rpzrecurse:testing q01.l2.l1.l0 doesn't recurse (3)
I:rpzrecurse:stopping resolver
I:rpzrecurse:starting resolver using named.1b.conf
I:rpzrecurse:testing q01.l2.l1.l0 doesn't recurse (4)
I:rpzrecurse:testing q02.l2.l1.l0 recurses (5)
I:rpzrecurse:stopping resolver
I:rpzrecurse:starting resolver using named.1c.conf
I:rpzrecurse:testing q01.l2.l1.l0 doesn't recurse (6)
I:rpzrecurse:stopping resolver
I:rpzrecurse:starting resolver using named.2a.conf
I:rpzrecurse:testing q01.l2.l1.l0 doesn't recurse (7)
I:rpzrecurse:testing q02.l2.l1.l0 doesn't recurse (8)
I:rpzrecurse:testing q03.l2.l1.l0 doesn't recurse (9)
I:rpzrecurse:testing q04.l2.l1.l0 doesn't recurse (10)
I:rpzrecurse:testing q05.l2.l1.l0 doesn't recurse (11)
I:rpzrecurse:testing q06.l2.l1.l0 doesn't recurse (12)
I:rpzrecurse:testing q07.l2.l1.l0 doesn't recurse (13)
I:rpzrecurse:testing q08.l2.l1.l0 doesn't recurse (14)
I:rpzrecurse:testing q09.l2.l1.l0 doesn't recurse (15)
I:rpzrecurse:testing q10.l2.l1.l0 doesn't recurse (16)
I:rpzrecurse:testing q11.l2.l1.l0 doesn't recurse (17)
I:rpzrecurse:testing q12.l2.l1.l0 doesn't recurse (18)
I:rpzrecurse:testing q13.l2.l1.l0 doesn't recurse (19)
I:rpzrecurse:testing q14.l2.l1.l0 doesn't recurse (20)
I:rpzrecurse:testing q15.l2.l1.l0 doesn't recurse (21)
I:rpzrecurse:testing q16.l2.l1.l0 doesn't recurse (22)
I:rpzrecurse:testing q17.l2.l1.l0 doesn't recurse (23)
I:rpzrecurse:testing q18.l2.l1.l0 doesn't recurse (24)
I:rpzrecurse:testing q19.l2.l1.l0 doesn't recurse (25)
I:rpzrecurse:testing q20.l2.l1.l0 doesn't recurse (26)
I:rpzrecurse:testing q21.l2.l1.l0 doesn't recurse (27)
I:rpzrecurse:testing q22.l2.l1.l0 doesn't recurse (28)
I:rpzrecurse:testing q23.l2.l1.l0 doesn't recurse (29)
I:rpzrecurse:testing q24.l2.l1.l0 doesn't recurse (30)
I:rpzrecurse:testing q25.l2.l1.l0 doesn't recurse (31)
I:rpzrecurse:testing q26.l2.l1.l0 doesn't recurse (32)
I:rpzrecurse:testing q27.l2.l1.l0 doesn't recurse (33)
I:rpzrecurse:testing q28.l2.l1.l0 doesn't recurse (34)
I:rpzrecurse:testing q29.l2.l1.l0 doesn't recurse (35)
I:rpzrecurse:testing q30.l2.l1.l0 doesn't recurse (36)
I:rpzrecurse:testing q31.l2.l1.l0 doesn't recurse (37)
I:rpzrecurse:testing q32.l2.l1.l0 doesn't recurse (38)
I:rpzrecurse:testing q33.l2.l1.l0 recurses (39)
I:rpzrecurse:stopping resolver
I:rpzrecurse:starting resolver using named.3a.conf
I:rpzrecurse:testing q01.l2.l1.l0 recurses (40)
I:rpzrecurse:stopping resolver
I:rpzrecurse:starting resolver using named.3b.conf
I:rpzrecurse:testing q01.l2.l1.l0 recurses (41)
I:rpzrecurse:stopping resolver
I:rpzrecurse:starting resolver using named.3c.conf
I:rpzrecurse:testing q01.l2.l1.l0 recurses (42)
I:rpzrecurse:stopping resolver
I:rpzrecurse:starting resolver using named.3d.conf
I:rpzrecurse:testing q01.l2.l1.l0 doesn't recurse (43)
I:rpzrecurse:testing q02.l2.l1.l0 recurses (44)
I:rpzrecurse:stopping resolver
I:rpzrecurse:starting resolver using named.3e.conf
I:rpzrecurse:testing q01.l2.l1.l0 doesn't recurse (45)
I:rpzrecurse:testing q02.l2.l1.l0 recurses (46)
I:rpzrecurse:stopping resolver
I:rpzrecurse:starting resolver using named.3f.conf
I:rpzrecurse:testing q01.l2.l1.l0 doesn't recurse (47)
I:rpzrecurse:testing q02.l2.l1.l0 recurses (48)
I:rpzrecurse:stopping resolver
I:rpzrecurse:starting resolver using named.4aa.conf
I:rpzrecurse:testing that 1 of 33 queries skip recursion (49)
I:rpzrecurse:stopping resolver
I:rpzrecurse:starting resolver using named.4ap.conf
I:rpzrecurse:testing that 16 of 33 queries skip recursion (50)
I:rpzrecurse:stopping resolver
I:rpzrecurse:starting resolver using named.4bf.conf
I:rpzrecurse:testing that 32 of 33 queries skip recursion (51)
I:rpzrecurse:stopping resolver
I:rpzrecurse:starting resolver using named.5a.conf
I:rpzrecurse:testing q01.l2.l1.l0 doesn't recurse (52)
I:rpzrecurse:testing q02.l2.l1.l0 doesn't recurse (53)
I:rpzrecurse:testing q03.l2.l1.l0 recurses (54)
I:rpzrecurse:testing q04.l2.l1.l0 recurses (55)
I:rpzrecurse:testing q05.l2.l1.l0 recurses (56)
I:rpzrecurse:testing q06.l2.l1.l0 recurses (57)
I:rpzrecurse:check recursive behavior consistency during policy update races
I:rpzrecurse:stopping resolver
I:rpzrecurse:starting resolver using named.6a.conf
I:rpzrecurse:running dig to cache CNAME record (58)
I:rpzrecurse:suspending authority server
I:rpzrecurse:adding an NSDNAME policy
I:rpzrecurse:ns2 zone reload queued
I:rpzrecurse:running dig to follow CNAME (blocks, so runs in the background) (59)
I:rpzrecurse:removing the NSDNAME policy
I:rpzrecurse:ns2 zone reload queued
I:rpzrecurse:resuming authority server
I:rpzrecurse:check recursive behavior consistency during policy removal races
I:rpzrecurse:stopping resolver
I:rpzrecurse:starting resolver using named.6a.conf
I:rpzrecurse:running dig to cache CNAME record (60)
I:rpzrecurse:suspending authority server
I:rpzrecurse:adding an NSDNAME policy
I:rpzrecurse:ns2 zone reload queued
I:rpzrecurse:running dig to follow CNAME (blocks, so runs in the background) (61)
I:rpzrecurse:removing the policy zone
I:rpzrecurse:resuming authority server
I:rpzrecurse:testing maximum number of RPZ zones (62)
I:rpzrecurse:stopping resolver
I:rpzrecurse:starting resolver using named.max.conf
I:rpzrecurse:testing CLIENT-IP behavior (63)
I:rpzrecurse:stopping resolver
I:rpzrecurse:starting resolver using named.clientip.conf
I:rpzrecurse:testing CLIENT-IP behavior #2 (64)
I:rpzrecurse:stopping resolver
I:rpzrecurse:starting resolver using named.clientip2.conf
I:rpzrecurse:testing RPZ log clause (65)
I:rpzrecurse:stopping resolver
I:rpzrecurse:starting resolver using named.log.conf
I:rpzrecurse:testing wildcard behavior with 1 RPZ zone (66)
I:rpzrecurse:stopping resolver
I:rpzrecurse:starting resolver using named.wildcard1.conf
I:rpzrecurse:testing wildcard behavior with 2 RPZ zones (67)
I:rpzrecurse:stopping resolver
I:rpzrecurse:starting resolver using named.wildcard2.conf
I:rpzrecurse:testing wildcard behavior with 1 RPZ zone and no non-wildcard triggers (68)
I:rpzrecurse:stopping resolver
I:rpzrecurse:starting resolver using named.wildcard3.conf
I:rpzrecurse:testing wildcard passthru before explicit drop (69)
I:rpzrecurse:stopping resolver
I:rpzrecurse:starting resolver using named.wildcard4.conf
I:rpzrecurse:testing for invalid prefix length error (70)
I:rpzrecurse:stopping resolver
I:rpzrecurse:starting resolver using named.invalidprefixlength.conf
I:rpzrecurse:checking 'nsip-wait-recurse no' is faster than 'nsip-wait-recurse yes' (71)
I:rpzrecurse:timing 'nsip-wait-recurse yes' (default)
I:rpzrecurse:elapsed time 2 seconds
I:rpzrecurse:timing 'nsip-wait-recurse no'
I:rpzrecurse:elapsed time 0 seconds
I:rpzrecurse:checking 'nsdname-wait-recurse no' is faster than 'nsdname-wait-recurse yes' (72)
I:rpzrecurse:timing 'nsdname-wait-recurse yes' (default)
I:rpzrecurse:elapsed time 2 seconds
I:rpzrecurse:timing 'nsdname-wait-recurse no'
I:rpzrecurse:elapsed time 0 seconds
I:rpzrecurse:status (native RPZ sub-test): 0 (pass)
I:rpzrecurse:attempting to configure servers with DNSRPS...
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 crashed on shutdown
I:rpzrecurse:ns3 died before a SIGTERM was sent
I:rpzrecurse:ns3 didn't die when sent a SIGTERM
I:rpzrecurse:DNSRPS disabled at compile time
I:rpzrecurse:DNSRPS sub-test skipped
I:rpzrecurse:stopping servers
I:rpzrecurse:ns3 didn't die when sent a SIGTERM
I:rpzrecurse:stopping servers failed
I:rpzrecurse:Core dump(s) found: rpzrecurse/ns3/core.4319
D:rpzrecurse:backtrace from rpzrecurse/ns3/core.4319:
D:rpzrecurse:--------------------------------------------------------------------------------
D:rpzrecurse:Core was generated by `/builds/isc-projects/bind9/bin/named/.libs/named -D rpzrecurse-ns3 -X named.loc'.
D:rpzrecurse:Program terminated with signal SIGABRT, Aborted.
D:rpzrecurse:#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
D:rpzrecurse:[Current thread is 1 (Thread 0x7fbf2e7fc700 (LWP 4339))]
D:rpzrecurse:#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
D:rpzrecurse:#1 0x00007fbf42941921 in __GI_abort () at abort.c:79
D:rpzrecurse:#2 0x00005572724491e2 in assertion_failed (file=<optimized out>, line=<optimized out>, type=<optimized out>, cond=0x7fbf44e68568 "!__extension__ ({ __auto_type __atomic_load_ptr = ((&adb->exiting)); __typeof__ (*__atomic_load_ptr) __atomic_load_tmp; __atomic_load (__atomic_load_ptr, &__atomic_load_tmp, (memory_order_acquire)); _"...) at main.c:237
D:rpzrecurse:#3 0x00007fbf4510086a in isc_assertion_failed (file=file@entry=0x7fbf44e69daa "adb.c", line=line@entry=2172, type=type@entry=isc_assertiontype_require, cond=cond@entry=0x7fbf44e68568 "!__extension__ ({ __auto_type __atomic_load_ptr = ((&adb->exiting)); __typeof__ (*__atomic_load_ptr) __atomic_load_tmp; __atomic_load (__atomic_load_ptr, &__atomic_load_tmp, (memory_order_acquire)); _"...) at assertions.c:49
D:rpzrecurse:#4 0x00007fbf44cfda70 in dns__adb_attach (adb=adb@entry=0x7fbf16242b00, adbp=adbp@entry=0x7fbf144a8178, func=func@entry=0x7fbf44e6a430 <__func__.13849> "new_adbfind", file=file@entry=0x7fbf44e69daa "adb.c", line=line@entry=1481) at adb.c:2172
D:rpzrecurse:#5 0x00007fbf44d03d7b in new_adbfind (port=<optimized out>, adb=0x7fbf16242b00) at adb.c:1481
D:rpzrecurse:#6 dns_adb_createfind (adb=0x7fbf16242b00, task=0x7fbf16272a80, action=action@entry=0x7fbf44de6720 <fctx_finddone>, arg=0x7fbf1635d000, name=name@entry=0x7fbf2e7f7fe0, qname=0x7fbf1635d010, qtype=28, options=255, now=<optimized out>, target=0x0, port=31475, depth=2, qc=0x7fbf0151c040, findp=0x7fbf2e7f7a90) at adb.c:2333
D:rpzrecurse:#7 0x00007fbf44de25b9 in findname (fctx=<optimized out>, fctx@entry=0x7fbf1635d000, name=name@entry=0x7fbf2e7f7fe0, port=port@entry=0, options=<optimized out>, options@entry=31, flags=flags@entry=0, now=1650586109, overquota=0x7fbf2e7f7f88, need_alternate=0x7fbf2e7f7f67, no_addresses=0x7fbf2e7f7f6c) at resolver.c:3315
D:rpzrecurse:#8 0x00007fbf44de5018 in fctx_getaddresses (badcache=false, fctx=0x7fbf1635d000) at resolver.c:3651
D:rpzrecurse:#9 fctx_try (fctx=0x7fbf1635d000, retrying=retrying@entry=false, badcache=badcache@entry=false) at resolver.c:4041
D:rpzrecurse:#10 0x00007fbf44de610d in fctx_start (task=<optimized out>, event=<optimized out>) at resolver.c:4550
D:rpzrecurse:#11 0x00007fbf45120f47 in task_run (task=0x7fbf16272a80) at task.c:717
D:rpzrecurse:#12 isc_task_run (task=0x7fbf16272a80) at task.c:797
D:rpzrecurse:#13 0x00007fbf450eee81 in isc__nm_async_task (worker=0x7fbf3dc2afe0, ev0=0x7fbf3dedf000) at netmgr/netmgr.c:782
D:rpzrecurse:#14 process_netievent (worker=worker@entry=0x7fbf3dc2afe0, ievent=0x7fbf3dedf000) at netmgr/netmgr.c:853
D:rpzrecurse:#15 0x00007fbf450ef6e7 in process_queue (worker=worker@entry=0x7fbf3dc2afe0, type=type@entry=NETIEVENT_TASK) at netmgr/netmgr.c:945
D:rpzrecurse:#16 0x00007fbf450f00b4 in process_all_queues (worker=0x7fbf3dc2afe0) at netmgr/netmgr.c:716
D:rpzrecurse:#17 async_cb (handle=0x7fbf3dc2b340) at netmgr/netmgr.c:745
D:rpzrecurse:#18 0x00007fbf4392a3b4 in ?? () from /usr/lib/x86_64-linux-gnu/libuv.so.1
D:rpzrecurse:#19 0x00007fbf4393a340 in uv.io_poll () from /usr/lib/x86_64-linux-gnu/libuv.so.1
D:rpzrecurse:#20 0x00007fbf4392acc8 in uv_run () from /usr/lib/x86_64-linux-gnu/libuv.so.1
D:rpzrecurse:#21 0x00007fbf450ef9db in nm_thread (worker0=0x7fbf3dc2afe0) at netmgr/netmgr.c:654
D:rpzrecurse:#22 0x00007fbf45127e26 in isc__trampoline_run (arg=0x557274452570) at trampoline.c:198
D:rpzrecurse:#23 0x00007fbf42cf96db in start_thread (arg=0x7fbf2e7fc700) at pthread_create.c:463
D:rpzrecurse:#24 0x00007fbf42a2271f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
D:rpzrecurse:--------------------------------------------------------------------------------
D:rpzrecurse:full backtrace from rpzrecurse/ns3/core.4319 saved in rpzrecurse/ns3/core.4319-backtrace.txt
D:rpzrecurse:core dump rpzrecurse/ns3/core.4319 archived as rpzrecurse/ns3/core.4319.gz
R:rpzrecurse:FAIL
E:rpzrecurse:2022-04-22T00:11:05+0000