resolver system test fails on macOS
The application context is not properly initialised in isc_appctx_create() resulting in isc_mutex_lock failures.
diff --git a/lib/isc/app.c b/lib/isc/app.c
index 04f4712434..7bc1e57a9c 100644
--- a/lib/isc/app.c
+++ b/lib/isc/app.c
@@ -518,6 +518,13 @@ isc_appctx_create(isc_mem_t *mctx, isc_appctx_t **ctxp) {
ctx = isc_mem_get(mctx, sizeof(*ctx));
*ctx = (isc_appctx_t){ .magic = 0 };
+ isc_mutex_init(&ctx->lock);
+
+#ifndef WIN32
+ isc_mutex_init(&ctx->readylock);
+ isc_condition_init(&ctx->ready);
+#endif
+
isc_mem_attach(mctx, &ctx->mctx);
ctx->magic = APPCTX_MAGIC;
The above is incomplete w.r.t. windows builds.
S:resolver:2021-05-06T09:36:57+1000
T:resolver:1:A
A:resolver:System test resolver
I:resolver:PORTS:5300,5301,5302,5303,5304,5305,5306,5307,5308,5309,5310,5311,5312
I:resolver:starting servers
I:resolver:checking non-cachable NXDOMAIN response handling (1)
I:resolver:checking non-cachable NXDOMAIN response handling using dns_client (2)
tests.sh: line 37: 58105 Abort trap: 6 (core dumped) $RESOLVE $RESOLVOPTS -t a -s 10.53.0.1 nxdomain.example.net 2> resolve.out.ns1.test${n}
I:resolver:failed
I:resolver:checking that local bound address can be set (Can't query from a denied address) (3)
tests.sh: line 55: 58127 Abort trap: 6 (core dumped) ${RESOLVE} -b 10.53.0.8 $RESOLVOPTS -t a -s 10.53.0.1 www.example.org 2> resolve.out.ns1.test${n}
I:resolver:failed
I:resolver:checking that local bound address can be set (Can query from an allowed address) (4)
app.c:242: fatal error: RUNTIME_CHECK(((pthread_mutex_lock(((&ctx->lock))) == 0) ? 0 : 34) == 0) failed
tests.sh: line 55: 58148 Abort trap: 6 (core dumped) ${RESOLVE} -b 10.53.0.1 $RESOLVOPTS -t a -s 10.53.0.1 www.example.org > resolve.out.ns1.test${n}
I:resolver:failed
I:resolver:checking non-cachable NODATA response handling (5)
I:resolver:checking non-cachable NODATA response handling using dns_client (6)
tests.sh: line 73: 58188 Abort trap: 6 (core dumped) $RESOLVE $RESOLVOPTS -t a -s 10.53.0.1 nodata.example.net 2> resolve.out.ns1.test${n}
I:resolver:failed
I:resolver:checking handling of bogus referrals (7)
I:resolver:checking handling of bogus referrals using dns_client (8)
tests.sh: line 88: 58228 Abort trap: 6 (core dumped) $RESOLVE $RESOLVOPTS -t a -s 10.53.0.1 www.example.com 2> resolve.out.ns1.test${n}
I:resolver:failed
I:resolver:check handling of cname + other data / 1 (9)
I:resolver:check handling of cname + other data / 2 (10)
I:resolver:check that server is still running (11)
I:resolver:checking answer IPv4 address filtering (deny) (12)
I:resolver:checking answer IPv6 address filtering (deny) (13)
I:resolver:checking answer IPv4 address filtering (accept) (14)
I:resolver:checking answer IPv4 address filtering using dns_client (accept) (15)
app.c:242: fatal error: RUNTIME_CHECK(((pthread_mutex_lock(((&ctx->lock))) == 0) ? 0 : 34) == 0) failed
tests.sh: line 135: 58357 Abort trap: 6 (core dumped) $RESOLVE $RESOLVOPTS -t a -s 10.53.0.1 www.example.org > resolve.out.ns1.test${n}
I:resolver:failed
I:resolver:checking answer IPv6 address filtering (accept) (16)
I:resolver:checking answer IPv6 address filtering using dns_client (accept) (17)
app.c:242: fatal error: RUNTIME_CHECK(((pthread_mutex_lock(((&ctx->lock))) == 0) ? 0 : 34) == 0) failed
tests.sh: line 153: 58398 Abort trap: 6 (core dumped) $RESOLVE $RESOLVOPTS -t aaaa -s 10.53.0.1 www.example.org > resolve.out.ns1.test${n}
I:resolver:failed
I:resolver:checking CNAME target filtering (deny) (18)
I:resolver:checking CNAME target filtering (accept) (19)
I:resolver:checking CNAME target filtering using dns_client (accept) (20)
app.c:242: fatal error: RUNTIME_CHECK(((pthread_mutex_lock(((&ctx->lock))) == 0) ? 0 : 34) == 0) failed
tests.sh: line 180: 58458 Abort trap: 6 (core dumped) $RESOLVE $RESOLVOPTS -t a -s 10.53.0.1 goodcname.example.net > resolve.out.ns1.test${n}
I:resolver:failed
I:resolver:checking CNAME target filtering (accept due to subdomain) (21)
I:resolver:checking CNAME target filtering using dns_client (accept due to subdomain) (22)
app.c:242: fatal error: RUNTIME_CHECK(((pthread_mutex_lock(((&ctx->lock))) == 0) ? 0 : 34) == 0) failed
tests.sh: line 199: 58500 Abort trap: 6 (core dumped) $RESOLVE $RESOLVOPTS -t a -s 10.53.0.1 cname.sub.example.org > resolve.out.ns1.test${n}
I:resolver:failed
I:resolver:checking DNAME target filtering (deny) (23)
I:resolver:checking DNAME target filtering (accept) (24)
I:resolver:checking DNAME target filtering using dns_client (accept) (25)
app.c:242: fatal error: RUNTIME_CHECK(((pthread_mutex_lock(((&ctx->lock))) == 0) ? 0 : 34) == 0) failed
tests.sh: line 227: 58561 Abort trap: 6 (core dumped) $RESOLVE $RESOLVOPTS -t a -s 10.53.0.1 foo.gooddname.example.net > resolve.out.ns1.test${n}
I:resolver:failed
I:resolver:checking DNAME target filtering (accept due to subdomain) (26)
I:resolver:checking DNAME target filtering using dns_client (accept due to subdomain) (27)
app.c:242: fatal error: RUNTIME_CHECK(((pthread_mutex_lock(((&ctx->lock))) == 0) ? 0 : 34) == 0) failed
tests.sh: line 246: 58604 Abort trap: 6 (core dumped) $RESOLVE $RESOLVOPTS -t a -s 10.53.0.1 www.dname.sub.example.org > resolve.out.ns1.test${n}
I:resolver:failed
I:resolver:check that the resolver accepts a referral response with a non-empty ANSWER section (28)
I:resolver:check that the resolver limits the number of NS records it follows in a referral response (29)
I:resolver:RT21594 regression test check setup (30)
I:resolver:RT21594 regression test positive answers (31)
I:resolver:RT21594 regression test NODATA answers (32)
I:resolver:RT21594 regression test NXDOMAIN answers (33)
I:resolver:check that replacement of additional data by a negative cache no data entry clears the additional RRSIGs (34)
I:resolver:checking that update a nameservers address has immediate effects (35)
I:resolver:checking that update a nameservers glue has immediate effects (36)
I:resolver:checking empty RFC 1918 reverse zones (37)
I:resolver:checking that removal of a delegation is honoured (38)
I:resolver:ns4 zone reload queued
I:resolver:check for improved error message with SOA mismatch (39)
I:resolver:check resolution on the listening port (40)
I:resolver:check prefetch (41)
I:resolver:check prefetch of validated DS's RRSIG TTL is updated (42)
I:resolver:check prefetch disabled (43)
I:resolver:check prefetch qtype * (44)
I:resolver:check that E was logged on EDNS queries in the query log (45)
I:resolver:check that '-t aaaa' in .digrc does not have unexpected side effects (46)
I:resolver:check that EDNS version is logged (47)
I:resolver:check that CNAME nameserver is logged correctly (48)
I:resolver:check that unexpected opcodes are handled correctly (49)
I:resolver:check that EDNS client subnet with non-zeroed bits is handled correctly (50)
I:resolver:check that dig +subnet zeros address bits correctly (51)
I:resolver:check that SOA query returns data for delegation-only apex (52)
I:resolver:check that NS query returns data for delegation-only apex (54)
I:resolver:check that A query returns data for delegation-only A apex (55)
I:resolver:check that CDS query returns data for delegation-only apex (56)
I:resolver:check that AAAA query returns data for delegation-only AAAA apex (57)
I:resolver:check that DNSKEY query returns data for delegation-only apex (58)
I:resolver:check that CDNSKEY query returns data for delegation-only apex (59)
I:resolver:check that NXDOMAIN is returned for delegation-only non-apex A data (60)
I:resolver:check that NXDOMAIN is returned for delegation-only non-apex CDS data (61)
I:resolver:check that NXDOMAIN is returned for delegation-only non-apex AAAA data (62)
I:resolver:check that NXDOMAIN is returned for delegation-only non-apex CDNSKEY data (63)
I:resolver:check zero ttl not returned for learnt non zero ttl records (64)
I:resolver:check zero ttl is returned for learnt zero ttl records (65)
I:resolver:check that 'ad' in not returned in truncated answer with empty answer and authority sections to request with +ad (66)
I:resolver:check that 'ad' in not returned in truncated answer with empty answer and authority sections to request with +dnssec (67)
I:resolver:check that the resolver accepts a reply with empty question section with TC=1 and retries over TCP (68)
I:resolver:check that the resolver rejects a reply with empty question section with TC=0 (69)
I:resolver:checking SERVFAIL is returned when all authoritative servers return FORMERR (70)
I:resolver:check logged command line (71)
I:resolver:checking NXDOMAIN is returned when querying non existing domain in CH class (72)
I:resolver:exit status: 11
I:resolver:stopping servers
R:resolver:FAIL
E:resolver:2021-05-06T09:39:12+1000
FAIL: resolver
Edited by Mark Andrews