Commit Graph
35763 Commits
Author SHA1 Message Date
Tom Krizek 1cf9d6494a Merge branch 'tkrizek/resolver-test-export-home-9.16' into 'bind-9.16'
[9.16] Export variable in resolver system test

See merge request isc-projects/bind9!8899
2024-03-21 14:25:31 +00:00
Tom Krizek 0c50eb1ac3 Export variable in resolver system test
Variable assignment when calling subroutines might not be portable.
Notably, it doesn't work with FreeBSD shell, where the value of HOME
would be ignored in this case.

Since the commands are already executed in a subshell, export the HOME
variable to ensure it is properly handled in all shells.

(cherry picked from commit 86a192cece)
2024-03-21 14:16:16 +01:00
Michał Kępień 7e2af7a871 Merge branch 'michal/add-pipelines-to-ci-job-trigger-lists-9.16' into 'bind-9.16'
[9.16] Add "pipelines" to CI job trigger lists

See merge request isc-projects/bind9!8897
2024-03-21 11:33:00 +00:00
Michał Kępień 42b75e7759 Add "pipelines" to CI job trigger lists
To enable GitLab CI jobs in other projects to trigger pipelines in the
BIND 9 project using their CI_JOB_TOKEN, add "pipelines" to the relevant
GitLab CI job trigger lists.

(cherry picked from commit a4e9ce500a)
2024-03-21 12:31:52 +01:00
Petr Špaček ca4724044c Merge branch '4649-work-around-a-tsan-issue-with-newer-kernels-9.16' into 'bind-9.16'
[9.16] Work around a TSAN issue with newer kernels

See merge request isc-projects/bind9!8895
2024-03-21 08:40:11 +00:00
Michał KępieńandPetr Špaček c69147fb3b Work around a TSAN issue with newer kernels
The ThreadSanitizer version currently available from Fedora 39
repositories is unable to cope with very high ASLR entropy, which is the
default in some recent Linux distributions [1].  This causes all
TSAN-enabled builds to fail on the affected systems with an error like:

    FATAL: ThreadSanitizer: unexpected memory mapping 0x7d00e0772000-0x7d00e0c00000

Work around the problem by reducing ASLR entropy for all TSAN-enabled
builds until the problem is resolved upstream.

[1] https://github.com/google/sanitizers/issues/1716

(cherry picked from commit 05b09f2b5b)
2024-03-21 09:09:26 +01:00
Mark Andrews f3f7a2fddd Merge branch '4580-add-resolver-arpa-to-the-built-in-empty-zones-bind-9.16' into 'bind-9.16'
[9.16] Resolve "Add resolver.arpa to the built in empty zones"

See merge request isc-projects/bind9!8891
2024-03-21 00:51:23 +00:00
Mark Andrews adfe4e8b86 Add release note for [GL #4580]
(cherry picked from commit ecb043fc7b)
2024-03-21 11:23:39 +11:00
Mark Andrews db5f356111 Add CHANGES entry for [GL #4580]
(cherry picked from commit d12c238750)
2024-03-21 11:23:37 +11:00
Mark Andrews 32d295e1dd Add RESOLVER.ARPA to the built in empty zones
RFC 9462 adds RESOLVER.ARPA to the list of built in empty zones.

(cherry picked from commit 49561277de)
2024-03-21 11:23:05 +11:00
Michał Kępień c340f9d6e4 Merge tag 'v9.16.49' into bind-9.16 2024-03-20 14:37:45 +01:00
Michal Nowak a3476f77f2 Merge branch 'mnowak/freebsd-13.3-9.16' into 'bind-9.16'
[9.16] Add FreeBSD 13.3

See merge request isc-projects/bind9!8877
2024-03-18 16:04:08 +00:00
Michal Nowak 99998fe220 Add FreeBSD 13.3
(cherry picked from commit 9019985d2d)
2024-03-18 16:05:03 +01:00
Michal Nowak 9baa7c3a79 Merge branch 'mnowak/move-stress-tests-to-freebsd-13-9.16' into 'bind-9.16'
[9.16] FreeBSD "stress" tests now run on FreeBSD 13.2

See merge request isc-projects/bind9!8873
2024-03-15 11:20:32 +00:00
Michal Nowak 0be7521f63 FreeBSD "stress" tests now run on FreeBSD 13.2
(cherry picked from commit 176bf877e1)
2024-03-15 12:17:04 +01:00
Matthijs Mekking 69ea55bcb4 Merge branch 'matthijs-add-rfc-9460-to-arm-v9.16' into 'bind-9.16'
[9.16] Add RFC 9460 to list of supported RFCs

See merge request isc-projects/bind9!8866
2024-03-14 13:29:27 +00:00
Matthijs Mekking f59ed64cd8 Add RFC 9460 to list of supported RFCs
The specification was implemented (#1132) when it was a draft. Now that
it is RFC, add the RFC to the list of supported RFCs.

(cherry picked from commit 5b5f43babc)
2024-03-14 13:57:42 +01:00
Mark Andrews 23d8f148b3 Merge branch '4633-undefined-behaviour-in-rdataslab-c-bind-9.16' into 'bind-9.16'
[9.16] Resolve "Undefined behaviour in rdataslab.c"

See merge request isc-projects/bind9!8861
2024-03-14 00:50:22 +00:00
Mark Andrews 3bcd6385d4 Only call memmove if the rdata length is non zero
This avoids undefined behaviour on zero length rdata where the
data pointer is NULL.

(cherry picked from commit 228cc557fe)
2024-03-14 11:06:25 +11:00
Michał Kępień 93b877527c Merge branch 'michal/set-up-version-and-release-notes-for-bind-9.16.50' into 'bind-9.16'
Set up version and release notes for BIND 9.16.50

See merge request isc-projects/bind9!8858
2024-03-13 08:59:32 +00:00
Michał Kępień ab5c429349 Set up release notes for BIND 9.16.50 2024-03-13 09:56:26 +01:00
Michał Kępień 0c2b5b41b5 Update BIND version to 9.16.50-dev 2024-03-13 09:56:26 +01:00
Matthijs Mekking a1ac1e7cf2 Merge branch '4625-broken-trust-chain-on-corner-case-secure-chain-fixup-keytrap-test-only-v9_16' into 'bind-9.16'
[9.16] Test secure chain that includes inactive KSK

See merge request isc-projects/bind9!8851
2024-03-12 12:48:58 +00:00
Matthijs Mekking 0040947ae7 Test secure chain that includes inactive KSK
Add a regression test case for the scenario where a secure chain of
trust includes an inactive KSK, that is a KSK that is not signing the
DNSKEY RRset.

(cherry picked from commit f0bfd276e0)
2024-03-12 11:50:08 +01:00
Michał Kępień d5b3d64b8b Merge branch 'prep-release' into v9.16.49-release v9.16.49 2024-03-12 09:43:03 +01:00
Michał Kępień 6aae6e2fb0 prep 9.16.49 2024-03-12 09:42:34 +01:00
Michał Kępień 4fd6f0cac2 Merge branch 'pspacek/prepare-documentation-for-bind-9.16.49' into 'v9.16.49-release'
Prepare documentation for BIND 9.16.49

See merge request isc-private/bind9!672
2024-03-12 08:41:23 +00:00
Petr ŠpačekandMichał Kępień 5f6ab3d5e1 Prepare release notes for BIND 9.16.49 2024-03-12 09:40:29 +01:00
Petr Špaček 30c63061af Merge branch '4621-account-for-changes-to-struct-dns_rbtnode-9.16.49' into 'v9.16.49-release'
[9.16.49] Account for changes to struct dns_rbtnode

See merge request isc-projects/bind9!8841
2024-03-07 09:24:06 +00:00
Michał Kępień 95e0ccf683 Merge branch '4621-account-for-changes-to-struct-dns_rbtnode' into 'bind-9.16'
Account for changes to struct dns_rbtnode

See merge request isc-projects/bind9!8840
2024-03-07 09:02:45 +00:00
Michał Kępień b138931fc0 Account for changes to struct dns_rbtnode
Commit eba7fb5f9f modified the definition
of struct dns_rbtnode.  Doing that changes the layout of map-format zone
files.  Bump MAPAPI and update the offsets used in map-format zone file
checks in the "masterformat" system test, as these changes were
inadvertently omitted from the aforementioned change.

(cherry picked from commit 52fe0b6be7)
2024-03-07 09:57:48 +01:00
Michał Kępień 52fe0b6be7 Account for changes to struct dns_rbtnode
Commit 540a5b5a2c modified the definition
of struct dns_rbtnode.  Doing that changes the layout of map-format zone
files.  Bump MAPAPI and update the offsets used in map-format zone file
checks in the "masterformat" system test, as these changes were
inadvertently omitted from the aforementioned change.
2024-03-07 09:42:38 +01:00
Michał Kępień 834c1cee09 Merge branch '4621-fix-cache-pruning-after-rndc-flush-9.16.49' into 'v9.16.49-release'
[9.16.49] Move the task creation into cache_create_db()

See merge request isc-projects/bind9!8836
2024-03-06 18:28:43 +00:00
Ondřej SurýandMichał Kępień b69383b9c3 Add CHANGES and release note for [GL #4621]
(cherry picked from commit bde5e18cb1)
2024-03-06 19:17:32 +01:00
Ondřej SurýandMichał Kępień 5f98eba608 Move the task creation into cache_create_db()
The dns_cache_flush() drops the old database and creates a new one, but
it forgets to create the task(s) that runs the node pruning and cleaning
the rbtdb when flushing it next time.  This causes the cleaning to skip
cleaning the parent nodes (with .down == NULL) leading to increased
memory usage over time until the database is unable to keep up and just
stays overmem all the time.

(cherry picked from commit d4bc4e5cc6)
2024-03-06 19:17:32 +01:00
Ondřej SurýandMichał Kępień eba7fb5f9f Create a second pruning task for rbtdb with unlimited quantum
Previously, rbtdb->task had quantum of 1 because it was originally used
just for freeing RBTDB contents, which can happen on a "best effort"
basis (does not need to be prioritized).  However, when tree pruning was
implemented, it also started sending events to that task, enabling the
latter to become clogged up with a significant event backlog because it
only pruned a single RBTDB node per event.

To prioritize tree pruning (as it is necessary for enforcing the
configured memory use limit for the cache memory context), create a
second task with a virtually unlimited quantum (UINT_MAX) and send the
tree-pruning events to this new task, to ensure that all nodes scheduled
for pruning will be processed before further nodes are queued in a
similar fashion.

This change enables dropping the prunenodes list and restoring the
originally-used logic that allocates and sends a separate event for each
node to prune.

(cherry picked from commit 540a5b5a2c)
2024-03-06 19:17:32 +01:00
Ondřej SurýandMichał Kępień a548312191 Restore the parent cleaning logic in prune_tree()
Reconstruct the variant of the prune_tree() parent cleaning to consider
all elibible parents in a single loop as we were doing before all the
changes that led to this commit.

Update code comments so that they more precisely describe what the
relevant bits of code actually do.

(cherry picked from commit 12c42a6c07)
2024-03-06 19:17:32 +01:00
Michał Kępień 336096cdd1 Merge branch '4621-fix-cache-pruning-after-rndc-flush-9.16' into 'bind-9.16'
[9.16] Move the task creation into cache_create_db()

See merge request isc-projects/bind9!8831
2024-03-06 18:16:26 +00:00
Ondřej SurýandMichał Kępień bde5e18cb1 Add CHANGES and release note for [GL #4621]
(cherry picked from commit 79ee08c337)
2024-03-06 18:43:49 +01:00
Ondřej SurýandMichał Kępień d4bc4e5cc6 Move the task creation into cache_create_db()
The dns_cache_flush() drops the old database and creates a new one, but
it forgets to create the task(s) that runs the node pruning and cleaning
the rbtdb when flushing it next time.  This causes the cleaning to skip
cleaning the parent nodes (with .down == NULL) leading to increased
memory usage over time until the database is unable to keep up and just
stays overmem all the time.

(cherry picked from commit 79040a669c)
2024-03-06 18:43:49 +01:00
Ondřej SurýandMichał Kępień 540a5b5a2c Create a second pruning task for rbtdb with unlimited quantum
Previously, rbtdb->task had quantum of 1 because it was originally used
just for freeing RBTDB contents, which can happen on a "best effort"
basis (does not need to be prioritized).  However, when tree pruning was
implemented, it also started sending events to that task, enabling the
latter to become clogged up with a significant event backlog because it
only pruned a single RBTDB node per event.

To prioritize tree pruning (as it is necessary for enforcing the
configured memory use limit for the cache memory context), create a
second task with a virtually unlimited quantum (UINT_MAX) and send the
tree-pruning events to this new task, to ensure that all nodes scheduled
for pruning will be processed before further nodes are queued in a
similar fashion.

This change enables dropping the prunenodes list and restoring the
originally-used logic that allocates and sends a separate event for each
node to prune.

(cherry picked from commit 231b2375e5)
2024-03-06 18:43:49 +01:00
Ondřej SurýandMichał Kępień 12c42a6c07 Restore the parent cleaning logic in prune_tree()
Reconstruct the variant of the prune_tree() parent cleaning to consider
all elibible parents in a single loop as we were doing before all the
changes that led to this commit.

Update code comments so that they more precisely describe what the
relevant bits of code actually do.

(cherry picked from commit 454c75a33a)
2024-03-06 18:43:49 +01:00
Michał Kępień dc50c0f978 Merge branch '4596-check-the-prunelink-member-of-the-correct-node-9.16.49' into 'v9.16.49-release'
[9.16.49] Check the prunelink member of the correct node

See merge request isc-projects/bind9!8815
2024-03-02 05:39:32 +00:00
Michał Kępień 0b59306166 Check the prunelink member of the correct node
Commit 37101c7c8a checks the prunelink
member of the node that was just pruned, not its parent node that was
intended to be examined.  Fix by checking the prunelink member of the
parent node, so that adding the latter to its relevant prunenodes list
twice is properly guarded against.

(cherry picked from commit 7d9be24bb1)
2024-03-02 06:37:53 +01:00
Michał Kępień dc7eec86fb Merge branch '4596-check-the-prunelink-member-of-the-correct-node' into 'bind-9.16'
[9.16] Check the prunelink member of the correct node

See merge request isc-projects/bind9!8814
2024-03-02 05:37:21 +00:00
Michał Kępień 7d9be24bb1 Check the prunelink member of the correct node
Commit 4b6fc97af6 checks the prunelink
member of the node that was just pruned, not its parent node that was
intended to be examined.  Fix by checking the prunelink member of the
parent node, so that adding the latter to its relevant prunenodes list
twice is properly guarded against.
2024-03-02 06:36:37 +01:00
Evan Hunt 5095a05c13 Merge branch 'each-move-rrl-broken-config-test-case-to-checkconf-bind-9.18-bind-9.16' into 'bind-9.16'
[9.16] Move RRL broken-config check to checkconf

See merge request isc-projects/bind9!8813
2024-03-02 01:11:18 +00:00
Evan Hunt 0a019e8f9e move RRL broken-config check to checkconf
the RRL test included a test case that tried to start named with
a broken configuration.  the same error could be found with
named-checkconf, so it should have been tested in the checkconf
system test.

(cherry picked from commit 05398c1488)
(cherry picked from commit 046b62bf02)
2024-03-01 16:36:51 -08:00
Michał Kępień 0640429444 Merge branch '4596-do-not-re-add-a-node-to-the-same-prunenodes-list-9.16.49' into 'v9.16.49-release'
[9.16.49] Do not re-add a node to the same prunenodes list

See merge request isc-projects/bind9!8811
2024-03-01 17:22:32 +00:00
Michał Kępień 37101c7c8a Do not re-add a node to the same prunenodes list
If a node cleaned up by prune_tree() happens to belong to the same node
bucket as its parent, the latter is directly appended to the prunenodes
list currently processed by prune_tree().  However, the relevant code
branch does not account for the fact that the parent might already be on
the list it is trying to append it to.  Fix by only calling
ISC_LIST_APPEND() for parent nodes not yet added to their relevant
prunenodes list.

(cherry picked from commit 4b6fc97af6)
2024-03-01 18:19:39 +01:00