Commit Graph
34060 Commits
Author SHA1 Message Date
Ondřej Surý cbf2bed95e Reimplement the max-transfer-time-out and max-transfer-idle-out
While refactoring the libns to use the new network manager, the
max-transfer-*-out options were not implemented and they were turned
non-operational.

Reimplement the max-transfer-idle-out functionality using the write
timer and max-transfer-time-out using the new isc_nm_timer API.

(cherry picked from commit 8643bbab84)
2022-02-17 22:59:24 +01:00
Ondřej Surý 6de1b12f59 Remove unused client->shutdown and client->shutdown_arg
While refactoring the lib/ns/xfrout.c, it was discovered that .shutdown
and .shutdown_arg members of ns_client_t structure are unused.

Remove the unused members and associated code that was using in it in
the ns_xfrout.

(cherry picked from commit 037549c405)
2022-02-17 22:59:24 +01:00
Ondřej Surý 914a7e14e2 Add network manager based timer API
This commits adds API that allows to create arbitrary timers associated
with the network manager handles.

(cherry picked from commit 3c7b04d015)
2022-02-17 22:59:24 +01:00
Evan Hunt 3ec9c711d8 Merge branch '3157-test-blackhole-v9_16' into 'v9_16'
backport regression test from GL #3157

See merge request isc-projects/bind9!5859
2022-02-17 18:15:24 +00:00
Evan Hunt d822a87804 backport regression test from GL #3157
add "blackhole { none; };" to a secondary server in the xfer system
test to ensure that the error in GL #3157 is not present in 9.16.
2022-02-17 09:38:26 -08:00
Ondřej Surý 421a1dfa82 Merge branch '3132-add-send-timeout-v9_16' into 'v9_16'
Add TCP, TCPDNS and TLSDNS write timer

See merge request isc-projects/bind9!5856
2022-02-17 11:08:19 +00:00
Ondřej Surý 132bed0014 Add CHANGES and release note for [GL #3132]
(cherry picked from commit 0c35bda762)
2022-02-17 11:26:16 +01:00
Ondřej Surý 3f24bd2bce Update writetimeout to be T_IDLE in netmgr_test.c
Use the isc_nmhandle_setwritetimeout() function in the netmgr unit test
to allow more time for writing and reading the responses because some of
the intervals that are used in the unit tests are really small leaving a
little room for any delays.

(cherry picked from commit ee359d6ffa)
2022-02-17 11:26:16 +01:00
Ondřej Surý 1d0f2eb2c4 Add isc_nmhandle_setwritetimeout() function
In some situations (unit test and forthcoming XFR timeouts MR), we need
to modify the write timeout independently of the read timeout.  Add a
isc_nmhandle_setwritetimeout() function that could be called before
isc_nm_send() to specify a custom write timeout interval.

(cherry picked from commit a89d9e0fa6)
2022-02-17 11:26:16 +01:00
Ondřej Surý 260b4c02cf Add TCP write timeout system test
Extend the timeouts system test that bursts the queries for large TXT
record and never read any responses back filling up the server TCP write
buffer.  The test should work with the default wmem_max value on
Linux (208k).

(cherry picked from commit b735182ae0)
2022-02-17 10:05:24 +01:00
Ondřej Surý 6a88131d03 Add TCP, TCPDNS and TLSDNS write timer
When the outgoing TCP write buffers are full because the other party is
not reading the data, the uv_write() could wait indefinitely on the
uv_loop and never calling the callback.  Add a new write timer that uses
the `tcp-idle-timeout` value to interrupt the TCP connection when we are
not able to send data for defined period of time.

(cherry picked from commit 408b362169)
2022-02-17 10:05:24 +01:00
Ondřej Surý 11ae4399d9 Add uv_tcp_close_reset compat
The uv_tcp_close_reset() function was added in libuv 1.32.0 and since we
support older libuv releases, we have to add a shim uv_tcp_close_reset()
implementation loosely based on libuv.

(cherry picked from commit cd3b58622c)
2022-02-17 09:50:10 +01:00
Ondřej Surý eb2463115f Rename sock->timer to sock->read_timer
Before adding the write timer, we have to remove the generic sock->timer
to sock->read_timer.  We don't touch the function names to limit the
impact of the refactoring.

(cherry picked from commit 45a73c113f)
2022-02-17 09:50:07 +01:00
Ondřej Surý 9b7a0cb778 Merge branch 'ondrej/add-UV_RUNTIME_CHECK-macro-v9_16' into 'v9_16'
Add UV_RUNTIME_CHECK() macro to print uv_strerror()

See merge request isc-projects/bind9!5846
2022-02-16 11:30:07 +00:00
Ondřej Surý cdd725f1db Add semantic patch to keep UV_RUNTIME_CHECK in sync
The UV_RUNTIME_CHECK() macro requires to keep the function name in sync
like this:

    r = func(...);
    UV_RUNTIME_CHECK(func, r);

Add semantic patch to keep the function name and return variable in sync
with the previous line.

(cherry picked from commit 62bd5cb08c)
2022-02-16 11:48:33 +01:00
Ondřej Surý 1c564b808f Use UV_RUNTIME_CHECK() as appropriate
Replace the RUNTIME_CHECK() calls for libuv API calls with
UV_RUNTIME_CHECK() to get more detailed error message when
something fails and should not.

(cherry picked from commit 8715be1e4b)
2022-02-16 11:48:30 +01:00
Ondřej Surý 88751da114 Add UV_RUNTIME_CHECK() macro to print uv_strerror()
When libuv functions fail, they return correct return value that could
be useful for more detailed debugging.  Currently, we usually just check
whether the return value is 0 and invoke assertion error if it doesn't
throwing away the details why the call has failed.  Unfortunately, this
often happen on more exotic platforms.

Add a UV_RUNTIME_CHECK() macro that can be used to print more detailed
error message (via uv_strerror() before ending the execution of the
program abruptly with the assertion.

(cherry picked from commit 62e15bb06d)
2022-02-16 11:46:10 +01:00
Matthijs Mekking cff0d3fbd0 Merge branch 'matthijs-document-dnssec-policy-keys-algorithm-match-v9_16' into 'v9_16'
Update documentation wrt key algorithms (9.16)

See merge request isc-projects/bind9!5843
2022-02-16 10:11:21 +00:00
Matthijs Mekking 483beec0fd Update documentation wrt key algorithms
Add a note to the DNSSEC guide and to the ARM reference that A ZSK/KSK
pair used for signing your zone should have the same algorithm.

This commit also updates the 'dnssec-policy/keys' example to use the
slightly more modern 'rsasha256' algorithm.

(cherry picked from commit 7365400610)
2022-02-16 10:25:30 +01:00
Michal Nowak 6917b32d6c Merge branch 'mnowak/make-cocci-parallel-v9_16' into 'v9_16'
[v9_16] Run spatch jobs in parallel

See merge request isc-projects/bind9!5833
2022-02-14 19:10:57 +00:00
Michal Nowak 2823885e1b Run spatch jobs in parallel
Also make the script more verbose to identify which patch is being
processed and check for failures in spatch standard error output.

(cherry picked from commit 48c44fe6d4)
2022-02-14 20:01:43 +01:00
Michal Nowak fb0aaa3c10 Merge branch 'mnowak/coverity-scan-2021.12-v9_16' into 'v9_16'
[v9_16] Update Coverity Scan CI job to 2021.12.1

See merge request isc-projects/bind9!5830
2022-02-14 17:59:01 +00:00
Michal Nowak d73143af51 Update Coverity Scan CI job to 2021.12.1
(cherry picked from commit f0edf07fbc)
2022-02-14 18:46:08 +01:00
Petr Špaček b1c7a94dc9 Merge branch 'pspacek/rfc-nits-v9_16' into 'v9_16'
Update and deduplicate list of RFCs in documentation [v9_16]

See merge request isc-projects/bind9!5828
2022-02-14 11:48:57 +00:00
Petr Špaček 3637ce9c7c Remove rfc-compliance list in plaintext - ARM deduplication
The plaintext version is now fully replaced by the doc/arm/general.rst.

(cherry picked from commit 63989e98ac)
2022-02-14 12:23:39 +01:00
Petr Špaček a2ebd90f30 Reorder list of supported RFCs in more user-oriented manner
For users it's not really important if a RFC is Internet Standard,
Proposed Standard, or Experimental. RFCs are now regrouped by
"Protocol", Best Current Practice, and "catch all" category FYI.

(cherry picked from commit 7fd61f9403)
2022-02-14 12:23:31 +01:00
Petr Špaček 636ea2d5bc Replace obsolete RFC2845 reference with RFC8945 (TSIG)
(cherry picked from commit 4dbad65bfd)
2022-02-14 12:21:27 +01:00
Petr Špaček f0d5e029bd Remove special chapter about IPv6 address formats from ARM
In 2022, IPv6 is not anything unusual, and it was really odd
to have it in a separate section next to a huge list of RFCs.

Fixes: #1918
(cherry picked from commit 2774b497a6)
2022-02-14 12:21:15 +01:00
Petr Špaček 519660c84a Replace obsolete RFC6944 reference with RFC8624 (DNSSEC algorithm status)
(cherry picked from commit 3c83a9d503)
2022-02-14 12:21:15 +01:00
Petr Špaček ee5d716ca7 Replace obsolete RFC5966 reference with RFC7766 (TCP)
(cherry picked from commit bd3b310eae)
2022-02-14 12:21:15 +01:00
Petr Špaček 717d218935 Replace obsolete RFC4408 reference with RFC7208 (SPF)
(cherry picked from commit f8cb0ac141)
2022-02-14 12:21:13 +01:00
Petr Špaček bc41ef8687 Replace obsolete RFC2915 reference with RFC3403 (NAPTR)
(cherry picked from commit 16dec1ff58)
2022-02-14 12:20:41 +01:00
Petr Špaček 09f562eb0d Add link to RFC8749 (DLV is historic)
(cherry picked from commit f7225db822)
2022-02-14 12:20:39 +01:00
Petr Špaček eef6134587 Add newer version of IDNA RFC to docs
(cherry picked from commit 09d6cf89df)
2022-02-14 12:20:14 +01:00
Petr Špaček d16197fe62 Remove obsolete RFCs from documentation
There is little point of listing all of the obsolete RFCs. I think it is
more likely confuse people than to do anything useful.

(cherry picked from commit 9437ea08e1)
2022-02-14 12:20:14 +01:00
Petr Špaček 8925fb2e56 Replace obsolete RFC6488 reference with RFC8659 (CAA)
(cherry picked from commit 2b5b777c07)
2022-02-14 12:20:11 +01:00
Petr Špaček d1ee57b4bd Remove obsolete book reference from ARM
(cherry picked from commit b686b5c161)
2022-02-14 12:19:29 +01:00
Petr Špaček d7ca8c4c9b Use Sphinx footnotes for DNS Reference Information
It limits risk of errors while doing updates, which are next in the
pipeline.

(cherry picked from commit f713984886)
2022-02-14 12:19:24 +01:00
Ondřej Surý 0456213334 Merge branch 'ondrej/change-bug-reporting-address-v9_16' into 'v9_16'
Change the bug reporting address from email to gitlab URI

See merge request isc-projects/bind9!5822
2022-02-11 08:26:17 +00:00
Ondřej Surý 13cc8e3109 Change the bug reporting address from email to gitlab URI
In autoconf, the AC_INIT() accepts bugreport address for reporting
issues (f.e. when the test suite fails).  Instead of providing generic
emails address, change this to the address where to report with the
default Bug template applied.

(cherry picked from commit bb60622250)
2022-02-11 08:55:17 +01:00
Ondřej Surý 5af0b34f1c Merge branch '3137-create-new-log-messages-when-entering-and-exiting-exlusive-task-mode-v9_16' into 'v9_16'
Log when starting and ending task exclusive mode

See merge request isc-projects/bind9!5820
2022-02-10 21:01:38 +00:00
Ondřej Surý 2889492865 Add CHANGES and release note for [GL #3137]
(cherry picked from commit 44aa8ef997)
2022-02-10 21:28:48 +01:00
Ondřej Surý 6b2d9dcfd9 Log when starting and ending task exclusive mode
The task exclusive mode stops all processing (tasks and networking IO)
except the designated exclusive task events.  This has impact on the
operation of the server.  Add log messages indicating when we start the
exclusive mode, and when we end exclusive task mode.

(cherry picked from commit b9cb29076f)
2022-02-10 21:22:46 +01:00
Ondřej Surý bb9cde6fb6 Merge branch '3130-cleanup-pthread-api-usage-v9_16' into 'v9_16'
Remove unused functions from isc_thread API

See merge request isc-projects/bind9!5809
2022-02-09 17:46:36 +00:00
Ondřej Surý ad5869ac6c Remove unused functions from isc_thread API
The isc_thread_setaffinity call was removed in !5265 and we are not
going to restore it because it was proven that the performance is better
without it.  Additionally, remove the already disabled cpu system test.

The isc_thread_setconcurrency function is unused and also calling
pthread_setconcurrency() on Linux has no meaning, formerly it was
added because of Solaris in 2001 and it was removed when taskmgr was
refactored to run on top of netmgr in !4918.

(cherry picked from commit 0500345513)
2022-02-09 18:09:48 +01:00
Michal Nowak 2c200922bb Merge branch '2599-run-less-stable-unit-tests-in-aws-v9_16' into 'v9_16'
[v9_16] Run unstable unit tests in CI

See merge request isc-projects/bind9!5807
2022-02-09 12:22:25 +00:00
Michal Nowak 14b0041474 Run unstable unit tests in CI
Running unstable unit tests in CI should help with making sure they
don't fail permanently without the fact being noticed in daily
pipelines.

(cherry picked from commit 1d8788464e)
2022-02-09 13:08:00 +01:00
Evan Hunt 826f744e16 Merge branch 'each-missing-relnotes-v9_16' into 'v9_16'
Release notes for [GL #3082] and [GL #3111]

See merge request isc-projects/bind9!5798
2022-02-02 20:06:30 +00:00
Evan Hunt 556f4d8870 Release notes for [GL #3082] and [GL #3111]
(cherry picked from commit d45f0e1d9e)
2022-02-02 12:04:48 -08:00
Petr Špaček e75ab60804 Merge branch '2974-improve-directory-documentation-v9_16' into 'v9_16'
Clarify effect of "directory" configuration option [v9_16]

See merge request isc-projects/bind9!5794
2022-02-02 11:39:20 +00:00