]> git.ipfire.org Git - thirdparty/bind9.git/log
thirdparty/bind9.git
2 years agoMerge branch '4396-dig-does-not-display-yaml-output-for-errors-when-using-protocols...
Mark Andrews [Mon, 20 Nov 2023 02:35:57 +0000 (02:35 +0000)] 
Merge branch '4396-dig-does-not-display-yaml-output-for-errors-when-using-protocols-other-than-udp' into 'main'

Resolve "dig does not display YAML output for errors when using protocols other than UDP"

Closes #4396

See merge request isc-projects/bind9!8442

2 years agoAdd CHANGES for [GL #4396]
Mark Andrews [Wed, 15 Nov 2023 04:46:51 +0000 (15:46 +1100)] 
Add CHANGES for [GL #4396]

2 years agoEmit "no servers could be reached" for TCP as well as UDP
Mark Andrews [Sat, 28 Oct 2023 04:40:22 +0000 (15:40 +1100)] 
Emit "no servers could be reached" for TCP as well as UDP

When all the servers are exhausted for TCP emit "no servers could
be reached" in tcp_connected.  This message is already emitted for
UDP.

2 years agoMerge branch '4414-shutdown-crash-in-control_recvmessage' into 'main'
Ondřej Surý [Thu, 16 Nov 2023 16:26:24 +0000 (16:26 +0000)] 
Merge branch '4414-shutdown-crash-in-control_recvmessage' into 'main'

Make sure we shutdown the controlconf listeners and connections once

Closes #4414

See merge request isc-projects/bind9!8470

2 years agoMake sure we shutdown the controlconf listeners and connections once
Ondřej Surý [Mon, 6 Nov 2023 19:19:20 +0000 (20:19 +0100)] 
Make sure we shutdown the controlconf listeners and connections once

It was possible that controlconf connections could be shutdown twice
when shutting down the server, because they would receive the
signal (ISC_R_SHUTTINGDOWN result) from netmgr and then the shutdown
procedure would be called second time via controls_shutdown().

Split the shutdown procedure from control_recvmessage(), so we can call
it independently from netmgr callbacks and make sure it will be called
only once.  Do the similar thing for the listeners.

2 years agoMerge branch 'michal/update-release-and-cve-checklists' into 'main'
Michał Kępień [Thu, 16 Nov 2023 10:47:08 +0000 (10:47 +0000)] 
Merge branch 'michal/update-release-and-cve-checklists' into 'main'

Update release and CVE checklists

See merge request isc-projects/bind9!8500

2 years agoRemove steps related to the post-mortem meeting
Michał Kępień [Thu, 16 Nov 2023 10:39:51 +0000 (11:39 +0100)] 
Remove steps related to the post-mortem meeting

The post-mortem meeting is now considered an on-demand event.  The past
few security release cycles proved that there is rarely a need to
discuss things in this form, so there is little point in carrying out
the relevant steps for every single vulnerability - which does not
prevent us from doing so if the actual need arises.

2 years agoRevise responsibilities in the CVE checklist
Vicky Risk [Tue, 26 Sep 2023 21:46:40 +0000 (21:46 +0000)] 
Revise responsibilities in the CVE checklist

Update the CVE checklist to reflect agreed-upon changes between Support
and Marketing responsibilities.

2 years agoRebase -S branches after version bumps
Michał Kępień [Thu, 16 Nov 2023 10:39:51 +0000 (11:39 +0100)] 
Rebase -S branches after version bumps

Applying version bumps in open source branches breaks automatic rebasing
of the bind-9.x-sub branches.  Ensure the latter are manually rebased
after each version bump to prevent the "rebase" job in GitLab CI from
failing.

2 years agoReassign release (pre-)publishing to QA
Michał Kępień [Thu, 16 Nov 2023 10:39:51 +0000 (11:39 +0100)] 
Reassign release (pre-)publishing to QA

2 years agoPrepare the patches/ subdirectory earlier
Michał Kępień [Thu, 16 Nov 2023 10:39:51 +0000 (11:39 +0100)] 
Prepare the patches/ subdirectory earlier

The patches/ subdirectory needs to be present in each prerelease
directory before the ASN releases get pre-published or else the latter
will not contain standalone patches.

2 years agoRevise responsibilities in the release checklist
Vicky Risk [Tue, 26 Sep 2023 21:30:04 +0000 (21:30 +0000)] 
Revise responsibilities in the release checklist

Update the release checklist to reflect agreed-upon changes between
Support and Marketing responsibilities.

2 years agoMerge branch '3983-secondary-loadtime' into 'main'
Evan Hunt [Thu, 16 Nov 2023 02:02:15 +0000 (02:02 +0000)] 
Merge branch '3983-secondary-loadtime' into 'main'

set loadtime during initial transfer of a secondary zone

Closes #3983

See merge request isc-projects/bind9!8485

2 years agoset loadtime during initial transfer of a secondary zone
Evan Hunt [Sat, 11 Nov 2023 21:15:27 +0000 (13:15 -0800)] 
set loadtime during initial transfer of a secondary zone

when transferring in a non-inline-signing secondary for the first time,
we previously never set the value of zone->loadtime, so it remained
zero. this caused a test failure in the statschannel system test,
and that test case was temporarily disabled.  the value is now set
correctly and the test case has been reinstated.

2 years agoMerge branch '4433-supplied-buffer-too-large-in-wire_test-c' into 'main'
Mark Andrews [Thu, 16 Nov 2023 01:19:33 +0000 (01:19 +0000)] 
Merge branch '4433-supplied-buffer-too-large-in-wire_test-c' into 'main'

Resolve "Supplied Buffer Too Large in wire_test.c"

Closes #4433

See merge request isc-projects/bind9!8496

2 years agoAdjust comment to have correct message limit value
Mark Andrews [Thu, 16 Nov 2023 00:22:47 +0000 (11:22 +1100)] 
Adjust comment to have correct message limit value

2 years agoAdjust message buffer sizes in test code
Mark Andrews [Thu, 16 Nov 2023 00:22:02 +0000 (11:22 +1100)] 
Adjust message buffer sizes in test code

2 years agoCheck that buffer length in dns_message_renderbegin
Mark Andrews [Thu, 16 Nov 2023 00:15:49 +0000 (11:15 +1100)] 
Check that buffer length in dns_message_renderbegin

The maximum DNS message size is 65535 octets. Check that the buffer
being passed to dns_message_renderbegin does not exceed this as the
compression code assumes that all offsets are no bigger than this.

2 years agoMerge tag 'v9.19.18'
Michał Kępień [Wed, 15 Nov 2023 13:54:10 +0000 (14:54 +0100)] 
Merge tag 'v9.19.18'

2 years agoMerge branch '4421-remove-AES-based-DNS-cookies' into 'main'
Ondřej Surý [Wed, 15 Nov 2023 09:36:22 +0000 (09:36 +0000)] 
Merge branch '4421-remove-AES-based-DNS-cookies' into 'main'

Remove AES algorithm for DNS cookies

Closes #4421

See merge request isc-projects/bind9!8471

2 years agoAdd CHANGES and release note for [GL #4421]
Ondřej Surý [Tue, 7 Nov 2023 13:44:44 +0000 (14:44 +0100)] 
Add CHANGES and release note for [GL #4421]

2 years agoRemove AES algorithm for DNS cookies
Ondřej Surý [Tue, 7 Nov 2023 13:42:33 +0000 (14:42 +0100)] 
Remove AES algorithm for DNS cookies

The AES algorithm for DNS cookies was being kept for legacy reasons, and
it can be safely removed in the next major release.  Remove both the AES
usage for DNS cookies and the AES implementation itself.

2 years agoMerge branch 'mnowak/fedora-39' into 'main'
Michal Nowak [Tue, 14 Nov 2023 18:32:09 +0000 (18:32 +0000)] 
Merge branch 'mnowak/fedora-39' into 'main'

Add Fedora 39

See merge request isc-projects/bind9!8375

2 years agoAdd Fedora 39
Michal Nowak [Thu, 12 Oct 2023 15:33:47 +0000 (17:33 +0200)] 
Add Fedora 39

2 years agoMerge branch '4418-catz-rbtdb-cds_lfht_destroy-failed' into 'main'
Arаm Sаrgsyаn [Tue, 14 Nov 2023 10:07:11 +0000 (10:07 +0000)] 
Merge branch '4418-catz-rbtdb-cds_lfht_destroy-failed' into 'main'

Fix catz db update callback registration logic error (take two)

Closes #4418

See merge request isc-projects/bind9!8476

2 years agoAdd a CHANGES note for [GL #4418]
Aram Sargsyan [Thu, 9 Nov 2023 08:57:48 +0000 (08:57 +0000)] 
Add a CHANGES note for [GL #4418]

2 years agoFix catz db update callback registration logic error (take two)
Aram Sargsyan [Thu, 9 Nov 2023 08:33:35 +0000 (08:33 +0000)] 
Fix catz db update callback registration logic error (take two)

Please see the 998765fea536daacfba96d8ed0a4855668d2e242 commit for
the description of the original issue. The commit had fixed the
logic error, but it was reintroduced again later with the
a1afa31a5a7d318508efe5a32001104d094be057 commit, where the check of
the 'db_registered' flag was removed in dns__catz_update_cb(). The
check was removed, because the registration function was made
idempotent, so double registration is not an issue, but the check
also prevented from unneeded registration, on which the original
fix relied.

This commit just removes the update callback registration code from
the dns__catz_update_cb() function instead of bringing back the check,
because after code flow analysis, it is now clear that it's not required
at all. The "call onupdate() artificially" comment (which was mentioned
by the removed code) is speaking about the dns_catz_dbupdate_callback()
function, which is called by server.c on (re)configuration, and that
function already takes care of update callback's registration since the
998765fea536daacfba96d8ed0a4855668d2e242 commit was applied, so there
is no need to do that here again.

2 years agoMerge branch 'aram/isc_hasmap-iterators-use-atomics' into 'main'
Arаm Sаrgsyаn [Tue, 14 Nov 2023 08:58:04 +0000 (08:58 +0000)] 
Merge branch 'aram/isc_hasmap-iterators-use-atomics' into 'main'

Use atomics for the the iterators number of isc_hashmap_t

See merge request isc-projects/bind9!8474

2 years agoAdd a CHANGES note for [GL !8474]
Aram Sargsyan [Tue, 7 Nov 2023 14:24:04 +0000 (14:24 +0000)] 
Add a CHANGES note for [GL !8474]

2 years agoUse atomics for the iterators number in isc_hashmap_t
Aram Sargsyan [Tue, 7 Nov 2023 10:21:36 +0000 (10:21 +0000)] 
Use atomics for the iterators number in isc_hashmap_t

Concurrent threads can access a hashmap for reading by creating and
then destroying an iterator, in which case the integer number of the
active iterators is increased or decreased from different threads,
introducing a data race. Use atomic operations to protect the variable.

2 years agoMerge branch 'ondrej-clang-format-17' into 'main'
Ondřej Surý [Mon, 13 Nov 2023 16:16:48 +0000 (16:16 +0000)] 
Merge branch 'ondrej-clang-format-17' into 'main'

Reformat sources with up-to-date clang-format-17

See merge request isc-projects/bind9!8488

2 years agoIgnore clang-format reformat
Ondřej Surý [Mon, 13 Nov 2023 15:56:10 +0000 (16:56 +0100)] 
Ignore clang-format reformat

2 years agoReformat sources with up-to-date clang-format-17
Ondřej Surý [Mon, 13 Nov 2023 15:52:35 +0000 (16:52 +0100)] 
Reformat sources with up-to-date clang-format-17

2 years agoMerge branch '4421-deprecate-AES-based-DNS-cookies' into 'main'
Ondřej Surý [Mon, 13 Nov 2023 15:00:48 +0000 (15:00 +0000)] 
Merge branch '4421-deprecate-AES-based-DNS-cookies' into 'main'

Deprecate AES algorithm for DNS cookies

Closes #4421

See merge request isc-projects/bind9!8472

2 years agoAdd CHANGES and release note for [GL #4421]
Ondřej Surý [Tue, 7 Nov 2023 13:44:44 +0000 (14:44 +0100)] 
Add CHANGES and release note for [GL #4421]

2 years agoDeprecate AES algorithm for DNS cookies
Ondřej Surý [Tue, 7 Nov 2023 14:17:10 +0000 (15:17 +0100)] 
Deprecate AES algorithm for DNS cookies

The AES algorithm for DNS cookies was being kept for legacy reasons,
and it can be safely removed in the next major release.  Mark is as
deprecated, so the `named-checkconf` prints a warning when in use.

2 years agoMerge branch '4328-tasn-error-in-isc_hashmap_iter_create' into 'main'
Arаm Sаrgsyаn [Mon, 13 Nov 2023 13:33:38 +0000 (13:33 +0000)] 
Merge branch '4328-tasn-error-in-isc_hashmap_iter_create' into 'main'

Resolve "ThreadSanitizer: data race in dns_tsigkeyring_dump"

Closes #4328

See merge request isc-projects/bind9!8473

2 years agoAdd a CHANGES note for [GL #4328]
Aram Sargsyan [Tue, 7 Nov 2023 14:11:52 +0000 (14:11 +0000)] 
Add a CHANGES note for [GL #4328]

2 years agoUse a read lock when iterating over a hashmap
Aram Sargsyan [Tue, 7 Nov 2023 10:02:57 +0000 (10:02 +0000)] 
Use a read lock when iterating over a hashmap

The 'dns_tsigkeyring_t' structure has a read/write lock to protect
its 'keys' member, which is a 'isc_hashmap_t' pointer and needs to
be protected.

The dns_tsigkeyring_dump() function, however, doesn't use the lock,
which can introduce a race with another thread, if the other thread
tries to modify the hashmap.

Add a read lock around the code, which iterates over the hashmap.

2 years agoMerge branch 'pspacek/set-up-version-and-release-notes-for-bind-9.19.19' into 'main'
Petr Špaček [Fri, 10 Nov 2023 13:20:50 +0000 (13:20 +0000)] 
Merge branch 'pspacek/set-up-version-and-release-notes-for-bind-9.19.19' into 'main'

Set up version and release notes for BIND 9.19.19

See merge request isc-projects/bind9!8482

2 years agoSet up release notes for BIND 9.19.19
Petr Špaček [Fri, 10 Nov 2023 12:50:32 +0000 (13:50 +0100)] 
Set up release notes for BIND 9.19.19

2 years agoUpdate BIND version to 9.19.19-dev
Petr Špaček [Fri, 10 Nov 2023 12:50:32 +0000 (13:50 +0100)] 
Update BIND version to 9.19.19-dev

2 years agoUpdate BIND version for release v9.19.18
Michał Kępień [Thu, 9 Nov 2023 12:02:34 +0000 (13:02 +0100)] 
Update BIND version for release

2 years agoAdd a CHANGES marker
Michał Kępień [Thu, 9 Nov 2023 12:02:34 +0000 (13:02 +0100)] 
Add a CHANGES marker

2 years agoMerge branch 'michal/prepare-documentation-for-bind-9.19.18' into 'v9.19.18-release'
Michał Kępień [Thu, 9 Nov 2023 12:01:25 +0000 (12:01 +0000)] 
Merge branch 'michal/prepare-documentation-for-bind-9.19.18' into 'v9.19.18-release'

Prepare documentation for BIND 9.19.18

See merge request isc-private/bind9!591

2 years agoReorder release notes
Michał Kępień [Thu, 9 Nov 2023 11:36:34 +0000 (12:36 +0100)] 
Reorder release notes

2 years agoTweak and reword release notes
Michał Kępień [Thu, 9 Nov 2023 11:36:34 +0000 (12:36 +0100)] 
Tweak and reword release notes

2 years agoPrepare release notes for BIND 9.19.18
Michał Kępień [Thu, 9 Nov 2023 11:36:34 +0000 (12:36 +0100)] 
Prepare release notes for BIND 9.19.18

2 years agoTweak CHANGES entry for [GL #4260]
Michał Kępień [Thu, 9 Nov 2023 11:36:34 +0000 (12:36 +0100)] 
Tweak CHANGES entry for [GL #4260]

2 years agoTweak CVE-2021-25219 reference
Michał Kępień [Thu, 9 Nov 2023 11:36:34 +0000 (12:36 +0100)] 
Tweak CVE-2021-25219 reference

2 years agoMerge branch 'matthijs-remove-deprecation-warning-on-dnssec-policy-max-zone-ttl'...
Petr Špaček [Sun, 5 Nov 2023 13:10:03 +0000 (13:10 +0000)] 
Merge branch 'matthijs-remove-deprecation-warning-on-dnssec-policy-max-zone-ttl' into 'main'

Remove deprecation warning on dnssec policy max zone ttl

See merge request isc-projects/bind9!8467

2 years agoRemove dnssec-policy/max-zone-ttl deprecation text
Matthijs Mekking [Sun, 5 Nov 2023 10:18:34 +0000 (11:18 +0100)] 
Remove dnssec-policy/max-zone-ttl deprecation text

The readthedocs also placed a deprecation warning on 'max-zone-ttl'
that is part of 'dnssec-policy'. This option is of course not being
deprecated.

2 years agoMerge branch 'fanf-rndc-nta-newlines' into 'main'
Evan Hunt [Thu, 2 Nov 2023 16:31:25 +0000 (16:31 +0000)] 
Merge branch 'fanf-rndc-nta-newlines' into 'main'

Fix missing newlines in output of `rndc nta -dump`

See merge request isc-projects/bind9!8454

2 years agoCHANGES for [GL !8454]
Evan Hunt [Wed, 1 Nov 2023 16:38:22 +0000 (17:38 +0100)] 
CHANGES for [GL !8454]

2 years agoFix missing newlines in output of `rndc nta -dump`
Tony Finch [Tue, 15 Oct 2019 14:36:55 +0000 (15:36 +0100)] 
Fix missing newlines in output of `rndc nta -dump`

There were no newlines between each view in the list of negative trust
anchors.

2 years agoMerge branch '4401-make-check-fix-junitxml-output-processing' into 'main'
Tom Krizek [Thu, 2 Nov 2023 09:02:01 +0000 (09:02 +0000)] 
Merge branch '4401-make-check-fix-junitxml-output-processing' into 'main'

Fix pytest junitxml output processing for make check

Closes #4401

See merge request isc-projects/bind9!8443

2 years agoFix pytest junitxml output processing for make check
Tom Krizek [Mon, 30 Oct 2023 15:16:33 +0000 (16:16 +0100)] 
Fix pytest junitxml output processing for make check

Not every element tagged `skipped` in the JUnitXML tree has to contain
the `type` attribute. An example of that is a test that results in
xpass.

This has been verified with pytest version 7.4.2 and prior.

2 years agoMerge branch 'michal/add-a-release-signing-job-to-gitlab-ci' into 'main'
Michał Kępień [Thu, 2 Nov 2023 06:23:15 +0000 (06:23 +0000)] 
Merge branch 'michal/add-a-release-signing-job-to-gitlab-ci' into 'main'

Add a release signing job to GitLab CI

See merge request isc-projects/bind9!8418

2 years agoAdd a release signing job to GitLab CI
Michał Kępień [Thu, 2 Nov 2023 06:22:20 +0000 (07:22 +0100)] 
Add a release signing job to GitLab CI

Add a GitLab CI job that is only run for tags and makes signing BIND 9
releases more convenient by utilizing a signing VM that is registered as
a GitLab CI runner.  This pulls the signing process into the release
pipelines in GitLab CI, resulting in job artifacts containing the
signatures for BIND 9 releases, which in turns simplifies the subsequent
release publication steps.

2 years agoMerge branch '4406-cleanup-b-in-dnstap-main' into 'main'
Mark Andrews [Thu, 2 Nov 2023 04:25:19 +0000 (04:25 +0000)] 
Merge branch '4406-cleanup-b-in-dnstap-main' into 'main'

Resolve "cleanup 'b' in dnstap-read main"

Closes #4406

See merge request isc-projects/bind9!8455

2 years agoCleanup dead code in dnstap-read
Mark Andrews [Wed, 1 Nov 2023 17:09:25 +0000 (04:09 +1100)] 
Cleanup dead code in dnstap-read

Remove 'b' from main as it is unused.

2 years agoMerge branch '4209-turn-on-qname-minimisation-for-adb-name-fetches' into 'main'
Mark Andrews [Wed, 1 Nov 2023 17:13:47 +0000 (17:13 +0000)] 
Merge branch '4209-turn-on-qname-minimisation-for-adb-name-fetches' into 'main'

Resolve "Turn on QNAME minimisation for adb name fetches."

Closes #4209

See merge request isc-projects/bind9!8107

2 years agoAdd release note for [GL #4209]
Mark Andrews [Tue, 18 Jul 2023 02:24:07 +0000 (12:24 +1000)] 
Add release note for [GL #4209]

2 years agoAdd CHANGES note for [GL #4209]
Mark Andrews [Tue, 18 Jul 2023 02:21:32 +0000 (12:21 +1000)] 
Add CHANGES note for [GL #4209]

2 years agoif GLUEOK is set, and glue is found in a zone DB, don't check the cache
Evan Hunt [Mon, 14 Aug 2023 21:28:53 +0000 (14:28 -0700)] 
if GLUEOK is set, and glue is found in a zone DB, don't check the cache

EXPERIMENT: when DNS_DB_GLUEOK is set, dns_view_find() will now return
glue if it is found it a local zone database, without checking to see
if a better answer has been cached previously.

2 years agoAlso look for additional records in dns_adb_find
Mark Andrews [Mon, 14 Aug 2023 00:26:18 +0000 (10:26 +1000)] 
Also look for additional records in dns_adb_find

If a child zone is served by the same servers as a parent zone and
a NS query is made for the zone name then the addresses of the
nameservers are returned in the additional section are tagged as
trust additional.

2 years agoTurn on QNAME minimisation when fetching nameserver addresses
Mark Andrews [Tue, 18 Jul 2023 02:18:05 +0000 (12:18 +1000)] 
Turn on QNAME minimisation when fetching nameserver addresses

2 years agoMerge branch '4340-fix-max-cache-size' into 'main'
Evan Hunt [Wed, 1 Nov 2023 15:18:18 +0000 (15:18 +0000)] 
Merge branch '4340-fix-max-cache-size' into 'main'

restore isc_mem_setwater() call in the cache

Closes #4340

See merge request isc-projects/bind9!8445

2 years agoAdd release note for GL #4340
Michał Kępień [Wed, 1 Nov 2023 06:22:03 +0000 (07:22 +0100)] 
Add release note for GL #4340

2 years agoCHANGES for [GL #4340]
Evan Hunt [Tue, 31 Oct 2023 11:04:38 +0000 (12:04 +0100)] 
CHANGES for [GL #4340]

2 years agorestore isc_mem_setwater() call in the cache
Evan Hunt [Tue, 31 Oct 2023 11:00:14 +0000 (12:00 +0100)] 
restore isc_mem_setwater() call in the cache

Commit 4db150437e14b28c5b50ae466af9ce502fd73185 incorrectly removed the
call to isc_mem_setwater() from dns_cache_setcachesize().  The water()
function is a no-op, but we still need to set high- and low-water marks
in the memory context, otherwise overmem conditions will not be
detected.

2 years agoMerge branch 'tkrizek/perf-tests-shotgun' into 'main'
Tom Krizek [Wed, 1 Nov 2023 13:38:35 +0000 (13:38 +0000)] 
Merge branch 'tkrizek/perf-tests-shotgun' into 'main'

Add DNS Shotgun performance tests to nightly pipelines

See merge request isc-projects/bind9!8373

2 years agoUpdate release checklist
Tom Krizek [Wed, 25 Oct 2023 13:51:23 +0000 (15:51 +0200)] 
Update release checklist

Add a step to verify results of shotgun:* jobs.

2 years agoci: trigger a DNS Shotgun performance test
Tom Krizek [Wed, 27 Sep 2023 13:48:31 +0000 (15:48 +0200)] 
ci: trigger a DNS Shotgun performance test

Run comparative performance tests against the latest released version of
the same branch. This is done for different protocols with an
appropriate load the server is expected to be able to handle.

Currently, the results need to be inspected manually, since a success of
the job doesn't indicate there is no issue. Instead, the job provides an
URL to an overview with latency, memory and CPU charts which display the
test results with the current code against the reference version. There
should be no major unexplained and reproducible differences in the
charts.

2 years agoutil: script to get DNS Shotgun pipeline results
Tom Krizek [Wed, 27 Sep 2023 15:41:26 +0000 (17:41 +0200)] 
util: script to get DNS Shotgun pipeline results

The shotgun performance tests are executed in a different repository, in
a couple of different pipelines. To hide away the complexity, this
script takes the pipeline ID of the triggered pipeline and then takes
care of the rest - waits for the pipeline to finish, locates the child
pipeline and the relevant results. The output from this script is a
convenient link to the charts with the results once they're available.

GitLab also has a mechanism which can wait for another pipeline.
However, it can't be utilized here, since there are variables which
need to be passed in when the pipeline is triggered (like protocol to be
tested, load, runtime etc.). This isn't currently supported by the
GitLab feature.

2 years agoci: move baseline version detection into separate job
Tom Krizek [Wed, 27 Sep 2023 13:26:10 +0000 (15:26 +0200)] 
ci: move baseline version detection into separate job

Multiple CI jobs may utilize a baseline version, i.e. the version that
the current code should be tested against when doing comparative
testing. To avoid repeating the non-trivial detection of the baseline
version, move it into a separate job which creates an environment file
that subsequent jobs may require via `needs` option. It is then possible
to use the variable(s) defined in the script section of the new job.

2 years agoMerge branch '4355-serve-stale-unexpected-recursion' into 'main'
Matthijs Mekking [Tue, 31 Oct 2023 12:49:51 +0000 (12:49 +0000)] 
Merge branch '4355-serve-stale-unexpected-recursion' into 'main'

Don't ignore authoritative local zones when in serve-stale mode

Closes #4355

See merge request isc-projects/bind9!8415

2 years agoAdd release note and CHANGES for #4355
Matthijs Mekking [Mon, 23 Oct 2023 12:38:47 +0000 (14:38 +0200)] 
Add release note and CHANGES for #4355

2 years agoDon't ignore auth zones when in serve-stale mode
Matthijs Mekking [Mon, 30 Oct 2023 18:33:19 +0000 (19:33 +0100)] 
Don't ignore auth zones when in serve-stale mode

When serve-stale is enabled and recursive resolution fails, the fallback
to lookup stale data always happens in the cache database. Any
authoritative data is ignored, and only information learned through
recursive resolution is examined.

If there is data in the cache that could lead to an answer, and this can
be just the root delegation, the resolver will iterate further, getting
closer to the answer that can be found by recursing down the root, and
eventually puts the final response in the cache.

Change the fallback to serve-stale to use 'query_getdb()', that finds
out the best matching database for the given query.

2 years agoTest case for issue #4355
Matthijs Mekking [Mon, 23 Oct 2023 11:52:12 +0000 (13:52 +0200)] 
Test case for issue #4355

Add a test case where serve-stale is enabled on a server that also
servers a local authoritative zone.

The particular case tests a lame delegation and checks if falling
back to serving stale data does not attempt to retrieve the query
by recursing from the root down.

2 years agoMerge branch 'ondrej/bump-dns_message-pools-size' into 'main'
Ondřej Surý [Sat, 28 Oct 2023 06:52:30 +0000 (06:52 +0000)] 
Merge branch 'ondrej/bump-dns_message-pools-size' into 'main'

Bump the mempool sizes in dns_message

See merge request isc-projects/bind9!8439

2 years agoBump the mempool sizes in dns_message
Ondřej Surý [Fri, 27 Oct 2023 06:54:59 +0000 (08:54 +0200)] 
Bump the mempool sizes in dns_message

Increasing the initial and freemax sizes for dns_message memory pools
restores the root zone performance.  The former sizes were suited for
per-dns_message memory pools and we need to bump the sizes up for
per-thread memory pools.

2 years agoMerge branch '4390-always-use-default-rcu-variant-in-pairwise-builds' into 'main'
Michał Kępień [Fri, 27 Oct 2023 11:59:46 +0000 (11:59 +0000)] 
Merge branch '4390-always-use-default-rcu-variant-in-pairwise-builds' into 'main'

Always use default RCU variant in pairwise builds

Closes #4390

See merge request isc-projects/bind9!8438

2 years agoAlways use default RCU variant in pairwise builds
Michał Kępień [Fri, 27 Oct 2023 11:19:03 +0000 (13:19 +0200)] 
Always use default RCU variant in pairwise builds

Commit 42d43aa0758513a45b54e0fd0bff4381fdc4d803 made --with-liburcu
depend on --enable-developer.  This broke pairwise testing as this new
dependency was not codified in configure.ac.  Since the --with-liburcu
option is currently just a convenience for developers, there is no need
to test building against all possible RCU variants in GitLab CI until
they actually work with BIND 9.  Update the pairwise testing
"configuration" in configure.ac so that builds with non-standard RCU
variants are not tested.

2 years agoMerge branch '4392-increase-dispatch_test-timeouts' into 'main'
Ondřej Surý [Fri, 27 Oct 2023 11:00:20 +0000 (11:00 +0000)] 
Merge branch '4392-increase-dispatch_test-timeouts' into 'main'

Bump the timeouts in the dispatch_test

Closes #4392

See merge request isc-projects/bind9!8437

2 years agoBump the timeouts in the dispatch_test
Ondřej Surý [Fri, 27 Oct 2023 09:44:02 +0000 (11:44 +0200)] 
Bump the timeouts in the dispatch_test

The client connection timeout was set to just one second, which might
not be enough on busy systems (and the CI machines are oh-boy-busy).
Bump the server timeouts to 10 seconds and client timeouts to 5 seconds,
this will make the unit test run a little bit longer, but it should be
more reliable.

2 years agoAdd tests/dns/badcache.out to .gitignore
Ondřej Surý [Fri, 27 Oct 2023 09:46:38 +0000 (11:46 +0200)] 
Add tests/dns/badcache.out to .gitignore

2 years agoMerge branch '4211-fix-data-race-in-controlconf' into 'main'
Ondřej Surý [Fri, 27 Oct 2023 10:47:57 +0000 (10:47 +0000)] 
Merge branch '4211-fix-data-race-in-controlconf' into 'main'

Call isccc_ccmsg_invalidate() when shutting down the connection

Closes #4211

See merge request isc-projects/bind9!8426

2 years agoCall isccc_ccmsg_invalidate() when shutting down the connection
Ondřej Surý [Fri, 27 Oct 2023 08:16:13 +0000 (10:16 +0200)] 
Call isccc_ccmsg_invalidate() when shutting down the connection

Previously, the isccc_ccmsg_invalidate() was called from conn_free() and
this could lead to netmgr calling control_recvmessage() after we
detached the reading controlconnection_t reference, but it wouldn't be
the last reference because controlconnection_t is also attached/detached
when sending response or running command asynchronously.

Instead, move the isccc_ccmsg_invalidate() call to control_recvmessage()
error handling path to make sure that control_recvmessage() won't be
ever called again from the netmgr.

2 years agoReplace mutex for listener->connections with TID check
Ondřej Surý [Thu, 26 Oct 2023 08:47:03 +0000 (10:47 +0200)] 
Replace mutex for listener->connections with TID check

The controlconf channel runs single-threaded on the main thread.
Replace the listener->connections locking with check that we are still
running on the thread with TID 0.

2 years agoMerge branch '4391-remove-lock-file-and--X' into 'main'
Ondřej Surý [Fri, 27 Oct 2023 06:36:16 +0000 (06:36 +0000)] 
Merge branch '4391-remove-lock-file-and--X' into 'main'

Remove the lock-file configuration and -X argument to named

Closes #4391

See merge request isc-projects/bind9!8428

2 years agoAdd CHANGES and release note for [GL #4391]
Ondřej Surý [Thu, 26 Oct 2023 10:00:32 +0000 (12:00 +0200)] 
Add CHANGES and release note for [GL #4391]

2 years agoRemove the lock-file configuration and -X argument to named
Ondřej Surý [Thu, 26 Oct 2023 09:55:54 +0000 (11:55 +0200)] 
Remove the lock-file configuration and -X argument to named

The lock-file configuration (both from configuration file and -X
argument to named) has better alternatives nowadays.  Modern process
supervisor should be used to ensure that a single named process is
running on a given configuration.

Alternatively, it's possible to wrap the named with flock(1).

2 years agoMark the lock-file configuration option as deprecated
Ondřej Surý [Thu, 26 Oct 2023 09:08:49 +0000 (11:08 +0200)] 
Mark the lock-file configuration option as deprecated

This is first step in removing the lock-file configuration option, it
marks both the `lock-file` configuration directive and -X option to
named as deprecated.

2 years agoMerge branch 'mnowak/openbsd-7.4' into 'main'
Michal Nowak [Thu, 26 Oct 2023 14:31:13 +0000 (14:31 +0000)] 
Merge branch 'mnowak/openbsd-7.4' into 'main'

Add OpenBSD 7.4

See merge request isc-projects/bind9!8395

2 years agoAdd OpenBSD 7.4
Michal Nowak [Tue, 17 Oct 2023 14:31:51 +0000 (16:31 +0200)] 
Add OpenBSD 7.4

2 years agoMerge branch 'aram/fix-lock-file-option-and--X-argument-issues' into 'main'
Arаm Sаrgsyаn [Thu, 26 Oct 2023 13:11:30 +0000 (13:11 +0000)] 
Merge branch 'aram/fix-lock-file-option-and--X-argument-issues' into 'main'

Fix assertion failure when using -X none and lock-file in configuration

See merge request isc-projects/bind9!8432

2 years agoDo not warn about lock-file option change when -X is used
Aram Sargsyan [Thu, 26 Oct 2023 12:28:25 +0000 (12:28 +0000)] 
Do not warn about lock-file option change when -X is used

When -X is used the 'lock-file' option change detection condition
is invalid, because it compares the 'lock-file' option's value to
the '-X' argument's value instead of the older 'lock-file' option
value (which was ignored because of '-X').

Don't warn about changing 'lock-file' option if '-X' is used.

2 years agoFix an invalid condition check when detecting a lock-file change
Aram Sargsyan [Thu, 26 Oct 2023 12:24:17 +0000 (12:24 +0000)] 
Fix an invalid condition check when detecting a lock-file change

It is obvious that the '!cfg_obj_asstring(obj)' check should be
'cfg_obj_asstring(obj)' instead, because it is an AND logic chain
which further uses 'obj' as a string.

Fix the error.

2 years agoFix assertion failure when using -X none and lock-file in configuration
Aram Sargsyan [Thu, 26 Oct 2023 12:21:57 +0000 (12:21 +0000)] 
Fix assertion failure when using -X none and lock-file in configuration

When 'lock-file <lockfile>' is used in configuration at the same time
as using '-X none' in 'named' invocation, there is an invalid
logic that would lead to a isc_mem_strdup() call on a NULL value.

Also, contradicting to ARM, 'lock-file none' is overriding the '-X'
argument.

Fix the overall logic, and make sure that the '-X' takes precedence to
'lock-file'.