Commit Graph

36784 Commits

Author SHA1 Message Date
Petr Špaček
beae857288 Avoid opt-out flag in dnssec-signzone examples
Since !6413 we discourage opt-out, so we should not be advertising it in
the examples. Even worse, it was just thrown into the command line
without even mentioning its meaning in the surrounding text.

Related: !6413
2022-07-21 15:12:06 +02:00
Petr Špaček
1ab564d605 Remove errorneous shell output redirection from dnssec-signzone example
The > looked like shell output redirection. It was present since we
imported DNSSEC Guide into the ARM.
2022-07-21 15:12:03 +02:00
Michal Nowak
f80256da4a Merge tag 'v9_19_3'
BIND 9.19.3
2022-07-21 11:48:25 +02:00
Evan Hunt
4eec9f4402 Merge branch '2918-deprecate-max-zone-ttl' into 'main'
mark max-zone-ttl deprecated in options and zone

Closes #2918

See merge request isc-projects/bind9!6542
2022-07-20 19:24:18 +00:00
Evan Hunt
8c8c648395 CHANGES and release note for [GL #2918] 2022-07-20 11:57:41 -07:00
Evan Hunt
bbd159349a Forbid zones with both dnssec-policy and max-zone-ttl
Since max-zone-ttl in zone/view/options is a no-op if dnssec-policy
is in use, let's make that a fatal error.
2022-07-20 11:57:37 -07:00
Matthijs Mekking
a130737ea5 Reject zones with TTL higher than dnssec-policy max-zone-ttl
Reject loading of zones with TTL higher than the max-zone-ttl
from the dnssec-policy.

With this change, any zone with a dnssec-policy in use will ignore
the max-zone-ttl option in zone/view/options.
2022-07-20 11:55:07 -07:00
Matthijs Mekking
c52a82cbd9 Test dnssec-policy max-zone-ttl rejects zone with too high TTL
Similar to the 'max-zone-ttl' zone option, the 'dnssec-policy' option
should reject zones with TTLs that are out of range.
2022-07-20 11:55:07 -07:00
Evan Hunt
71d6752544 mark max-zone-ttl deprecated in options and zone
The "max-zone-ttl" option should now be configured as part of
"dnssec-policy". The option with the same name in "zone" and
"options" is hereby flagged as deprecated, and its functionality
will be removed in a future release.
2022-07-20 11:55:03 -07:00
Mark Andrews
2c3eea1917 Merge branch 'marka-placeholder' into 'main'
Add placeholder for [GL #3460]

See merge request isc-projects/bind9!6594
2022-07-19 02:45:11 +00:00
Mark Andrews
2e49dd0a34 Add placeholder for [GL #3460] 2022-07-19 12:39:29 +10:00
Petr Špaček
dce9614ffd Merge branch 'ron-server' into 'main'
ARM tagging: logging, server, view, zone

See merge request isc-projects/bind9!6535
2022-07-18 16:26:16 +00:00
Greg Choules
9a69b4b883 Document qname-minimization off equals disabled 2022-07-18 18:22:01 +02:00
Suzanne Goldlust
493578bebe Fix http block short description 2022-07-18 18:21:42 +02:00
Suzanne Goldlust
7a9a388e86 Add headings for server, logging, zone, and view statements 2022-07-18 18:16:33 +02:00
Suzanne Goldlust
72082e653d Add tags/short descriptions for the "view" category 2022-07-18 18:16:33 +02:00
Suzanne Goldlust
c742c46d2c Add tags/short descriptions for "zone" category 2022-07-18 18:16:33 +02:00
Suzanne Goldlust
7e19ef6af6 Add tags/short descriptions for "logging" category 2022-07-18 18:10:44 +02:00
Suzanne Goldlust
c55056597c Add tags and short descriptions for tag "server" 2022-07-18 18:10:44 +02:00
Michał Kępień
8c0bb8dd44 Merge branch 'michal/run-a-short-respdiff-test-for-all-merge-requests' into 'main'
Run a short respdiff test for all merge requests

See merge request isc-projects/bind9!6585
2022-07-18 13:16:01 +00:00
Michał Kępień
31ee43a314 Run a short respdiff test for all merge requests
Now that the respdiff tests can detect memory leaks, it is worth running
them for every merge request.  However, the existing respdiff-based
tests take a while to complete (about half an hour with our current CI
infrastructure), which does not make them a good fit for this purpose.
Add a new GitLab CI job, "respdiff-short", which uses a smaller query
set that gets processed within a couple of minutes on our current CI
infrastructure.  Rename the existing respdiff-based jobs to make
distinguishing them easier.
2022-07-18 14:39:02 +02:00
Michał Kępień
ca20a189f7 Extract respdiff job definition to a YAML anchor
Ensure the common parts of all jobs using respdiff are available in the
form of a reusable YAML anchor, to reduce code duplication and to
simplify adding more respdiff-based jobs to GitLab CI.
2022-07-18 14:39:02 +02:00
Michał Kępień
ab90a4705a Use a pre-built executable as the reference named
The "respdiff" GitLab CI job compares DNS responses produced by the
current version of named with those produced by a reference version.
The latter is built from source in each "respdiff" job, despite the fact
that the reference version changes very rarely.  Use a pre-built named
executable as the reference version instead, assuming it is available in
the OS image used for "respdiff" tests.
2022-07-18 14:39:02 +02:00
Ondřej Surý
858732d08b Merge branch 'ossl-fixes' into 'main'
Clean up OpenSSL usage a bit

See merge request isc-projects/bind9!6436
2022-07-18 12:14:34 +00:00
David Benjamin
e819866a2d Remove DH_clear_flags call
These calls have not been needed since OpenSSL 0.9.7h.

This dates to commit 704d6eeab1, "Work
around non-reentrancy in openssl by disabling precomputation in keys".
This was in the bundled OpenSSL 0.9.3a era and made two changes. First,
it registered a locking callback because, in those days, OpenSSL needed
a callback to support locks. Second, it set flags to disable various
bits of cached state on DH, DSA, and RSA objects.

Looking back in OpenSSL 0.9.3a, that cached state was not protected by a
lock:
https://github.com/openssl/openssl/blob/OpenSSL_0_9_3a/crypto/rsa/rsa_eay.c#L137-L142

However, this was fixed in OpenSSL 0.9.7h:
6ec8e63af6

The other flags (DSA and RSA) have since fallen away, DSA with the
removal of DSA altogether (3994b1f9c2) and
RSA with 3a8d4a316e, "openssl 0.9.6a and
higher don't have the RSA locking bug [...] other algorithms still don't
do locking when performing precomputation [...]".

That seems to be referring to this OpenSSL change, which indeed fixed it
for RSA but not others:
bb617a9646

The 0.9.7h change above fixed it across the board, but there was never a
similar update to the workaround for DSA and DH. With such OpenSSL
versions long since out of support, the last remains of this workaround
can finally be removed.
2022-07-18 13:38:47 +02:00
David Benjamin
f607cad47a Simplify BN_GENCB handling
When callback was NULL, bind9 would use BN_GENCB_set_old to set a NULL
callback because OpenSSL happened to allow a NULL "old" callback, but
not a NULL "new" callback. Instead, the way to turn off the callback is
to pass a NULL BN_GENCB itself.

Switch to doing that.
2022-07-18 13:38:44 +02:00
Ondřej Surý
04d6363a64 Merge branch '3453-cope-with-too-small-BUFSIZ' into 'main'
Increase the BUFSIZ-long buffers

Closes #3453

See merge request isc-projects/bind9!6579
2022-07-15 17:30:03 +00:00
Ondřej Surý
b19d932262 Increase the BUFSIZ-long buffers
The BUFSIZ value varies between platforms, it could be 8K on Linux and
512 bytes on mingw.  Make sure the buffers are always big enough for the
output data to prevent truncation of the output by appropriately
enlarging or sizing the buffers.
2022-07-15 10:33:46 +00:00
Michał Kępień
d0f6d309e3 Merge branch '3443-memory-related-cleanups' into 'main'
Memory-related cleanups

Closes #3443

See merge request isc-projects/bind9!6567
2022-07-15 08:31:23 +00:00
Michał Kępień
f0c31ceb3b Update documentation for named's -M option
Remove "external" from the list of legal values for the -M command-line
option as it has not been allowed since the internal memory allocator
was removed by commit 55ace5d3aa.

Make the style of the relevant paragraph more in line with the next one
and split its contents up into an unordered list of options for improved
readability.
2022-07-15 10:23:03 +02:00
Evan Hunt
f9620d8b94 Merge branch '3456-dispatch-connect-race' into 'main'
remove unnecessary assertion in dns_dispatch_connect()

Closes #3456

See merge request isc-projects/bind9!6573
2022-07-15 02:26:41 +00:00
Evan Hunt
25ddec8a0a remove unnecessary assertion in dns_dispatch_connect()
When a thread calls dns_dispatch_connect() on an unconnected TCP socket
it sets `tcpstate` from `DNS_DISPATCHSTATE_NONE` to `_CONNECTING`.
Previously, it then INSISTed that there were no pending connections
before calling isc_nm_tcpdnsconnect().

If a second thread called dns_dispatch_connect() during that window
of time, it could add a pending connection to the list, and trigger
an assertion failure.

This commit removes the INSIST since the condition is actually
harmless.
2022-07-14 16:31:01 -07:00
Ondřej Surý
2488dbbb33 Merge branch 'ondrej-fix-timing-error-in-statistics-system-test' into 'main'
Wait for TCP connection refused in the statistics system test

See merge request isc-projects/bind9!6580
2022-07-14 20:33:16 +00:00
Ondřej Surý
0227d82dc8 Wait for TCP connection refused in the statistics system test
The statistics system test makes a query to foo.info to check for the
pending connections because the ans4 doesn't respond to the query.

This might or might not (depending on exact timing) increment the failed
TCP connection counter when the query is retried over TCP because ans4
doesn't listen on the TCP.

Wait for the 'connection refused' in the ns3 log file to be able to
count the exactly 1 failed TCP connection.
2022-07-14 13:08:29 -07:00
Ondřej Surý
deb0c27dbc Merge branch '3451-handle-transient-TCP-connect-EADDRINUSE-on-BSDs' into 'main'
Handle the transient TCP connect() failures on FreeBSD

Closes #3451 and #3452

See merge request isc-projects/bind9!6562
2022-07-14 19:38:33 +00:00
Ondřej Surý
a9c54ecdc6 Add CHANGES note for [GL #3451] 2022-07-14 14:34:53 +02:00
Ondřej Surý
59e1703b50 Cleanup the STATID_CONNECT and STATID_CONNECTFAIL stat counters
The STATID_CONNECT and STATID_CONNECTFAIL statistics were used
incorrectly. The STATID_CONNECT was incremented twice (once in
the *_connect_direct() and once in the callback) and STATID_CONNECTFAIL
would not be incremented at all if the failure happened in the callback.

Closes: #3452
2022-07-14 14:34:53 +02:00
Ondřej Surý
b21f507c0a Handle the transient TCP connect() failures on FreeBSD
On FreeBSD (and perhaps other *BSD) systems, the TCP connect() call (via
uv_tcp_connect()) can fail with transient UV_EADDRINUSE error.  The UDP
code already handles this by trying three times (is a charm) before
giving up.  Add a code for the TCP, TCPDNS and TLSDNS layers to also try
three times before giving up by calling uv_tcp_connect() from the
callback two more time on UV_EADDRINUSE error.

Additionally, stop the timer only if we succeed or on hard error via
isc__nm_failed_connect_cb().
2022-07-14 14:20:10 +02:00
Mark Andrews
b8f4e19366 Merge branch '3448-redundant-assignment-of-clistenon-in-bin-named-server-c' into 'main'
Resolve "Redundant assignment of clistenon in bin/named/server.c"

Closes #3448

See merge request isc-projects/bind9!6560
2022-07-14 01:14:14 +00:00
Mark Andrews
73fb350989 Remove redundant assignment of 'clistenon = NULL' 2022-07-14 00:24:37 +00:00
Evan Hunt
5ac79f500e Merge branch '3454-check-putstr' into 'main'
check putstr return values

Closes #3454

See merge request isc-projects/bind9!6574
2022-07-14 00:23:17 +00:00
Evan Hunt
f6653d0cf2 check putstr return values
The calls to putstr() in named_server_fetchlimit() were not checked
for failure.
2022-07-14 00:04:39 +00:00
Mark Andrews
56c4480e3e Merge branch '3447-lib-dns-tkey-c-free_namelist-should-be-disassociating-associated-rdatatsets' into 'main'
Resolve "lib/dns/tkey.c:free_namelist should be disassociating associated rdatatsets"

Closes #3447

See merge request isc-projects/bind9!6556
2022-07-14 00:03:38 +00:00
Mark Andrews
745d5edc3a disassociate rdatasets when cleaning up
free_namelist could be passed names with associated rdatasets
when handling errors.  These need to be disassociated before
calling dns_message_puttemprdataset.
2022-07-13 23:43:39 +00:00
Mark Andrews
0e0012af0a Merge branch '3449-kasp-system-test-failed-to-log-some-zones-during-setup' into 'main'
Resolve "kasp system test failed to log some zones during setup"

Closes #3449

See merge request isc-projects/bind9!6561
2022-07-13 23:42:38 +00:00
Mark Andrews
04627997eb kasp: add missing logging during setup
Some zones where not being logged when just DNSSEC keys where being
generated in system test setup phase.  Add logging for these zones.
2022-07-13 23:19:39 +00:00
Michał Kępień
4be5bd24d2 Merge branch '3054-3-improve-reporting-for-pthreads-errors' into 'main'
[3/3] Improve reporting for pthreads errors

Closes #3054

See merge request isc-projects/bind9!6572
2022-07-13 13:05:11 +00:00
Michał Kępień
a5346854b6 Merge branch '3054-2-enable-tracking-pthreads-objects' into 'main'
[2/3] Enable tracking pthreads objects

See merge request isc-projects/bind9!6571
2022-07-13 13:03:59 +00:00
Michał Kępień
16fc0a8379 Merge branch '3054-1-misc-pthreads-cleanups' into 'main'
[1/3] Miscellaneous pthreads cleanups

See merge request isc-projects/bind9!6570
2022-07-13 13:01:32 +00:00
Michał Kępień
a73ab08e75 Improve reporting for barrier errors
uv_barrier_init() errors are currently ignored.  Use UV_RUNTIME_CHECK()
to catch them and to improve error reporting for any uv_barrier_init()
run-time failures (by augmenting error messages with file/line
information and the error string corresponding to the value returned).
-