ISC Open Source Projects issueshttps://gitlab.isc.org/groups/isc-projects/-/issues2019-08-11T21:57:45Zhttps://gitlab.isc.org/isc-projects/kea/-/issues/769remove bind10 leftovers2019-08-11T21:57:45ZTomek Mrugalskiremove bind10 leftovers@godfryd came up with a clever script that lists files that are in repo, but not in tarball. Here are files to be removed:
- doc/guide/STYLEGUIDE (last edited by Jeremy Reed, **9 YEARS AGO**) (already removed)
- doc/design/datasrc/* (bi...@godfryd came up with a clever script that lists files that are in repo, but not in tarball. Here are files to be removed:
- doc/guide/STYLEGUIDE (last edited by Jeremy Reed, **9 YEARS AGO**) (already removed)
- doc/design/datasrc/* (bind10 data source, talks about shared memory) (already removed)
- src/bin/sockcreator (there's capabilities mechanism in Linux now)
- src/lib/asiolink/doc/* (2 jpegs, explaining auth/recursive DNS operations)
- socket session doc: https://jenkins.isc.org/job/Kea_doc/doxygen/dc/d78/SocketSessionUtility.htmlhttps://gitlab.isc.org/isc-projects/stork/-/issues/8Test BIND exporter2020-03-24T16:58:01ZTomek MrugalskiTest BIND exporterThere is existing BIND exporter: https://github.com/digitalocean/bind_exporter
The goal of this task is to try to set it up and evaluate its usefulness.
Take the following aspects into consideration:
- how tricky it is to expand it to...There is existing BIND exporter: https://github.com/digitalocean/bind_exporter
The goal of this task is to try to set it up and evaluate its usefulness.
Take the following aspects into consideration:
- how tricky it is to expand it to report multiple data points (20 or however many kea reports) for each statistic
- what's the license (can we use it)
- how easy it is extend it in general (is it good source base?)
Keep in mind that the goal for now is to make it functional, but in the future we want it to be performant. If the data handling process is not efficient, make notes and possibly propose improvement (but don't write any code yet).https://gitlab.isc.org/isc-projects/stork/-/issues/4Experiment with Kea exporter2019-10-09T08:23:31ZTomek MrugalskiExperiment with Kea exporterWe found there's existing Kea exporter here: https://github.com/mweinelt/kea-exporter
The goal of this task is to try to set it up and evaluate its usefulness.
Take the following aspects into consideration:
- it was written for kea 1.3...We found there's existing Kea exporter here: https://github.com/mweinelt/kea-exporter
The goal of this task is to try to set it up and evaluate its usefulness.
Take the following aspects into consideration:
- it was written for kea 1.3. Does it work with 1.6? There were very few changes, except @franek12 change that lets kea keep more than one data point for every statistics (it was always 1 for 1.5 and before, it's by default 20 for 1.6-beta1 and later)
- how tricky it is to expand it to report multiple data points (20 or however many kea reports) for each statistic
- what's the license (can we use it)
- how easy it is extend it in general (is it good source base?)
Keep in mind that the goal for now is to make it functional, but in the future we want it to be performant. If the data handling process is not efficient, make notes and possibly propose improvement (but don't write any code yet).Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/691Allow HA/Http events to interrupt InterfaceMgr main-thread select2019-10-25T12:45:33ZThomas MarkwalderAllow HA/Http events to interrupt InterfaceMgr main-thread selectHA lease updates can get backlogged because underlying IOService(s) in HTTP gets starved by the maing-thread select() in InterfaceMgr. This select blocks waiting for DHCP traffic or other registered IO for upto 1 second at time. This m...HA lease updates can get backlogged because underlying IOService(s) in HTTP gets starved by the maing-thread select() in InterfaceMgr. This select blocks waiting for DHCP traffic or other registered IO for upto 1 second at time. This means that during relatively slow or intermittent DHCP traffic, this select() can block for large amounts of time and HA/Http ready handlers pile up.
By registering ExternalSockets with InterfaceMgr for Http connections, and possibly adding WatchSocket(s) to the HA layer to trigger on write events and/or timeouts, we should be able to get much better behavior.Thomas MarkwalderThomas Markwalderhttps://gitlab.isc.org/isc-projects/bind9/-/issues/4652query.c:10467: INSIST(namereln == dns_namereln_subdomain) failed, back trace2024-03-27T14:02:05ZOndřej Surýquery.c:10467: INSIST(namereln == dns_namereln_subdomain) failed, back trace### Summary
Server crash caused by external UDP queries.
### BIND versions affected
```
BIND 9.19.23-dev (Development Release) <id:b1ebd49>
running on Linux x86_64 6.1.0-13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.55-1 (2023-09-29)
bui...### Summary
Server crash caused by external UDP queries.
### BIND versions affected
```
BIND 9.19.23-dev (Development Release) <id:b1ebd49>
running on Linux x86_64 6.1.0-13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.55-1 (2023-09-29)
built by make with 'CC=' 'LD=' 'CFLAGS=-O0 -ggdb -Wno-deprecated-declarations -fno-omit-frame-pointer -fno-optimize-sibling-calls -mtune=alderlake -DISC_MEM_USE_INTERNAL_MALLOC=0 -DISC_MEM_TRACKLINES=1 -DISC_TRACK_PTHREADS_OBJECTS' 'LDFLAGS=' '--enable-developer' '--enable-warn-error' '--with-openssl' '--with-zlib' '--with-libxml2' '--with-json-c' '--with-readline' '--with-libidn2' '--disable-dnstap' '--with-libtool' '--without-make-clean'
compiled by GCC 12.2.0
compiled with OpenSSL version: OpenSSL 3.0.11 19 Sep 2023
linked to OpenSSL version: OpenSSL 3.0.11 19 Sep 2023
compiled with libuv version: 1.44.2
linked to libuv version: 1.44.2
compiled with liburcu version: 0.15.0-pre
compiled with jemalloc version: 5.3.0
compiled with libnghttp2 version: 1.52.0
linked to libnghttp2 version: 1.52.0
compiled with libxml2 version: 2.9.14
linked to libxml2 version: 20914
compiled with json-c version: 0.16
linked to json-c version: 0.16
compiled with zlib version: 1.2.13
linked to zlib version: 1.2.13
linked to maxminddb version: 1.7.1
threads support is enabled
DNSSEC algorithms: RSASHA1 NSEC3RSASHA1 RSASHA256 RSASHA512 ECDSAP256SHA256 ECDSAP384SHA384 ED25519 ED448
DS algorithms: SHA-1 SHA-256 SHA-384
HMAC algorithms: HMAC-MD5 HMAC-SHA1 HMAC-SHA224 HMAC-SHA256 HMAC-SHA384 HMAC-SHA512
TKEY mode 2 support (Diffie-Hellman): no
TKEY mode 3 support (GSS-API): yes
default paths:
named configuration: /dev/null
rndc configuration: /usr/local/etc/rndc.conf
nsupdate session key: /usr/local/var/run/named/session.key
named PID file: /usr/local/var/run/named/named.pid
geoip-directory: /usr/share/GeoIP
```
9.18 is not affected with the same attack pattern.
### Preconditions and assumptions
None.
### Attacker's abilities
Ability to send queries to the server.
### Impact
Server crashes with assertion failure.
### Steps to reproduce
1. Run `bin/named/named -g -c /dev/null -p 12345`
2. Run 2x `dnsperf -d queryfile-example-10million-201202 -p 12345 -s 10.10.10.20 -t 20 -S 1 -e -D -b 16000`
3. Wait
### What is the current *bug* behavior?
Server crashes.
### What is the expected *correct* behavior?
Server doesn't crash.
### Relevant logs
```
21-Mar-2024 14:58:36.219 REFUSED unexpected RCODE resolving 'www.pressrepublicanevents.com/A/IN': 64.40.12.250#53
21-Mar-2024 14:58:36.227 REFUSED unexpected RCODE resolving '3.gvt0.com/A/IN': 2001:4860:4802:32::a#53
21-Mar-2024 14:58:36.259 DNS format error from 89.108.89.143#53 resolving 4kings.ru/MX for 10.10.10.106#36493: empty question section
21-Mar-2024 14:58:36.283 REFUSED unexpected RCODE resolving '3.gvt0.com/A/IN': 2001:4860:4802:34::a#53
21-Mar-2024 14:58:36.311 REFUSED unexpected RCODE resolving 'bioquimicasrl.com/A/IN': 209.244.0.3#53
21-Mar-2024 14:58:36.323 SERVFAIL unexpected RCODE resolving 'www.tom-morrow-land.com/AAAA/IN': 1.1.1.1#53
21-Mar-2024 14:58:36.327 REFUSED unexpected RCODE resolving '3.gvt0.com/A/IN': 216.239.36.10#53
21-Mar-2024 14:58:36.331 REFUSED unexpected RCODE resolving 'www.pressrepublicanevents.com/A/IN': 64.40.12.251#53
21-Mar-2024 14:58:36.331 query client=0x7fa869baf000 thread=0x7fa86cefd680(www.pressrepublicanevents.com/A): query_gotanswer: unexpected error: failure
21-Mar-2024 14:58:36.331 query client=0x7fa83b1a3400 thread=0x7fa85b3fe680(www.pressrepublicanevents.com/A): query_gotanswer: unexpected error: failure
21-Mar-2024 14:58:36.339 success resolving 'www.angrybirdsfree.net/AAAA' after disabling qname minimization due to 'ncache nxdomain'
21-Mar-2024 14:58:36.339 query client=0x7fa83b221400 thread=0x7fa85b3fe680(www.tom-morrow-land.com/AAAA): query_gotanswer: unexpected error: failure
21-Mar-2024 14:58:36.339 query client=0x7fa869a3e400 thread=0x7fa86cefd680(www.tom-morrow-land.com/AAAA): query_gotanswer: unexpected error: failure
21-Mar-2024 14:58:36.359 success resolving 'e1.mc658.mail.yahoo.com/AAAA' after disabling qname minimization due to 'ncache nxdomain'
21-Mar-2024 14:58:36.371 validating ksg07.harvard.edu/MX: no valid signature found
21-Mar-2024 14:58:36.371 REFUSED unexpected RCODE resolving '3.gvt0.com/A/IN': 216.239.38.10#53
21-Mar-2024 14:58:36.379 success resolving 'a-0.19-21098801.c0c0083.1518.19d4.3ea1.210.0.qfptcsf437v6s7kaak2qs267pq.avqs.mcafee.com/A' after disabling qname minimization due to 'ncache nxdomain'
21-Mar-2024 14:58:36.387 REFUSED unexpected RCODE resolving 'www.untwistedvortex.com/A/IN': 128.199.213.165#53
21-Mar-2024 14:58:36.387 query client=0x7fa869b1f000 thread=0x7fa86cefd680(www.untwistedvortex.com/A): query_gotanswer: unexpected error: failure
21-Mar-2024 14:58:36.387 query client=0x7fa83b2d7000 thread=0x7fa85b3fe680(www.untwistedvortex.com/A): query_gotanswer: unexpected error: failure
21-Mar-2024 14:58:36.403 query.c:10467: INSIST(namereln == dns_namereln_subdomain) failed
```https://gitlab.isc.org/isc-projects/bind9/-/issues/4446deprecate --enable-fixed-rrset / rrset-order fixed2024-03-07T19:20:29ZPetr Špačekpspacek@isc.orgdeprecate --enable-fixed-rrset / rrset-order fixed### Discussion
I wonder if we should deprecate `configure --enable-fixed-rrset`? It seems that it might create trouble down the road when we try to improve database/node structure...
We don't have to touch it for QPDB in 9.20, but I th...### Discussion
I wonder if we should deprecate `configure --enable-fixed-rrset`? It seems that it might create trouble down the road when we try to improve database/node structure...
We don't have to touch it for QPDB in 9.20, but I think it will get in our way when we fix #3405.
### Proposal
Deprecate deprecate `configure --enable-fixed-rrset` / `rrset-order fixed` statement in 9.20, remove in 9.21.
### Links / referencesBIND 9.19.xhttps://gitlab.isc.org/isc-projects/bind9/-/issues/4370Check that a zone is served by IPv6 servers if it has AAAA records2023-12-05T09:04:32ZMark AndrewsCheck that a zone is served by IPv6 servers if it has AAAA recordsOne thing that is often forgotten when turning on an IPv6 service is to ensure that the zone holding the AAAA records for that service is also served over IPv6. This can be relatively easy be checked for by named-checkzone by looking fo...One thing that is often forgotten when turning on an IPv6 service is to ensure that the zone holding the AAAA records for that service is also served over IPv6. This can be relatively easy be checked for by named-checkzone by looking for AAAA records in the zone contents, including glue AAAA records, and then checking that there are AAAA records published for some of the nameservers if any are found (in zone or elsewhere). This can also sometimes be determined by named without needing to look beyond the zone's contents, but cannot be guaranteed.Not plannedhttps://gitlab.isc.org/isc-projects/bind9/-/issues/4366XFR (dispatch) doesn't shutdown TCP connection on timeout2023-12-05T15:50:25ZOndřej SurýXFR (dispatch) doesn't shutdown TCP connection on timeoutAfter switching the XFR to use `dns_dispatch`, the TCP connection doesn't get cancelled properly when `dns_dispatch_done()` is called and it waits for the TCP connection to timeout on the server side.After switching the XFR to use `dns_dispatch`, the TCP connection doesn't get cancelled properly when `dns_dispatch_done()` is called and it waits for the TCP connection to timeout on the server side.https://gitlab.isc.org/isc-projects/bind9/-/issues/4348implement QPDB databases2024-03-08T23:38:09ZEvan Huntimplement QPDB databasesCreate QP-trie based databases to take the place of RBTDB, for use as a:
- [ ] zone database
- [ ] cacheCreate QP-trie based databases to take the place of RBTDB, for use as a:
- [ ] zone database
- [ ] cacheBIND 9.21.xEvan HuntEvan Hunthttps://gitlab.isc.org/isc-projects/bind9/-/issues/4341Investigate the memory spike when the cache is cold2023-12-05T15:58:56ZOndřej SurýInvestigate the memory spike when the cache is coldOndřej SurýOndřej Surýhttps://gitlab.isc.org/isc-projects/bind9/-/issues/4330Add support to parse and display DSO (opcode 6) messages2023-11-01T14:43:41ZMark AndrewsAdd support to parse and display DSO (opcode 6) messagesSee [RFC 8490](https://www.rfc-editor.org/rfc/rfc8490.txt). These contain 1 or more TLVs immediately after the DNS messages header.
Add support to dig to be able to send arbitrary DSO messages.See [RFC 8490](https://www.rfc-editor.org/rfc/rfc8490.txt). These contain 1 or more TLVs immediately after the DNS messages header.
Add support to dig to be able to send arbitrary DSO messages.Long-termMark AndrewsMark Andrewshttps://gitlab.isc.org/isc-projects/bind9/-/issues/4315CID 465566-465575: Passing tainted expression "*name.ndata" to "name_prefix"2023-11-02T09:19:55ZMichal NowakCID 465566-465575: Passing tainted expression "*name.ndata" to "name_prefix"Coverity Scan claims several `TAINTED_SCALAR` CIDs on `main` in `lib/dns/rdata/`.
```
** CID 465575: (TAINTED_SCALAR)
________________________________________________________________________________________________________
*** CID ...Coverity Scan claims several `TAINTED_SCALAR` CIDs on `main` in `lib/dns/rdata/`.
```
** CID 465575: (TAINTED_SCALAR)
________________________________________________________________________________________________________
*** CID 465575: (TAINTED_SCALAR)
/lib/dns/rdata/generic/afsdb_18.c: 88 in totext_afsdb()
82 dns_rdata_toregion(rdata, ®ion);
83 num = uint16_fromregion(®ion);
84 isc_region_consume(®ion, 2);
85 snprintf(buf, sizeof(buf), "%u ", num);
86 RETERR(str_totext(buf, target));
87 dns_name_fromregion(&name, ®ion);
>>> CID 465575: (TAINTED_SCALAR)
>>> Passing tainted expression "*name.ndata" to "name_prefix", which uses it as a loop boundary.
88 opts = name_prefix(&name, tctx->origin, &prefix) ? DNS_NAME_OMITFINALDOT
89 : 0;
90 return (dns_name_totext(&prefix, opts, target));
91 }
92
93 static isc_result_t
/lib/dns/rdata/generic/afsdb_18.c: 88 in totext_afsdb()
82 dns_rdata_toregion(rdata, ®ion);
83 num = uint16_fromregion(®ion);
84 isc_region_consume(®ion, 2);
85 snprintf(buf, sizeof(buf), "%u ", num);
86 RETERR(str_totext(buf, target));
87 dns_name_fromregion(&name, ®ion);
>>> CID 465575: (TAINTED_SCALAR)
>>> Passing tainted expression "*name.ndata" to "name_prefix", which uses it as a loop boundary.
88 opts = name_prefix(&name, tctx->origin, &prefix) ? DNS_NAME_OMITFINALDOT
89 : 0;
90 return (dns_name_totext(&prefix, opts, target));
91 }
92
93 static isc_result_t
** CID 465574: (TAINTED_SCALAR)
________________________________________________________________________________________________________
*** CID 465574: (TAINTED_SCALAR)
/lib/dns/rdata/in_1/svcb_64.c: 689 in generic_totext_in_svcb()
683
684 /*
685 * TargetName.
686 */
687 dns_name_fromregion(&name, ®ion);
688 isc_region_consume(®ion, name_length(&name));
>>> CID 465574: (TAINTED_SCALAR)
>>> Passing tainted expression "*name.ndata" to "name_prefix", which uses it as a loop boundary.
689 opts = name_prefix(&name, tctx->origin, &prefix) ? DNS_NAME_OMITFINALDOT
690 : 0;
691 RETERR(dns_name_totext(&prefix, opts, target));
692
693 while (region.length > 0) {
694 isc_region_t r;
/lib/dns/rdata/in_1/svcb_64.c: 689 in generic_totext_in_svcb()
683
684 /*
685 * TargetName.
686 */
687 dns_name_fromregion(&name, ®ion);
688 isc_region_consume(®ion, name_length(&name));
>>> CID 465574: (TAINTED_SCALAR)
>>> Passing tainted expression "*name.ndata" to "name_prefix", which uses it as a loop boundary.
689 opts = name_prefix(&name, tctx->origin, &prefix) ? DNS_NAME_OMITFINALDOT
690 : 0;
691 RETERR(dns_name_totext(&prefix, opts, target));
692
693 while (region.length > 0) {
694 isc_region_t r;
** CID 465573: (TAINTED_SCALAR)
________________________________________________________________________________________________________
*** CID 465573: (TAINTED_SCALAR)
/lib/dns/rdata/in_1/kx_36.c: 77 in totext_in_kx()
71 snprintf(buf, sizeof(buf), "%u", num);
72 RETERR(str_totext(buf, target));
73
74 RETERR(str_totext(" ", target));
75
76 dns_name_fromregion(&name, ®ion);
>>> CID 465573: (TAINTED_SCALAR)
>>> Passing tainted expression "*name.ndata" to "name_prefix", which uses it as a loop boundary.
77 opts = name_prefix(&name, tctx->origin, &prefix) ? DNS_NAME_OMITFINALDOT
78 : 0;
79 return (dns_name_totext(&prefix, opts, target));
80 }
81
82 static isc_result_t
/lib/dns/rdata/in_1/kx_36.c: 77 in totext_in_kx()
71 snprintf(buf, sizeof(buf), "%u", num);
72 RETERR(str_totext(buf, target));
73
74 RETERR(str_totext(" ", target));
75
76 dns_name_fromregion(&name, ®ion);
>>> CID 465573: (TAINTED_SCALAR)
>>> Passing tainted expression "*name.ndata" to "name_prefix", which uses it as a loop boundary.
77 opts = name_prefix(&name, tctx->origin, &prefix) ? DNS_NAME_OMITFINALDOT
78 : 0;
79 return (dns_name_totext(&prefix, opts, target));
80 }
81
82 static isc_result_t
** CID 465572: (TAINTED_SCALAR)
________________________________________________________________________________________________________
*** CID 465572: (TAINTED_SCALAR)
/lib/dns/rdata/generic/mx_15.c: 123 in totext_mx()
117 snprintf(buf, sizeof(buf), "%u", num);
118 RETERR(str_totext(buf, target));
119
120 RETERR(str_totext(" ", target));
121
122 dns_name_fromregion(&name, ®ion);
>>> CID 465572: (TAINTED_SCALAR)
>>> Passing tainted expression "*name.ndata" to "name_prefix", which uses it as a loop boundary.
123 opts = name_prefix(&name, tctx->origin, &prefix) ? DNS_NAME_OMITFINALDOT
124 : 0;
125 return (dns_name_totext(&prefix, opts, target));
126 }
127
128 static isc_result_t
/lib/dns/rdata/generic/mx_15.c: 123 in totext_mx()
117 snprintf(buf, sizeof(buf), "%u", num);
118 RETERR(str_totext(buf, target));
119
120 RETERR(str_totext(" ", target));
121
122 dns_name_fromregion(&name, ®ion);
>>> CID 465572: (TAINTED_SCALAR)
>>> Passing tainted expression "*name.ndata" to "name_prefix", which uses it as a loop boundary.
123 opts = name_prefix(&name, tctx->origin, &prefix) ? DNS_NAME_OMITFINALDOT
124 : 0;
125 return (dns_name_totext(&prefix, opts, target));
126 }
127
128 static isc_result_t
** CID 465571: Insecure data handling (TAINTED_SCALAR)
________________________________________________________________________________________________________
*** CID 465571: Insecure data handling (TAINTED_SCALAR)
/lib/dns/rdata/any_255/tsig_250.c: 525 in tostruct_any_tsig()
519 isc_region_consume(&sr, 2);
520
521 /*
522 * Other.
523 */
524 INSIST(sr.length == tsig->otherlen);
>>> CID 465571: Insecure data handling (TAINTED_SCALAR)
>>> Passing tainted expression "tsig->otherlen" to "mem_maybedup", which uses it as an offset.
525 tsig->other = mem_maybedup(mctx, sr.base, tsig->otherlen);
526
527 tsig->mctx = mctx;
528 return (ISC_R_SUCCESS);
529 }
530
** CID 465570: (TAINTED_SCALAR)
________________________________________________________________________________________________________
*** CID 465570: (TAINTED_SCALAR)
/lib/dns/rdata/generic/lp_107.c: 77 in totext_lp()
71 snprintf(buf, sizeof(buf), "%u", num);
72 RETERR(str_totext(buf, target));
73
74 RETERR(str_totext(" ", target));
75
76 dns_name_fromregion(&name, ®ion);
>>> CID 465570: (TAINTED_SCALAR)
>>> Passing tainted expression "*name.ndata" to "name_prefix", which uses it as a loop boundary.
77 opts = name_prefix(&name, tctx->origin, &prefix) ? DNS_NAME_OMITFINALDOT
78 : 0;
79 return (dns_name_totext(&prefix, opts, target));
80 }
81
82 static isc_result_t
/lib/dns/rdata/generic/lp_107.c: 77 in totext_lp()
71 snprintf(buf, sizeof(buf), "%u", num);
72 RETERR(str_totext(buf, target));
73
74 RETERR(str_totext(" ", target));
75
76 dns_name_fromregion(&name, ®ion);
>>> CID 465570: (TAINTED_SCALAR)
>>> Passing tainted expression "*name.ndata" to "name_prefix", which uses it as a loop boundary.
77 opts = name_prefix(&name, tctx->origin, &prefix) ? DNS_NAME_OMITFINALDOT
78 : 0;
79 return (dns_name_totext(&prefix, opts, target));
80 }
81
82 static isc_result_t
** CID 465569: (TAINTED_SCALAR)
________________________________________________________________________________________________________
*** CID 465569: (TAINTED_SCALAR)
/lib/dns/rdata/in_1/px_26.c: 98 in totext_in_px()
92 RETERR(str_totext(" ", target));
93
94 /*
95 * MAP822.
96 */
97 dns_name_fromregion(&name, ®ion);
>>> CID 465569: (TAINTED_SCALAR)
>>> Passing tainted expression "*name.ndata" to "name_prefix", which uses it as a loop boundary.
98 opts = name_prefix(&name, tctx->origin, &prefix) ? DNS_NAME_OMITFINALDOT
99 : 0;
100 isc_region_consume(®ion, name_length(&name));
101 RETERR(dns_name_totext(&prefix, opts, target));
102 RETERR(str_totext(" ", target));
103
/lib/dns/rdata/in_1/px_26.c: 98 in totext_in_px()
92 RETERR(str_totext(" ", target));
93
94 /*
95 * MAP822.
96 */
97 dns_name_fromregion(&name, ®ion);
>>> CID 465569: (TAINTED_SCALAR)
>>> Passing tainted expression "*name.ndata" to "name_prefix", which uses it as a loop boundary.
98 opts = name_prefix(&name, tctx->origin, &prefix) ? DNS_NAME_OMITFINALDOT
99 : 0;
100 isc_region_consume(®ion, name_length(&name));
101 RETERR(dns_name_totext(&prefix, opts, target));
102 RETERR(str_totext(" ", target));
103
** CID 465568: (TAINTED_SCALAR)
________________________________________________________________________________________________________
*** CID 465568: (TAINTED_SCALAR)
/lib/dns/rdata/generic/rt_21.c: 85 in totext_rt()
79 num = uint16_fromregion(®ion);
80 isc_region_consume(®ion, 2);
81 snprintf(buf, sizeof(buf), "%u", num);
82 RETERR(str_totext(buf, target));
83 RETERR(str_totext(" ", target));
84 dns_name_fromregion(&name, ®ion);
>>> CID 465568: (TAINTED_SCALAR)
>>> Passing tainted expression "*name.ndata" to "name_prefix", which uses it as a loop boundary.
85 opts = name_prefix(&name, tctx->origin, &prefix) ? DNS_NAME_OMITFINALDOT
86 : 0;
87 return (dns_name_totext(&prefix, opts, target));
88 }
89
90 static isc_result_t
/lib/dns/rdata/generic/rt_21.c: 85 in totext_rt()
79 num = uint16_fromregion(®ion);
80 isc_region_consume(®ion, 2);
81 snprintf(buf, sizeof(buf), "%u", num);
82 RETERR(str_totext(buf, target));
83 RETERR(str_totext(" ", target));
84 dns_name_fromregion(&name, ®ion);
>>> CID 465568: (TAINTED_SCALAR)
>>> Passing tainted expression "*name.ndata" to "name_prefix", which uses it as a loop boundary.
85 opts = name_prefix(&name, tctx->origin, &prefix) ? DNS_NAME_OMITFINALDOT
86 : 0;
87 return (dns_name_totext(&prefix, opts, target));
88 }
89
90 static isc_result_t
** CID 465567: (TAINTED_SCALAR)
________________________________________________________________________________________________________
*** CID 465567: (TAINTED_SCALAR)
/lib/dns/rdata/in_1/srv_33.c: 137 in totext_in_srv()
131 RETERR(str_totext(" ", target));
132
133 /*
134 * Target.
135 */
136 dns_name_fromregion(&name, ®ion);
>>> CID 465567: (TAINTED_SCALAR)
>>> Passing tainted expression "*name.ndata" to "name_prefix", which uses it as a loop boundary.
137 opts = name_prefix(&name, tctx->origin, &prefix) ? DNS_NAME_OMITFINALDOT
138 : 0;
139 return (dns_name_totext(&prefix, opts, target));
140 }
141
142 static isc_result_t
/lib/dns/rdata/in_1/srv_33.c: 137 in totext_in_srv()
131 RETERR(str_totext(" ", target));
132
133 /*
134 * Target.
135 */
136 dns_name_fromregion(&name, ®ion);
>>> CID 465567: (TAINTED_SCALAR)
>>> Passing tainted expression "*name.ndata" to "name_prefix", which uses it as a loop boundary.
137 opts = name_prefix(&name, tctx->origin, &prefix) ? DNS_NAME_OMITFINALDOT
138 : 0;
139 return (dns_name_totext(&prefix, opts, target));
140 }
141
142 static isc_result_t
** CID 465566: (TAINTED_SCALAR)
________________________________________________________________________________________________________
*** CID 465566: (TAINTED_SCALAR)
/lib/dns/rdata/generic/naptr_35.c: 299 in totext_naptr()
293 RETERR(str_totext(" ", target));
294
295 /*
296 * Replacement.
297 */
298 dns_name_fromregion(&name, ®ion);
>>> CID 465566: (TAINTED_SCALAR)
>>> Passing tainted expression "*name.ndata" to "name_prefix", which uses it as a loop boundary.
299 opts = name_prefix(&name, tctx->origin, &prefix) ? DNS_NAME_OMITFINALDOT
300 : 0;
301 return (dns_name_totext(&prefix, opts, target));
302 }
303
304 static isc_result_t
/lib/dns/rdata/generic/naptr_35.c: 299 in totext_naptr()
293 RETERR(str_totext(" ", target));
294
295 /*
296 * Replacement.
297 */
298 dns_name_fromregion(&name, ®ion);
>>> CID 465566: (TAINTED_SCALAR)
>>> Passing tainted expression "*name.ndata" to "name_prefix", which uses it as a loop boundary.
299 opts = name_prefix(&name, tctx->origin, &prefix) ? DNS_NAME_OMITFINALDOT
300 : 0;
301 return (dns_name_totext(&prefix, opts, target));
302 }
303
304 static isc_result_t
```Not plannedhttps://gitlab.isc.org/isc-projects/bind9/-/issues/4272stress:rpz:fedora:38:arm64 crashed (async_restart at query.c:5843)2023-10-03T15:24:25ZMichal Nowakstress:rpz:fedora:38:arm64 crashed (async_restart at query.c:5843)After one minute runtime, the `stress:rpz:fedora:38:arm64` [crashed](https://gitlab.isc.org/isc-projects/bind9/-/jobs/3599502) on `main`.
```
Core was generated by `/builds/isc-projects/bind9/.local/usr/local/sbin/named -f -c ./named.co...After one minute runtime, the `stress:rpz:fedora:38:arm64` [crashed](https://gitlab.isc.org/isc-projects/bind9/-/jobs/3599502) on `main`.
```
Core was generated by `/builds/isc-projects/bind9/.local/usr/local/sbin/named -f -c ./named.conf'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x0000ffff9949e5e0 in async_restart (arg=0xffff15302000) at query.c:5843
5843 isc_mem_put(client->manager->mctx, qctx, sizeof(*qctx));
[Current thread is 1 (Thread 0xffff96cfe300 (LWP 24042))]
#0 0x0000ffff9949e5e0 in async_restart (arg=0xffff15302000) at query.c:5843
#1 0x0000ffff99755b10 in isc__async_cb (handle=<optimized out>) at async.c:111
#2 0x0000ffff98cda0c0 in uv__async_io (loop=0xffff974830a0, w=0xffff97483270, events=1) at /usr/src/libuv-v1.46.0/src/unix/async.c:176
#3 0x0000ffff98cf6d0c in uv__io_poll (loop=0xffff974830a0, timeout=5) at /usr/src/libuv-v1.46.0/src/unix/linux.c:1476
#4 0x0000ffff98cdb084 in uv_run (loop=0xffff974830a0, mode=UV_RUN_DEFAULT) at /usr/src/libuv-v1.46.0/src/unix/core.c:447
#5 0x0000ffff99768800 in loop_thread (arg=arg@entry=0xffff97483080) at loop.c:282
#6 0x0000ffff997787c8 in thread_body (wrap=wrap@entry=0x3e733a90) at thread.c:85
#7 0x0000ffff997787f8 in thread_run (wrap=0x3e733a90) at thread.c:100
#8 0x0000ffff9861bc74 in start_thread () from /lib64/libc.so.6
#9 0x0000ffff9868925c in thread_start () from /lib64/libc.so.6
```
[core.24039-backtrace.txt](/uploads/61b63bae17f042b4dc2d1153cc9948dc/core.24039-backtrace.txt)
[named.log](/uploads/10dd091e5632bfcc7457c0f367874b4b/named.log)
On [retry](https://gitlab.isc.org/isc-projects/bind9/-/jobs/3600371) it didn't immediately crash.Not plannedhttps://gitlab.isc.org/isc-projects/bind9/-/issues/4218Extract the no DS proof, if any, from the referral and save/validate it.2023-07-25T06:56:43ZMark AndrewsExtract the no DS proof, if any, from the referral and save/validate it.Insecure referrals contain a no DS proof. We are currently not using it and instead are make DS queries and validating those. Extracting the no DS proof should resolution for data in insecure zones.Insecure referrals contain a no DS proof. We are currently not using it and instead are make DS queries and validating those. Extracting the no DS proof should resolution for data in insecure zones.Not plannedhttps://gitlab.isc.org/isc-projects/bind9/-/issues/4216Report missing DNSSEC algorithms in returned RRSIGs2023-11-02T16:30:30ZMark AndrewsReport missing DNSSEC algorithms in returned RRSIGsWhile we only require one DNSSEC algorithm to validate a response reporting missing algorithms listed in the DS RRset will be useful for the overall health of the system.While we only require one DNSSEC algorithm to validate a response reporting missing algorithms listed in the DS RRset will be useful for the overall health of the system.Not plannedhttps://gitlab.isc.org/isc-projects/bind9/-/issues/4130SSL version reporting is inconsistent2023-06-06T17:12:40ZMichal NowakSSL version reporting is inconsistentWith isc-projects/bind9!7998, the `./configure` script now prints the SSL version but is inconsistent with `named -V` on BSD platforms.
[**OpenBSD**](https://gitlab.isc.org/isc-projects/bind9/-/jobs/3444056/raw)
```
Library versions:
...With isc-projects/bind9!7998, the `./configure` script now prints the SSL version but is inconsistent with `named -V` on BSD platforms.
[**OpenBSD**](https://gitlab.isc.org/isc-projects/bind9/-/jobs/3444056/raw)
```
Library versions:
OpenSSL: 2.0.0
```
```
compiled with OpenSSL version: LibreSSL 3.7.2
linked to OpenSSL version: LibreSSL 3.7.2
```
[**FreeBSD 12**](https://gitlab.isc.org/isc-projects/bind9/-/jobs/3444054/raw)
```
Library versions:
OpenSSL:
```
```
compiled with OpenSSL version: OpenSSL 1.1.1q-freebsd 5 Jul 2022
linked to OpenSSL version: OpenSSL 1.1.1q-freebsd 5 Jul 2022
```
[**FreeBSD 13**](https://gitlab.isc.org/isc-projects/bind9/-/jobs/3444055/raw)
```
Library versions:
OpenSSL: 1.1.1t
```
```
compiled with OpenSSL version: OpenSSL 1.1.1t-freebsd 7 Feb 2023
linked to OpenSSL version: OpenSSL 1.1.1t-freebsd 7 Feb 2023
```Not plannedhttps://gitlab.isc.org/isc-projects/bind9/-/issues/4102Use liburcu QSBR flavor2023-07-26T09:59:54ZOndřej SurýUse liburcu QSBR flavorThe QSBR flavor is faster, but also requires rcu_quiescent_state() to be called periodically from every RCU thread.The QSBR flavor is faster, but also requires rcu_quiescent_state() to be called periodically from every RCU thread.Not plannedOndřej SurýOndřej Surýhttps://gitlab.isc.org/isc-projects/bind9/-/issues/4100REQUIRE(((multi) != ((void *)0) && ((const isc__magic_t *)(multi))->magic == ...2023-05-30T08:09:36ZMichal NowakREQUIRE(((multi) != ((void *)0) && ((const isc__magic_t *)(multi))->magic == ((('q') << 24 | ('p') << 16 | ('m') << 8 | ('v'))))) in qp.cJob [#3424074](https://gitlab.isc.org/isc-projects/bind9/-/jobs/3424074) failed for 2e8ceeea14e336980c9da80449b84ecd16afc7e5.
The `qpmulti_test` unit test failed.
```
[==========] Running 1 test(s).
[ RUN ] qpmulti
qp.c:634: REQUI...Job [#3424074](https://gitlab.isc.org/isc-projects/bind9/-/jobs/3424074) failed for 2e8ceeea14e336980c9da80449b84ecd16afc7e5.
The `qpmulti_test` unit test failed.
```
[==========] Running 1 test(s).
[ RUN ] qpmulti
qp.c:634: REQUIRE(((multi) != ((void *)0) && ((const isc__magic_t *)(multi))->magic == ((('q') << 24 | ('p') << 16 | ('m') << 8 | ('v'))))) failed, back trace
/builds/isc-projects/bind9/lib/isc/.libs/libisc-9.19.14-dev.so(+0x2ddb2)[0x7f231ea2ddb2]
/builds/isc-projects/bind9/lib/isc/.libs/libisc-9.19.14-dev.so(isc_assertion_failed+0xa)[0x7f231ea2dd2d]
/builds/isc-projects/bind9/lib/dns/.libs/libdns-9.19.14-dev.so(+0xb9fe3)[0x7f231e0b9fe3]
/lib64/liburcu.so.6(+0x37a9)[0x7f231d64e7a9]
/lib64/libpthread.so.0(+0x81da)[0x7f231dbdd1da]
/lib64/libc.so.6(clone+0x43)[0x7f231ceafe73]
../../tests/unit-test-driver.sh: line 36: 13597 Aborted (core dumped) "${TEST_PROGRAM}"
FAIL qpmulti_test (exit status: 134)
```
There's no core file or full backtrace in the logs.https://gitlab.isc.org/isc-projects/bind9/-/issues/4075Data race lib/dns/qp.c in dns_qpmulti_commit2023-11-01T11:29:59ZMichal NowakData race lib/dns/qp.c in dns_qpmulti_commitJob [#3393759](https://gitlab.isc.org/isc-projects/bind9/-/jobs/3393759) failed for 35094195cfa4d0e24ae0c9f9834814441fec9f97:
```
WARNING: ThreadSanitizer: data race
Write of size 8 at 0x000000000001 by main thread (mutexes: write M1)...Job [#3393759](https://gitlab.isc.org/isc-projects/bind9/-/jobs/3393759) failed for 35094195cfa4d0e24ae0c9f9834814441fec9f97:
```
WARNING: ThreadSanitizer: data race
Write of size 8 at 0x000000000001 by main thread (mutexes: write M1):
#0 dns_qpmulti_commit lib/dns/qp.c:1172:2 (BuildId: 082634ba54e2c48b299bb1acd04e5ce6303e9808)
#1 dns_zt_mount lib/dns/zt.c:146:2 (BuildId: 082634ba54e2c48b299bb1acd04e5ce6303e9808)
#2 dns_view_addzone lib/dns/view.c:769:11 (BuildId: 082634ba54e2c48b299bb1acd04e5ce6303e9808)
#3 configure_zone bin/named/server.c:6832:3 (BuildId: 5fea3abc3538900c17a2b1b7ac40c22484083db8)
#4 catz_addmodzone_cb bin/named/server.c:2821:11 (BuildId: 5fea3abc3538900c17a2b1b7ac40c22484083db8)
#5 isc__async_cb lib/isc/async.c:112:3 (BuildId: 0061f9b047bdfaf5adff2ded360e7c7f64f4f361)
#6 uv__async_io /usr/src/libuv-v1.44.1/src/unix/async.c:163:5 (BuildId: 120c450d14885aa5308bc95c4ea77de2c2b1cc36)
#7 thread_body lib/isc/thread.c:87:8 (BuildId: 0061f9b047bdfaf5adff2ded360e7c7f64f4f361)
#8 isc_thread_main lib/isc/thread.c:118:2
#9 isc_loopmgr_run lib/isc/loop.c:452:2 (BuildId: 0061f9b047bdfaf5adff2ded360e7c7f64f4f361)
#10 main bin/named/main.c:1532:2 (BuildId: 5fea3abc3538900c17a2b1b7ac40c22484083db8)
Previous read of size 8 at 0x000000000001 by thread T1 (mutexes: write M2):
#0 reader_open lib/dns/qp.c:1251:22 (BuildId: 082634ba54e2c48b299bb1acd04e5ce6303e9808)
#1 dns_qpmulti_query lib/dns/qp.c:1269:26 (BuildId: 082634ba54e2c48b299bb1acd04e5ce6303e9808)
#2 dns_zt_find lib/dns/zt.c:179:2 (BuildId: 082634ba54e2c48b299bb1acd04e5ce6303e9808)
#3 dns_view_findzone lib/dns/view.c:779:10 (BuildId: 082634ba54e2c48b299bb1acd04e5ce6303e9808)
#4 dns__catz_zones_merge lib/dns/catz.c:562:17 (BuildId: 082634ba54e2c48b299bb1acd04e5ce6303e9808)
#5 dns__catz_update_cb lib/dns/catz.c:2474:11 (BuildId: 082634ba54e2c48b299bb1acd04e5ce6303e9808)
#6 isc__work_cb lib/isc/work.c:30:2 (BuildId: 0061f9b047bdfaf5adff2ded360e7c7f64f4f361)
#7 uv__queue_work /usr/src/libuv-v1.44.1/src/threadpool.c:326:3 (BuildId: 120c450d14885aa5308bc95c4ea77de2c2b1cc36)
Location is heap block of size 168 at 0x000000000020 allocated by main thread:
#0 malloc <null> (BuildId: 5fea3abc3538900c17a2b1b7ac40c22484083db8)
#1 mallocx lib/isc/./jemalloc_shim.h:65:14 (BuildId: 0061f9b047bdfaf5adff2ded360e7c7f64f4f361)
#2 mem_get lib/isc/mem.c:305:8
#3 isc__mem_get lib/isc/mem.c:674:8 (BuildId: 0061f9b047bdfaf5adff2ded360e7c7f64f4f361)
#4 dns_qpmulti_create lib/dns/qp.c:1375:25 (BuildId: 082634ba54e2c48b299bb1acd04e5ce6303e9808)
#5 dns_zt_create lib/dns/zt.c:104:2 (BuildId: 082634ba54e2c48b299bb1acd04e5ce6303e9808)
#6 dns_view_create lib/dns/view.c:137:2 (BuildId: 082634ba54e2c48b299bb1acd04e5ce6303e9808)
#7 create_view bin/named/server.c:6440:11 (BuildId: 5fea3abc3538900c17a2b1b7ac40c22484083db8)
#8 load_configuration bin/named/server.c:9118:12 (BuildId: 5fea3abc3538900c17a2b1b7ac40c22484083db8)
#9 loadconfig bin/named/server.c:10305:11 (BuildId: 5fea3abc3538900c17a2b1b7ac40c22484083db8)
#10 named_server_reconfigcommand bin/named/server.c:10711:2
#11 named_control_docommand bin/named/control.c:244:12 (BuildId: 5fea3abc3538900c17a2b1b7ac40c22484083db8)
#12 control_command bin/named/controlconf.c:401:18 (BuildId: 5fea3abc3538900c17a2b1b7ac40c22484083db8)
#13 isc__async_cb lib/isc/async.c:112:3 (BuildId: 0061f9b047bdfaf5adff2ded360e7c7f64f4f361)
#14 uv__async_io /usr/src/libuv-v1.44.1/src/unix/async.c:163:5 (BuildId: 120c450d14885aa5308bc95c4ea77de2c2b1cc36)
#15 thread_body lib/isc/thread.c:87:8 (BuildId: 0061f9b047bdfaf5adff2ded360e7c7f64f4f361)
#16 isc_thread_main lib/isc/thread.c:118:2
#17 isc_loopmgr_run lib/isc/loop.c:452:2 (BuildId: 0061f9b047bdfaf5adff2ded360e7c7f64f4f361)
#18 main bin/named/main.c:1532:2 (BuildId: 5fea3abc3538900c17a2b1b7ac40c22484083db8)
Mutex M2 (0x000000000032) created at:
#0 pthread_mutex_init <null> (BuildId: 5fea3abc3538900c17a2b1b7ac40c22484083db8)
#1 dns_qpmulti_create lib/dns/qp.c:1380:2 (BuildId: 082634ba54e2c48b299bb1acd04e5ce6303e9808)
#2 dns_zt_create lib/dns/zt.c:104:2 (BuildId: 082634ba54e2c48b299bb1acd04e5ce6303e9808)
#3 dns_view_create lib/dns/view.c:137:2 (BuildId: 082634ba54e2c48b299bb1acd04e5ce6303e9808)
#4 create_view bin/named/server.c:6440:11 (BuildId: 5fea3abc3538900c17a2b1b7ac40c22484083db8)
#5 load_configuration bin/named/server.c:9118:12 (BuildId: 5fea3abc3538900c17a2b1b7ac40c22484083db8)
#6 loadconfig bin/named/server.c:10305:11 (BuildId: 5fea3abc3538900c17a2b1b7ac40c22484083db8)
#7 named_server_reconfigcommand bin/named/server.c:10711:2
#8 named_control_docommand bin/named/control.c:244:12 (BuildId: 5fea3abc3538900c17a2b1b7ac40c22484083db8)
#9 control_command bin/named/controlconf.c:401:18 (BuildId: 5fea3abc3538900c17a2b1b7ac40c22484083db8)
#10 isc__async_cb lib/isc/async.c:112:3 (BuildId: 0061f9b047bdfaf5adff2ded360e7c7f64f4f361)
#11 uv__async_io /usr/src/libuv-v1.44.1/src/unix/async.c:163:5 (BuildId: 120c450d14885aa5308bc95c4ea77de2c2b1cc36)
#12 thread_body lib/isc/thread.c:87:8 (BuildId: 0061f9b047bdfaf5adff2ded360e7c7f64f4f361)
#13 isc_thread_main lib/isc/thread.c:118:2
#14 isc_loopmgr_run lib/isc/loop.c:452:2 (BuildId: 0061f9b047bdfaf5adff2ded360e7c7f64f4f361)
#15 main bin/named/main.c:1532:2 (BuildId: 5fea3abc3538900c17a2b1b7ac40c22484083db8)
Mutex M2 (0x000000000035) created at:
#0 pthread_mutex_init <null> (BuildId: 5fea3abc3538900c17a2b1b7ac40c22484083db8)
#1 dns_catz_new_zone lib/dns/catz.c:818:2 (BuildId: 082634ba54e2c48b299bb1acd04e5ce6303e9808)
#2 dns_catz_add_zone lib/dns/catz.c:895:11 (BuildId: 082634ba54e2c48b299bb1acd04e5ce6303e9808)
#3 configure_catz_zone bin/named/server.c:3034:11 (BuildId: 5fea3abc3538900c17a2b1b7ac40c22484083db8)
#4 configure_catz bin/named/server.c:3178:3
#5 configure_view bin/named/server.c:4160:3 (BuildId: 5fea3abc3538900c17a2b1b7ac40c22484083db8)
#6 load_configuration bin/named/server.c:9172:12 (BuildId: 5fea3abc3538900c17a2b1b7ac40c22484083db8)
#7 run_server bin/named/server.c:9982:2 (BuildId: 5fea3abc3538900c17a2b1b7ac40c22484083db8)
#8 isc__async_cb lib/isc/async.c:112:3 (BuildId: 0061f9b047bdfaf5adff2ded360e7c7f64f4f361)
#9 uv__async_io /usr/src/libuv-v1.44.1/src/unix/async.c:163:5 (BuildId: 120c450d14885aa5308bc95c4ea77de2c2b1cc36)
#10 thread_body lib/isc/thread.c:87:8 (BuildId: 0061f9b047bdfaf5adff2ded360e7c7f64f4f361)
#11 isc_thread_main lib/isc/thread.c:118:2
#12 isc_loopmgr_run lib/isc/loop.c:452:2 (BuildId: 0061f9b047bdfaf5adff2ded360e7c7f64f4f361)
#13 main bin/named/main.c:1532:2 (BuildId: 5fea3abc3538900c17a2b1b7ac40c22484083db8)
Thread T1 (running) created by thread T2 at:
#0 pthread_create <null> (BuildId: 5fea3abc3538900c17a2b1b7ac40c22484083db8)
#1 uv_thread_create_ex /usr/src/libuv-v1.44.1/src/unix/thread.c:279:9 (BuildId: 120c450d14885aa5308bc95c4ea77de2c2b1cc36)
#2 uv_once /usr/src/libuv-v1.44.1/src/unix/thread.c:440:7 (BuildId: 120c450d14885aa5308bc95c4ea77de2c2b1cc36)
#3 dns__catz_timer_cb lib/dns/catz.c:2117:2 (BuildId: 082634ba54e2c48b299bb1acd04e5ce6303e9808)
#4 timer_cb lib/isc/timer.c:111:2 (BuildId: 0061f9b047bdfaf5adff2ded360e7c7f64f4f361)
#5 uv__run_timers /usr/src/libuv-v1.44.1/src/timer.c:178:5 (BuildId: 120c450d14885aa5308bc95c4ea77de2c2b1cc36)
#6 thread_body lib/isc/thread.c:87:8 (BuildId: 0061f9b047bdfaf5adff2ded360e7c7f64f4f361)
#7 thread_run lib/isc/thread.c:102:14
SUMMARY: ThreadSanitizer: data race lib/dns/qp.c:1172:2 in dns_qpmulti_commit
```
It might be another instance of isc-projects/bind9#4073, but since it happened during the `catz` system test, perhaps also interesting to @aram.Not plannedTony FinchTony Finchhttps://gitlab.isc.org/isc-projects/bind9/-/issues/4051udp_recv_send unit test hangs intermittently, causing udp_test to fail2023-05-10T08:39:47ZMichał Kępieńudp_recv_send unit test hangs intermittently, causing udp_test to failhttps://gitlab.isc.org/isc-private/bind9/-/jobs/3366257
```
[==========] Running 18 test(s).
[ RUN ] mock_listenudp_uv_udp_open
[ OK ] mock_listenudp_uv_udp_open
[ RUN ] mock_listenudp_uv_udp_bind
[ OK ] mock_liste...https://gitlab.isc.org/isc-private/bind9/-/jobs/3366257
```
[==========] Running 18 test(s).
[ RUN ] mock_listenudp_uv_udp_open
[ OK ] mock_listenudp_uv_udp_open
[ RUN ] mock_listenudp_uv_udp_bind
[ OK ] mock_listenudp_uv_udp_bind
[ RUN ] mock_listenudp_uv_udp_recv_start
[ OK ] mock_listenudp_uv_udp_recv_start
[ RUN ] mock_udpconnect_uv_udp_open
[ OK ] mock_udpconnect_uv_udp_open
[ RUN ] mock_udpconnect_uv_udp_bind
[ OK ] mock_udpconnect_uv_udp_bind
[ RUN ] mock_udpconnect_uv_udp_connect
[ OK ] mock_udpconnect_uv_udp_connect
[ RUN ] mock_udpconnect_uv_recv_buffer_size
[ OK ] mock_udpconnect_uv_recv_buffer_size
[ RUN ] mock_udpconnect_uv_send_buffer_size
[ OK ] mock_udpconnect_uv_send_buffer_size
[ RUN ] udp_noop
[ OK ] udp_noop
[ RUN ] udp_noresponse
[ OK ] udp_noresponse
[ RUN ] udp_shutdown_connect
[ OK ] udp_shutdown_connect
[ RUN ] udp_shutdown_read
[ OK ] udp_shutdown_read
[ RUN ] udp_cancel_read
[ OK ] udp_cancel_read
[ RUN ] udp_timeout_recovery
[ OK ] udp_timeout_recovery
[ RUN ] udp_double_read
[ OK ] udp_double_read
[ RUN ] udp_recv_one
[ OK ] udp_recv_one
[ RUN ] udp_recv_two
[ OK ] udp_recv_two
[ RUN ] udp_recv_send
PID 7802 exceeded run time limit, sending SIGABRT
```
Not sure what happened here. Threads seem to be idle. Artifacts were
preserved, including a core dump of the hung test process.
So far I have only seen this on `main`.Not planned