Assertion failure in the "catz" system test (isc_taskmgr_excltask() error)
https://gitlab.isc.org/isc-projects/bind9/-/jobs/2203661
This happened for the v9_16
branch, but main
has a similar code
block.
Looking at line numbers, it seems that the failing assertion is:
2953 task = NULL;
2954 result = isc_taskmgr_excltask(taskmgr, &task);
2955 >>> REQUIRE(result == ISC_R_SUCCESS);
2956 isc_task_send(task, ISC_EVENT_PTR(&event));
2957 isc_task_detach(&task);
Could the recent updates to dns_catz_zones_merge()
be somehow related?
Click to expand/hide full test output
S:catz:2022-01-03T03:10:10+0000 T:catz:1:A A:catz:System test catz I:catz:PORTRANGE:6200 - 6299 I:catz:starting servers I:catz:Testing adding/removing of domain in catalog zone I:catz:checking that dom1.example. is not served by primary (1) I:catz:Adding a domain dom1.example. to primary via RNDC (2) I:catz:checking that dom1.example. is now served by primary (3) I:catz:Adding domain dom1.example. to catalog1 zone (4) I:catz:waiting for secondary to sync up (5) I:catz:checking that dom1.example. is served by secondary (6) I:catz:checking that zone-directory is populated (7) I:catz:update dom1.example. (8) I:catz:wait for secondary to be updated (9) I:catz:check that journal was created for cleanup test (10) I:catz:update catalog zone serial (11) I:catz:wait for catalog zone to transfer (12) I:catz:update dom1.example. again (13) I:catz:wait for secondary to be updated again (14) I:catz:removing domain dom1.example. from catalog1 zone (15) I:catz:waiting for secondary to sync up (16) I:catz:checking that dom1.example. is not served by secondary (17) I:catz:checking that zone-directory is emptied (18) I:catz:Testing various simple operations on domains, including using multiple catalog zones and garbage in zone I:catz:adding domain dom2.example. to primary via RNDC (19) I:catz:adding domain dom4.example. to primary via RNDC (20) I:catz:adding domains dom2.example, dom3.example. and some garbage to catalog1 zone (21) I:catz:adding domain dom4.example. to catalog2 zone (22) I:catz:waiting for secondary to sync up (23) I:catz:checking that dom4.example. is served by secondary (24) I:catz:checking that dom3.example. is not served by primary (25) I:catz:adding a domain dom3.example. to primary via RNDC (26) I:catz:checking that dom3.example. is served by primary (27) I:catz:waiting for secondary to sync up (28) I:catz:checking that dom3.example. is served by secondary (29) I:catz:removing all records from catalog1 zone (30) I:catz:removing all records from catalog2 zone (31) I:catz:Testing masters suboption and random labels I:catz:adding dom5.example. with a valid masters suboption (IP without TSIG) and a random label (32) I:catz:waiting for secondary to sync up (33) I:catz:checking that dom5.example. is served by secondary (34) I:catz:removing dom5.example. (35) I:catz:waiting for secondary to sync up (36) I:catz:checking that dom5.example. is no longer served by secondary (37) I:catz:Testing masters global option I:catz:adding dom6.example. and a valid global masters option (IP without TSIG) (38) I:catz:waiting for secondary to sync up (39) I:catz:checking that dom6.example. is served by secondary (40) I:catz:removing dom6.example. (41) I:catz:waiting for secondary to sync up (42) I:catz:checking that dom6.example. is no longer served by secondary (43) I:catz:adding dom6.example. and an invalid global masters option (TSIG without IP) (44) I:catz:waiting for secondary to sync up (45) I:catz:removing dom6.example. (46) I:catz:waiting for secondary to sync up (47) I:catz:Checking that a missing zone directory forces in-memory (48) I:catz:Testing allow-query and allow-transfer ACLs I:catz:adding domains dom7.example. and dom8.example. to primary via RNDC (49) I:catz:checking that dom7.example. is now served by primary (50) I:catz:adding domain dom7.example. to catalog1 zone with an allow-query statement (51) I:catz:waiting for secondary to sync up (52) I:catz:checking that dom7.example. is accessible from 10.53.0.1 (53) I:catz:checking that dom7.example. is not accessible from 10.53.0.2 (54) I:catz:checking that dom7.example. is accessible from 10.53.0.5 (55) I:catz:adding dom8.example. domain and global allow-query and allow-transfer ACLs (56) I:catz:waiting for secondary to sync up (57) I:catz:checking that dom8.example. is accessible from 10.53.0.1 (58) I:catz:checking that dom8.example. is not accessible from 10.53.0.2 (59) I:catz:checking that dom8.example. is not AXFR accessible from 10.53.0.1 (60) I:catz:checking that dom8.example. is AXFR accessible from 10.53.0.2 (61) I:catz:deleting global allow-query and allow-domain ACLs (62) I:catz:checking that dom8.example. is accessible from 10.53.0.1 (63) I:catz:checking that dom8.example. is accessible from 10.53.0.2 (64) I:catz:checking that dom8.example. is AXFR accessible from 10.53.0.1 (65) I:catz:checking that dom8.example. is AXFR accessible from 10.53.0.2 (66) I:catz:Testing TSIG keys for masters set per-domain I:catz:adding a domain dom9.example. to primary via RNDC, with transfers allowed only with TSIG key (67) I:catz:checking that dom9.example. is now served by primary (68) I:catz:adding domain dom9.example. to catalog1 zone with a valid masters suboption (IP with TSIG) (69) I:catz:waiting for secondary to sync up (70) I:catz:checking that dom9.example. is accessible on secondary (71) I:catz:deleting domain dom9.example. from catalog1 zone (72) I:catz:waiting for secondary to sync up (73) I:catz:checking that dom9.example. is no longer accessible on secondary (74) I:catz:adding domain dom9.example. to catalog1 zone with an invalid masters suboption (TSIG without IP) (75) I:catz:waiting for secondary to sync up (76) I:catz:deleting domain dom9.example. from catalog1 zone (77) I:catz:waiting for secondary to sync up (78) I:catz:Testing catalog entries that can't be represented as filenames I:catz:checking that this.is.a.very.very.long.long.long.domain.that.will.cause.catalog.zones.to.generate.hash.instead.of.using.regular.filename.dom10.example. is not served by primary (79) I:catz:Adding a domain this.is.a.very.very.long.long.long.domain.that.will.cause.catalog.zones.to.generate.hash.instead.of.using.regular.filename.dom10.example. to primary via RNDC (80) I:catz:checking that this.is.a.very.very.long.long.long.domain.that.will.cause.catalog.zones.to.generate.hash.instead.of.using.regular.filename.dom10.example. is now served by primary (81) I:catz:Adding domain this.is.a.very.very.long.long.long.domain.that.will.cause.catalog.zones.to.generate.hash.instead.of.using.regular.filename.dom10.example. to catalog1 zone (82) I:catz:waiting for secondary to sync up (83) I:catz:checking that this.is.a.very.very.long.long.long.domain.that.will.cause.catalog.zones.to.generate.hash.instead.of.using.regular.filename.dom10.example. is served by secondary (84) I:catz:checking that zone-directory is populated with a hashed filename (85) I:catz:removing domain this.is.a.very.very.long.long.long.domain.that.will.cause.catalog.zones.to.generate.hash.instead.of.using.regular.filename.dom10.example. from catalog1 zone (86) I:catz:waiting for secondary to sync up (87) I:catz:checking that this.is.a.very.very.long.long.long.domain.that.will.cause.catalog.zones.to.generate.hash.instead.of.using.regular.filename.dom10.example. is not served by secondary (88) I:catz:checking that zone-directory is emptied (89) I:catz:checking that this.zone/domain.has.a.slash.dom10.example. is not served by primary (90) I:catz:Adding a domain this.zone/domain.has.a.slash.dom10.example. to primary via RNDC (91) I:catz:checking that this.zone/domain.has.a.slash.dom10.example. is now served by primary (92) I:catz:Adding domain this.zone/domain.has.a.slash.dom10.example. to catalog1 zone (93) I:catz:waiting for secondary to sync up (94) I:catz:checking that this.zone/domain.has.a.slash.dom10.example. is served by secondary (95) I:catz:checking that zone-directory is populated with a hashed filename (96) I:catz:removing domain this.zone/domain.has.a.slash.dom10.example. from catalog1 zone (97) I:catz:waiting for secondary to sync up (98) I:catz:checking that this.zone/domain.has.a.slash.dom10.example. is not served by secondary (99) I:catz:checking that zone-directory is emptied (100) I:catz:checking that this.zone\\domain.has.backslash.dom10.example. is not served by primary (101) I:catz:Adding a domain this.zone\\domain.has.backslash.dom10.example. to primary via RNDC (102) I:catz:checking that this.zone\\domain.has.backslash.dom10.example. is now served by primary (103) I:catz:Adding domain this.zone\\domain.has.backslash.dom10.example. to catalog1 zone (104) I:catz:waiting for secondary to sync up (105) I:catz:checking that this.zone\\domain.has.backslash.dom10.example. is served by secondary (106) I:catz:checking that zone-directory is populated with a hashed filename (107) I:catz:removing domain this.zone\\domain.has.backslash.dom10.example. from catalog1 zone (108) I:catz:waiting for secondary to sync up (109) I:catz:checking that this.zone\\domain.has.backslash.dom10.example. is not served by secondary (110) I:catz:checking that zone-directory is emptied (111) I:catz:checking that this.zone:domain.has.a.colon.dom.10.example. is not served by primary (112) I:catz:Adding a domain this.zone:domain.has.a.colon.dom.10.example. to primary via RNDC (113) I:catz:checking that this.zone:domain.has.a.colon.dom.10.example. is now served by primary (114) I:catz:Adding domain this.zone:domain.has.a.colon.dom.10.example. to catalog1 zone (115) I:catz:waiting for secondary to sync up (116) I:catz:checking that this.zone:domain.has.a.colon.dom.10.example. is served by secondary (117) I:catz:checking that zone-directory is populated with a hashed filename (118) I:catz:removing domain this.zone:domain.has.a.colon.dom.10.example. from catalog1 zone (119) I:catz:waiting for secondary to sync up (120) I:catz:checking that this.zone:domain.has.a.colon.dom.10.example. is not served by secondary (121) I:catz:checking that zone-directory is emptied (122) I:catz:Testing adding a domain and a subdomain of it I:catz:checking that dom11.example. is not served by primary (123) I:catz:Adding a domain dom11.example. to primary via RNDC (124) I:catz:checking that dom11.example. is now served by primary (125) I:catz:Adding domain dom11.example. to catalog1 zone (126) I:catz:waiting for secondary to sync up (127) I:catz:checking that dom11.example. is served by secondary (128) I:catz:checking that subdomain.of.dom11.example. is not served by primary (129) I:catz:Adding a domain subdomain.of.dom11.example. to primary via RNDC (130) I:catz:checking that subdomain.of.dom11.example. is now served by primary (131) I:catz:Adding domain subdomain.of.dom11.example. to catalog1 zone (132) I:catz:waiting for secondary to sync up (133) I:catz:checking that subdomain.of.dom11.example. is served by secondary (134) I:catz:removing domain dom11.example. from catalog1 zone (135) I:catz:waiting for secondary to sync up (136) I:catz:checking that dom11.example. is not served by secondary (137) I:catz:checking that subdomain.of.dom11.example. is still served by secondary (138) I:catz:removing domain subdomain.of.dom11.example. from catalog1 zone (139) I:catz:waiting for secondary to sync up (140) I:catz:checking that subdomain.of.dom11.example. is not served by secondary (141) I:catz:Testing adding a catalog zone at runtime with rndc reconfig I:catz:checking that dom12.example. is not served by primary (142) I:catz:Adding a domain dom12.example. to primary via RNDC (143) I:catz:checking that dom12.example. is now served by primary (144) I:catz:Adding domain dom12.example. to catalog4 zone (145) I:catz:checking that dom12.example. is not served by secondary (146) I:catz:reconfiguring secondary - adding catalog4 catalog zone (147) I:catz:waiting for secondary to sync up (148) I:catz:checking that dom7.example. is still served by secondary after reconfiguration (149) I:catz:checking that dom12.example. is served by secondary (150) I:catz:reconfiguring secondary - removing catalog4 catalog zone, adding non-existent catalog5 catalog zone (151) I:catz:reconfiguring secondary - removing non-existent catalog5 catalog zone (152) I:catz:checking that dom12.example. is not served by secondary (153) I:catz:removing domain dom12.example. from catalog4 zone (154) I:catz:Testing having a zone in two different catalogs I:catz:checking that dom13.example. is not served by primary (155) I:catz:Adding a domain dom13.example. to primary ns1 via RNDC (156) I:catz:checking that dom13.example. is now served by primary ns1 (157) I:catz:Adding a domain dom13.example. to primary ns3 via RNDC (158) I:catz:checking that dom13.example. is now served by primary ns3 (159) I:catz:Adding domain dom13.example. to catalog1 zone with ns1 as primary (160) I:catz:waiting for secondary to sync up (161) I:catz:checking that dom13.example. is served by secondary and that it's the one from ns1 (162) I:catz:Adding domain dom13.example. to catalog2 zone with ns3 as primary (163) I:catz:waiting for secondary to sync up (164) I:catz:checking that dom13.example. is served by secondary and that it's still the one from ns1 (165) I:catz:Deleting domain dom13.example. from catalog2 (166) I:catz:waiting for secondary to sync up (167) I:catz:checking that dom13.example. is served by secondary and that it's still the one from ns1 (168) I:catz:Deleting domain dom13.example. from catalog1 (169) I:catz:waiting for secondary to sync up (170) I:catz:checking that dom13.example. is no longer served by secondary (171) I:catz:Testing having a regular zone and a zone in catalog zone of the same name I:catz:checking that dom14.example. is not served by primary (172) I:catz:Adding a domain dom14.example. to primary ns1 via RNDC (173) I:catz:checking that dom14.example. is now served by primary ns1 (174) I:catz:Adding a domain dom14.example. to primary ns3 via RNDC (175) I:catz:checking that dom14.example. is now served by primary ns3 (176) I:catz:Adding domain dom14.example. with rndc with ns1 as primary (177) I:catz:waiting for secondary to sync up (178) I:catz:checking that dom14.example. is served by secondary and that it's the one from ns1 (179) I:catz:Adding domain dom14.example. to catalog2 zone with ns3 as primary (180) I:catz:waiting for secondary to sync up (181) I:catz:checking that dom14.example. is served by secondary and that it's still the one from ns1 (182) I:catz:Deleting domain dom14.example. from catalog2 (183) I:catz:waiting for secondary to sync up (184) I:catz:checking that dom14.example. is served by secondary and that it's still the one from ns1 (185) I:catz:Testing changing label for a member zone I:catz:checking that dom15.example. is not served by primary (186) I:catz:Adding a domain dom15.example. to primary ns1 via RNDC (187) I:catz:checking that dom15.example. is now served by primary ns1 (188) I:catz:Adding domain dom15.example. to catalog1 zone with 'dom15label1' label (188) I:catz:waiting for secondary to sync up (189) I:catz:checking that dom15.example. is served by secondary (190) I:catz:Changing label of domain dom15.example. from 'dom15label1' to 'dom15label2' (191) I:catz:waiting for secondary to sync up (192) I:catz:checking that dom15.example. is served by secondary (193) I:catz:Testing recreation of a manually deleted zone after a reload I:catz:checking that dom16.example. is not served by primary (194) I:catz:Adding a domain dom16.example. to primary ns1 via RNDC (195) I:catz:checking that dom16.example. is now served by primary ns1 (196) I:catz:Adding domain dom16.example. to catalog1 zone with ns1 as primary (197) I:catz:waiting for secondary to sync up (198) I:catz:checking that dom16.example. is served by secondary and that it's the one from ns1 (199) I:catz:Deleting dom16.example. from secondary ns2 via RNDC (199) I:catz:checking that dom16.example. is no longer served by secondary (200) I:catz:Reloading secondary ns2 via RNDC (200) I:catz:waiting for secondary to sync up (201) I:catz:checking that dom16.example. is served by secondary and that it's the one from ns1 (202) I:catz:Deleting domain dom16.example. from catalog1 (203) I:catz:waiting for secondary to sync up (204) I:catz:checking that dom16.example. is no longer served by secondary (205) I:catz:checking that reconfig can delete and restore catalog zone configuration (206) I:catz:exit status: 0 I:catz:stopping servers I:catz:Core dump(s) found: catz/ns2/core.18648 R:catz:FAIL D:catz:backtrace from catz/ns2/core.18648: D:catz:-------------------------------------------------------------------------------- D:catz:Core was generated by `/builds/isc-projects/bind9/bin/named/.libs/named -D catz-ns2 -X named.lock -m r'. D:catz:Program terminated with signal SIGABRT, Aborted. D:catz:#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 D:catz:[Current thread is 1 (Thread 0x7fcb19bbc700 (LWP 18663))] D:catz:#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 D:catz:#1 0x00007fcb1e9f1537 in __GI_abort () at abort.c:79 D:catz:#2 0x00000000004695d3 in abort () D:catz:#3 0x00000000004e434a in assertion_failed (file=, line=, type=, cond=0x54b771 "result == 0") at ./main.c:270 D:catz:#4 0x00007fcb1f33342e in isc_assertion_failed (file=0x2 , line=431451424, line@entry=2955, type=type@entry=isc_assertiontype_require, cond=0x7fcb1ea07ce1 <__GI_raise+321> "H\213\204$\b\001") at assertions.c:46 D:catz:#5 0x000000000050dd1f in catz_create_chg_task (entry=entry@entry=0x7b3000026410, origin=origin@entry=0x7b5000010410, view=view@entry=0x7b6c00404910, taskmgr=taskmgr@entry=0x7b3000000190, udata=udata@entry=0x383ecc8 , type=type@entry=262198) at ./server.c:2955 D:catz:#6 0x000000000050daa0 in catz_addzone (entry=0x2, origin=0x7fcb19b76d20, view=0x0, taskmgr=0x7fcb1ea07ce1 <__GI_raise+321>, udata=0x0) at ./server.c:2965 D:catz:#7 0x00007fcb1f475f30 in dns_catz_zones_merge (target=target@entry=0x7b5000010410, newzone=) at catz.c:555 D:catz:#8 0x00007fcb1f47ae06 in dns_catz_update_from_db (db=db@entry=0x7b5000000610, catzs=) at catz.c:1995 D:catz:#9 0x00007fcb1f476b21 in dns_catz_update_taskaction (task=, event=) at catz.c:1746 D:catz:#10 0x00007fcb1f379dda in task_run (task=) at task.c:857 D:catz:#11 isc_task_run (task=) at task.c:950 D:catz:#12 0x00007fcb1f3570f6 in process_netievent (worker=worker@entry=0x7ba000008010, ievent=ievent@entry=0x7b38003283b0) at netmgr.c:933 D:catz:#13 0x00007fcb1f3526c9 in process_queue (worker=0x7ba000008010, type=NETIEVENT_TASK) at netmgr.c:1007 D:catz:#14 process_all_queues (worker=0x7ba000008010) at netmgr.c:778 D:catz:#15 async_cb (handle=0x7ba000008370) at netmgr.c:807 D:catz:#16 0x00007fcb1f0bbdee in uv__async_io (loop=0x7ba000008020, w=0x7ba0000081e8, events=1) at /usr/src/libuv-v1.42.0/src/unix/async.c:163 D:catz:#17 0x00007fcb1f0d792d in uv__io_poll (loop=0x7ba000008020, timeout=-1) at /usr/src/libuv-v1.42.0/src/unix/epoll.c:374 D:catz:#18 0x00007fcb1f0bc7d7 in uv_run (loop=0x7ba000008020, mode=UV_RUN_DEFAULT) at /usr/src/libuv-v1.42.0/src/unix/core.c:389 D:catz:#19 0x00007fcb1f3528b8 in nm_thread (worker0=0x7ba000008010) at netmgr.c:713 D:catz:#20 0x00007fcb1f37d29a in isc__trampoline_run (arg=0x7b0800017580) at trampoline.c:196 D:catz:#21 0x0000000000463c6d in __tsan_thread_start_func () D:catz:#22 0x00007fcb1f091ea7 in start_thread (arg=) at pthread_create.c:477 D:catz:#23 0x00007fcb1eac9def in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 D:catz:-------------------------------------------------------------------------------- D:catz:full backtrace from catz/ns2/core.18648 saved in catz/ns2/core.18648-backtrace.txt D:catz:core dump catz/ns2/core.18648 archived as catz/ns2/core.18648.gz E:catz:2022-01-03T03:13:50+0000