]>
git.ipfire.org Git - thirdparty/knot-resolver.git/log
Grigorii Demidov [Wed, 12 Sep 2018 09:30:55 +0000 (11:30 +0200)]
daemon: fix errors introduced by cherrypicking
Grigorii Demidov [Tue, 11 Sep 2018 13:17:52 +0000 (15:17 +0200)]
daemon: fixes for CI errors and warnings
Marek Vavruša [Fri, 17 Aug 2018 07:43:36 +0000 (00:43 -0700)]
daemon/worker: fixes error handling from TLS writes
The error handling loop for uncorking TLS data was wrong, as the
underlying push function is asynchronous and there's no relationship
between completed DNS packet writes and number of TLS message writes.
In case of the asynchronous function, the buffered data must be valid
until the write is complete, currently this is not guaranteed and
loading the resolver with pipelined requests results in memory errors:
```
$ getdns_query @127.0.0.1#853 -s -a -s -l L -B -F queries -q
...
==47111==ERROR: AddressSanitizer: heap-use-after-free on address 0x6290040a1253 at pc 0x00010da960d3 bp 0x7ffee2628b30 sp 0x7ffee26282e0
READ of size 499 at 0x6290040a1253 thread T0
#0 0x10da960d2 in wrap_write (libclang_rt.asan_osx_dynamic.dylib:x86_64h+0x1f0d2)
#1 0x10d855971 in uv__write (libuv.1.dylib:x86_64+0xf971)
#2 0x10d85422e in uv__stream_io (libuv.1.dylib:x86_64+0xe22e)
#3 0x10d85b35a in uv__io_poll (libuv.1.dylib:x86_64+0x1535a)
#4 0x10d84c644 in uv_run (libuv.1.dylib:x86_64+0x6644)
#5 0x10d602ddf in main main.c:422
#6 0x7fff6a28a014 in start (libdyld.dylib:x86_64+0x1014)
0x6290040a1253 is located 83 bytes inside of 16895-byte region [0x6290040a1200,0x6290040a53ff)
freed by thread T0 here:
#0 0x10dacdfdd in wrap_free (libclang_rt.asan_osx_dynamic.dylib:x86_64h+0x56fdd)
#1 0x10d913c2e in _mbuffer_head_remove_bytes (libgnutls.30.dylib:x86_64+0xbc2e)
#2 0x10d915080 in _gnutls_io_write_flush (libgnutls.30.dylib:x86_64+0xd080)
#3 0x10d90ca18 in _gnutls_send_tlen_int (libgnutls.30.dylib:x86_64+0x4a18)
#4 0x10d90edde in gnutls_record_send2 (libgnutls.30.dylib:x86_64+0x6dde)
#5 0x10d90f085 in gnutls_record_uncork (libgnutls.30.dylib:x86_64+0x7085)
#6 0x10d5f6569 in tls_push tls.c:238
#7 0x10d5e5b2a in qr_task_send worker.c:1002
#8 0x10d5e2ea6 in qr_task_finalize worker.c:1562
#9 0x10d5dab99 in qr_task_step worker.c
#10 0x10d5e12fe in worker_process_tcp worker.c:2410
```
The current implementation adds opportunistic uv_try_write which
either writes the requested data, or returns UV_EAGAIN or an error,
which then falls back to slower asynchronous write that copies the buffered data.
The function signature is changed from simple write to vectorized write.
This also enables TLS False Start to save 1RTT when possible.
Petr Špaček [Fri, 14 Sep 2018 08:03:54 +0000 (08:03 +0000)]
Merge branch 'cache-sigbus' into 'master'
cache: improve out-of-disk condition
Closes #197
See merge request knot/knot-resolver!672
Vladimír Čunát [Wed, 12 Sep 2018 12:59:46 +0000 (14:59 +0200)]
cache: improve out-of-disk condition
When suspect SIGBUS happens, print helpful error and try to remove
the cache, so that the service might work again if auto-restarted.
Theoretically we could longjmp() out of the SIGBUS handler,
but that would be rather messy, so let the process die.
Vladimír Čunát [Wed, 12 Sep 2018 13:15:54 +0000 (13:15 +0000)]
Merge !668: cache tests: don't fail with KEYFILE_DEFAULT
Fixes #398.
Vladimír Čunát [Tue, 11 Sep 2018 13:38:07 +0000 (15:38 +0200)]
cache tests: don't fail with KEYFILE_DEFAULT
Tomas Krizek [Wed, 12 Sep 2018 11:14:33 +0000 (11:14 +0000)]
Merge branch 'ci-respdiff-logs' into 'master'
ci: respdiff logs
See merge request knot/knot-resolver!671
Tomas Krizek [Wed, 12 Sep 2018 09:48:47 +0000 (11:48 +0200)]
ci: respdiff remove default argument
Tomas Krizek [Wed, 12 Sep 2018 09:44:51 +0000 (11:44 +0200)]
ci: respdiff -display stderr log on failure
Vladimír Čunát [Mon, 10 Sep 2018 10:40:28 +0000 (10:40 +0000)]
Merge !667: doc for resolve(): fix some problems
Vladimír Čunát [Wed, 5 Sep 2018 14:55:07 +0000 (16:55 +0200)]
doc for resolve(): fix some problems (outdated parts)
Vladimír Čunát [Tue, 4 Sep 2018 11:34:36 +0000 (11:34 +0000)]
Merge !664: KNOT_MINVER: 2.7.1 -> 2.7.2
Vladimír Čunát [Mon, 3 Sep 2018 12:43:02 +0000 (14:43 +0200)]
Re-revert "kr_nsec_bitmap_contains_type(): moved to libdnssec"
This reverts commit
512f4aee63cbad71639d7865a8b9f5a3c32ffed2 .
knot-dns-2.7.2 fixed this.
Vladimír Čunát [Mon, 3 Sep 2018 12:44:28 +0000 (14:44 +0200)]
Makefile: KNOT_MINVER 2.7.1 -> 2.7.2
Tomas Krizek [Mon, 3 Sep 2018 18:11:24 +0000 (18:11 +0000)]
Merge branch 'ci-fix' into 'master'
ci: fixes
See merge request knot/knot-resolver!666
Tomas Krizek [Mon, 3 Sep 2018 17:52:10 +0000 (19:52 +0200)]
ci: docker/fedora - add knot-resolver-testing OBS repos to mock
Tomas Krizek [Mon, 3 Sep 2018 16:53:25 +0000 (18:53 +0200)]
ci: update respdiff configs
Tomas Krizek [Mon, 3 Sep 2018 15:15:32 +0000 (15:15 +0000)]
Merge branch 'ci-rpm-builds' into 'master'
ci: rpm builds
See merge request knot/knot-resolver!665
Tomas Krizek [Mon, 3 Sep 2018 14:59:37 +0000 (16:59 +0200)]
ci: docker/fedora - add OBS to EPEL7 mock
Tomas Krizek [Mon, 3 Sep 2018 14:58:54 +0000 (16:58 +0200)]
ci: docker/fedora update to F29
Vladimír Čunát [Mon, 3 Sep 2018 10:25:55 +0000 (10:25 +0000)]
Merge !663: ci: optimize respdiff
Tomas Krizek [Mon, 3 Sep 2018 10:25:55 +0000 (10:25 +0000)]
ci: optimize respdiff
Vladimír Čunát [Mon, 3 Sep 2018 10:12:51 +0000 (10:12 +0000)]
Merge !650: misc nitpicks (see commits)
Vladimír Čunát [Mon, 3 Sep 2018 10:12:51 +0000 (10:12 +0000)]
misc nitpicks (see commits)
Tomas Krizek [Tue, 28 Aug 2018 12:50:43 +0000 (12:50 +0000)]
Merge branch 'ci-update-respdiff-jobs' into 'master'
ci: update respdiff jobs
See merge request knot/knot-resolver!661
Tomas Krizek [Tue, 28 Aug 2018 11:21:53 +0000 (13:21 +0200)]
ci: update respdiff jobs
Tomas Krizek [Mon, 27 Aug 2018 11:11:23 +0000 (11:11 +0000)]
Merge branch 'ci-respdiff-stats' into 'master'
ci: improve respdiff jobs
See merge request knot/knot-resolver!659
Tomas Krizek [Thu, 23 Aug 2018 15:33:58 +0000 (17:33 +0200)]
ci: respdiff - add option to force respdiff execution
Tomas Krizek [Wed, 22 Aug 2018 15:38:54 +0000 (17:38 +0200)]
ci: respdiff - use statcmp to plot graphs
Tomas Krizek [Tue, 21 Aug 2018 17:59:21 +0000 (19:59 +0200)]
ci: respdiff - collect png graphs
Tomas Krizek [Tue, 21 Aug 2018 17:26:19 +0000 (19:26 +0200)]
ci: respdiff - create unique labels
Tomas Krizek [Tue, 21 Aug 2018 16:58:20 +0000 (18:58 +0200)]
ci: enable multiple respdiff runs
Petr Špaček [Thu, 23 Aug 2018 08:42:15 +0000 (08:42 +0000)]
Merge branch 'ci-deckard-update' into 'master'
ci: update Deckard in attempt to make CI more reliable
See merge request knot/knot-resolver!658
Petr Špaček [Thu, 23 Aug 2018 08:16:50 +0000 (10:16 +0200)]
ci: update Deckard in attempt to make CI more reliable
Changes related to monotonic fake time and detection logic for overload
should make CI a little bit more reliable. It should be even better once
we combine overload-detection with some kind of auto-retry.
Tomas Krizek [Fri, 17 Aug 2018 16:31:53 +0000 (16:31 +0000)]
Merge branch 'release_300' into 'master'
Release 3.0.0
See merge request knot/knot-resolver!653
Tomas Krizek [Wed, 15 Aug 2018 08:35:33 +0000 (10:35 +0200)]
release 3.0.0
Tomas Krizek [Tue, 14 Aug 2018 13:04:48 +0000 (15:04 +0200)]
ci: check libkres symbols file
Tomas Krizek [Tue, 14 Aug 2018 15:09:25 +0000 (17:09 +0200)]
libkres: bump ABI to 8
Tomas Krizek [Tue, 14 Aug 2018 12:24:54 +0000 (14:24 +0200)]
update minimal libknot version to 2.7.1
Tomas Krizek [Mon, 13 Aug 2018 15:03:36 +0000 (17:03 +0200)]
scripts: utility script for OBS test build
Tomas Krizek [Fri, 17 Aug 2018 11:58:50 +0000 (13:58 +0200)]
ci: turn on respdiff:iter.tls6 job
Petr Špaček [Tue, 14 Aug 2018 12:28:48 +0000 (14:28 +0200)]
cookies: hide module documentation
Petr Špaček [Fri, 17 Aug 2018 16:24:27 +0000 (16:24 +0000)]
Merge branch 'restore-cache-ops' into 'master'
lua: resurrect cache.clear('name')
See merge request knot/knot-resolver!633
Vladimír Čunát [Fri, 17 Aug 2018 16:18:19 +0000 (18:18 +0200)]
cache.clear() tests: add cache.clear('.', true)
Petr Špaček [Fri, 17 Aug 2018 13:54:40 +0000 (15:54 +0200)]
cache: update NEWS
Petr Špaček [Fri, 17 Aug 2018 13:40:20 +0000 (15:40 +0200)]
cache.clear: clearing root clears everything, not only the root zone
Problem was caused by our lookup format where only the root zone starts
with \0 and all other zones start differently. This caused
cache_match('.') to match only data from root zone.
Petr Špaček [Fri, 17 Aug 2018 12:36:46 +0000 (14:36 +0200)]
cache: update docs
Vladimír Čunát [Fri, 17 Aug 2018 11:21:15 +0000 (13:21 +0200)]
cache: relocate cache ABI version entry
... to avoid colliding e.g. with cache.clear('.')
Petr Špaček [Fri, 17 Aug 2018 09:17:51 +0000 (11:17 +0200)]
cache.clear: log when asynchonous clear is finished, document interface
Petr Špaček [Thu, 16 Aug 2018 17:41:44 +0000 (19:41 +0200)]
WIP: docs
Petr Špaček [Tue, 14 Aug 2018 13:37:01 +0000 (15:37 +0200)]
cache.clear: tests
Petr Špaček [Tue, 14 Aug 2018 12:50:09 +0000 (14:50 +0200)]
tests/config: remove duplicite keyfile tests
Petr Špaček [Thu, 16 Aug 2018 15:37:02 +0000 (17:37 +0200)]
cache.clear: use same output format for full cache clear
Petr Špaček [Thu, 16 Aug 2018 15:08:37 +0000 (17:08 +0200)]
cache.clear: use same output format for exact qname+qtype match
Petr Špaček [Thu, 16 Aug 2018 14:50:18 +0000 (16:50 +0200)]
cache.clear: allow callback to modify return value
This is handy mainly for tests but it costs nothing so why not to do it.
Petr Špaček [Thu, 16 Aug 2018 14:26:53 +0000 (16:26 +0200)]
cache.clear: clarify chunk size limit
Petr Špaček [Thu, 16 Aug 2018 12:44:40 +0000 (14:44 +0200)]
cache.clear(): display apex name if needed
Error message is now contains apex name and advice how to clear negative
proofs.
Petr Špaček [Wed, 15 Aug 2018 15:53:29 +0000 (17:53 +0200)]
cache: return number of removed entries from remove_* functions
It is more convenient to return 0 instead of ENOENT.
Vladimír Čunát [Wed, 15 Aug 2018 16:50:23 +0000 (18:50 +0200)]
cache.clear(): return a table
Also make the CLI table-printer print a bit longer strings
than it used to.
Vladimír Čunát [Wed, 15 Aug 2018 16:24:23 +0000 (18:24 +0200)]
cache.clear(): various warnings
WIP: needs at least review, perhaps some more modifications
Vladimír Čunát [Wed, 15 Aug 2018 15:31:29 +0000 (17:31 +0200)]
cache API: avoid some ENOENT errors
Vladimír Čunát [Wed, 15 Aug 2018 14:38:26 +0000 (16:38 +0200)]
lib/resolve nitpick: clear lint warnings
(perhaps this started with libknot-2.7?)
Vladimír Čunát [Wed, 15 Aug 2018 14:13:10 +0000 (16:13 +0200)]
cache+lua: add kr_cache_closest_apex() API
Vladimír Čunát [Tue, 14 Aug 2018 12:24:47 +0000 (14:24 +0200)]
docs for cache.prune(): mention the planned GC
Vladimír Čunát [Mon, 6 Aug 2018 16:21:48 +0000 (18:21 +0200)]
cache.get(): disable again, for now
We need to think about the API carefully.
Vladimír Čunát [Wed, 25 Jul 2018 14:09:27 +0000 (16:09 +0200)]
cache.clear(): more flexibility via parameters
Vladimír Čunát [Mon, 23 Jul 2018 14:46:33 +0000 (16:46 +0200)]
cache.clear(name), cache.get(name): review
- fix some edge cases and nitpicks
- static storage -> stack (for temporaries of a few kilobytes)
- sync docs, including caveats of the implementation
Anbang Wen [Sun, 13 May 2018 21:55:24 +0000 (14:55 -0700)]
cache: restore kr_cache_match and kr_cache_remove
1. Restore two cache op which got dropped in 2.0;
2. Add kr_unpack_cache_key to parse cache key;
3. Fix the lua binding for cache.get and cache.clear.
Vladimír Čunát [Fri, 17 Aug 2018 13:57:37 +0000 (13:57 +0000)]
Merge !657: remove memcached and redis from source tree
Petr Špaček [Fri, 17 Aug 2018 12:55:56 +0000 (14:55 +0200)]
remove memcached and redis modules from source tree
Source was kept for historical reasons but was not in use since 2.0.0.
It is now clear that there are better approaches to implement
distributed cache so it is pointless to keep old stuff in tree and
confuse users.
Petr Špaček [Thu, 16 Aug 2018 16:47:23 +0000 (16:47 +0000)]
Merge branch 'test-bitmaps' into 'master'
Revert "kr_nsec_bitmap_contains_type(): moved to libdnssec"
See merge request knot/knot-resolver!655
Vladimír Čunát [Thu, 16 Aug 2018 14:28:59 +0000 (16:28 +0200)]
Revert "kr_nsec_bitmap_contains_type(): moved to libdnssec"
This reverts commit
c13fe1f81abab6d9218e7373d24d5caf8d9ca8b6 .
It turns out there's a bug in dnssec_nsec_bitmap_contains() (2.7.{0,1})
Petr Špaček [Tue, 14 Aug 2018 16:11:04 +0000 (16:11 +0000)]
Merge branch 'ta_sentinel-static' into 'master'
ta_sentinel: also consider static trust anchors
See merge request knot/knot-resolver!654
Vladimír Čunát [Tue, 14 Aug 2018 15:49:25 +0000 (17:49 +0200)]
ta_sentinel: also consider static trust anchors
i.e. those not managed via RFC 5011.
The verbose log format is changed a bit, consequently.
Petr Špaček [Tue, 14 Aug 2018 11:39:48 +0000 (11:39 +0000)]
Merge branch 'rebrand' into 'master'
Rebrand to "Knot Resolver"
See merge request knot/knot-resolver!652
Petr Špaček [Tue, 14 Aug 2018 11:26:27 +0000 (13:26 +0200)]
rebrand to "Knot Resolver"
Let's see if it helps against confusion with "Knot DNS" authoritative
server or not.
Petr Špaček [Tue, 14 Aug 2018 11:21:44 +0000 (13:21 +0200)]
rebrand to "Knot Resolver"
Previously we were using names "Knot DNS Resolver" and "Knot Resolver"
interchangibly and the prefix "Knot DNS" was somehow confusing users.
Let's see if this rebranding actually helps or not.
Petr Špaček [Tue, 14 Aug 2018 11:14:43 +0000 (11:14 +0000)]
Merge branch 'knot-2.7' into 'master'
knot 2.7
See merge request knot/knot-resolver!630
Petr Špaček [Tue, 14 Aug 2018 11:10:38 +0000 (13:10 +0200)]
NEWS: polish for 3.0.0 release
Vladimír Čunát [Mon, 13 Aug 2018 15:21:02 +0000 (17:21 +0200)]
KNOT_MINVER := 2.7.1
Grigorii Demidov [Fri, 1 Jun 2018 11:00:11 +0000 (13:00 +0200)]
cookies: disable for now
Vladimír Čunát [Mon, 6 Aug 2018 13:26:49 +0000 (15:26 +0200)]
doc: add lua API changes
I intentionally didn't mark the function names as code or similar,
as changing formatting every other word seemed too visually distracting.
Vladimír Čunát [Mon, 6 Aug 2018 12:42:09 +0000 (14:42 +0200)]
doc: add ./NEWS as "Release notes" section
Vladimír Čunát [Mon, 6 Aug 2018 14:30:22 +0000 (16:30 +0200)]
old NEWS nitpicks: fix warnings from Sphinx
Vladimír Čunát [Fri, 3 Aug 2018 12:06:32 +0000 (14:06 +0200)]
cache nitpick: avoid an unused value and recomputation
It's never been used apparently, since its introduction in
5b288464 .
This commit doesn't depend on knot being 2.7 at all.
Vladimír Čunát [Fri, 3 Aug 2018 09:47:40 +0000 (11:47 +0200)]
reorder_RR(): don't rotate based on request ID
As Marek noted, the option is meant to fix bad stub-resolvers,
and those may not put good randomness into the ID.
Vladimír Čunát [Fri, 3 Aug 2018 09:30:22 +0000 (11:30 +0200)]
reorder_RR(): implement again and better
... thanks to new API in libknot-2.7.
Apart from being simpler, it now rotates even uncached answers.
Vladimír Čunát [Thu, 2 Aug 2018 14:16:27 +0000 (16:16 +0200)]
knot_dname_in(): replace
This second part of API replacement in particular lengthens the code,
but I hope the new expression will be easier to understand at least.
Vladimír Čunát [Thu, 2 Aug 2018 14:07:16 +0000 (16:07 +0200)]
knot_dname_is_sub(): replace
Vladimír Čunát [Thu, 19 Jul 2018 15:01:55 +0000 (17:01 +0200)]
lua: clean up, generate libzscanner bindings
Vladimír Čunát [Thu, 19 Jul 2018 13:00:57 +0000 (15:00 +0200)]
lua: finish fixing the mess around passing rdata
Vladimír Čunát [Thu, 19 Jul 2018 12:49:22 +0000 (14:49 +0200)]
lua: rrsig_type_covered
Vladimír Čunát [Fri, 13 Jul 2018 11:49:37 +0000 (13:49 +0200)]
iterate, nsrep: more resiliency to possible errors
Vladimír Čunát [Thu, 12 Jul 2018 16:34:02 +0000 (18:34 +0200)]
removal of pos from parameters
Vladimír Čunát [Thu, 12 Jul 2018 15:48:46 +0000 (17:48 +0200)]
knot_rdata_t field rename
Vladimír Čunát [Tue, 24 Jul 2018 14:27:35 +0000 (16:27 +0200)]
kr_nsec_bitmap_contains_type(): moved to libdnssec
Vladimír Čunát [Thu, 12 Jul 2018 15:26:32 +0000 (17:26 +0200)]
knot_nsec*_bitmap*() changes
Vladimír Čunát [Thu, 12 Jul 2018 14:41:46 +0000 (16:41 +0200)]
knot_rdataset_t field renames
Vladimír Čunát [Thu, 12 Jul 2018 14:20:20 +0000 (16:20 +0200)]
cache: rdataset layout changes in knot 2.7