2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-31 14:35:26 +00:00
Commit Graph

42601 Commits

Author SHA1 Message Date
Michal Nowak
a1a7398e6c Run linkchecker only on Wednesdays
Some domains tested by linkchecker may think that we connect to them too
often and will refuse connection or reply with and error code, which
makes this job fail. Let's check links only on Wednesdays.

(cherry picked from commit f745a9212a)
2025-05-05 14:53:49 +00:00
Michal Nowak
80a50dea46 [9.20] chg: ci: Disable linkcheck on www.gnu.org
The check fails with the following error for some time:

    broken    https://www.gnu.org/software/libidn/#libidn2 - HTTPSConnectionPool(host='www.gnu.org', port=443): Max retries exceeded with url: /software/libidn/ (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f5bd4c14590>: Failed to establish a new connection: [Errno 111] Connection refused'))

Backport of MR !10436

Merge branch 'backport-mnowak/linkcheck-disable-www-gnu-org-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!10437
2025-05-05 10:13:38 +00:00
Michal Nowak
3c8ad05de6 Disable linkcheck on www.gnu.org
The check fails with the following error for some time:

    broken    https://www.gnu.org/software/libidn/#libidn2 - HTTPSConnectionPool(host='www.gnu.org', port=443): Max retries exceeded with url: /software/libidn/ (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f5bd4c14590>: Failed to establish a new connection: [Errno 111] Connection refused'))

(cherry picked from commit 0ea4ebf7d1)
2025-05-05 10:00:24 +00:00
Mark Andrews
3e2b255b5b [9.20] fix: dev: fix the ksr two-tone test
The two-tone ksr subtest (test_ksr_twotone) depended on the dnssec-policy keys algorithm values in named.conf being entered in numerical order.  As the algorithms used in the test can be selected randomly this does not always happen. Sort the dnssec-policy keys by algorithm when adding them to the key list from named.conf.

Closes #5286

Backport of MR !10395

Merge branch 'backport-5286-ksr-two-tone-test-only-work-by-luck-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!10435
2025-05-04 05:09:26 +00:00
Mark Andrews
5a7274cbd6 Don't depend on keys being sorted
Extract each section of the bundle and check that the expected
records are there.  The old code was assuming that the records in
each section where in a particular order which didn't happen in
practice.

(cherry picked from commit 92a50dab28)
2025-05-02 07:13:33 +00:00
Matthijs Mekking
95a970bb89 [9.20] chg: test: Rewrite kasp system test to pytest (4)
These tests do not easily fit in the standard test case framework, so they go into their own suite.
- zsk retired case
- checkds cases
- reload/restart
- inheritance tests

Backport of MR !10278

Merge branch 'backport-matthijs-pytest-rewrite-kasp-system-test-4-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!10424
2025-04-30 08:29:03 +00:00
Matthijs Mekking
ca0ae03488 Convert kasp inheritance tests
These tests ensure that if dnssec-policy is set on a higher level, the
zone is still signed (or unsigned) as expected. Or if a higher level
has an override, the new policy is honored as expected.

(cherry picked from commit 2e4cc70626)
2025-04-30 07:56:31 +00:00
Matthijs Mekking
dc74bc8051 Convert reload/restart kasp test case
This test checks that the SOA SERIAL and TTL are adjusted correctly
after a reload/restart.

(cherry picked from commit bff7453e50)
2025-04-30 07:56:31 +00:00
Matthijs Mekking
2c10acafa4 Convert kasp checkds test cases to pytest
This converts the checkds test cases that deal with the 'rndc checkds'
command and setting the 'DSPublish' and 'DSRemoved' metadata.

(cherry picked from commit 44b4d5ebd6)
2025-04-30 07:56:31 +00:00
Matthijs Mekking
9272219a53 Convert kasp zsk retired test case
This test case does not easily fit in the standard test case framework,
so it goes into its own suite.

(cherry picked from commit 1940aa1d0b)
2025-04-30 07:56:31 +00:00
Michał Kępień
da37da6615 [9.20] chg: ci: Revise merge request pipeline job triggering rules
Over the past few years, some of the initial decisions made about which
GitLab CI jobs to run for all merge requests and which of them to run
just for scheduled/web-triggered pipelines turned out to be less than
ideal in practice: test coverage was found to be too lax in some areas
and on the other hand unnecessarily repetitive in others.  For example,
compilation failures for certain build types that are not exercised for
every merge request (e.g. FIPS-enabled builds) turned out to be much
more common in practice than e.g. test failures happening only on a
subset of releases of a given Linux distribution.

To limit excessive resource use while retaining broad test coverage,
adjust GitLab CI job triggering rules for merge request pipelines as
follows:

- run all possible build jobs for every merge request; compilation
failures triggered for build flavors that were only tested in
scheduled pipelines turned out to be surprisingly commonplace and
became a nuisance over time, particularly given that the run times
of build jobs are much lower than those of test jobs,

- for every merge request, run at least one system & unit test job for
each build flavor (e.g. sanitizer-enabled, FIPS-enabled,
out-of-tree, tarball-based, etc.),

- limit the amount of test jobs run for each distinct operating
system; for example, only run system & unit test jobs for Ubuntu
24.04 Noble Numbat in merge request pipelines, skipping those for
Ubuntu 22.04 Jammy Jellyfish and Ubuntu 20.04 Focal Fossa (while
still running them in other pipeline types, e.g. in scheduled
pipelines),

- ensure every merge request is tested on Oracle Linux 8, which is the
operating system with the oldest package versions out of the systems
that are still supported by this BIND 9 branch,

- decrease the number of test jobs run with sanitizers enabled while
still testing with both ASAN and TSAN and both GCC and Clang for
every merge request.

These changes do not affect the set of jobs created for any other
pipeline type (triggered by a schedule, by a GitLab API call, by the web
interface, etc.); only merge request pipelines are affected.

Backport of MR !10349

Merge branch 'backport-michal/revise-ci-job-triggering-rules-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!10430
2025-04-29 16:57:03 +00:00
Michał Kępień
6960aa7712 Revise merge request pipeline job triggering rules
Over the past few years, some of the initial decisions made about which
GitLab CI jobs to run for all merge requests and which of them to run
just for scheduled/web-triggered pipelines turned out to be less than
ideal in practice: test coverage was found to be too lax in some areas
and on the other hand unnecessarily repetitive in others.  For example,
compilation failures for certain build types that are not exercised for
every merge request (e.g. FIPS-enabled builds) turned out to be much
more common in practice than e.g. test failures happening only on a
subset of releases of a given Linux distribution.

To limit excessive resource use while retaining broad test coverage,
adjust GitLab CI job triggering rules for merge request pipelines as
follows:

  - run all possible build jobs for every merge request; compilation
    failures triggered for build flavors that were only tested in
    scheduled pipelines turned out to be surprisingly commonplace and
    became a nuisance over time, particularly given that the run times
    of build jobs are much lower than those of test jobs,

  - for every merge request, run at least one system & unit test job for
    each build flavor (e.g. sanitizer-enabled, FIPS-enabled,
    out-of-tree, tarball-based, etc.),

  - limit the amount of test jobs run for each distinct operating
    system; for example, only run system & unit test jobs for Ubuntu
    24.04 Noble Numbat in merge request pipelines, skipping those for
    Ubuntu 22.04 Jammy Jellyfish and Ubuntu 20.04 Focal Fossa (while
    still running them in other pipeline types, e.g. in scheduled
    pipelines),

  - ensure every merge request is tested on Oracle Linux 8, which is the
    operating system with the oldest package versions out of the systems
    that are still supported by this BIND 9 branch,

  - decrease the number of test jobs run with sanitizers enabled while
    still testing with both ASAN and TSAN and both GCC and Clang for
    every merge request.

These changes do not affect the set of jobs created for any other
pipeline type (triggered by a schedule, by a GitLab API call, by the web
interface, etc.); only merge request pipelines are affected.

(cherry picked from commit 4ad8c86cf2)
2025-04-29 16:20:16 +00:00
Michal Nowak
b2a323dd70 [9.20] rem: ci: Drop OpenBSD from the CI
With the ongoing process of moving CI workloads to AWS, OpenBSD poses a
challenge, as there is no OpenBSD AMI image in the AWS catalog. Building
our image from scratch is disproportionately complicated, given that
OpenBSD is not a common deployment platform for BIND 9. Otherwise,
OpenBSD stays at the "Best-Effort" level of support.

Backport of MR !10375

Merge branch 'backport-mnowak/drop-openbsd-from-ci-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!10428
2025-04-29 11:00:52 +00:00
Michal Nowak
545cabb177 Drop OpenBSD from the CI
With the ongoing process of moving CI workloads to AWS, OpenBSD poses a
challenge, as there is no OpenBSD AMI image in the AWS catalog. Building
our image from scratch is disproportionately complicated, given that
OpenBSD is not a common deployment platform for BIND 9. Otherwise,
OpenBSD stays at the "Best-Effort" level of support.

(cherry picked from commit 0dc9b4573d)
2025-04-29 10:56:01 +00:00
Matthijs Mekking
e14173668e [9.20] chg: test: Rewrite kasp system test to pytest (3)
Write python-based tests for the many test cases from the kasp system test with the same pattern.

Backport of MR !10268

Merge branch 'backport-matthijs-pytest-rewrite-kasp-system-test-3-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!10421
2025-04-23 16:32:45 +00:00
Matthijs Mekking
3d1a763dff Parametrize the default kasp test cases
Make use of pytest.mark.parametrize to split up the many default kasp
test cases into separate tests.

(cherry picked from commit 7d670b7fe7)
2025-04-23 17:59:41 +02:00
Matthijs Mekking
242e26ff4c Convert keystore and rumoured kasp test cases
For 'keystore.kasp', a setting 'key-directories' is used. If set, this
will expect a list of two directories, the first one is where the KSKs
will be stored, the second in the list is the ZSK key directory. This
may be expanded in the future to test more complex key storage cases.

The 'rumoured.kasp' zone is weird, the key timings can never match
those key states. But it is a regression test for an early day bug,
so we convert it, but skip the expected key times check.

(cherry picked from commit ee7120eb34)
2025-04-23 15:53:12 +00:00
Matthijs Mekking
a996e18417 Convert more kasp test cases to pytest
These test cases follow the same pattern as many other, but all require
some additional checks. These are set in "additional-tests".

The "zsk-missing.autosign" zone is special handled, as it expects the
KSK to sign the SOA RRset (because the ZSK is unavailable).

The kasp/ns3/setup.sh script is updated so the SyncPublish is not set
(named will initialize it correctly). For the test zones that have
missing private key files we do need to set the expected key timing
metadata.

Remove the counterparts for the newly added test from the kasp shell
tests script.

(cherry picked from commit 5f23f750c2)
2025-04-23 15:53:12 +00:00
Matthijs Mekking
76edf2deb6 Update kasp check_signatures for dnssec-policy
The check_signatures code was initially created to be suitable for
the ksr system test, to test the Offline KSK feature. For that, a
key is expected to be signing if the current time is between
the timing metadata Active and Retired.

With dnssec-policy, the key timing metadata is indicative, the key
states determine the actual signing behavior.

Update the check_signatures function so that by default the signing
is derived from the key states (ksigning and zsigning). Add an
argument 'offline_ksk', if set the make sure that the zsigning is set
if the current time is between the Active and Retired timing metadata,
and for ksigning we just use the timing metadata (as the key is offline,
we cannot check the key states).

Another (upcoming) test case is where key files are missing. When the
ZSK private key file is missing, the KSK takes over. Add an argument
'zsk_missing', when set to True the expected zone signing (zsigning)
is reversed.

(cherry picked from commit fddf9f778b)
2025-04-23 15:53:12 +00:00
Matthijs Mekking
6f98c8e10b Two more kasp test cases converted to pytest
The zone 'pregenerated.kasp' is a case where there already exist more
keys than required. For this we set the 'pregenerated' setting. This
will change the 'keydir_to_keylist' function behavior: Only keys in use
are considered. A key is in use if all of the states are either
undefined, or set to 'hidden'.

The 'some-keys.kasp' zone is similar to 'pregenerated.kasp', except
only some keys have been pregenerated.

(cherry picked from commit 43ded45ae9)
2025-04-23 15:53:12 +00:00
Matthijs Mekking
53f02790b1 Convert many kasp test cases to pytst
Write python-based tests for the many test cases from the kasp system
test. These test cases all follow the same pattern:

- Wait until the zone is signed.
- Check the keys from the key-directory against expected properties.
- Set the expected key timings derived from when the key was created.
- Check the key timing metadata against expected timings.
- Check the 'rndc dnssec -status' output.
- Check the apex is signed correctly.
- Check a subdomain is signed correctly.
- Verify that the zone is DNSSEC correct.

Remove the counterparts for the newly added test from the kasp shell
tests script.

(cherry picked from commit 41481af144)
2025-04-23 15:53:12 +00:00
Arаm Sаrgsyаn
d839d11bf6 [9.20] fix: usr: Fix a serve-stale issue with a delegated zone
When ``stale-answer-client-timeout 0`` option was enabled, it could be ignored
when resolving a zone which is a delegation of an authoritative zone belonging
to the resolver. This has been fixed.

Closes #5275

Backport of MR !10381

Merge branch 'backport-5275-stale-answer-client-timeout-0-and-delegation-fix-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!10420
2025-04-23 13:41:46 +00:00
Aram Sargsyan
948baaf40f Test 'stale-answer-client-timeout 0' with a delegation
Add a new test which gets an answer for a delegated zone, then
checks whether the 'stale-answer-client-timeout 0' mode (i.e. the
'stalefirst' mode) works for it.

(cherry picked from commit 441b7d53f4)
2025-04-23 12:59:42 +00:00
Aram Sargsyan
7d652d9994 Fix a serve-stale issue with a delegated zone
When 'stale-answer-client-timeout' is 0, named is allowed to return
a stale answer immediately, while also initiating a new query to get
the real answer. This mode is activated in ns__query_start() by setting
the 'qctx->options.stalefirst' optoin to 'true' before calling the
query_lookup() function, but not when the zone is known to be
authoritative to the server. When the zone is authoritative, and
query_looup() finds out that the requested name is a delegation,
then before proceeding with the query, named tries to look it up
in the cache first. Here comes the issue that it doesn't consider
enabling 'qctx->options.stalefirst' in this case, and so the
'stale-answer-client-timeout 0' setting doesn't work for those
delegated zones - instead of immediately returning the stale answer
(if it exists), named tries to resolve it.

Fix this issue by enabling 'qctx->options.stalefirst' in the
query_zone_delegation() function just before named looks up the name
in the cache using a new query_lookup() call. Also, if nothing was
found in the cache, don't initiate another query_lookup() from inside
query_notfound(), and let query_notfound() do its work, i.e. it will
call query_delegation() for further processing.

(cherry picked from commit 412aa881f2)
2025-04-23 12:59:41 +00:00
Matthijs Mekking
8f7f97666a [9.20] chg: doc: Add a note on pregenerating keys
With `dnssec-policy` you can pregenerate keys and if they are eligible, rather than creating a new key, a key is selected from the pregenerated keys. A key is eligible if it is unused, i.e it has no key timing metadata set.

Backport of MR !10385

Merge branch 'backport-matthijs-clarify-pregenerating-keys-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!10388
2025-04-22 08:17:28 +00:00
Matthijs Mekking
9d97cfd594 Add a note about pregenarating keys for key rolls
With dnssec-policy you can pregenerate keys and if they are eligible,
rather than creating a new key, a key is selected from the pregenerated
keys. A key is eligible if it is unused, i.e it has no key timing
metadata set.

(cherry picked from commit 9880bfff63)
2025-04-22 07:42:48 +00:00
Ondřej Surý
51e51d5ea8 [9.20] fix: usr: Disable own memory context for libxml2 on macOS
Apple broke custom memory allocation functions in the system-wide libxml2 starting with macOS Sequoia 15.4.  Usage of the custom memory allocation functions has been disabled on macOS.

Closes #5268

Backport of MR !10374

Merge branch 'backport-5268-disable-libxml2-memory-management-on-macos-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!10411
2025-04-18 20:04:25 +00:00
Ondřej Surý
9ac22fb152 Disable own memory context for libxml2 on macOS 15.4 Sequoia
The custom allocation API for libxml2 is deprecated starting in macOS
Sequoia 15.4, iOS 18.4, tvOS 18.4, visionOS 2.4, and tvOS 18.4.

Disable the memory function override for libxml2 when
LIBXML_HAS_DEPRECATED_MEMORY_ALLOCATION_FUNCTIONS is defined as Apple
broke the system-wide libxml2 starting with macOS Sequoia 15.4.

(cherry picked from commit bf1b8824ac)
2025-04-18 21:00:52 +02:00
Matthijs Mekking
4360797308 [9.20] chg: test: Rewrite kasp system test to pytest (2)
Convert the first batch of tests from `kasp/tests.sh` to `kasp/tests_kasp.py`.

Backport of MR !10253

Merge branch 'backport-matthijs-pytest-rewrite-kasp-system-test-2-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!10408
2025-04-17 13:22:14 +00:00
Matthijs Mekking
b50333e889 Fix bugs in isctest.kasp
isctest.util was not imported so file_contents_contain could not be
found. And rename verify_keys to check_keys because it asserts in
isctest.run.retry_with_timeout.

(cherry picked from commit 62a6b9faa7)
2025-04-17 12:27:47 +00:00
Matthijs Mekking
7695be3018 The kasp tests require dnspython >= 2.0.0
The kasp tests make use of dns.update.UpdateMessage and dns.tsig.Key,
that are introduced in dnspython 2.0.0.

(cherry picked from commit 46aead5a6d)
2025-04-17 12:27:47 +00:00
Matthijs Mekking
6650acfb2e Convert some special kasp test cases to pytest
This converts a special characters test case, a max-zone-ttl error
check, and two cases of insecure zones.

We no longer assert for having more than one DNSKEY and/or RRSIG
records. If the zone is insecure, this is no longer always true. And
we already check for the expected number of records in the
check_dnskeys/check_signatures functions.

(cherry picked from commit 07ac0e6036)
2025-04-17 12:27:46 +00:00
Matthijs Mekking
dd71177f49 Convert dynamic zone test cases to pytest
This commit deals with converting the dynamic zone test cases to
pytest. The tests for 'inline-signing.kasp' are similar to the default
case, so these are added to 'test_kasp_default'.

Unfortunately I need to add sleep calls in between freezing, updating,
and thawing a zone. Without it the intermittent failures are too
frequent.

(cherry picked from commit 0b41afbd15)
2025-04-17 12:27:46 +00:00
Matthijs Mekking
e1363e8ce9 Convert kasp default test cases to pytest
This commit deals with converting the test cases related to the default
dnssec-policy.

This requires a new method 'check_update_is_signed'. This method will
be used in future tests as well, and checks if an expected record is
in the zone and is properly signed.

Remove the counterparts for the newly added test from the kasp shell
tests script.

(cherry picked from commit 4e22b019f5)
2025-04-17 12:27:46 +00:00
Matthijs Mekking
a1f072cfec Convert kasp dnssectools tests to pytest
Convert the first couple of tests from 'kasp/tests.sh' to
'kasp/tests_kasp.py', those are test cases related to 'dnssec-keygen'
and 'dnssec-settime'.

For this, we also add a new KeyProperties method,
'policy_to_properties', that takes a list of strings which represent
the keys according to the dnssec-policy and the expected key states.

(cherry picked from commit 00ea2c2564)
2025-04-17 12:27:46 +00:00
Michal Nowak
cbab573d9f [9.20] new: ci: Add Fedora 42
Backport of MR !10404

Merge branch 'backport-mnowak/fedora-42-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!10405
2025-04-17 08:43:46 +00:00
Michal Nowak
88630a7eef Add Fedora 42
(cherry picked from commit dcccfb4cf8)
2025-04-17 08:04:44 +00:00
Arаm Sаrgsyаn
9176fc276d [9.20] fix: test: Fix the isc_rwlock_tryupgrade() function's unit test
The pthread-based implementation of the isc_rwlock_tryupgrade()
function always returns ISC_R_LOCKBUSY. Fix the test by adding
conditional checks.

Closes #5287

Backport of MR !10398

Merge branch 'backport-5287-pthread-rwlock-tryupgrade-test-fix-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!10403
2025-04-16 16:40:51 +00:00
Aram Sargsyan
b959ac44a7 Fix the isc_rwlock_tryupgrade() function's unit test
The pthread-based implementation of the isc_rwlock_tryupgrade()
function always returns ISC_R_LOCKBUSY. Fix the test by adding
conditional checks.

(cherry picked from commit c27659bc62)
2025-04-16 16:04:08 +00:00
Nicki Křížek
005c23aba7 Merge tag 'v9.20.8' into bind-9.20 2025-04-16 15:29:04 +02:00
Nicki Křížek
8f545784ff [9.20] chg: pkg: Use jinja2 templates in system tests
`python-jinja2` is now required to run system tests.

Related #4938

Backport of MR !9588

Merge branch 'backport-nicki/replace-setup-sh-files-with-jinja2-templates-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!10396
2025-04-16 11:44:56 +00:00
Nicki Křížek
a39308b762 Require python-jinja2 for system tests
Many of the system tests now use jinja2 template engine. Adding jinja2
as a hard dependency is preferable than potentially silently skipping
many system tests.

(cherry picked from commit 543ba8da5a)
2025-04-16 10:47:58 +02:00
Nicki Křížek
bef30229fc Replace selected setup.sh system test files
These setup.sh scripts only do templating and copying files. Both of
these can be replaced with either jinja templates, or using plain files.
Since each test invocation creates its own temporary directory, copying
files to ensure a "clean" state is no longer necessary.

In cases where named writes some content to the files, a jinja template
can be used instead of a plain file to avoid an artifact check which
would detect a change to a git-tracked file.

(cherry picked from commit e0f0c557a0)
2025-04-16 10:47:58 +02:00
Nicki Křížek
209be9ee33 Replace the trivial setup.sh system test files
All these setup files only use copy_setports function which can be done
with jinja2 templates instead -- simply by renaming the .in files to
.j2, without any other changes. The pytest runner will render these
templates during test setup without any need for an additional script.

(cherry picked from commit a9f1b8d6a6)
2025-04-16 10:47:56 +02:00
Mark Andrews
34b7323bad [9.20] fix: usr: Return DNS COOKIE and NSID with BADVERS
This change allows the client to identify the server that returns the
BADVERS and to provide a DNS SERVER COOKIE to be included in the
resend of the request.

Closes #5235

Backport of MR !10334

Merge branch 'backport-5235-return-the-server-cookie-when-returning-badvers-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!10392
2025-04-15 04:12:05 +00:00
Mark Andrews
4f125b1e1c Check DNS COOKIE, NSID and BADVERS
DNS COOKIE and NSID should also be being processed when returning
BADVERS.  Check that this has actually occured by looking for the
cookie and nsid in the response.

(cherry picked from commit f69b4bc5e0)
2025-04-15 03:13:20 +00:00
Mark Andrews
055253998e Extract and send server cookie with BADVERS retry
A BADVERS response can also include EDNS SERVER COOKIE.  Extract
that from the OPT record and use it when resending the request.

(cherry picked from commit 44140cad3b)
2025-04-15 03:13:20 +00:00
Mark Andrews
71875eb25a Process NSID and DNS COOKIE options when returning BADVERS
This will help identify the broken server if we happen to break
EDNS version negotiation.  It will also help protect the client
from spoofed BADVERSION responses.

(cherry picked from commit 0d9cab1555)
2025-04-15 03:13:20 +00:00
Michal Nowak
745a9ab15f [9.20] fix: test: Fix check_pid() in runtime system test on FreeBSD
The original check_pid() always returned 0 on FreeBSD, even if the
process was still running. This makes the "verifying that named checks
for conflicting named processes" check fail on FreeBSD with TSAN.

Backport of MR !10373

Merge branch 'backport-mnowak/fix-runtime-pid-check-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!10386
2025-04-14 11:36:57 +00:00
Michal Nowak
7051e3cc19 Fix check_pid() in runtime system test on FreeBSD
The original check_pid() always returned 0 on FreeBSD, even if the
process was still running. This makes the "verifying that named checks
for conflicting named processes" check fail on FreeBSD with TSAN.

(cherry picked from commit 6acaca963d)
2025-04-14 10:59:05 +00:00