Commit Graph

39681 Commits

Author SHA1 Message Date
Ondřej Surý
a80608200d Disable tracing in the FIPS enabled builds
The dtrace command fails with segmentation fault in the FIPS-enabled
builds, thus we need to disable the tracing in the CI for the FIPS
jobs.
2023-08-23 11:06:14 +02:00
Matthijs Mekking
39490eccaf Merge branch '1181-nsupdate-tcp-soa-requests-main' into 'main'
Don't do TCP SOA requests for default servers

Closes #1181

See merge request isc-projects/bind9!8192
2023-08-23 08:29:08 +00:00
Matthijs Mekking
4249ebd92f Add release note and CHANGES for #1181 2023-08-23 09:56:57 +02:00
Matthijs Mekking
6502240442 Don't do DoT SOA requests for default servers
Default servers usually don't have DoT set up. Only do SOA queries if
the server is specified.
2023-08-23 09:56:38 +02:00
Ondřej Surý
6c4af7ca40 Merge branch '4275-DTrace-on-macOS-only-needs-header' into 'main'
Don't generate the probes.lo on macOS

Closes #4275

See merge request isc-projects/bind9!8234
2023-08-23 06:59:50 +00:00
Ondřej Surý
3b6db95e70 Regenerate the DTrace generated files on configure change
The DTrace generated files were missing dependency on the Makefile, so
they didn't get regenerated when ./configure was re-run.  This would
create problem especially between ./configure --enable-tracing vs
./configure --disable-tracing invocations.
2023-08-23 07:40:20 +02:00
Ondřej Surý
d13ea59a3c Don't generate the probes.lo on macOS
The DTrace on macOS only needs header file and the dtrace command
doesn't have the -G option.  Skip generating the object file on macOS,
so the build doesn't fail.
2023-08-23 07:33:50 +02:00
Evan Hunt
b4a3b133cc Merge branch '3835-cname-wildcard-loop-followup' into 'main'
prevent query_coveringnsec() from running twice

See merge request isc-projects/bind9!8214
2023-08-21 21:29:56 +00:00
Evan Hunt
ba1f75684f CHANGES for [GL #3835] 2023-08-21 12:23:08 -07:00
Evan Hunt
0ae8b2e056 prevent query_coveringnsec() from running twice
when synthesizing a new CNAME, we now check whether the target
matches the query already being processed. if so, we do not
restart the query; this prevents a waste of resources.
2023-08-21 12:22:47 -07:00
Tom Krizek
344f0bb7ce Merge branch '4249-compile-test-files-during-make' into 'main'
Compile system test binaries during make

Closes #4249

See merge request isc-projects/bind9!8189
2023-08-21 19:13:13 +00:00
Tom Krizek
0422415500 ci: Disable dnsrps for respdiff jobs compiled with ASAN/TSAN
The dnsrps build assumes that dlopen is available from libc. This
assumption isn't met when attempting to build with address or thread
sanitizer on debian (bullseye, bookworm). Disable dnsrps build to avoid
the issue, since it's not needed anyway for our respdiff tests.

See commit b396f55586 for more info about
the dnsrps build.
2023-08-21 20:04:50 +02:00
Tom Krizek
145bec51a0 Resolve scan-build issue in dummylib.c
Value stored to 'rdatap' is never read. Remove the line which has no
effect.
2023-08-21 20:04:50 +02:00
Tom Krizek
21980b43b8 Compile system test binaries during make
Using check_PROGRAMS would postpone compiling the binaries needed by
system tests until `make check` would be called. Since it's preferable
to invoke pytest directly to run the system test suite, compile these
binaries without installing them during `make all` instead by using
noinst_PROGRAMS.

This removes the need to use TESTS= make -e check hack invoked from
pytest to work around this issue.
2023-08-21 20:04:48 +02:00
Ondřej Surý
664d7c642d Merge branch '4041-add-userspace-tracing' into 'main'
Add support for userspace tracing via USDT

Closes #4041

See merge request isc-projects/bind9!7872
2023-08-21 18:04:05 +00:00
Ondřej Surý
52cabc662f Add CHANGES and release note for [GL #4041] 2023-08-21 18:39:53 +02:00
Ondřej Surý
9b858769dc Add zone name to the LIBDNS_XFRIN probes
We already print the formatted zone name via the xfrin_log() function,
generate the text once and store it in xfr->info static buffer.  Then we
can reuse the string to pass it to the LIBDNS_XFRIN probes.
2023-08-21 18:39:53 +02:00
Ondřej Surý
d332f07f38 Add a probe when the response rate limiting drops or slips query
Add a trace point that would report when a query gets dropped or slipped
by rate limits. It reports the client IP, the zone, and the RRL result
code.

Co-authored-by: Paul Frieden <pfrieden@yahooinc.com>
2023-08-21 18:39:53 +02:00
Ondřej Surý
96ccba5d51 Add tracing probes to the dns_xfrin unit
Add tracing probes to incoming transfers, so we can accurately measure
the individual events when sending, receiving and parsing the incoming
transfers.
2023-08-21 18:39:53 +02:00
Ondřej Surý
2484a3702a Add tracing probes to the isc_job unit
Add tracing probes to isc_job unit:

 * libisc:job_cb_before - before the job callback is called
 * libisc:job_cb_after - after the job callback is called
2023-08-21 18:39:53 +02:00
Ondřej Surý
dcd60215ac Add tracing probes to the custom isc_rwlock implementation
Add tracing probes to ISC own isc_rwlock implementation to allow
fine-grained tracing.  The pthread rwlock already has probes inside
glibc, and it's difficult to add probes to headers included from the
other libraries.
2023-08-21 18:39:53 +02:00
Ondřej Surý
784d055809 Add support for User Statically Defined Tracing (USDT) probes
This adds support for User Statically Defined Tracing (USDT).  On
Linux, this uses the header from SystemTap and dtrace utility, but the
support is universal as long as dtrace is available.

Also add the required infrastructure to add probes to libisc, libdns and
libns libraries, where most of the probes will be.
2023-08-21 18:39:53 +02:00
Michal Nowak
1e16d41446 Merge branch '3893-make-debian-12-bookworm-base-image' into 'main'
Make Debian 12 "bookworm" the base image

See merge request isc-projects/bind9!8075
2023-08-21 15:19:49 +00:00
Michal Nowak
077d82403e Move clang:bullseye PKCS11 testing to gcc:bullseye
Move clang:bullseye:amd64 PKCS11 testing to the gcc:bullseye:amd64 job
to evenly represent compilers in PKCS11 testing.
2023-08-21 16:35:52 +02:00
Michal Nowak
55f5aa08f0 Drop unnecessary gcovr workarounds
Many problems of the Debian 11 gcovr version were fixed in the Debian 12
one. Replace workarounds we accumulated over the years with two new,
simple ones.
2023-08-21 16:35:52 +02:00
Michal Nowak
cfb06dabfe Drop PKCS11 testing from "sid", restore it on "clang:bookworm"
The gcc:sid:amd64 job was used to test PKCS11 via the OpenSSL engine API
but is now designated for future PKCS11 testing via the provider API.

The ability to use PKCS11 via engine API in clang:bookworm:amd64 has
been restored using only deprecated APIs in OpenSSL 3.
2023-08-21 16:35:52 +02:00
Michal Nowak
7929168295 Disable mandoc stylistic warning
We are not concerned by the "input text line longer than 80 bytes"
stylistic warning.
2023-08-21 16:35:52 +02:00
Michal Nowak
a330ab221e Drop unneeded -Wno-compound-token-split-by-macro option
Debian 12 has Perl 5.36 and the option is no longer needed.
2023-08-21 16:35:52 +02:00
Michal Nowak
5e1120d9a3 Reintroduce Debian 11 "bullseye" Clang and GCC jobs 2023-08-21 16:35:52 +02:00
Michal Nowak
2d18c57c54 Make Debian 12 "bookworm" the base image
Just replace "bullseye" with "bookworm" and reintroduce Debian 11
"bullseye" later.
2023-08-21 16:35:52 +02:00
Ondřej Surý
a5884c2c1d Merge branch '4265-remove-caching-of-netmgr-sockets-and-uvreqs' into 'main'
Limit the number of inactive handles and uvreqs kept for reuse

Closes #4265

See merge request isc-projects/bind9!8206
2023-08-21 14:35:37 +00:00
Ondřej Surý
db7c501bd3 Add CHANGES note for [GL #4265] 2023-08-21 16:34:30 +02:00
Ondřej Surý
0c9cf8fabb Limit the memory pool for the uvreqs
Set the number of maximum free items for the uvreq memory pool to 64.
2023-08-21 16:34:30 +02:00
Ondřej Surý
f36e118b9a Limit the number of inactive handles kept for reuse
Instead of growing and never shrinking the list of the inactive
handles (to be reused mostly on the UDP connections), limit the number
of maximum number of inactive handles kept to 64.  Instead of caching
the inactive handles for all listening sockets, enable the caching on on
UDP listening sockets.  For TCP, the handles were cached for each
accepted socket thus reusing the handles only for long-standing TCP
connections, but not reusing the handles across different TCP streams.
2023-08-21 16:34:30 +02:00
Tom Krizek
1a958b709a Merge branch '4252-pytest-symlink-to-test-artifacts' into 'main'
Create symlinks to test artifacts for pytest runner

Closes #4252

See merge request isc-projects/bind9!8194
2023-08-21 13:55:07 +00:00
Tom Krizek
355dc73391 .gitignore temporary directories and symlinks in system test dir 2023-08-21 15:54:40 +02:00
Tom Krizek
d66ff81543 Add clean-local target to clean pytest runner artifacts
The command finds all directories in bin/tests/system which contain an
underscore. Underscore indicates either a temporary directory (_tmp_), a
symlink to test artifacts (TESTNAME_MODULENAME), or a python-related
cache. Using underscore for a system test name is invalid and a hyphen
must be used instead.
2023-08-21 15:54:40 +02:00
Tom Krizek
83ddca7690 Silence pylint's refactoring suggestions for system_test_dir()
While it'd be fairly easy to split the function up into smaller ones,
the readability wouldn't be improved in this case. Silence the
suggestions instead.
2023-08-21 15:54:40 +02:00
Tom Krizek
f91d0b13e8 Improve tempdir logging for pytest runner
At the end of the test, display the symlink path to the artifact
directory in case it's preserved. Log the full tempdir name in debug
log.
2023-08-21 15:54:40 +02:00
Tom Krizek
e1ca5c8071 Create symlinks to test artifacts for pytest runner
While temporary directories are useful for test execution to keep
everything clean, they are difficult to work with manually. Create a
symlink for each test artifact directory with a stable and predictable
path. The symlink always either points to the latest artifacts, or is
missing in case the last run succeeded.

Ensure these symlinked directories aren't detected as test suites by the
pytest runner.
2023-08-21 15:54:38 +02:00
Ondřej Surý
838dc9b053 Merge branch '4125-release-notes' into 'main'
Add release note for [GL #4125]

Closes #4125

See merge request isc-projects/bind9!8216
2023-08-21 13:19:00 +00:00
Ondřej Surý
58a8de5246 Add release note for [GL #4125] 2023-08-21 15:16:41 +02:00
Tom Krizek
f52dd73cac Merge branch '4246-remove-legacy-test-runner-from-ci' into 'main'
Use pytest runner for out-of-tree and OpenBSD system tests in CI

Closes #4246

See merge request isc-projects/bind9!8193
2023-08-21 13:13:33 +00:00
Tom Krizek
b1a9d1fe25 Improve pytest message when sanitizer report is found 2023-08-21 15:12:53 +02:00
Tom Krizek
bc66bf146f ci: remove legacy system test runner template 2023-08-21 15:12:53 +02:00
Tom Krizek
d49d9ec80e ci: run out-of-tree system tests with pytest runner
Out-of-tree builds are built in a directory that is different from
source directory. The build directory doesn't contain the non-compiled
test files from bin/tests/system which are the test cases required by
the pytest runner.

In order to run the system tests for out-of-tree build, copy over the
contents (tests) of bin/tests/system/ from the source directory into the
build directory. Then, it is possible to invoke the pytest runner inside
the build directory.
2023-08-21 15:12:53 +02:00
Tom Krizek
8846877dfe ci: use pytest system test runner on OpenBSD
A supported pytest version finally made it to OpenBSD repositories,
allowing us to run system tests with the pytest runner.
2023-08-21 15:12:51 +02:00
Ondřej Surý
f9657267af Merge branch '4125-statschannel-content-length-overflow' into 'main'
Parse statschannel Content-Length: more carefully

Closes #4125

See merge request isc-projects/bind9!8018
2023-08-21 13:01:28 +00:00
Tony Finch
1ba538f32f Add CHANGES entry for [GL #4125] 2023-08-21 14:14:18 +02:00
Tony Finch
26e10e8fb5 Parse statschannel Content-Length: more carefully
A negative or excessively large Content-Length could cause a crash
by making `INSIST(httpd->consume != 0)` fail.
2023-08-21 14:14:18 +02:00