Commit Graph
28134 Commits
Author SHA1 Message Date
Mark Andrews 261c84d91d fix variable name in conditional block 2019-12-19 09:27:44 +11:00
Mark Andrews 6f308bb7ed Merge branch 'feature/master/maxminddb-version-v9_11' into 'v9_11'
Feature/master/maxminddb version v9 11

See merge request isc-projects/bind9!2781
2019-12-18 00:58:02 +00:00
Mark Andrews b437561cc4 add CHANGES
(cherry picked from commit 2f2bc03b2d)
2019-12-18 11:39:43 +11:00
Petr MenšíkandMark Andrews a9a39eb5b5 Include protobuf-c version
Include used version of protobuf-c in version info, both link time and
runtime version is available.

(cherry picked from commit 85f3476894)
2019-12-18 11:39:20 +11:00
Petr MenšíkandMark Andrews a6f25f9d25 Provide GeoIP2 library version in version
Libmaxmind does not provide any version macro for link time version.
Print at least runtime version library used, if linked.

(cherry picked from commit e6d7384c0d)
2019-12-18 11:38:41 +11:00
Mark Andrews ccc56442db Merge branch 'ondrej/remove-too-generic-node_count-macro-from-dns_acl-v9_11' into 'v9_11'
Change the (acl)->node_count macro to dns_acl_node_count(acl) macro to clean the global namespace

See merge request isc-projects/bind9!2780
2019-12-18 00:32:10 +00:00
Ondřej SurýandMark Andrews f8cab45c3b Change the (acl)->node_count macro to dns_acl_node_count(acl) macro to clean the global namespace
(cherry picked from commit 8120088ec7)
2019-12-18 11:11:48 +11:00
Mark Andrews 6b302a47e3 Merge branch '1414-threadsanitizer-data-race-task-c-367-in-task_shutdown' into 'v9_11'
Resolve "ThreadSanitizer: data race task.c:367 in task_shutdown"

See merge request isc-projects/bind9!2764
2019-12-12 23:15:27 +00:00
Mark Andrews 7c94d2cd7d acquire task lock before calling push_readyq for task->flags access 2019-12-12 22:54:15 +00:00
Ondřej Surý fba81c5d28 Merge branch '1423-threadsanitizer-data-race-time-c-170-in-isc_time_nowplusinterval-v9_11' into 'v9_11'
Ensure all zone_settimer() calls are done on locked zone

See merge request isc-projects/bind9!2770
2019-12-12 15:40:51 +00:00
Ondřej Surý 3bac7e9807 Ensure all zone_settimer() calls are done on locked zone
(cherry picked from commit cf48e8eb32)
2019-12-12 16:16:59 +01:00
Mark Andrews ccb8fcf666 Merge branch '1486-threadsanitizer-lock-order-inversion-potential-deadlock-dns_resolver_createfetch-vs' into 'v9_11'
Resolve "ThreadSanitizer: lock-order-inversion (potential deadlock) - dns_resolver_createfetch vs dns_resolver_shutdown"

See merge request isc-projects/bind9!2766
2019-12-12 11:36:39 +00:00
Mark Andrews a52189e8e6 give zspill its own lock 2019-12-12 20:41:44 +11:00
Evan Hunt ea409239d5 Merge branch 'prep-release-v9_11_14' into 'v9_11'
Prep 9.11.14

See merge request isc-projects/bind9!2761
v9.11.14
2019-12-12 05:17:55 +00:00
Tinderbox User 4775225de3 Merge branch 'prep-release' into v9_11 2019-12-12 05:01:30 +00:00
Tinderbox User ed6da5ec3d prep 9.11.14 2019-12-12 05:01:05 +00:00
Evan Hunt 9388760254 Merge branch 'michal/add-empty-release-notes-section-for-bind-9.11.14' into 'v9_11'
Add empty release notes section for BIND 9.11.14

See merge request isc-projects/bind9!2757
2019-12-11 22:11:04 +00:00
Michał KępieńandEvan Hunt 405a8aa648 Add empty release notes section for BIND 9.11.14 2019-12-11 22:10:07 +00:00
Michal Nowak 6792a4a8ca Merge branch 'mnowak/fedora31-v9.11' into 'v9_11'
[9.11] Update GitLab CI to Fedora 31

See merge request isc-projects/bind9!2759
2019-12-11 16:34:05 +00:00
Michal Nowak 7e717ab30c Update GitLab CI to Fedora 31
Since Fedora 31 is the current Fedora release, replace Fedora 30 GitLab
CI jobs with their up-to-date counterparts.

(cherry picked from commit b36f5496237f0dbb84d7541140e87d7da475cd36)
2019-12-11 16:34:04 +00:00
Michał Kępień 6466b5e611 Merge branch 'michal/create-release-tarballs-in-gitlab-ci-v9_11' into 'v9_11'
[v9_11] Create release tarballs in GitLab CI

See merge request isc-projects/bind9!2756
2019-12-11 14:15:25 +00:00
Michał Kępień da0aef8c96 Add a job creating a release tarball to GitLab CI
Add a GitLab CI job (which is run only if all other jobs in a pipeline
succeed) that builds a BIND release tarball, i.e. fetches the source
tarball from the tarball building job, creates Windows zips, puts
certain parts of BIND documentation into the appropriate places, and
packs it all up into a single tarball whose contents can be subsequently
signed and published.

(cherry picked from commit 5a4a6b5e91)
2019-12-11 15:13:00 +01:00
Michał Kępień 524dc88bb4 Add a Windows debug system test job to GitLab CI
Add a system test job for binaries created by Visual Studio in the
"Debug" build configuration to GitLab CI so that they can be tested
along their "Release" counterparts when necessary.

(cherry picked from commit 2b1c8c54d1)
2019-12-11 15:13:00 +01:00
Michał Kępień 084a1e033b Add a Windows debug build job to GitLab CI
Add a Visual Studio build job using the "Debug" build configuration to
GitLab CI without enabling it for every pipeline as it takes about twice
as long to complete as its "Release" counterpart.

(cherry picked from commit 12564928a7)
2019-12-11 15:13:00 +01:00
Michał Kępień 7f4887f64c Create and test BIND source tarballs in GitLab CI
Add a set of jobs to GitLab CI that create a BIND source tarball and
then build and test its contents.  Run those extra jobs only when a tag
is pushed to the Git repository as they are only meant to be sanity
checks of BIND source tarball contents.

(cherry picked from commit 8d56749046)
2019-12-11 15:13:00 +01:00
Michał Kępień ac1267c36a Include prepare-softhsm2.sh in source tarballs
The util/prepare-softhsm2.sh script is useful for initializing a working
SoftHSM environment which can be used by unit tests and system tests.
However, since it is a test-specific script, it does not really belong
in the util/ subdirectory which is mostly pruned during the BIND source
tarball creation process.  Move the prepare-softhsm2.sh script to
bin/tests/ so that its location is more appropriate for its purpose and
also so that it does not get removed during the BIND source tarball
creation process, allowing it to be used for setting up test
environments for tarball-based builds.

(cherry picked from commit c0be772ebc)
2019-12-11 15:13:00 +01:00
Michał Kępień ab3db95154 List paths which should be excluded from tarballs
Convert the logic (currently present in the form of "rm -rf" calls in
util/kit.sh) for removing files and directories which are tracked by Git
but redundant in release tarballs into a set of .gitattributes rules
which allow the same effect to be achieved using "git archive".

(cherry picked from commit 925ecb0aae)
2019-12-11 15:13:00 +01:00
Michał Kępień 8262a66a7f Merge branch 'michal/only-list-the-lwresd-system-test-once-on-windows' into 'v9_11'
Only list the "lwresd" system test once on Windows

See merge request isc-projects/bind9!2755
2019-12-11 14:12:19 +00:00
Michał Kępień 54b0b051db Only list the "lwresd" system test once on Windows
In bin/tests/system/conf.sh.win32, the "lwresd" system test is
erroneously listed both in SEQUENTIALDIRS and PARALLELDIRS.  Keep it
only in the former to prevent GitLab CI pipelines from consistently
failing on Windows due to SUBDIRS containing a different number of tests
than found in bin/tests/system/systests.output.
2019-12-11 14:29:21 +01:00
Mark Andrews 008a0da1b6 Merge branch '1411-threadsanitizer-data-race-resolver-c-2153-in-fctx_query-v9_11' into 'v9_11'
Resolve "ThreadSanitizer: data race resolver.c:2153 in fctx_query"

See merge request isc-projects/bind9!2749
2019-12-11 00:28:43 +00:00
Mark Andrews 020c29a8c8 Note bucket lock requirements.
(cherry picked from commit 13aaeaa06f)
2019-12-11 11:08:03 +11:00
Mark Andrews 89cf1dc665 lock access to fctx->nqueries
(cherry picked from commit 5589748eca)
2019-12-11 11:02:21 +11:00
Mark Andrews 58dfcd9fb3 Merge branch '1441-threadsanitizer-lock-order-inversion-potential-deadlock-usr-lib-x86_64-linux-gnu-libtsan-so-0-v9_11' into 'v9_11'
address deadlock introduced in cd2469d3cd

See merge request isc-projects/bind9!2746
2019-12-10 20:48:08 +00:00
Mark Andrews 4263b2ea21 address deadlock introduced in cd2469d3cd
(cherry picked from commit fd52417f71)
2019-12-10 20:24:05 +00:00
Matthijs Mekking 2de3f344ef Merge branch '1457-intermittent-failure-autosign-v9_11' into 'v9_11'
Resolve "Intermittent failure in the autosign system test"

See merge request isc-projects/bind9!2733
2019-12-10 14:21:16 +00:00
Matthijs MekkingandOndřej Surý 6d83b061ab Better error handling in autosign system test
(cherry picked from commit bd4035900a)
(cherry picked from commit 6658c11251)
2019-12-10 13:58:25 +00:00
Matthijs MekkingandOndřej Surý 677ea3aa05 Fix race in autosign test
The autosign test has a test case where a DNSSEC maintaiend zone
has a set of DNSSEC keys without any timing metadata set.  It
tests if named picks up the key for publication and signing if a
delayed dnssec-settime/loadkeys event has occured.

The test failed intermittently despite the fact it sleeps for 5
seconds but the triggered key reconfigure action should happen after
3 seconds.

However, the test output showed that the test query came in before
the key reconfigure action was complete (see excerpts below).

The loadkeys command is received:

15:38:36 received control channel command 'loadkeys delay.example.'

The reconfiguring zone keys action is triggered after 3 seconds:

15:38:39 zone delay.example/IN: reconfiguring zone keys
15:38:39 DNSKEY delay.example/NSEC3RSASHA1/7484 (ZSK) is now published
15:38:39 DNSKEY delay.example/NSEC3RSASHA1/7455 (KSK) is now published
15:38:39 writing to journal

Two seconds later the test query comes in:

15:38:41 client @0x7f1b8c0562b0 10.53.0.1#44177: query
15:38:41 client @0x7f1b8c0562b0 10.53.0.1#44177: endrequest

And 6 more seconds later the reconfigure keys action is complete:

15:38:47 zone delay.example/IN: next key event: 05-Dec-2019 15:48:39

This commit fixes the test by checking the "next key event" log has
been seen before executing the test query, making sure that the
reconfigure keys action has been complete.

This commit however does not fix, nor explain why it took such a long
time (8 seconds) to reconfigure the keys.

(cherry picked from commit 2e4273b55a)
(cherry picked from commit fb0ddd5bfe)
2019-12-10 13:58:24 +00:00
Matthijs MekkingandOndřej Surý f346fbdec9 Introduce wait_for_log in autosign test
(cherry picked from commit 5d6fad9e1e)
2019-12-10 13:58:24 +00:00
Matthijs MekkingandOndřej Surý ff44e1f086 Save settime output
(cherry picked from commit 6b4a17ef7c)
2019-12-10 13:58:24 +00:00
Michał Kępień 207c976807 Merge branch '1465-fix-idna-system-test-v9_11' into 'v9_11'
[v9_11] Fix the "idna" system test

See merge request isc-projects/bind9!2742
2019-12-10 13:38:32 +00:00
Michał Kępień 367a576f73 Use a different character for invalid U-label test
When libidn2 2.3.0+ is used, the "idna" system test fails as dig does
not fail as expected any more due to libidn2 2.3.0 using Unicode 11.0.0
IDNA mapping tables [1] instead of Unicode 6.3.0 ones which were used
until libidn2 2.2.0.  Specifically, the SOCKS character (🧦) used in the
invalid input U-label check in the "idna" system test is a valid IDNA
character as per the IDNA mapping tables for Unicode 11.0.0.  Fix the
relevant checks by using a different character (🟥) which is an invalid
IDNA character for all versions of Unicode released to date.

[1] https://gitlab.com/libidn/libidn2/commit/5eaafda64e733bfe15f66c8a39fd9bc2753ba8f2
2019-12-10 12:01:49 +01:00
Michał Kępień 6966422bf9 Only use LC_ALL=C where intended
The LC_ALL=C assignments in the "idna" system test, which were only
meant to affect a certain subset of checks, in fact persist throughout
all the subsequent checks in that system test.  That affects the test's
behavior and is misleading.

When the "VARIABLE=value command ..." syntax is used in a shell script,
in order for the variable assignment to only apply to "command", the
latter must be an external binary; otherwise, the VARIABLE=value
assignment persists for all subsequent commands in a script:

    $ cat foo.sh
    #!/bin/sh

    foo() {
        /bin/sh bar.sh
    }

    BAR="baz0"
    BAR="baz1" /bin/sh bar.sh
    echo "foo: BAR=${BAR}"
    BAR="baz2" foo
    echo "foo: BAR=${BAR}"

    $ cat bar.sh
    #!/bin/sh

    echo "bar: BAR=${BAR}"

    $ /bin/sh foo.sh
    bar: BAR=baz1
    foo: BAR=baz0
    bar: BAR=baz2
    foo: BAR=baz2
    $

Fix by saving the value of LC_ALL before the relevant set of checks in
the "idna" system test, restoring it afterwards, and dropping the
"LC_ALL=C command ..." syntax.

(cherry picked from commit 2ee7ff23ce)
2019-12-10 12:01:26 +01:00
Michał Kępień ed6fd9420d Merge branch '1452-system-test-framework-cleanup-tweaks-v9_11' into 'v9_11'
[v9_11] System test framework: cleanup tweaks

See merge request isc-projects/bind9!2723
2019-12-06 14:10:18 +00:00
Michał Kępień 26213ff696 Automatically run clean.sh from run.sh
The first step in all existing setup.sh scripts is to call clean.sh.  To
reduce code duplication and ensure all system tests added in the future
behave consistently with existing ones, invoke clean.sh from run.sh
before calling setup.sh.

(cherry picked from commit d8905b7a9c)
2019-12-06 15:06:49 +01:00
Michał Kępień ef3a08226c Remove bin/tests/system/clean.sh
Since the role of the bin/tests/system/clean.sh script has now been
reduced to calling a given system test's clean.sh script, remove the
former altogether and replace its only use with a direct invocation of
the latter.

(cherry picked from commit bf3eeac067)
2019-12-06 15:06:49 +01:00
Michał Kępień bc04dbf788 Remove the -r switch from system test scripts
Since files containing system test output are no longer stored in test
subdirectories, bin/tests/system/clean.sh no longer needs to take care
of removing the test.output file for a given test as testsummary.sh
already takes care of that and even if a test suite terminates
abnormally and another one is started, tee invoked without the -a
command line switch overwrites the destination file if it exists, so
leftover test.output.* files from previous test suite runs are not a
concern.  Remove the -r command line switch and the code associated with
it from the relevant scripts.

(cherry picked from commit b4d37878f6)
2019-12-06 15:06:49 +01:00
Michał Kępień cbc56385b2 Store system test output in bin/tests/system/
Some clean.sh scripts contain overly broad file deletion wildcards which
cause the test.output file (used by the system test framework for
collecting output) in a given system test's directory to be erroneously
removed immediately after the test is started (due to setup.sh scripts
calling clean.sh at the beginning).  This prevents the test's output
from being placed in bin/tests/system/systests.output at the end of a
test suite run and thus can lead to test failures being ignored.  Fix by
storing each test's output in a test.output.<test-name> file in
bin/tests/system/, which prevents clean.sh scripts from removing it (as
they should only ever affect files contained in a given system test's
directory).

(cherry picked from commit b0916bba41)
2019-12-06 15:06:49 +01:00
Michał Kępień e37da165c7 Merge branch '1452-detect-missing-system-test-results-v9_11' into 'v9_11'
[v9_11] Detect missing system test results

See merge request isc-projects/bind9!2722
2019-12-06 14:01:51 +00:00
Michał Kępień fef7060935 Detect missing system test results
At the end of each system test suite run, the system test framework
collects all existing test.output files from system test subdirectories
and produces bin/tests/system/systests.output from those files.
However, it does not check whether a test.output file was found for
every executed test.  Thus, if the test.output file is accidentally
deleted by the system test itself (e.g. due to an overly broad file
removal wildcard present in clean.sh), its output will not be included
in bin/tests/system/systests.output.  Since the result of each system
test suite run is determined by bin/tests/system/testsummary.sh, which
only operates on the contents of bin/tests/system/systests.output, this
can lead to test failures being ignored.  Fix by ensuring the number of
test results found in bin/tests/system/systests.output is equal to the
number of tests run and triggering a system test suite failure in case
of a discrepancy between these two values.

(cherry picked from commit 3c3085be3c)
2019-12-06 14:42:13 +01:00
Ondřej Surý 5c18c39d49 Merge branch 'ondrej/note-about-atomics-in-v9_11' into 'v9_11'
Add note about atomics and statistic counters in BIND 9.11

See merge request isc-projects/bind9!2710
2019-12-05 14:30:50 +00:00