Commit graph

38299 commits

Author SHA1 Message Date
Ondřej Surý
50a7594475 Merge branch 'ondrej-clang-format-17-bind-9.18' into 'bind-9.18'
Reformat sources with up-to-date clang-format-17

See merge request isc-projects/bind9!8489
2023-11-13 16:22:04 +00:00
Ondřej Surý
eaadc30b4d
Ignore clang-format reformat 2023-11-13 17:13:58 +01:00
Ondřej Surý
6a85e79c0b
Reformat sources with up-to-date clang-format-17 2023-11-13 17:13:07 +01:00
Petr Špaček
957eb31680 Merge branch 'pspacek/set-up-version-and-release-notes-for-bind-9.18.21' into 'bind-9.18'
Set up version and release notes for BIND 9.18.21

See merge request isc-projects/bind9!8483
2023-11-10 13:20:57 +00:00
Petr Špaček
c1fbdc6c5a Set up release notes for BIND 9.18.21 2023-11-10 14:04:03 +01:00
Petr Špaček
9a2665efde Update BIND version to 9.18.21-dev 2023-11-10 14:04:03 +01:00
Michał Kępień
450019ba83 Merge branch 'ondrej/remove-i386-as-fully-supported-platform-9.18' into 'bind-9.18'
[9.18] Move i386 and armhf to the Best-Effort category

See merge request isc-projects/bind9!8475
2023-11-08 12:14:02 +00:00
Ondřej Surý
ac63acdb3b
Split the CPU architectures into more categories
Move i386 and other less common or ancient CPU architectures to
Community-Maintened category.  Move armhf and arm64 to the Best-Effort
category as we do test them as part of development work (new MacBooks
are all arm64), we don't really do full set of tests in the CI.

(cherry picked from commit db94c7526c)
2023-11-08 13:01:40 +01:00
Evan Hunt
acbe660771 Merge branch 'each-fix-ntadump' into 'bind-9.18'
[9.18] Fix missing newlines in output of `rndc nta -dump`

See merge request isc-projects/bind9!8466
2023-11-03 13:08:07 +00:00
Evan Hunt
9a4ccdf4fc CHANGES for [GL !8454]
(cherry picked from commit 37b101b6e2)
2023-11-03 08:28:18 +01:00
Tony Finch
1b138a5883 Fix missing newlines in output of rndc nta -dump
There were no newlines between each view in the list of negative trust
anchors.

(cherry picked from commit 61b245e318)
2023-11-03 08:28:18 +01:00
Mark Andrews
27cf95ac98 Merge branch '4101-update-b-root-server-net-addresses-bind-9.18' into 'bind-9.18'
[9.18] Resolve "Update b.root-server.net addresses"

See merge request isc-projects/bind9!8462
2023-11-02 17:19:05 +00:00
Mark Andrews
3b55342a4b Add release note for [GL #4101]
(cherry picked from commit c7a06b1fa1)
2023-11-03 03:44:30 +11:00
Mark Andrews
a4c447f9e3 Add CHANGES note for [GL #4101]
(cherry picked from commit b9bba29c5e)
2023-11-03 03:44:27 +11:00
Mark Andrews
ba7cfd2f92 Suppress reporting upcoming changes in root hints
To reduce the amount of log spam when root servers change their
addresses keep a table of upcoming changes by expected date and time
and suppress reporting differences for them until then.

Add initial entry for B.ROOT-SERVERS.NET, Nov 27, 2023.

(cherry picked from commit b69100b747)
2023-11-03 03:43:49 +11:00
Mark Andrews
15e13bd523 Update b.root-servers.net IP addresses
This covers both root hints and the default primaries for the root
zone mirror.  The official change date is Nov 27, 2023.

(cherry picked from commit 2ca2f7e985)
2023-11-03 03:43:49 +11:00
Mark Andrews
1664f95c66 Merge branch '4406-cleanup-b-in-dnstap-main-bind-9.18' into 'bind-9.18'
[9.18] Resolve "cleanup 'b' in dnstap-read main"

See merge request isc-projects/bind9!8460
2023-11-02 10:53:15 +00:00
Mark Andrews
b4352bbc6f Cleanup dead code in dnstap-read
Remove 'b' from main as it is unused.

(cherry picked from commit 0482451f84)
2023-11-02 10:09:44 +00:00
Tom Krizek
09c2dab315 Merge branch '4401-make-check-fix-junitxml-output-processing-9.18' into 'bind-9.18'
[9.18] Fix pytest junitxml output processing for make check

See merge request isc-projects/bind9!8459
2023-11-02 09:30:31 +00:00
Tom Krizek
8c8ff7faea
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.

(cherry picked from commit ba25ecd2d2)
2023-11-02 10:02:51 +01:00
Michał Kępień
9199555db9 Merge branch 'michal/add-a-release-signing-job-to-gitlab-ci-9.18' into 'bind-9.18'
[9.18] Add a release signing job to GitLab CI

See merge request isc-projects/bind9!8457
2023-11-02 06:36:22 +00:00
Michał Kępień
dd217e1acf
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.

(cherry picked from commit a3a91a1557)
2023-11-02 07:23:38 +01:00
Michał Kępień
8f1dd1751e Merge branch '4404-improve-stability-of-the-jemalloc-workaround' into 'bind-9.18'
Improve stability of the jemalloc workaround

See merge request isc-projects/bind9!8453
2023-11-01 17:04:36 +00:00
Michał Kępień
e974f98eb4
Improve stability of the jemalloc workaround
When jemalloc is linked into BIND 9 binaries (rather than preloaded or
used as the system allocator), depending on the decisions made by the
linker, the malloc() symbol may be resolved to a non-jemalloc
implementation at runtime.  Such a scenario foils the workaround added
in commit 2da371d005 as it relies on the
jemalloc implementation of malloc() to be executed.

Handle the above scenario properly by calling mallocx() explicitly
instead of relying on the runtime resolution of the malloc() symbol.
Use trivial wrapper functions to avoid the need to copy multiple #ifdef
lines from lib/isc/mem.c to lib/isc/trampoline.c.  Using a simpler
alternative, e.g. calling isc_mem_create() & isc_mem_destroy(), was
already considered before and rejected, as described in the log message
for commit 2da371d005.

ADJUST_ZERO_ALLOCATION_SIZE() is only used in isc__mem_free_noctx() to
concisely avoid compilation warnings about its 'size' parameter not
being used when building against jemalloc < 4.0.0 (as sdallocx() is then
redefined to dallocx(), which has a different signature).
2023-11-01 18:04:07 +01:00
Tom Krizek
3488ada94b Merge branch 'tkrizek/perf-tests-shotgun-9.18' into 'bind-9.18'
[9.18] Add DNS Shotgun performance tests to nightly pipelines

See merge request isc-projects/bind9!8452
2023-11-01 14:18:14 +00:00
Tom Krizek
a303fa25ac
Update release checklist
Add a step to verify results of shotgun:* jobs.

(cherry picked from commit 322dfbf6a9)
2023-11-01 14:41:40 +01:00
Tom Krizek
61f1305b4b
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.

(cherry picked from commit c7fcb1ca60)
2023-11-01 14:39:31 +01:00
Tom Krizek
1ff49ab199
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.

(cherry picked from commit ff32421a64)
2023-11-01 14:39:31 +01:00
Tom Krizek
4ad89d8e34
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.

(cherry picked from commit ef4e2d2964)
2023-11-01 14:39:29 +01:00
Matthijs Mekking
51f3b118dd Merge branch '4355-serve-stale-unexpected-recursion-9.18' into 'bind-9.18'
[9.18] Don't ignore authoritative local zones when in serve-stale mode

See merge request isc-projects/bind9!8446
2023-10-31 13:32:52 +00:00
Matthijs Mekking
87e21a716e Add release note and CHANGES for #4355
(cherry picked from commit ac19d43a32)
2023-10-31 14:01:21 +01:00
Matthijs Mekking
76c9019403 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.

(cherry picked from commit 2322425016)
2023-10-31 13:52:08 +01:00
Matthijs Mekking
784b096098 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.

(cherry picked from commit e196ba6168)
2023-10-31 13:52:01 +01:00
Michal Nowak
15f664171d Merge branch 'mnowak/openbsd-7.4-9.18' into 'bind-9.18'
[9.18] Add OpenBSD 7.4

See merge request isc-projects/bind9!8434
2023-10-30 12:18:34 +00:00
Michal Nowak
0c3bd09595
Add OpenBSD 7.4
(cherry picked from commit f8733fc051)
2023-10-30 12:12:50 +01:00
Mark Andrews
3a7c7693d7 Merge branch '4393-only-declare-engine-when-used' into 'bind-9.18'
Resolve "error: variable 'engine' set but not used on OpenBSD 7.4"

See merge request isc-projects/bind9!8436
2023-10-27 05:56:25 +00:00
Mark Andrews
8b11061b91 Only declare 'engine' if it is used
Move the declaration of 'engine' within the appropriate #if/#endif
block.  Remove the UNUSED(engine) from the #else block.
2023-10-27 10:49:38 +11:00
Arаm Sаrgsyаn
9c50e0fb8d Merge branch 'aram/fix-lock-file-option-and--X-argument-issues-9.18' into 'bind-9.18'
[9.18] Fix assertion failure when using -X none and lock-file in configuration

See merge request isc-projects/bind9!8433
2023-10-26 13:49:30 +00:00
Aram Sargsyan
08de15e5f2 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.

(cherry picked from commit 41945b32d7)
2023-10-26 13:12:57 +00:00
Aram Sargsyan
4ed32424c8 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.

(cherry picked from commit bc891e749f)
2023-10-26 13:12:52 +00:00
Aram Sargsyan
1bff704681 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'.

(cherry picked from commit fc2dd09390)
2023-10-26 13:12:47 +00:00
Ondřej Surý
cdd68a3700 Merge branch '4386-fix-assertion-failure-when-using--X-named-option-9.18' into 'bind-9.18'
[9.18] Fix assertion failure when using -X and lock-file in configuration

See merge request isc-projects/bind9!8430
2023-10-26 12:07:54 +00:00
Ondřej Surý
cdf7c34a58
Add CHANGES and release note for [GL #4386]
(cherry picked from commit 8294a43acf)
2023-10-26 13:59:46 +02:00
Ondřej Surý
d9fc95f842
Fix assertion failure when using -X and lock-file in configuration
When 'lock-file <lockfile1>' was used in configuration at the same time
as using `-X <lockfile2>` in `named` invocation, there was an invalid
logic that would lead to a double isc_mem_strdup() call on the
<lockfile2> value.

Skip the second allocation if `lock-file` is being used in
configuration, so the <lockfile2> is used only single time.

(cherry picked from commit 4f68def5e9)
2023-10-26 13:59:46 +02:00
Tom Krizek
bf330dc3cc Merge branch 'tkrizek/shfmt-9.18' into 'bind-9.18'
[9.18] Enforce shell script codestyle with shfmt

See merge request isc-projects/bind9!8429
2023-10-26 11:59:05 +00:00
Tom Krizek
914654efeb
Ignore shell script formatting in git blame
(cherry picked from commit c8fb0b48e0)
2023-10-26 13:07:44 +02:00
Tom Krizek
5bd67594b1
Add editorconfig file for shell style
(cherry picked from commit bebdfa13be)
2023-10-26 13:06:55 +02:00
Tom Krizek
a17230fefb
Run shfmt in CI
Ensure our shell script format stays consistent in the future.

(cherry picked from commit b6505ff573)
2023-10-26 13:06:53 +02:00
Tom Krizek
b8b9b4ac2c
Reformat shell scripts with shfmt
All changes in this commit were automated using the command:

shfmt -w -i 2 -ci -bn . $(find . -name "*.sh.in")

By default, only *.sh and files without extension are checked, so
*.sh.in files have to be added additionally. (See mvdan/sh#944)

(manually replayed commit 4cb8b13987)
2023-10-26 13:05:00 +02:00
Mark Andrews
fd2e6f90a4 Merge branch '4387-lock-file-is-deleted-on-exit-even-if-lock-acquisition-failed-bind-9.18' into 'bind-9.18'
[9.18] Resolve "lock file is deleted on exit even if lock acquisition failed"

See merge request isc-projects/bind9!8424
2023-10-26 07:47:14 +00:00