Commit Graph

38021 Commits

Author SHA1 Message Date
Tom Krizek
4f6ea4fa1b Improve tempdir logging for pytest runner
At the end of the test, display the symlink path to the artifact
directory in case it's preserved. Log the full tempdir name in debug
log.

(cherry picked from commit f91d0b13e8)
2023-08-21 16:07:30 +02:00
Tom Krizek
89e6d1bc26 Create symlinks to test artifacts for pytest runner
While temporary directories are useful for test execution to keep
everything clean, they are difficult to work with manually. Create a
symlink for each test artifact directory with a stable and predictable
path. The symlink always either points to the latest artifacts, or is
missing in case the last run succeeded.

Ensure these symlinked directories aren't detected as test suites by the
pytest runner.

(cherry picked from commit e1ca5c8071)
2023-08-21 16:07:28 +02:00
Tom Krizek
22de8654a5 Merge branch '4246-remove-legacy-test-runner-from-ci-9.18' into 'bind-9.18'
[9.18] Use pytest runner for out-of-tree and OpenBSD system tests in CI

See merge request isc-projects/bind9!8217
2023-08-21 14:06:59 +00:00
Tom Krizek
57b2966d0b Improve pytest message when sanitizer report is found
(cherry picked from commit b1a9d1fe25)
2023-08-21 15:16:53 +02:00
Tom Krizek
8a4386f90c ci: run out-of-tree system tests with pytest runner
Out-of-tree builds are built in a directory that is different from
source directory. The build directory doesn't contain the non-compiled
test files from bin/tests/system which are the test cases required by
the pytest runner.

In order to run the system tests for out-of-tree build, copy over the
contents (tests) of bin/tests/system/ from the source directory into the
build directory. Then, it is possible to invoke the pytest runner inside
the build directory.

(cherry picked from commit d49d9ec80e)
2023-08-21 15:15:31 +02:00
Tom Krizek
30ddef53cb ci: use pytest system test runner on OpenBSD
A supported pytest version finally made it to OpenBSD repositories,
allowing us to run system tests with the pytest runner.

(cherry picked from commit 8846877dfe)
2023-08-21 15:15:29 +02:00
Michał Kępień
223fcb0fe2 Merge tag 'v9.18.18' into bind-9.18 2023-08-17 14:14:42 +02:00
Mark Andrews
7baabe5e10 Merge branch '4259-statschannel-leftovers-bind-9.18' into 'bind-9.18'
[9.18] Resolve "Statschannel leftovers"

See merge request isc-projects/bind9!8200
2023-08-15 04:50:22 +00:00
Mark Andrews
86b9e02600 Remove bind9.xsl.1, bind9.xsl.2 and bind9.xsl.3
(cherry picked from commit 7da47fd858)
2023-08-15 14:25:11 +10:00
Mark Andrews
7c78ea9ebe Merge branch '4238-the-mkeys-system-test-can-update-the-root-zone-too-fast-bind-9.18' into 'bind-9.18'
[9.18] Resolve "The mkeys system test can update the root zone too fast"

See merge request isc-projects/bind9!8197
2023-08-15 00:16:17 +00:00
Mark Andrews
5097911f51 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:38:00 +10:00
Ondřej Surý
0e8cccec64 Merge branch '4124-check-statschannel-if-modified-since-9.18' into 'bind-9.18'
[9.18] Fix a stack buffer overflow in the statistics channel

See merge request isc-projects/bind9!8196
2023-08-14 12:57:26 +00:00
Ondřej Surý
c63c646019 Add CHANGES and release notes for [GL #4124]
(cherry picked from commit 57c8bdaff5)
2023-08-14 13:08:11 +02:00
Tony Finch
57069556eb Fix a stack buffer overflow in the statistics channel
A long timestamp in an If-Modified-Since header could overflow a
fixed-size buffer.

(cherry picked from commit b22c87ca61)
2023-08-14 13:07:47 +02:00
Mark Andrews
3160239998 Merge branch '4245-incorrect-return-values-in-rpz-s-addr-and-drop-function-bind-9.18' into 'bind-9.18'
[9.18] Resolve "Incorrect return values in rpz's addr and drop functions"

See merge request isc-projects/bind9!8190
2023-08-10 00:05:27 +00:00
Mark Andrews
2dd9c3a5f3 Fix 'addr', 'ckresult' and 'drop' functions
'addr', 'ckresult' and 'drop' should return 0 rather than 1 after
calling 'setret' as the error has been logged and these functions
are not expect to fail.

(cherry picked from commit 1394f12a1c)
2023-08-10 09:37:11 +10:00
Michal Nowak
082d6ae965 Merge branch 'mnowak/cross-version-test-9.18' into 'bind-9.18'
[9.18] Cross-version testing with named configurations

See merge request isc-projects/bind9!8184
2023-08-08 18:08:23 +00:00
Michal Nowak
9ba5c120cf 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-08 19:39:16 +02:00
Michal Nowak
6f01270de7 Merge branch 'mnowak/pytest_rewrite_stress-9.18' into 'bind-9.18'
[9.18] Rewrite stress test to pytest

See merge request isc-projects/bind9!8182
2023-08-08 13:08:29 +00:00
Michał Kępień
dbdc70cbe0 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 14:30:34 +02:00
Michal Nowak
624c20b191 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 14:30:27 +02:00
Michał Kępień
300f0230e1 Merge branch '4240-dnstap-system-test-fixes-9.18' into 'bind-9.18'
[9.18] "dnstap" system test fixes

See merge request isc-projects/bind9!8178
2023-08-07 12:59:41 +00:00
Michał Kępień
a1800c23a0 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 13:59:35 +02:00
Michał Kępień
7db6129f62 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 13:59:35 +02:00
Mark Andrews
edad2eb2b9 Merge branch '4243-_wait_for_stats-errors-not-detected-in-ixfr-system-test-bind-9.18' into 'bind-9.18'
[9.18] Resolve "_wait_for_stats errors not detected in ixfr system test"

See merge request isc-projects/bind9!8176
2023-08-07 09:47:39 +00:00
Mark Andrews
4e8b3f9893 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-07 19:20:13 +10:00
Michał Kępień
6c930b8db5 Merge branch 'michal/set-up-version-and-release-notes-for-bind-9.18.19' into 'bind-9.18'
Set up version and release notes for BIND 9.18.19

See merge request isc-projects/bind9!8174
2023-08-07 08:27:23 +00:00
Michał Kępień
6c7c302cbc Set up release notes for BIND 9.18.19 2023-08-07 10:26:29 +02:00
Michał Kępień
bda09d3602 Update BIND version to 9.18.19-dev 2023-08-07 10:26:29 +02:00
Michał Kępień
1f8de2f0aa Update BIND version for release v9.18.18 2023-08-04 11:45:33 +02:00
Michał Kępień
4ba877aafb Add a CHANGES marker 2023-08-04 11:45:33 +02:00
Michał Kępień
b5f0f71ad1 Merge branch 'michal/prepare-documentation-for-bind-9.18.18' into 'v9.18.18-release'
Prepare documentation for BIND 9.18.18

See merge request isc-private/bind9!562
2023-08-04 09:44:18 +00:00
Michał Kępień
e36d6ca0d8 Add release note for GL #4215 2023-08-04 11:08:44 +02:00
Michał Kępień
dda66bbe00 Reorder release notes 2023-08-04 11:08:44 +02:00
Michał Kępień
2a57eb4a29 Tweak and reword release notes 2023-08-04 11:08:44 +02:00
Michał Kępień
682f018150 Prepare release notes for BIND 9.18.18 2023-08-04 11:08:44 +02:00
Matthijs Mekking
f80b95bd97 Merge branch 'matthijs-followup-4032-v9_18' into 'bind-9.18'
[9.18] Change default TTLsig to one week

See merge request isc-projects/bind9!8165
2023-08-02 12:03:46 +00:00
Matthijs Mekking
dab43f84dd Change default TTLsig to one week
Commit dc6dafdad1 allows larger TTL values
in zones that go insecure, and ignores the maximum zone TTL.

This means that if you use TTL values larger than 1 day in your zone,
your zone runs the risk of going bogus before it moves safely to
insecure.

Most resolvers by default cap the maximum TTL that they cache RRsets,
at one day (Unbound, Knot, PowerDNS) so that is fine. However, BIND 9's
default is one week.

Change the default TTLsig to one week, so that also for BIND 9
resolvers in the default cases responses for zones that are going
insecure will not be evaluated as bogus.

This change does mean that when unsigning your zone, it will take six
days longer to safely go insecure, regardless of what TTL values you
use in the zone.

(cherry picked from commit 32686beabc)
2023-08-02 12:19:25 +02:00
Evan Hunt
668e1f613f Merge branch '3700-deprecate-dialup-bind-9.18' into 'bind-9.18'
[9.18] deprecate "dialup" and "heartbeat-interval"

See merge request isc-projects/bind9!8159
2023-08-02 02:10:29 +00:00
Evan Hunt
aa4e3e0994 CHANGES and release note for [GL #3700]
(cherry picked from commit d10b6a4b39)
2023-08-01 18:42:19 -07:00
Evan Hunt
3cc1e5e12a deprecate "dialup" and "heartbeat-interval"
these options concentrate zone maintenance actions into
bursts for the benefit of servers with intermittent connections.
that's no longer something we really need to optimize.

(cherry picked from commit eeeccec67c)
2023-08-01 18:41:49 -07:00
Mark Andrews
c17cbc371c Merge branch '4229-nextpart-failed-set-e-fallout-bind-9.18' into 'bind-9.18'
[9.18] Resolve "nextpart failed, set -e fallout?"

See merge request isc-projects/bind9!8158
2023-08-02 01:09:22 +00:00
Mark Andrews
0e4872a12a Use $() instead of backticks
(cherry picked from commit 162db75e2b)
2023-08-02 00:31:30 +00:00
Mark Andrews
ad69f979c6 Merge branch '4059-oracle-linux-8-shell-doesn-t-always-restore-environment-variable-correctly-bind-9.18' into 'bind-9.18'
[9.18] Resolve "Oracle Linux 8 shell doesn't always restore environment variable correctly"

See merge request isc-projects/bind9!8157
2023-08-02 00:24:17 +00:00
Mark Andrews
b1a9077011 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 09:56:27 +10:00
Arаm Sаrgsyаn
c2957ad386 Merge branch '4226-dig-help-message-https-plain-get-vs-http-plain-get-9.18' into 'bind-9.18'
[9.18] Fix dig help message typo in the http-plain-get option

See merge request isc-projects/bind9!8156
2023-08-01 12:03:41 +00:00
Aram Sargsyan
18ba295abe Fix dig help message typo in the http-plain-get option
The option name is misspelled as 'https-plain-get'. Fix the error.

(cherry picked from commit 77d1476c46)
2023-08-01 11:22:10 +00:00
Matthijs Mekking
6fbbfe9018 Merge branch '4032-ignore-max-zone-ttl-dnssec-policy-insecure-v9_18' into 'bind-9.18'
[9.18] Ignore max-zone-ttl on dnssec-policy insecure

See merge request isc-projects/bind9!8155
2023-08-01 09:37:38 +00:00
Matthijs Mekking
803e95dc00 Add CHANGES and release note for #4032
(cherry picked from commit 0bdf1980c4)
2023-08-01 09:53:03 +02:00
Matthijs Mekking
a21407d062 Ignore max-zone-ttl on dnssec-policy insecure
Allow larger TTL values in zones that go insecure. This is necessary
because otherwise the zone will not be loaded due to the max-zone-ttl
of P1D that is part of the current insecure policy.

In the keymgr.c code, default back to P1D if the max-zone-ttl is set
to zero.

(cherry picked from commit dc6dafdad1)
2023-08-01 09:53:03 +02:00