Commit Graph

29736 Commits

Author SHA1 Message Date
Diego Fronza
558d7ff5e5 Added TCP high-water system tests
Note: ans6/ans6.py is a helper script that allows tests.sh to open/close
TCP connections to some BIND instance.

(cherry picked from commit 29be224a04)
2019-11-06 11:26:22 +01:00
Diego Fronza
d5cc3ed381 Added TCP high-water statistics variable
This variable will report the maximum number of simultaneous tcp clients
that BIND has served while running.

It can be verified by running rndc status, then inspect "tcp high-water:
count", or by generating statistics file, rndc stats, then inspect the
line with "TCP connection high-water" text.

The tcp-highwater variable is atomically updated based on an existing
tcp-quota system handled in ns/client.c.

(cherry picked from commit 66fe8627de)
2019-11-06 11:26:22 +01:00
Diego Fronza
faf3cbe62d Add functions for collecting high-water counters
Add {isc,ns}_stats_{update_if_greater,get_counter}() functions that
are used to set and collect high-water type of statistics.

(cherry picked from commit a544e2e300)
2019-11-06 11:26:22 +01:00
Diego Fronza
733720a3f2 Change the isc_stat_t type to isc__atomic_statcounter_t
The isc_stat_t type was too similar to isc_stats_t type, so the name was
changed to something more distinguishable.

(cherry picked from commit eb5611a770)
2019-11-06 11:26:22 +01:00
Diego Fronza
02555bb7a5 Change the isc_statscounter_t type from int to C99 int_fast64_t type
For TCP high-water work, we need to keep the used integer types widths
in sync.

Note: int_fast32_t is used on WIN32 platform
(cherry picked from commit 0fc98ef2d5)
2019-11-06 11:26:22 +01:00
Ondřej Surý
a217737764 Merge branch '1285-documentation-update-to-sortlist-feature-bugs-42615-v9_14' into 'v9_14'
arm: Add a sentence about overlaping selectors in sortlist statement

See merge request isc-projects/bind9!2532
2019-11-06 10:09:26 +00:00
Ondřej Surý
28884623fb arm: Add a sentence about overlaping selectors in sortlist statement
(cherry picked from commit ebc61946b2)
2019-11-06 11:08:17 +01:00
Michał Kępień
11f08caa9a Merge branch 'michal/split-release-notes-into-per-version-sections-v9_14' into 'v9_14'
[v9_14] Split release notes into per-version sections

See merge request isc-projects/bind9!2529
2019-11-06 09:13:46 +00:00
Michał Kępień
78d96b8fb9 Rebuild output files 2019-11-06 09:33:59 +01:00
Michał Kępień
bb74ec04bb Update URLs used in release notes
Some URLs used in release notes became outdated.  Make sure they point
to currently available resources.
2019-11-06 09:33:59 +01:00
Michał Kępień
920920e68e Split release notes into per-version sections
Intertwining release notes from different BIND releases in a single XML
file has caused confusion in the past due to different (and often
arbitrary) approaches to keeping/removing release notes from older
releases on different BIND branches.  Divide doc/arm/notes.xml into
per-version sections to simplify determining the set of changes
introduced by a given release and to make adding/reviewing release notes
less error-prone.
2019-11-06 09:33:57 +01:00
Mark Andrews
e700a0a67b Merge branch '1301-geoip2-default-data-path-v9_14' into 'v9_14'
Resolve "geoip2 default data path"

See merge request isc-projects/bind9!2526
2019-11-06 01:43:12 +00:00
Mark Andrews
82458699f9 Add CHANGES note
(cherry picked from commit 7b10faf108)
2019-11-06 12:28:52 +11:00
Mark Andrews
dcf958b852 Regenerate configure.
(cherry picked from commit 51fb42edcb)
2019-11-06 12:28:52 +11:00
Mark Andrews
538b455490 Have 'named -V' report geoip-directory
(cherry picked from commit 2eaa75c380)
2019-11-06 12:28:52 +11:00
Mark Andrews
ca036f346d The default geoip-directory should be <MAXMINDDB_PREFIX>/share/GeoIP
(cherry picked from commit fcd765a59d)
2019-11-06 11:47:32 +11:00
Mark Andrews
33b1a1ef0f MAXMINDDB_LIBS should end with '/lib' not '/libs'
(cherry picked from commit e0fe33506c)
2019-11-06 11:47:28 +11:00
Ondřej Surý
d116a4ea9f Merge branch '664-fetches-per-server-quota-docs-v9_14' into 'v9_14'
Describe the polynomial backoff curve used in the quota adjustment

See merge request isc-projects/bind9!2523
2019-11-05 10:12:48 +00:00
Ondřej Surý
1ab5685d25 Describe the polynomial backoff curve used in the quota adjustment
(cherry picked from commit 56ef09c3a1)
2019-11-05 11:06:04 +01:00
Ondřej Surý
d265ce0243 Merge branch '45-integrate-llvm-scan-build-to-gitlab-ci-workflow-v9_14' into 'v9_14'
Resolve "Integrate LLVM scan-build to GitLab CI workflow"

See merge request isc-projects/bind9!2521
2019-11-05 09:19:49 +00:00
Ondřej Surý
027f2c1518 libdns: add missing checks for return values in dnstap unit test
Related scan-build report:

dnstap_test.c:169:2: warning: Value stored to 'result' is never read
        result = dns_test_makeview("test", &view);
        ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dnstap_test.c:193:2: warning: Value stored to 'result' is never read
        result = dns_compress_init(&cctx, -1, dt_mctx);
        ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 warnings generated.

(cherry picked from commit e9acad638e)
2019-11-05 09:49:24 +01:00
Ondřej Surý
2d52a05f4f named: remove named_g_defaultdnstap global variable
The named_g_defaultdnstap was never used as the dnstap requires
explicit configuration of the output file.

Related scan-build report:

./server.c:3476:14: warning: Value stored to 'dpath' during its initialization is never read
        const char *dpath = named_g_defaultdnstap;
                    ^~~~~   ~~~~~~~~~~~~~~~~~~~~~
1 warning generated.

(cherry picked from commit 6decd14592)
2019-11-05 09:48:51 +01:00
Ondřej Surý
72f9846be6 libdns: Change check_dnskey_sigs() return type to void to match the reality how the function is used
(cherry picked from commit 64cf5144a6)
2019-11-05 09:48:51 +01:00
Ondřej Surý
7a0019cfa1 tests: Resolve scan-build false positive by adding extra assertion
(cherry picked from commit 309dca417c)
2019-11-05 09:48:51 +01:00
Ondřej Surý
38866cb5c4 dnssec: don't qsort() empty hashlist
(cherry picked from commit 6bbb0b8e42)
2019-11-05 09:48:51 +01:00
Ondřej Surý
aaded0efe0 named: Add INSIST() after bindkeysfile configuration load to silence scan-build FP
(cherry picked from commit 6bf364aec8)
2019-11-05 09:48:50 +01:00
Ondřej Surý
fcfdd847f4 tests: Workaround scan-build false positive with FD_ZERO/FD_SET
(cherry picked from commit 7aa7f8592c)
2019-11-05 09:48:50 +01:00
Ondřej Surý
1be8170888 libdns: Remove useless checks for ISC_R_MEMORY, which cannot happen now
(cherry picked from commit 80b55d25de)
2019-11-05 09:48:50 +01:00
Ondřej Surý
9bf2ae0e0a ci: Add LLVM/Clang scan-build checks into the GitLab CI
(cherry picked from commit 5f584310bc)
2019-11-05 09:48:50 +01:00
Michal Nowak
742eb50347 Merge branch 'mnowak/1244-extra-quotes-around-TESTSOCK6/9_14' into 'v9_14'
[9.14] digdelv: Extra quotes prevent IPv6 runs

See merge request isc-projects/bind9!2515
2019-10-31 12:32:07 -04:00
Michal Nowak
c7a1d051c5 digdelv: Extra quotes prevent IPv6 runs
Portion of the digdelv test are skipped on IPv6 due to extra quotes
around $TESTSOCK6: "I:digdelv:IPv6 unavailable; skipping".

Researched by @michal.

Regressed with 351efd8812.

(cherry picked from commit 1b6419f8a7)
2019-10-31 12:32:06 -04:00
Ondřej Surý
cab2929b4f Merge branch '876-documentation-feedback-v9_14' into 'v9_14'
Resolve "Documentation feedback."

See merge request isc-projects/bind9!2513
2019-10-31 10:42:58 -04:00
Ondřej Surý
912040b611 arm: add more text describing interaction between automatic-interface-scan and interface-interval
(cherry picked from commit e0618174b6)
2019-10-31 09:09:06 -05:00
Ondřej Surý
5095ad31b1 arm: Fix the default for the lock-file command, it's 'none'
(cherry picked from commit f7eea400a8)
2019-10-31 09:09:06 -05:00
Brian Conry
30ccde7cdc arm: Add an explanation on the effect of 'require-server-cookie yes;'
(cherry picked from commit c6f91f8bd0)
2019-10-31 09:09:05 -05:00
Mark Andrews
bcb9fca00c arm: add why when to set 'require-server-cookie yes;'
(cherry picked from commit c5453ea328)
2019-10-31 09:09:05 -05:00
Mark Andrews
9054c1ff33 arm: document resolver-nonbackoff-tries and resolver-retry-interval
(cherry picked from commit 1ea6aadf6f)
2019-10-31 09:09:05 -05:00
Mark Andrews
09999761ad arm: add default values for require-server-cookie and send-cookie options
(cherry picked from commit d8abf4f5b6)
2019-10-31 09:09:05 -05:00
Michał Kępień
0506c0b442 Merge branch '1059-prevent-tcp-failures-from-affecting-edns-stats-v9_14' into 'v9_14'
[v9_14] Prevent TCP failures from affecting EDNS stats

See merge request isc-projects/bind9!2511
2019-10-31 05:36:51 -04:00
Michał Kępień
80586e82b1 Add CHANGES entry
5310.	[bug]		TCP failures were affecting EDNS statistics. [GL #1059]

(cherry picked from commit 36d3c66e4e)
2019-10-31 09:54:37 +01:00
Michał Kępień
b2ee3fa0bb Prevent TCP failures from affecting EDNS stats
EDNS mechanisms only apply to DNS over UDP.  Thus, errors encountered
while sending DNS queries over TCP must not influence EDNS timeout
statistics.

(cherry picked from commit fce3c93ea2)
2019-10-31 09:54:23 +01:00
Michał Kępień
79a9bf6f03 Merge branch '1059-prevent-query-loops-for-misbehaving-servers-v9_14' into 'v9_14'
[v9_14] Prevent query loops for misbehaving servers

See merge request isc-projects/bind9!2508
2019-10-31 04:45:51 -04:00
Michał Kępień
61370994fc Prevent query loops for misbehaving servers
If a TCP connection fails while attempting to send a query to a server,
the fetch context will be restarted without marking the target server as
a bad one.  If this happens for a server which:

  - was already marked with the DNS_FETCHOPT_EDNS512 flag,
  - responds to EDNS queries with the UDP payload size set to 512 bytes,
  - does not send response packets larger than 512 bytes,

and the response for the query being sent is larger than 512 byes, then
named will pointlessly alternate between sending UDP queries with EDNS
UDP payload size set to 512 bytes (which are responded to with truncated
answers) and TCP connections until the fetch context retry limit is
reached.  Prevent such query loops by marking the server as bad for a
given fetch context if the advertised EDNS UDP payload size for that
server gets reduced to 512 bytes and it is impossible to reach it using
TCP.

(cherry picked from commit 6cd115994e)
2019-10-31 08:49:09 +01:00
Mark Andrews
e99835b915 Merge branch '1288-log-dns_r_unchanged-from-sync_secure_journal-at-info-level-in-receive_secure_serial-v9_14' into 'v9_14'
Resolve "Log DNS_R_UNCHANGED from sync_secure_journal at info level in receive_secure_serial."

See merge request isc-projects/bind9!2498
2019-10-29 21:32:49 -04:00
Mark Andrews
244c72b5b6 add CHANGES
(cherry picked from commit e6ef7858c3)
2019-10-30 12:13:01 +11:00
Mark Andrews
cdf114078b Log DNS_R_UNCHANGED from sync_secure_journal() at info level in receive_secure_serial()
(cherry picked from commit 8eb09f3232)
2019-10-30 12:13:01 +11:00
Mark Andrews
f42292104b Merge branch 'u/fanf2/compilezone-hang-v9_14' into 'v9_14'
Fix hang in `named-compilezone | head`

See merge request isc-projects/bind9!2496
2019-10-29 20:14:35 -04:00
Tony Finch
c4890c7e83 CHANGES
(cherry picked from commit 548f29a4d9)
2019-10-30 10:52:52 +11:00
Tony Finch
19970088fc Fix hang in named-compilezone | head
I was truncating zone files for experimental purposes when I found
that `named-compilezone | head` got stuck. The full command line that
exhibited the problem was:

	dig axfr dotat.at |
	named-compilezone -o /dev/stdout dotat.at /dev/stdin |
	head

This requires a large enough zone to exhibit the problem, more than
about 70000 bytes of plain text output from named-compilezone.
I was running the command on Debian Stretch amd64.

This was puzzling since it looked like something was suppressing the
SIGPIPE. I used `strace` to examine what was happening at the hang.
The program was just calling write() a lot to print the zone file, and
the last write() hanged until I sent it a SIGINT.

During some discussion with friends, Ian Jackson guessed that opening
/dev/stdout O_RDRW might be the problem, and after some tests we found
that this does in fact suppress SIGPIPE.

Since `named-compilezone` only needs to write to its output file, the
fix is to omit the stdio "+" update flag.

(cherry picked from commit a87ccea032)
2019-10-30 10:52:22 +11:00
Ondřej Surý
8c2f196182 Merge branch '1265-disable-synth-from-dnssec-by-default-workaround-v9_14' into 'v9_14'
Disable synth-from-dnssec by default [v9_14]

See merge request isc-projects/bind9!2494
2019-10-29 07:39:27 -04:00