]> git.ipfire.org Git - thirdparty/bind9.git/log
thirdparty/bind9.git
4 years agoAdd checkds log notice
Matthijs Mekking [Thu, 24 Jun 2021 14:26:06 +0000 (16:26 +0200)] 
Add checkds log notice

When the checkds published/withdrawn is activated, log a notice. Can
be used for testing, but also operationally useful.

4 years agoAdd key metadata for DS published/withdrawn
Matthijs Mekking [Thu, 24 Jun 2021 14:22:22 +0000 (16:22 +0200)] 
Add key metadata for DS published/withdrawn

In order to keep track of how many parents have the DS for a given key
published or withdrawn, keep a counter.

4 years agoAdd missing VERIFY export
Matthijs Mekking [Thu, 24 Jun 2021 14:17:00 +0000 (16:17 +0200)] 
Add missing VERIFY export

This makes the 'dnssec-verify' tool visible to the test environment.

4 years agoSlightly improved dnssec tools fatal message
Matthijs Mekking [Thu, 24 Jun 2021 14:15:38 +0000 (16:15 +0200)] 
Slightly improved dnssec tools fatal message

Return the offending key state identifier.

4 years agoAdd helpful function 'dns_zone_getdnsseckeys'
Matthijs Mekking [Wed, 19 May 2021 13:32:56 +0000 (15:32 +0200)] 
Add helpful function 'dns_zone_getdnsseckeys'

This code gathers DNSSEC keys from key files and from the DNSKEY RRset.
It is used for the 'rndc dnssec -status' command, but will also be
needed for "checkds". Turn it into a function.

4 years agoAdd "parental-source[-v6]" config option
Matthijs Mekking [Fri, 14 May 2021 09:33:51 +0000 (11:33 +0200)] 
Add "parental-source[-v6]" config option

Similar to "notify-source" and "transfer-source", add options to
set the source address when querying parental agents for DS records.

4 years agoAdd dst_key_role function
Matthijs Mekking [Wed, 12 May 2021 09:09:33 +0000 (11:09 +0200)] 
Add dst_key_role function

Change the static function 'get_ksk_zsk' to a library function that
can be used to determine the role of a dst_key. Add checks if the
boolean parameters to store the role are not NULL. Rename to
'dst_key_role'.

4 years agoParse "parental-agents" configuration
Matthijs Mekking [Tue, 11 May 2021 12:46:38 +0000 (14:46 +0200)] 
Parse "parental-agents" configuration

Parse the new "parental-agents" configuration and store it in the zone
structure.

4 years agoMake "primaries" config parsing generic
Matthijs Mekking [Tue, 11 May 2021 12:43:02 +0000 (14:43 +0200)] 
Make "primaries" config parsing generic

Make the code to parse "primaries" configuration more generic so
it can be reused for "parental-agents".

4 years agoRemove stray "setup zone" in kasp system setup
Matthijs Mekking [Tue, 11 May 2021 12:40:23 +0000 (14:40 +0200)] 
Remove stray "setup zone" in kasp system setup

4 years agoAdd checkds system test
Matthijs Mekking [Tue, 11 May 2021 12:40:04 +0000 (14:40 +0200)] 
Add checkds system test

Add a Pytest based system test for the 'checkds' feature. There is
one nameserver (ns9, because it should be started the latest) that
has configured several zones with dnssec-policy. The zones are set
in such a state that they are waiting for DS publication or DS
withdrawal.

Then several other name servers act as parent servers that either have
the DS for these published, or not. Also one server in the mix is
to test a badly configured parental-agent.

There are tests for DS publication, DS publication error handling,
DS withdrawal and DS withdrawal error handling.

The tests ensures that the zone is DNSSEC valid, and that the
DSPublish/DSRemoved key metadata is set (or not in case of the error
handling).

It does not test if the rollover continues, this is already tested in
the kasp system test (that uses 'rndc -dnssec checkds' to set the
DSPublish/DSRemoved key metadata).

4 years agoCheck parental-agents config
Matthijs Mekking [Fri, 7 May 2021 12:27:25 +0000 (14:27 +0200)] 
Check parental-agents config

Add checks for "parental-agents" configuration, checking for the option
being at wrong type of zone (only allowed for primaries and
secondaries), duplicate definitions, duplicate references, and
undefined parental clauses (the name referenced in the zone clause
does not have a matching "parental-agent" clause).

4 years agoAdd parental-agents configuration
Matthijs Mekking [Fri, 7 May 2021 09:36:40 +0000 (11:36 +0200)] 
Add parental-agents configuration

Introduce a way to configure parental agents that can be used to
query DS records to be used in automatic key rollovers.

4 years agoChange primaries objects to remote-servers
Matthijs Mekking [Fri, 7 May 2021 09:31:15 +0000 (11:31 +0200)] 
Change primaries objects to remote-servers

Change the primaries configuration objects to the more generic
remote-servers, that we can reuse for other purposes (such as
parental-agents).

4 years agoMerge branch '2797-cfg-net-buf-sizes' into 'main'
Petr Špaček [Mon, 28 Jun 2021 10:15:12 +0000 (10:15 +0000)] 
Merge branch '2797-cfg-net-buf-sizes' into 'main'

fix tcp-send-buffer, udp-receive-buffer, udp-send-buffer limits

Closes #2797

See merge request isc-projects/bind9!5235

4 years agofix tcp-send-buffer, udp-receive-buffer, udp-send-buffer limits
Petr Špaček [Fri, 25 Jun 2021 15:53:26 +0000 (17:53 +0200)] 
fix tcp-send-buffer, udp-receive-buffer, udp-send-buffer limits

4 years agoMerge branch '2791-busy-wait-setnsec3param-shutdown-hang' into 'main'
Matthijs Mekking [Mon, 28 Jun 2021 09:01:02 +0000 (09:01 +0000)] 
Merge branch '2791-busy-wait-setnsec3param-shutdown-hang' into 'main'

Fix setnsec3param shutdown hang

Closes #2791

See merge request isc-projects/bind9!5219

4 years agoAdd changes for [#2791]
Matthijs Mekking [Wed, 23 Jun 2021 09:58:54 +0000 (11:58 +0200)] 
Add changes for [#2791]

4 years agoFix setnsec3param hang on shutdown
Matthijs Mekking [Wed, 23 Jun 2021 09:20:43 +0000 (11:20 +0200)] 
Fix setnsec3param hang on shutdown

When performing the 'setnsec3param' task, zones that are not loaded will have
their task rescheduled. We should do this only if the zone load is still
pending, this prevents zones that failed to load get stuck in a busy wait and
causing a hang on shutdown.

4 years agoAdd configuration that causes setnsec3param hang
Matthijs Mekking [Wed, 23 Jun 2021 09:17:02 +0000 (11:17 +0200)] 
Add configuration that causes setnsec3param hang

Add a zone to the configuration file that uses NSEC3 with dnssec-policy
and fails to load. This will cause setnsec3param to go into a busy wait
and will cause a hang on shutdown.

4 years agoMerge branch 'ondrej/fix-the-CFLAGS-order-in-tests' into 'main'
Ondřej Surý [Thu, 24 Jun 2021 13:49:03 +0000 (13:49 +0000)] 
Merge branch 'ondrej/fix-the-CFLAGS-order-in-tests' into 'main'

Move the include Makefile.tests to the bottom of Makefile.am(s)

See merge request isc-projects/bind9!4927

4 years agoMove the include Makefile.tests to the bottom of Makefile.am(s)
Ondřej Surý [Wed, 21 Apr 2021 12:22:18 +0000 (14:22 +0200)] 
Move the include Makefile.tests to the bottom of Makefile.am(s)

The Makefile.tests was modifying global AM_CFLAGS and LDADD and could
accidentally pull /usr/include to be listed before the internal
libraries, which is known to cause problems if the headers from the
previous version of BIND 9 has been installed on the build machine.

4 years agoMerge branch 'ondrej/remove-the-cvs-cruft' into 'main'
Ondřej Surý [Thu, 24 Jun 2021 09:45:48 +0000 (09:45 +0000)] 
Merge branch 'ondrej/remove-the-cvs-cruft' into 'main'

Remove unused or outdated utils, developer and design documentation

Closes #2745

See merge request isc-projects/bind9!5131

4 years agoRemove HISTORY file
Matthijs Mekking [Wed, 2 Jun 2021 10:26:56 +0000 (12:26 +0200)] 
Remove HISTORY file

We should drop the HISTORY file because it's confusing and the same
information is covered by the release notes for .0 releases (or at
least they should be).

Remove references to the HISTORY file, update the README to tell
people go look somewhere else.

4 years agoAdd steps to update copyrights
Matthijs Mekking [Wed, 2 Jun 2021 13:42:29 +0000 (15:42 +0200)] 
Add steps to update copyrights

This was written down in the outdated doc/dev/release documentation.
Since the rest of that file can go, add these steps to a separate file
and update it to current standards (e.g. use git commands).

4 years agoRemove unused or outdated utils, developer and design documentation
Ondřej Surý [Wed, 2 Jun 2021 10:48:18 +0000 (12:48 +0200)] 
Remove unused or outdated utils, developer and design documentation

The util/, doc/design/, and doc/dev/ directories included couple of
tools or documents there were completely outdated because they either
refered the the VCS we no longer use (cvs) or described processes that
have been redesigned and they are documented elsewhere.

4 years agoMerge branch '2780-checkconf-dnssec-policy-inheritance' into 'main'
Matthijs Mekking [Thu, 24 Jun 2021 08:40:52 +0000 (08:40 +0000)] 
Merge branch '2780-checkconf-dnssec-policy-inheritance' into 'main'

Fix checkconf dnssec-policy inheritance bug

Closes #2780

See merge request isc-projects/bind9!5199

4 years agoAdd change and release note for [#2780]
Matthijs Mekking [Fri, 18 Jun 2021 09:03:39 +0000 (11:03 +0200)] 
Add change and release note for [#2780]

4 years agoFix checkconf dnssec-policy inheritance bug
Matthijs Mekking [Fri, 18 Jun 2021 09:00:23 +0000 (11:00 +0200)] 
Fix checkconf dnssec-policy inheritance bug

Similar to #2778, the check for 'dnssec-policy' failed to account for
it being inheritable.

4 years agoMerge branch '2183-tweak-the-safe-edns-udp-size-to-1432' into 'main'
Ondřej Surý [Wed, 23 Jun 2021 19:00:59 +0000 (19:00 +0000)] 
Merge branch '2183-tweak-the-safe-edns-udp-size-to-1432' into 'main'

Change the safe edns-udp-size from 1400 to 1432

Closes #2183

See merge request isc-projects/bind9!5228

4 years agoChange the safe edns-udp-size from 1400 to 1432
Ondřej Surý [Wed, 23 Jun 2021 18:54:20 +0000 (20:54 +0200)] 
Change the safe edns-udp-size from 1400 to 1432

When backporting the Don't Fragment UDP socket option, it was noticed
that the edns-udp-size probing uses 1432 as one of the values to be
probed and the documentation would be recommending 1400 as the safe
value.  As the safe value can be from the 1400-1500 interval, the
documentation has been changed to match the probed value, so we do not
skip it.

4 years agoMerge branch '2758-nsupdate-refused' into 'main'
Evan Hunt [Wed, 23 Jun 2021 16:01:55 +0000 (16:01 +0000)] 
Merge branch '2758-nsupdate-refused' into 'main'

nsupdate: try next server on REFUSED

Closes #2758

See merge request isc-projects/bind9!5158

4 years agoCHANGES
Evan Hunt [Wed, 9 Jun 2021 21:58:48 +0000 (14:58 -0700)] 
CHANGES

4 years agoadd test for server failover on REFUSED
Evan Hunt [Wed, 9 Jun 2021 21:19:46 +0000 (14:19 -0700)] 
add test for server failover on REFUSED

- add an 'nsupdate -C' option to override resolv.conf file for nsupdate
- set resolv.conf to use two test servers, the first one of which will
  return REFUSED for a query for 'example'.

4 years agonsupdate: try next server on REFUSED
Evan Hunt [Wed, 9 Jun 2021 20:37:20 +0000 (13:37 -0700)] 
nsupdate: try next server on REFUSED

when nsupdate sends an SOA query to a resolver, if it fails
with REFUSED, nsupdate will now try the next server rather than
aborting the update completely.

4 years agoMerge branch '2790-properly-handle-oversized-messages-in-isc_nm_send' into 'main'
Ondřej Surý [Wed, 23 Jun 2021 15:55:52 +0000 (15:55 +0000)] 
Merge branch '2790-properly-handle-oversized-messages-in-isc_nm_send' into 'main'

Handle `UV_EMSGSIZE` in the uv_udp_send() callback

Closes #2790

See merge request isc-projects/bind9!5212

4 years agoAdd CHANGES and release note for [GL #2790]
Ondřej Surý [Wed, 23 Jun 2021 06:56:26 +0000 (08:56 +0200)] 
Add CHANGES and release note for [GL #2790]

4 years agoDisable IP fragmentation on the UDP sockets
Ondřej Surý [Tue, 22 Jun 2021 14:12:44 +0000 (16:12 +0200)] 
Disable IP fragmentation on the UDP sockets

In DNS Flag Day 2020, we started setting the DF (Don't Fragment socket
option on the UDP sockets.  It turned out, that this code was incomplete
leading to dropping the outgoing UDP packets.

This has been now remedied, so it is possible to disable the
fragmentation on the UDP sockets again as the sending error is now
handled by sending back an empty response with TC (truncated) bit set.

This reverts commit 66eefac78c92b64b6689a1655cc677a2b1d13496.

4 years agoHandle UDP send errors when sending DNS message larger than MTU
Evan Hunt [Tue, 22 Jun 2021 15:01:35 +0000 (17:01 +0200)] 
Handle UDP send errors when sending DNS message larger than MTU

When the fragmentation is disabled on UDP sockets, the uv_udp_send()
call can fail with UV_EMSGSIZE for messages larger than path MTU.
Previously, this error would end with just discarding the response.  In
this commit, a proper handling of such case is added and on such error,
a new DNS response with truncated bit set is generated and sent to the
client.

This change allows us to disable the fragmentation on the UDP
sockets again.

4 years agoMerge branch 'matthijs-2778-more-tests' into 'main'
Matthijs Mekking [Wed, 23 Jun 2021 15:30:04 +0000 (15:30 +0000)] 
Merge branch 'matthijs-2778-more-tests' into 'main'

Add more test cases for #2778

See merge request isc-projects/bind9!5198

4 years agoAdd more test cases for #2778
Matthijs Mekking [Fri, 18 Jun 2021 08:30:56 +0000 (10:30 +0200)] 
Add more test cases for #2778

Add three more test cases that detect a configuration error if the
key-directory is inherited but has the same value for a zone in a
different view with a deviating DNSSEC policy.

4 years agoMerge branch '2788-add-rbtdb-ownercase-unittest' into 'main'
Ondřej Surý [Wed, 23 Jun 2021 15:13:09 +0000 (15:13 +0000)] 
Merge branch '2788-add-rbtdb-ownercase-unittest' into 'main'

Add rbtdb setownercase/getownercase unit test

Closes #2788

See merge request isc-projects/bind9!5223

4 years agoAdd rbtdb setownercase/getownercase unit test
Ondřej Surý [Wed, 23 Jun 2021 13:29:22 +0000 (15:29 +0200)] 
Add rbtdb setownercase/getownercase unit test

This commit adds a unittest that tests private rdataset_getownercase()
and rdataset_setownercase() methods from rbtdb.c.  The test setups
minimal mock dns_rbtdb_t and dns_rbtdbnode_t data structures.

As the rbtdb methods are generally hidden behind layers and layers, we
include the "rbtdb.c" directly from rbtdb_test.c, and thus we can use
the private methods and data structures directly.  This also opens up
opportunity to add more unittest for the rbtdb private functions without
going through all the layers.

4 years agoMerge branch '2765-servestale-intermittent-test-failure-144' into 'main'
Matthijs Mekking [Wed, 23 Jun 2021 13:10:28 +0000 (13:10 +0000)] 
Merge branch '2765-servestale-intermittent-test-failure-144' into 'main'

Resolve intermittent serve-stale test failure (144)

Closes #2765

See merge request isc-projects/bind9!5167

4 years agoBump wait time in servestale test with 1 second
Matthijs Mekking [Thu, 10 Jun 2021 07:55:17 +0000 (09:55 +0200)] 
Bump wait time in servestale test with 1 second

This check intermittently failed:

I:serve-stale:check not in cache longttl.example times out...
I:serve-stale:failed

This corresponds to this query in the test:

$DIG -p ${PORT} +tries=1 +timeout=3  @10.53.0.3 longttl.example TXT

Looking at the dig output for a failed test, the query actually got a
response from the authoritative server (in one specific example the
query time was 2991 msec, close to 3 seconds).

After doing the query for the test, we enable the authoritative
server after a sleep of three seconds. If we bump this sleep to 4
seconds, the race will be more in favor of the query timing out,
making it unlikely that this test will fail intermittently.

Bump the subsequent wait_for_log checks also with one second.

4 years agoMerge branch 'v9_17_15-release' into 'main'
Michał Kępień [Wed, 23 Jun 2021 11:02:05 +0000 (11:02 +0000)] 
Merge branch 'v9_17_15-release' into 'main'

Merge 9.17.15 release branch

See merge request isc-projects/bind9!5220

4 years agoSet up release notes for BIND 9.17.16
Michał Kępień [Wed, 23 Jun 2021 10:56:35 +0000 (12:56 +0200)] 
Set up release notes for BIND 9.17.16

4 years agoUpdate BIND version to 9.17.15
Michał Kępień [Fri, 18 Jun 2021 09:44:00 +0000 (11:44 +0200)] 
Update BIND version to 9.17.15

4 years agoAdd CHANGES annotations
Michał Kępień [Fri, 18 Jun 2021 09:44:00 +0000 (11:44 +0200)] 
Add CHANGES annotations

4 years agoMerge branch 'michal/prepare-documentation-for-bind-9.17.15' into 'v9_17_15-release'
Michał Kępień [Fri, 18 Jun 2021 09:42:51 +0000 (09:42 +0000)] 
Merge branch 'michal/prepare-documentation-for-bind-9.17.15' into 'v9_17_15-release'

Prepare documentation for BIND 9.17.15

See merge request isc-private/bind9!304

4 years agoPrepare release notes for BIND 9.17.15
Michał Kępień [Fri, 18 Jun 2021 09:09:45 +0000 (11:09 +0200)] 
Prepare release notes for BIND 9.17.15

4 years agoTweak and reword release notes
Michał Kępień [Fri, 18 Jun 2021 09:09:45 +0000 (11:09 +0200)] 
Tweak and reword release notes

4 years agoTweak and reword recent CHANGES entries
Michał Kępień [Fri, 18 Jun 2021 09:09:45 +0000 (11:09 +0200)] 
Tweak and reword recent CHANGES entries

4 years agoMerge branch '2788-use-tolower-toupper-isupper-from-ctype-h' into 'main'
Ondřej Surý [Wed, 23 Jun 2021 09:45:28 +0000 (09:45 +0000)] 
Merge branch '2788-use-tolower-toupper-isupper-from-ctype-h' into 'main'

Use tolower(), toupper() and isupper() from ctype.h

Closes #2788

See merge request isc-projects/bind9!5209

4 years agoUse POSIX tolower(), toupper() and isupper() functions
Ondřej Surý [Tue, 22 Jun 2021 11:08:17 +0000 (13:08 +0200)] 
Use POSIX tolower(), toupper() and isupper() functions

In the code that rdataset_setownercase() and rdataset_getownercase() we
now use tolower()/toupper()/isupper() functions appropriately instead of
rolling our own code.

4 years agoDon't set locale globally, just use it when needed
Ondřej Surý [Tue, 22 Jun 2021 11:05:15 +0000 (13:05 +0200)] 
Don't set locale globally, just use it when needed

Previously, we would set the locale on a global level and that could
possibly lead to different behaviour in underlying functions.  In this
commit, we change to code to use the system locale only when calling the
libidn2 functions and reset the locale back to "POSIX" when exiting the
libidn2 code.

4 years agoMerge branch '1802-improve-description-of-mirror-zone-validation' into 'main'
Michał Kępień [Tue, 22 Jun 2021 20:53:48 +0000 (20:53 +0000)] 
Merge branch '1802-improve-description-of-mirror-zone-validation' into 'main'

Improve description of mirror zone validation

Closes #1802

See merge request isc-projects/bind9!5207

4 years agoImprove description of mirror zone validation
Michał Kępień [Tue, 22 Jun 2021 20:45:39 +0000 (22:45 +0200)] 
Improve description of mirror zone validation

Expand the description of mirror zones in the ARM by adding a brief
discussion of how the validation process works for AXFR and IXFR.  Move
the paragraph mentioning the "file" option higher up.  Apply minor
stylistic and whitespace-related tweaks to the relevant section of the
ARM.

4 years agoMerge branch '2784-improve-descriptions-of-buffering-related-options' into 'main'
Michał Kępień [Tue, 22 Jun 2021 20:31:59 +0000 (20:31 +0000)] 
Merge branch '2784-improve-descriptions-of-buffering-related-options' into 'main'

Improve descriptions of buffering-related options

Closes #2784

See merge request isc-projects/bind9!5215

4 years agoTweak descriptions of buffering-related options
Michał Kępień [Tue, 22 Jun 2021 20:26:46 +0000 (22:26 +0200)] 
Tweak descriptions of buffering-related options

Apply minor stylistical and whitespace-related tweaks to the
descriptions of the "tcp-receive-buffer", "udp-receive-buffer",
"tcp-send-buffer", and "udp-send-buffer" options in the ARM.

4 years agoFix typos in buffering-related option names
Michał Kępień [Tue, 22 Jun 2021 20:26:46 +0000 (22:26 +0200)] 
Fix typos in buffering-related option names

The ARM contains typos in the names of the following two options:

  - "tcp-receive-buffer"
  - "udp-receive-buffer"

Fix the ARM so that it contains proper option names.

4 years agoMerge branch '2279-expand-description-of-the-max-cache-size-option' into 'main'
Michał Kępień [Tue, 22 Jun 2021 19:37:59 +0000 (19:37 +0000)] 
Merge branch '2279-expand-description-of-the-max-cache-size-option' into 'main'

Expand description of the "max-cache-size" option

Closes #2279

See merge request isc-projects/bind9!5173

4 years agoRework description of the "max-cache-size" option
Petr Špaček [Tue, 15 Jun 2021 08:01:59 +0000 (10:01 +0200)] 
Rework description of the "max-cache-size" option

Improve the description of the "max-cache-size" option in the ARM by
focusing on its meaning for multiple views and default values.
Add mention of a hash table preallocation.

4 years agoMerge branch '2787-assertion-failure-handling-non-zero-opcodes-in-dot-and-doh' into...
Artem Boldariev [Tue, 22 Jun 2021 14:45:23 +0000 (14:45 +0000)] 
Merge branch '2787-assertion-failure-handling-non-zero-opcodes-in-dot-and-doh' into 'main'

Replace netmgr per-protocol sequential function with a common one

Closes #2787

See merge request isc-projects/bind9!5208

4 years agoAdd CHANGES and release notes for [GL #2787]
Ondřej Surý [Tue, 22 Jun 2021 10:33:50 +0000 (12:33 +0200)] 
Add CHANGES and release notes for [GL #2787]

4 years agoSystem tests to check named behaviour for unexpected opcodes
Artem Boldariev [Tue, 22 Jun 2021 10:32:24 +0000 (13:32 +0300)] 
System tests to check named behaviour for unexpected opcodes

This commit adds a set of tests to verify that BIND will not crash
when some opcodes are sent over DoT or DoH, leading to marking network
handle in question as sequential.

4 years agoReplace netmgr per-protocol sequential function with a common one
Ondřej Surý [Tue, 22 Jun 2021 10:24:44 +0000 (12:24 +0200)] 
Replace netmgr per-protocol sequential function with a common one

Previously, each protocol (TCPDNS, TLSDNS) has specified own function to
disable pipelining on the connection.  An oversight would lead to
assertion failure when opcode is not query over non-TCPDNS protocol
because the isc_nm_tcpdns_sequential() function would be called over
non-TCPDNS socket.  This commit removes the per-protocol functions and
refactors the code to have and use common isc_nm_sequential() function
that would either disable the pipelining on the socket or would handle
the request in per specific manner.  Currently it ignores the call for
HTTP sockets and causes assertion failure for protocols where it doesn't
make sense to call the function at all.

4 years agoMerge branch '2777-use-minimal-sized-caches-for-non-recursive-views' into 'main'
Michał Kępień [Tue, 22 Jun 2021 13:31:03 +0000 (13:31 +0000)] 
Merge branch '2777-use-minimal-sized-caches-for-non-recursive-views' into 'main'

Use minimal-sized caches for non-recursive views

Closes #2777

See merge request isc-projects/bind9!5189

4 years agoAdd CHANGES entry
Michał Kępień [Tue, 22 Jun 2021 13:28:31 +0000 (15:28 +0200)] 
Add CHANGES entry

4 years agoHardcode "max-cache-size" for the "_bind" view
Michał Kępień [Tue, 22 Jun 2021 13:28:31 +0000 (15:28 +0200)] 
Hardcode "max-cache-size" for the "_bind" view

The built-in "_bind" view does not allow recursion and therefore does
not need a large cache database.  However, as "max-cache-size" is not
explicitly set for that view in the default configuration, it inherits
that setting from global options.  Set "max-cache-size" for the built-in
"_bind" view to a fixed value (2 MB, i.e. the smallest allowed value) to
prevent needlessly preallocating memory for its cache RBT hash table.

4 years agoUse minimal-sized caches for non-recursive views
Michał Kępień [Tue, 22 Jun 2021 13:28:31 +0000 (15:28 +0200)] 
Use minimal-sized caches for non-recursive views

Currently the implicit default for the "max-cache-size" option is "90%".
As this option is inherited by all configured views, using multiple
views can lead to memory exhaustion over time due to overcommitment.
The "max-cache-size 90%;" default also causes cache RBT hash tables to
be preallocated for every configured view, which does not really make
sense for views which do not allow recursion.

To limit this problem's potential for causing operational issues, use a
minimal-sized cache for views which do not allow recursion and do not
have "max-cache-size" explicitly set (either in global configuration or
in view configuration).

For configurations which include multiple views allowing recursion,
adjusting "max-cache-size" appropriately is still left to the operator.

4 years agoMerge branch '2783-in-view-dnssec-policy-deadlock' into 'main'
Matthijs Mekking [Tue, 22 Jun 2021 07:23:59 +0000 (07:23 +0000)] 
Merge branch '2783-in-view-dnssec-policy-deadlock' into 'main'

Fix in-view /w dnssec-policy deadlock at startup

Closes #2783

See merge request isc-projects/bind9!5202

4 years agoAdd changes and notes for [#2783]
Matthijs Mekking [Mon, 21 Jun 2021 11:50:00 +0000 (13:50 +0200)] 
Add changes and notes for [#2783]

4 years agoFix deadlock issue with key-directory and in-view
Matthijs Mekking [Mon, 21 Jun 2021 09:36:50 +0000 (11:36 +0200)] 
Fix deadlock issue with key-directory and in-view

When locking key files for a zone, we iterate over all the views and
lock a mutex inside the zone structure. However, if we envounter an
in-view zone, we will try to lock the key files twice, one time for
the home view and one time for the in-view view. This will lead to
a deadlock because one thread is trying to get the same lock twice.

5 years agoAdd test case for in-view with dnssec-policy
Matthijs Mekking [Mon, 21 Jun 2021 10:00:01 +0000 (12:00 +0200)] 
Add test case for in-view with dnssec-policy

Add a test case for a zone that uses 'in-view' and 'dnssec-policy'.
BIND should not deadlock.

5 years agoMerge branch '2778-unique-key-directories-reported-as-reused-in-9-16-17-regression...
Mark Andrews [Fri, 18 Jun 2021 07:21:27 +0000 (07:21 +0000)] 
Merge branch '2778-unique-key-directories-reported-as-reused-in-9-16-17-regression-vs-9-16-16' into 'main'

Resolve "Unique key directories reported as reused in 9.16.17, regression vs 9.16.16"

Closes #2778

See merge request isc-projects/bind9!5195

5 years agoAdd release note for [GL #2778]
Mark Andrews [Fri, 18 Jun 2021 05:41:34 +0000 (15:41 +1000)] 
Add release note for [GL #2778]

5 years agoAdd CHANGES for [GL #2778]
Mark Andrews [Fri, 18 Jun 2021 05:39:46 +0000 (15:39 +1000)] 
Add CHANGES for [GL #2778]

5 years agoChecking of key-directory and dnssec-policy was broken
Mark Andrews [Fri, 18 Jun 2021 05:35:01 +0000 (15:35 +1000)] 
Checking of key-directory and dnssec-policy was broken

the checks failed to account for key-directory being inheritable.

5 years agoMerge branch '2779-name-in-answer-doesn-t-match-the-name-in-query' into 'main'
Mark Andrews [Fri, 18 Jun 2021 06:27:22 +0000 (06:27 +0000)] 
Merge branch '2779-name-in-answer-doesn-t-match-the-name-in-query' into 'main'

Resolve "name in answer doesn't match the name in query"

Closes #2779

See merge request isc-projects/bind9!5194

5 years agoAdd release note for [GL #2779]
Mark Andrews [Fri, 18 Jun 2021 03:28:45 +0000 (13:28 +1000)] 
Add release note for [GL #2779]

5 years agoAdd CHANGES note for [GL #2779]
Mark Andrews [Fri, 18 Jun 2021 01:34:36 +0000 (11:34 +1000)] 
Add CHANGES note for [GL #2779]

5 years agoCheck wild card expansions by code point
Mark Andrews [Fri, 18 Jun 2021 03:02:46 +0000 (13:02 +1000)] 
Check wild card expansions by code point

5 years agoAdd w and W to maptoupper and maptolower tables
Mark Andrews [Fri, 18 Jun 2021 01:29:45 +0000 (11:29 +1000)] 
Add w and W to maptoupper and maptolower tables

5 years agoMerge branch 'mnowak/alpine-3.14' into 'main'
Michal Nowak [Thu, 17 Jun 2021 16:17:06 +0000 (16:17 +0000)] 
Merge branch 'mnowak/alpine-3.14' into 'main'

Add Alpine Linux 3.14

See merge request isc-projects/bind9!5183

5 years agoAdd Alpine Linux 3.14
Michal Nowak [Wed, 16 Jun 2021 15:39:44 +0000 (17:39 +0200)] 
Add Alpine Linux 3.14

5 years agoMerge branch '2770-allow-hash-tables-for-cache-rbts-to-be-grown' into 'main'
Michał Kępień [Thu, 17 Jun 2021 15:16:38 +0000 (15:16 +0000)] 
Merge branch '2770-allow-hash-tables-for-cache-rbts-to-be-grown' into 'main'

Allow hash tables for cache RBTs to be grown

Closes #2770

See merge request isc-projects/bind9!5172

5 years agoAdd CHANGES entry
Michał Kępień [Thu, 17 Jun 2021 15:09:37 +0000 (17:09 +0200)] 
Add CHANGES entry

5 years agoAllow resetting hash table size limits for DNS DBs
Michał Kępień [Thu, 17 Jun 2021 15:09:37 +0000 (17:09 +0200)] 
Allow resetting hash table size limits for DNS DBs

When "max-cache-size" is changed to "unlimited" (or "0") for a running
named instance (using "rndc reconfig"), the hash table size limit for
each affected cache DB is not reset to the maximum possible value,
preventing those hash tables from being allowed to grow as a result of
new nodes being added.

Extend dns_rbt_adjusthashsize() to interpret "size" set to 0 as a signal
to remove any previously imposed limits on the hash table size.  Adjust
API documentation for dns_db_adjusthashsize() accordingly.  Move the
call to dns_db_adjusthashsize() from dns_cache_setcachesize() so that it
also happens when "size" is set to 0.

5 years agoAllow hash tables for cache RBTs to be grown
Michał Kępień [Thu, 17 Jun 2021 15:09:37 +0000 (17:09 +0200)] 
Allow hash tables for cache RBTs to be grown

Upon creation, each dns_rbt_t structure has its "maxhashbits" field
initialized to the value of the RBT_HASH_MAX_BITS preprocessor macro,
i.e. 32.  When the dns_rbt_adjusthashsize() function is called for the
first time for a given RBT (for cache RBTs, this happens when they are
first created, i.e. upon named startup), it lowers the value of the
"maxhashbits" field to the number of bits required to index the
requested number of hash table slots.  When a larger hash table size is
subsequently requested, the value of the "maxhashbits" field should be
increased accordingly, up to RBT_HASH_MAX_BITS.  However, the loop in
the rehash_bits() function currently ensures that the number of bits
necessary to index the resized hash table will not be larger than
rbt->maxhashbits instead of RBT_HASH_MAX_BITS, preventing the hash table
from being grown once the "maxhashbits" field of a given dns_rbt_t
structure is set to any value lower than RBT_HASH_MAX_BITS.

Fix by tweaking the loop guard condition in the rehash_bits() function
so that it compares the new number of bits used for indexing the hash
table against RBT_HASH_MAX_BITS rather than rbt->maxhashbits.

5 years agoMerge branch '2763-increase-timeout-in-the-rndc-deadlock-test' into 'main'
Michał Kępień [Thu, 17 Jun 2021 10:40:31 +0000 (10:40 +0000)] 
Merge branch '2763-increase-timeout-in-the-rndc-deadlock-test' into 'main'

Increase timeout in the rndc deadlock test

Closes #2763

See merge request isc-projects/bind9!5163

5 years agoIncrease timeout in the rndc deadlock test
Michał Kępień [Thu, 17 Jun 2021 10:39:32 +0000 (12:39 +0200)] 
Increase timeout in the rndc deadlock test

The timeout originally picked for "rndc status" invocations (2 seconds)
in the test attempting to reproduce a deadlock caused by running
multiple "rndc addzone", "rndc modzone", and "rndc delzone" commands
concurrently causes intermittent failures of the "addzone" system test
in GitLab CI.  Increase the timeout to 10 seconds to make such failures
less probable.  Adjust code comments accordingly.

5 years agoMerge branch 'ondrej/fix-some-spelling' into 'main'
Ondřej Surý [Thu, 17 Jun 2021 09:39:15 +0000 (09:39 +0000)] 
Merge branch 'ondrej/fix-some-spelling' into 'main'

Fix various typos in the documentation

See merge request isc-projects/bind9!4498

5 years agoFix various typos in the documentation
Ondřej Surý [Wed, 16 Dec 2020 09:24:01 +0000 (10:24 +0100)] 
Fix various typos in the documentation

Generally, the issues fixed here are missing articles, wrong articles
and double articles.  We especially like "the the".

5 years agoMerge branch '2606-remove-support-for-builtin-atomics-on-legacy-clang-compilers'...
Ondřej Surý [Thu, 17 Jun 2021 08:52:10 +0000 (08:52 +0000)] 
Merge branch '2606-remove-support-for-builtin-atomics-on-legacy-clang-compilers' into 'main'

Resolve "Remove support for builtin atomics on legacy clang compilers"

Closes #2606

See merge request isc-projects/bind9!4854

5 years agoAdd CHANGES note for [GL #2606]
Diego Fronza [Wed, 31 Mar 2021 20:13:26 +0000 (17:13 -0300)] 
Add CHANGES note for [GL #2606]

5 years agoDrop support for clang atomic and gcc __sync builtins
Ondřej Surý [Thu, 3 Jun 2021 06:00:22 +0000 (08:00 +0200)] 
Drop support for clang atomic and gcc __sync builtins

The requirements for BIND 9.17+ now requires C11 support from the
compiler, so we can safely drop most of the stdatomic.h shims from
lib/isc/unix/include/stdatomic.h.

This commit removes support for clang atomic builtins (clang >= 3.6.0
includes stdatomic.h header) and for Gcc __sync builtins.

The only compatibility shim that remains is support for __atomic
builtins for Gcc >= 4.7.0 since CentOS 7 still includes only Gcc 4.8.1
and the proper stdatomic.h header was only introduced in Gcc >= 4.9.

5 years agoRemove atomics emulated by a mutex-locked variable
Ondřej Surý [Thu, 3 Jun 2021 06:03:00 +0000 (08:03 +0200)] 
Remove atomics emulated by a mutex-locked variable

Mutex atomics were intended to be used as a debugging tool only
and it has already served its purpose and it's not needed anymore.

5 years agoMerge branch 'v9_17_14-release' into 'main'
Michał Kępień [Wed, 16 Jun 2021 20:24:43 +0000 (20:24 +0000)] 
Merge branch 'v9_17_14-release' into 'main'

Merge 9.17.14 release branch

See merge request isc-projects/bind9!5186

5 years agoSet up release notes for BIND 9.17.15
Michał Kępień [Wed, 16 Jun 2021 20:18:12 +0000 (22:18 +0200)] 
Set up release notes for BIND 9.17.15