Commit Graph
35455 Commits
Author SHA1 Message Date
Tom Krizek d941dd151c Skip checkds test on Python<3.7
checkds test requires the capture_output argument for subprocess.run()
which was added in Python 3.7.

(cherry picked from commit 0361233b3d)
2023-08-23 14:51:25 +02:00
Michal Nowak 946bf10eff Merge branch '4270-add-autoconf2.69-to-bookworm' into 'bind-9.16'
Use autoreconf2.69

See merge request isc-projects/bind9!8229
2023-08-22 17:59:29 +00:00
Michal Nowak 9c615ae61b Use autoreconf2.69
autoconf 2.71 in Debian 12 is too different from autoconf 2.69 in Debian
11 and the BIND 9.16 build infrastructure does not easily handle this
change. Therefore, use autoreconf2.69 from Debian 12 to keep the build
system stable.
2023-08-22 19:20:52 +02:00
Michal Nowak 4f4f144cb7 Merge branch '4139-test_send_timeout-check-can-be-unstable-9.16' into 'bind-9.16'
[9.16] Make the test_send_timeout check more stable

See merge request isc-projects/bind9!8220
2023-08-22 08:07:48 +00:00
Michal Nowak 2d951a900b Mark test_send_timeout as flaky
In some cases, BIND is not fast enough to fill the send buffer and
manages to answer all queries, contrary to what the test expects.
Repeat the check up to 3 times to limit this test instability.

(cherry picked from commit 681b23c398)
2023-08-22 08:55:36 +02:00
Tom KrizekandMichal Nowak f84e0f4ad0 Add custom flaky decorator to handle unstable tests
If the flaky plugin for pytest is available, use its decorator to
support re-running unstable tests. In case the package is missing,
execute the test as usual without attempts to re-run it in case of
failure.

This is mostly intended to increase the test stability in CI. Using a
custom decorator enables us to keep the flaky package as an optional
dependency.

(cherry picked from commit 5b703de733)
2023-08-22 08:55:36 +02:00
Evan Hunt 1cb359e7cb Merge branch '3835-cname-wildcard-loop-followup-bind-9.16' into 'bind-9.16'
[9.16] prevent query_coveringnsec() from running twice

See merge request isc-projects/bind9!8225
2023-08-21 22:22:23 +00:00
Evan Hunt f6ca8e96a9 CHANGES for [GL #3835]
(cherry picked from commit ba1f75684f)
2023-08-21 14:37:20 -07:00
Evan Hunt 674a62694a prevent query_coveringnsec() from running twice
when synthesizing a new CNAME, we now check whether the target
matches the query already being processed. if so, we do not
restart the query; this prevents a waste of resources.

(cherry picked from commit 0ae8b2e056)
2023-08-21 14:37:00 -07:00
Michal Nowak acf89d19e6 Merge branch '3893-make-debian-12-bookworm-base-image-9.16' into 'bind-9.16'
[9.16] Make Debian 12 "bookworm" the base image

See merge request isc-projects/bind9!8222
2023-08-21 18:05:02 +00:00
Michal Nowak 383032b9e0 Configure gcc:bionic job with --without-cmocka
Ubuntu "bionic" does not include cmocka version 1.1.3 or higher in its
repositories. Additionally, the custom repository that contains the
library has been discontinued in CI images.

Remove the job unit:gcc:bionic:amd64 as the unit test does not run any
tests without cmocka.
2023-08-21 18:02:09 +02:00
Michal Nowak 56af29b5e4 Add PKCS11 testing with Clang on Debian 11 2023-08-21 18:02:06 +02:00
Michal Nowak 182f9fb067 Drop unnecessary gcovr workarounds
Many problems of the Debian 11 gcovr version were fixed in the Debian 12
one. Replace workarounds we accumulated over the years with two new,
simple ones.

(cherry picked from commit 55f5aa08f0)
2023-08-21 18:01:57 +02:00
Michal Nowak 2cb7a35e3a Disable mandoc stylistic warning
We are not concerned by the "input text line longer than 80 bytes"
stylistic warning.

(cherry picked from commit 7929168295)
2023-08-21 18:01:49 +02:00
Michal Nowak 0cd6802693 Drop unneeded -Wno-compound-token-split-by-macro option
Debian 12 has Perl 5.36 and the option is no longer needed.

(cherry picked from commit a330ab221e)
2023-08-21 18:01:40 +02:00
Michal Nowak d492ed77c3 Reintroduce Debian 11 "bullseye" Clang and GCC jobs
(cherry picked from commit 5e1120d9a3)
2023-08-21 18:01:33 +02:00
Michal Nowak 02d8663770 Make Debian 12 "bookworm" the base image
Just replace "bullseye" with "bookworm" and reintroduce Debian 11
"bullseye" later.

(cherry picked from commit 2d18c57c54)
2023-08-21 18:01:20 +02:00
Michał Kępień af4599d46d Merge branch 'michal/re-enable-the-dnstap-system-test' into 'bind-9.16'
Re-enable the "dnstap" system test

See merge request isc-projects/bind9!8211
2023-08-17 15:19:09 +00:00
Michał Kępień 1f20d09378 Revert "Temporarily disable dnstap for OL7 builds in CI"
This reverts commit 8078e7de05.

Since commit 268b4392ba fixed the issue
causing frequent "dnstap" system test failures, re-enable the latter.
2023-08-17 14:53:46 +02:00
Michał Kępień f464d784c5 Merge tag 'v9.16.43' into bind-9.16 2023-08-17 14:28:47 +02:00
Mark Andrews 69286f0ef5 Merge branch '4238-the-mkeys-system-test-can-update-the-root-zone-too-fast-bind-9.16' into 'bind-9.16'
[9.16] Resolve "The mkeys system test can update the root zone too fast"

See merge request isc-projects/bind9!8198
2023-08-15 00:11:06 +00:00
Mark Andrews a9ab5c215f Add sleeps so that the modification time changes
The mkeys system test could fail because root zone was resigned
within the same second as it was previously signed causing reloads
to fail.  Add delays to the test to prevent this.

(cherry picked from commit 40e3529379)
2023-08-15 09:39:53 +10:00
Michal Nowak 7677495a0b Merge branch 'mnowak/cross-version-test-9.16' into 'bind-9.16'
[9.16] Cross-version testing with named configurations

See merge request isc-projects/bind9!8185
2023-08-09 13:04:40 +00:00
Michal Nowak 82c039ea20 Cross-version testing with named configurations
In #3381 (and #3385), we committed a backward-incompatible change to
BIND 9.19.5, 9.18.7, and 9.16.33, explicitly requiring "inline-signing"
for every "dnssec-policy".

We did this backward-incompatible change deliberately, knowing the
consequences for users and their configurations. But if we didn't, say,
we were unaware this is a backward-incompatible change and fixed failing
systems test by "tweaking a knob to make the CI pass", we would not have
a second look before the change hits user configurations.

"cross-version-config-tests" CI job is such a second look. It will run
system tests from the latest release tag specific to the particular
branch (e.g., v9.19.12 for the "main" branch) with BIND 9 binaries from
the current "HEAD" (the future v9.19.13). This Frankenstein build gets
conceived by altering the "TOP_BUILDDIR" variable in
"bin/tests/system/conf.sh".

Caveats:
- Only system test configurations are tested; no actual test code is
  run.
- Problems with namedN.conf configurations are not identified.

When backward-incompatible change is introduced, the CI job is expected
to fail. If the change is deliberate, the job will keep failing until
the version with the backward-incompatible change is tagged, and the
minor version in configure.ac is bumped.

(cherry picked from commit cc54211baa)
2023-08-09 14:48:06 +02:00
Mark Andrews 4a077d7669 Merge branch '4243-_wait_for_stats-errors-not-detected-in-ixfr-system-test-bind-9.16' into 'bind-9.16'
[9.16] Resolve "_wait_for_stats errors not detected in ixfr system test"

See merge request isc-projects/bind9!8180
2023-08-09 00:35:04 +00:00
Mark Andrews 71c2bb46e5 Set ret=1 if _wait_for_stats does not succeed
Errors getting transfer statistics from named.run where not detected
as ret was not set to one if there hadn't been a success after looping
for a while.

(cherry picked from commit 287a1ac09b)
2023-08-08 23:42:23 +00:00
Michal Nowak 90dbea5ed2 Merge branch 'mnowak/pytest_rewrite_stress-9.16' into 'bind-9.16'
[9.16] Rewrite stress test to pytest

See merge request isc-projects/bind9!8183
2023-08-08 16:52:55 +00:00
Michał KępieńandMichal Nowak 5698a6a905 Convert setup.pl into static configurations
The setup.pl script has been replaced with static BIND configurations,
and in the course of this change, the unused ns1 server was removed.
This enhancement has greatly improved the overall test's readability.

(cherry picked from commit 08a8906cfc)
2023-08-08 18:01:17 +02:00
Michal Nowak b939741cfd Rewrite stress test to pytest
The shell version of the test was completed only after all DNS zone
updates were sent, even if the BIND server crashed while processing
them, leading to prolonged execution and potential hang in the CI
environment. The Python rewrite of the test ensures that DNS update
tasks finish within five minutes of starting, irrespective of a BIND
crash possibility or DNS zone updates not finishing in time.

(cherry picked from commit ecd7b30d0a)
2023-08-08 18:01:17 +02:00
Michał Kępień dd67c81fdc Merge branch '4240-dnstap-system-test-fixes-9.16' into 'bind-9.16'
[9.16] "dnstap" system test fixes

See merge request isc-projects/bind9!8179
2023-08-07 12:59:44 +00:00
Michał Kępień 268b4392ba Wait until fstrm_capture is ready
The fstrm_capture utility is started in the background during the
"dnstap" system test.  Consequently, "rndc dnstap-reopen" and similar
commands may be executed before fstrm_capture starts listening on the
Unix domain socket it is configured to receive dnstap data on.  This
results in the dnstap data sent to that socket in the meantime to be
lost; while the fstrm writer thread is able to recover from such a
scenario within a couple of seconds (by reopening the configured dnstap
destination itself), only one write attempt is made for data
successfully queued to the writer thread, so dnstap frames can still be
lost in the process.  This may happen during the "dnstap" system test,
leading to the dnstap output file being empty, which in turn causes the
test to fail.

Fix by waiting until fstrm_capture starts listening on the Unix domain
socket it is configured to use before asking named to reopen the
configured dnstap destination.  Since various fstrm_capture versions log
different messages when the listening socket is set up, wait for a
common string that works for all fstrm_capture versions released to
date.  Add a few extra debug messages indicating test progress and make
the test fail if the expected fstrm_capture log message is not generated
within 10 seconds.

(cherry picked from commit 26d3d97f12)
2023-08-07 14:01:51 +02:00
Michał Kępień c630efb2f1 Capture all fstrm_capture output
The fstrm_capture.out file is overwritten when the fstrm_capture utility
is restarted during the "dnstap" system test.  Use a separate output
file for each fstrm_capture instance to ensure all output produced by
that tool during the "dnstap" system test is preserved for forensic
purposes.

(cherry picked from commit bd2941fc72)
2023-08-07 14:01:51 +02:00
Michał Kępień e52ce9147c Merge branch 'michal/set-up-version-and-release-notes-for-bind-9.16.44' into 'bind-9.16'
Set up version and release notes for BIND 9.16.44

See merge request isc-projects/bind9!8175
2023-08-07 08:29:50 +00:00
Michał Kępień b93db34a3d Set up release notes for BIND 9.16.44 2023-08-07 10:29:03 +02:00
Michał Kępień 1db866f332 Update BIND version to 9.16.44-dev 2023-08-07 10:29:03 +02:00
Michał Kępień de6f1a07f7 Merge branch 'prep-release' into v9.16.43-release v9.16.43 2023-08-04 12:27:27 +02:00
Michał Kępień bcc0863c6a prep 9.16.43 2023-08-04 12:27:19 +02:00
Michał Kępień bec741434a Merge branch 'michal/prepare-documentation-for-bind-9.16.43' into 'v9.16.43-release'
Prepare documentation for BIND 9.16.43

See merge request isc-private/bind9!563
2023-08-04 10:26:34 +00:00
Michał Kępień d9cd815bf6 Tweak and reword release notes 2023-08-04 12:10:49 +02:00
Michał Kępień dff52546d8 Prepare release notes for BIND 9.16.43 2023-08-04 12:10:49 +02:00
Michał Kępień e743b51da9 Update sample query log excerpt in the ARM 2023-08-04 12:10:49 +02:00
Michał Kępień 8078e7de05 Temporarily disable dnstap for OL7 builds in CI
The "dnstap" system test started to fail very frequently for BIND 9.16
builds running in Oracle Linux 7 Docker containers spawned by GitLab CI.
The test used to be perfectly stable on that platform for the exact same
source tree, so the problem could not have been triggered by a bad code
change.  Temporarily disable dnstap for Oracle Linux 7 builds prepared
in GitLab CI until the issue is fixed as it virtually prevents the
relevant GitLab CI jobs from being able to succeed.

See isc-projects/bind9#4240
2023-08-04 12:10:49 +02:00
Michał Kępień f34c2bddc9 Merge branch '4059-oracle-linux-8-shell-doesn-t-always-restore-environment-variable-correctly-9.16' into 'bind-9.16'
[9.16] Use sub shell to isolate enviroment changes

See merge request isc-projects/bind9!8163
2023-08-02 09:16:45 +00:00
Mark AndrewsandMichał Kępień dc2ea03ea2 Use sub shell to isolate enviroment changes
'HOME=value command' should only change HOME for command but on
some platforms this occasionally sets HOME for the rest of the
test. Explicitly isolate the enviroment change using a sub shell.

(cherry picked from commit 96f75bba18)
2023-08-02 10:47:36 +02:00
Ondřej Surý 2086be9bca Merge branch 'stepan/fix-check-in-ecdsa-system-test-9.16' into 'bind-9.16'
[9.16] Fix ecdsa256 check in ecdsa system test setup

See merge request isc-projects/bind9!8151
2023-07-28 08:09:19 +00:00
Štěpán BalážikandOndřej Surý fa8d48ee86 Fix ecdsa256 check in ecdsa system test setup
Probably by copy-paste mistake, ecdsa384 was checked twice.

(cherry picked from commit 10194baa07)
2023-07-28 09:15:17 +02:00
Tom Krizek 8fa55680f6 Merge branch '4055-improve-the-overmem-cache-cleaning-test-9.16' into 'bind-9.16'
[9.16][CVE-2023-2828] Add test for dns_rbtdb overmem purging

See merge request isc-projects/bind9!8145
2023-07-26 14:32:05 +00:00
Ondřej SurýandTom Krizek c7d64009c2 Add test for dns_rbtdb overmem purging
Add a unit test to check if the overmem purging in the RBTDB is
effective when mixed size RR data is inserted into the database.

Co-authored-by: Ondřej Surý <ondrej@isc.org>
Co-authored-by: Jinmei Tatuya <jtatuya@infoblox.com>

(manually picked from 269c03831f)
2023-07-26 15:20:53 +02:00
Tom Krizek b8f06e61ea Merge branch 'tkrizek/disable-resolve-in-tsan-9.16' into 'bind-9.16'
[9.16] Disable resolve checks under TSAN

See merge request isc-projects/bind9!8140
2023-07-26 08:42:12 +00:00
Tom Krizek 9abdcb23a2 Disable resolve checks under TSAN
The resolve binary is affected by GL#4119 which occassionally makes it
hand during system tests when running with TSAN. This is a workaround to
avoid wasting resources caused by a CI timeout for the system test tsan
jobs.

(cherry picked from commit 774b9bc629)
2023-07-26 10:08:29 +02:00