Commit Graph

37509 Commits

Author SHA1 Message Date
Tom Krizek
7aba37333f Move gitlab-ci.yml comment to its proper place
The comment refers to "interruptible" key, rather than the entire
"default" section.

(cherry picked from commit 1139907450)
2023-03-16 15:13:09 +01:00
Tom Krizek
7545ac0a97 Merge tag 'v9_18_13' into v9_18
BIND 9.18.13
2023-03-15 18:38:23 +01:00
Artem Boldariev
b6e1339612 Merge branch '3867-fix-xot-hang' into 'v9_18'
DoT: remove TLS-related kludge in isc__nmsocket_connecttimeout_cb()

See merge request isc-projects/bind9!7687
2023-03-14 18:03:36 +00:00
Artem Boldariev
b029f86334 Update release notes [GL #3867]
Mention that XoT hangs have been fixed.
2023-03-14 18:51:05 +02:00
Artem Boldariev
8e4b9421ac Update CHANGES [GL #3867]
Mention that XoT hangs have been fixed.
2023-03-14 18:51:00 +02:00
Artem Boldariev
034b5febb1 DoT: remove TLS-related kludge in isc__nmsocket_connecttimeout_cb()
This commit ensures that 'sock->tls.pending_req' is not getting
nullified during TLS connection timeout callback as it prevents the
connection callback being called when connecting was not successful.

We expect 'isc__nm_failed_connect_cb() to be called from
'isc__nm_tlsdns_shutdown()' when establishing connections was
successful, but with 'sock->tls.pending_req' nullified that will not
happen.

The code removed most likely was required in older iterations of the
NM, but to me it seems that now it does only harm. One of the well
know pronounced effects is leading to irrecoverable zone transfer
hangs via TLS.
2023-03-14 18:49:29 +02:00
Mark Andrews
03a73f720d Merge branch '3937-zone-sign-kasp-v9_18' into 'v9_18'
[9.18] Resolve "NSEC records aren't signed with both configured algorithms during NSEC3->NSEC transition"

See merge request isc-projects/bind9!7685
2023-03-14 14:00:49 +00:00
Mark Andrews
68fb8ad9dd Add CHANGES for [GL #3937]
(cherry picked from commit aafcb8611c)
2023-03-15 00:19:33 +11:00
Mark Andrews
7f13c9d3fa When signing with a new algorithm preserve NSEC/NSEC3 chains
If the zone already has existing NSEC/NSEC3 chains then zone_sign
needs to continue to use them.  If there are no chains then use
kasp setting otherwise generate an NSEC chain.

(cherry picked from commit 4b55201459)
2023-03-15 00:18:54 +11:00
Mark Andrews
f012549203 Merge branch '3939-insufficient-information-to-identify-key-v9_18' into 'v9_18'
[9.18] Resolve "Insufficient information to identify key"

See merge request isc-projects/bind9!7683
2023-03-14 05:49:22 +00:00
Mark Andrews
bc7c9c6ad1 Report key name when removing it
(cherry picked from commit 9f161544fd)
2023-03-14 16:26:56 +11:00
Mark Andrews
92cab3fb5e Add ISC_FORMAT_PRINTF to report's declaration
dns_dnssec_updatekeys's 'report' could be called with invalid arguments
which the compiler should be be able to detect.

(cherry picked from commit 7a0a2fc3e4)
2023-03-14 16:26:56 +11:00
Arаm Sаrgsyаn
4a41a1af40 Merge branch '3924-dnstap-test-timing-issue-v9_18' into 'v9_18'
[9.18] Resolve "missing messages in `dnstap` system test after query failure"

See merge request isc-projects/bind9!7677
2023-03-13 13:23:37 +00:00
Aram Sargsyan
f86495f1ad Improve dnstap system test reliability
The dnstap system test fails intermittently, and it appears to be
a timing issue - adding a short delay after running 'fstrm_capture',
and before running 'dnstap -reopen' improves the situation from
50% failures (5 out of 10 times) to 0% failures (0 out of 20 times),
tested locally.

The reason is that 'fstrm_capture' is executed in the background,
and due to OS scheduling and other factors, the listener socket
may not be ready when the following command runs and tells 'named'
to (re)open it.

(cherry picked from commit fa686fcea5)
2023-03-13 11:57:00 +00:00
Michal Nowak
bdc14c4e3b Merge branch 'mnowak/stress-test-drop-parallel-build-v9_18' into 'v9_18'
[9.18] Drop parallel build from stress tests

See merge request isc-projects/bind9!7671
2023-03-09 17:36:26 +00:00
Michal Nowak
780f28ce58 Drop parallel build from stress tests
BUILD_PARALLEL_JOBS environmental variable is set to 6, which does not
align well with 4 and 8 CPU core systems dedicated to CI "stress" tests.
When multiple parallel jobs run on the host, they compete for resources
with an undesirable result: 6 compiler processes of one job may starve
named, resulting in lower-than-expected throughput and minutes-long
query response latency spikes.

Better drop the build parallelism of BIND-under-test. About 1-2 minutes
are added to the 60-65 minutes long job duration.

(cherry picked from commit 3fd7e7c81f)
2023-03-09 18:32:17 +01:00
Arаm Sаrgsyаn
cf03a997e4 Merge branch '3923-doth-system-test-timing-issue-v9_18' into 'v9_18'
[9.18] Resolve "timing issue with incoming XoT check in `doth` system test"

See merge request isc-projects/bind9!7667
2023-03-09 11:30:00 +00:00
Aram Sargsyan
0b80d442ac Retry multiple times in doth test when checking if the zone file exists
Dumping of the freshly transferred zone file can take some time.

Retry 5 times before failing.

The log excerpt below shows such a case, when dumping lasted more than
two seconds.

    06-Mar-2023 09:32:09.973 zone example6/IN: Transfer started.
    06-Mar-2023 09:32:10.301 zone example6/IN: zone transfer finished: success
    06-Mar-2023 09:32:10.301 zone_dump: zone example6/IN: enter
    06-Mar-2023 09:32:11.789 client @0x7fe9ab435d68 10.53.0.10#44113 (example6): AXFR request
    06-Mar-2023 09:32:11.801 client @0x7fe9ab435d68 10.53.0.10#44113 (example6): transfer of 'example6/IN': AXFR ended: 5 messages, 2676 records, 55815 bytes, 0.011 secs (5074090 bytes/sec) (serial 1397051952)
    06-Mar-2023 09:32:12.409 zone_gotwritehandle: zone example6/IN: enter
    06-Mar-2023 09:32:12.421 dump_done: zone example6/IN: enter
    06-Mar-2023 09:32:12.421 zone_journal_compact: zone example6/IN: target journal size 53044

(cherry picked from commit 5d5d4b523b)
2023-03-09 10:40:43 +00:00
Aram Sargsyan
5ed65ce81f Fix the placement of printing dig output comments in doth system test
There can be comments in dig output for a zone transfer only in case
of an error, so we should print those errors not when wait_for_tls_xfer
succeeds, but when it fails.

Also, there is no point in printing those comments when a failure was
indeed expected.

(cherry picked from commit 9672b6be57)
2023-03-09 10:40:37 +00:00
Aram Sargsyan
d2d55acf6e Fail early in doth system test when the expected failure doesn't happen
If wait_for_tls_xfer succeeds, while a failure was being expected,
set ret=1 to fail without further checking if the zone file exists.

(cherry picked from commit 2fdf01573c)
2023-03-09 10:40:31 +00:00
Michal Nowak
1668d92e63 Merge branch 'mnowak/stress-test-build-with-default-CFLAGS-v9_18' into 'v9_18'
[9.18] Build BIND in stress test jobs with common CFLAGS

See merge request isc-projects/bind9!7665
2023-03-09 10:03:22 +00:00
Michal Nowak
d04776aae5 Build BIND in stress test jobs with common CFLAGS
By omission, BIND was not built with common CFLAGS in the stress test
jobs. Building with common CFLAGS and -Og should help GDB produce a
backtrace with more information.

(cherry picked from commit d33bdd36b4)
2023-03-09 10:58:39 +01:00
Matthijs Mekking
ab79a09d73 Merge branch '3925-serve-stale-system-test-failure-vv9_18' into 'v9_18'
[9.18] Lower chance of intermittent serve-stale system test failure

See merge request isc-projects/bind9!7664
2023-03-09 08:56:03 +00:00
Matthijs Mekking
4ce9114b34 Update serve-stale system test
The serve-stale system test was intermittently failing due to a timing
issue:

    I:serve-stale:check stale data.example TXT was refreshed...
    I:serve-stale:failed

The RRset is refreshed, however, it first checks for an expected log
line, prior checking that the stale data.example TXT was refreshed
(using dig). This log line is there to ensure the record is actually
refreshed before we start querying again. Alternatively we could just
retry_quiet 10 <wait for dig output matches expectations>. It would
lower the chances for intermittent test failures, since there is no
longer a "check for log line, sleep one second if check fails, check
for log line, ...", prior to the check.

(cherry picked from commit 0bf36da305)
2023-03-09 08:14:17 +01:00
Tom Krizek
ac9a4a73be Merge branch 'tkrizek/set-up-version-and-release-notes-for-bind-9.18.14' into 'v9_18'
Set up version and release notes for BIND 9.18.14

See merge request isc-projects/bind9!7651
2023-03-07 16:36:28 +00:00
Tom Krizek
316c6929a4 Set up release notes for BIND 9.18.14 2023-03-07 14:52:01 +01:00
Tom Krizek
8016e471d8 Update BIND version to 9.18.14-dev 2023-03-07 14:49:39 +01:00
Tom Krizek
3c85ab7f4c Update BIND version for release v9.18.13 2023-03-03 15:23:18 +01:00
Tom Krizek
8f2543a7d4 Add a CHANGES marker 2023-03-03 15:22:43 +01:00
Tom Krizek
a5dbc24770 Merge branch 'tkrizek/prepare-documentation-for-bind-9.18.13' into 'v9_18_13-release'
Prepare documentation for BIND 9.18.13

See merge request isc-private/bind9!501
2023-03-03 14:21:06 +00:00
Tom Krizek
a6d72365ee Add release note for GL #3673 2023-03-03 13:14:19 +01:00
Tom Krizek
866841a30a Reorder release notes 2023-03-03 13:14:19 +01:00
Tom Krizek
2474d7fe87 Tweak and reword release notes 2023-03-03 13:14:19 +01:00
Tom Krizek
f95a0edc4c Prepare release notes for BIND 9.18.13 2023-03-03 13:14:19 +01:00
Tom Krizek
3e46baa6ff Merge branch '3917-named-should-log-uv-version-when-starting-up-v9_18' into 'v9_18'
[9.18] Resolve "Named should log UV version when starting up"

See merge request isc-projects/bind9!7644
2023-03-03 09:07:46 +00:00
Mark Andrews
cdbebb0a69 Now logs UV versions when starting up
Named now logs both compile time and run time UV versions when
starting up.  This is useful information to have when debugging
network issues involving named.

(cherry picked from commit 5fd2cd8018)
2023-03-03 09:31:54 +01:00
Arаm Sаrgsyаn
c70914d788 Merge branch '3907-data-race-in-rbtdb-v9_18' into 'v9_18'
[9.18] Resolve "ThreadSanitizer: data race lib/dns/rbtdb.c:1365 in newversion"

See merge request isc-projects/bind9!7640
2023-03-02 20:22:15 +00:00
Aram Sargsyan
9c48b6619a Check if catz is active in dns__catz_update_cb()
A reconfiguration can deactivate the catalog zone, while the
offloaded update process was preparing to run.

(cherry picked from commit 6980e3b354)
2023-03-02 18:57:16 +00:00
Aram Sargsyan
2e348627a1 Check if catz is active in dns__catz_timer_cb()
A reconfiguration can deactivate the catalog zone, while the
update process was deferred using a timer.

(cherry picked from commit 67c77aba38)
2023-03-02 18:57:16 +00:00
Aram Sargsyan
fb15a6d6f6 Use catzs->lock in dns_catz_prereconfig()
There can be an update running in another thread, so use a lock,
like it's done in dns_catz_postreconfig().

(cherry picked from commit 3973724d67)
2023-03-02 18:57:16 +00:00
Aram Sargsyan
b230fbb591 Add a CHANGES note for [GL #3907]
(cherry picked from commit cb0d6393a7)
2023-03-02 18:57:16 +00:00
Aram Sargsyan
d6001423af catz: protect db_registered and db callback (un)registration with a lock
Doing this to avoid a race between the 'dns__catz_update_cb()' and
'dns_catz_dbupdate_callback()' functions.

(cherry picked from commit a87859f1fa)
2023-03-02 18:57:16 +00:00
Aram Sargsyan
574682b8c7 catz: use two pairs of dns_db_t and dns_dbversion_t in a catalog zone
As it is done in the RPZ module, use 'db' and 'dbversion' for the
database we are going to update to, and 'updb' and 'updbversion' for
the database we are working on.

Doing this should avoid a race between the 'dns__catz_update_cb()' and
'dns_catz_dbupdate_callback()' functions.

(cherry picked from commit d2ecff3c4a)
2023-03-02 18:57:16 +00:00
Aram Sargsyan
363061a1fc Update the CHANGES note for [GL #3777]
Remove the part which is no longer true after reverting the commit
in question.

The CHANGES entry was never part of a released BIND 9 version.

(cherry picked from commit e1627e1289)
2023-03-02 18:57:16 +00:00
Aram Sargsyan
6834ea968e Revert "Process db callbacks in zone_loaddone() after zone_postload()"
This reverts commit a719647023.

The commit introduced a data race, because dns_db_endload() is called
after unfreezing the zone.

(not cherry picked from commit 593dea871a)
2023-03-02 18:55:06 +00:00
Arаm Sаrgsyаn
8ccdf53fa9 Merge branch 'aram/catz-add-lock-for-dns_catz_zone_t-v9_18' into 'v9_18'
[9.18] Add a lock for dns_catz_zone_t

See merge request isc-projects/bind9!7636
2023-03-01 17:56:33 +00:00
Aram Sargsyan
9fdce9948e Add a lock for dns_catz_zone_t
Use a lock for the catalog zones during dns__catz_zones_merge() to
avoid races between 'catz' and 'parentcatz'.

(cherry picked from commit 2ae3bc6e1d)
2023-03-01 17:05:15 +00:00
Arаm Sаrgsyаn
48981ccc84 Merge branch '3911-reconfig-zone-view-revert-bugfix-v9_18' into 'v9_18'
[9.18] Fix view's zones reverting bug during reconfiguration

See merge request isc-projects/bind9!7634
2023-03-01 16:45:43 +00:00
Aram Sargsyan
4a5156f132 Add CHANGES and release notes for [GL #3911]
(cherry picked from commit e1036253db)
2023-03-01 15:41:10 +00:00
Aram Sargsyan
78f1d256a3 Fix view's zones reverting bug during reconfiguration
During reconfiguration, the configure_view() function reverts the
configured zones to the previous view in case if there is an error.

It uses the 'zones_configured' boolean variable to decide whether
it is required to revert the zones, i.e. the error happened after
all the zones were successfully configured.

The problem is that it does not account for the case when an error
happens during the configuration of one of the zones (not the first),
in which case there are zones that are already configured for the
new view (and they need to be reverted), and there are zones that
are not (starting from the failed one).

Since 'zones_configured' remains 'false', the configured zones are
not reverted.

Replace the 'zones_configured' variable with a pointer to the latest
successfully configured zone configuration element, and when reverting,
revert up to and including that zone.

(cherry picked from commit 84c235a4b0)
2023-03-01 15:40:33 +00:00