Knot Resolver issues
https://gitlab.nic.cz/knot/knot-resolver/-/issues
2021-04-16T19:20:19+02:00
https://gitlab.nic.cz/knot/knot-resolver/-/issues/9
daemon: RPC interface (json-based, possibly unbound-rpc/rndc wrapper)
2021-04-16T19:20:19+02:00
Ghost User
daemon: RPC interface (json-based, possibly unbound-rpc/rndc wrapper)
2015 Q1
https://gitlab.nic.cz/knot/knot-resolver/-/issues/8
daemon: configuration parser/interface
2021-04-16T19:20:19+02:00
Ghost User
daemon: configuration parser/interface
2015 Q1
https://gitlab.nic.cz/knot/knot-resolver/-/issues/7
cache: garbage collection scheme / aging
2021-04-16T19:20:19+02:00
Ghost User
cache: garbage collection scheme / aging
2015 Q1
https://gitlab.nic.cz/knot/knot-resolver/-/issues/6
tests: CMocka-based unit tests for current APIs
2021-04-16T19:20:19+02:00
Ghost User
tests: CMocka-based unit tests for current APIs
library:
* resolution
* cache
* zone cuts
* utils
daemon:
* tcp
* udp
* worker
library:
* resolution
* cache
* zone cuts
* utils
daemon:
* tcp
* udp
* worker
2015 Q1
https://gitlab.nic.cz/knot/knot-resolver/-/issues/28
RFC 6303 - Locally Served DNS Zones
2017-08-22T13:33:43+02:00
Ondřej Surý
RFC 6303 - Locally Served DNS Zones
Unbound:
```
; <<>> DiG 9.9.5-9-Debian <<>> -p 6668 -x 10.0.0.1 @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 57069
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ...
Unbound:
```
; <<>> DiG 9.9.5-9-Debian <<>> -p 6668 -x 10.0.0.1 @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 57069
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;1.0.0.10.in-addr.arpa. IN PTR
;; AUTHORITY SECTION:
10.in-addr.arpa. 10800 IN SOA localhost. nobody.invalid. 1 3600 1200 604800 10800
;; Query time: 0 msec
;; SERVER: 127.0.0.1#6668(127.0.0.1)
;; WHEN: Fri Jun 12 10:58:26 CEST 2015
;; MSG SIZE rcvd: 109
```
PowerDNS:
```
; <<>> DiG 9.9.5-9-Debian <<>> -p 6669 -x 10.0.0.1 @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 28227
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;1.0.0.10.in-addr.arpa. IN PTR
;; AUTHORITY SECTION:
10.in-addr.arpa. 420 IN SOA localhost. root. 1 604800 86400 2419200 604800
;; Query time: 0 msec
;; SERVER: 127.0.0.1#6669(127.0.0.1)
;; WHEN: Fri Jun 12 10:58:44 CEST 2015
;; MSG SIZE rcvd: 88
```
Bind 9:
```
; <<>> DiG 9.9.5-9-Debian <<>> -p 6666 -x 10.0.0.1 @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 47227
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;1.0.0.10.in-addr.arpa. IN PTR
;; AUTHORITY SECTION:
10.IN-ADDR.ARPA. 86400 IN SOA 10.IN-ADDR.ARPA. . 0 28800 7200 604800 86400
;; Query time: 0 msec
;; SERVER: 127.0.0.1#6666(127.0.0.1)
;; WHEN: Fri Jun 12 11:00:57 CEST 2015
;; MSG SIZE rcvd: 100
```
kresd se zatím pořád dotazy posílá dál:
```
; <<>> DiG 9.9.5-9-Debian <<>> -p 6667 -x 10.0.0.1 @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 21709
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;1.0.0.10.in-addr.arpa. IN PTR
;; AUTHORITY SECTION:
10.in-addr.arpa. 604800 IN SOA prisoner.iana.org. hostmaster.root-servers.org. 1 604800 60 604800 604800
;; Query time: 237 msec
;; SERVER: 127.0.0.1#6667(127.0.0.1)
;; WHEN: Fri Jun 12 11:01:44 CEST 2015
;; MSG SIZE rcvd: 127
```
2015 Q2
https://gitlab.nic.cz/knot/knot-resolver/-/issues/27
modules: 0x20 in DNS labels
2022-01-16T17:32:14+01:00
Ghost User
modules: 0x20 in DNS labels
See draft https://tools.ietf.org/html/draft-vixie-dnsext-dns0x20-00
See draft https://tools.ietf.org/html/draft-vixie-dnsext-dns0x20-00
2015 Q2
https://gitlab.nic.cz/knot/knot-resolver/-/issues/20
lib: layers do not have userdata
2017-08-22T13:33:43+02:00
Ghost User
lib: layers do not have userdata
### Problem
Since layers have no userdata, it's not possible for modules to provide any context (i.e. data structure for hints), so the modules have to use global variables.
### Expected outcome
* [x] ~~`knot_layer_t` has user u...
### Problem
Since layers have no userdata, it's not possible for modules to provide any context (i.e. data structure for hints), so the modules have to use global variables.
### Expected outcome
* [x] ~~`knot_layer_t` has user userdata pointer~~ EDIT: it's there, but it is used for context
* [x] reimplement overlay in resolution context, change layer structure to contain an owner pointer (libknot)
* [x] this depends on #15
* [x] `hints` module is rewritten to use it
* [ ] resolution context accepts layers not modules
* [x] document this change in `modules/README.md`
2015 Q2
https://gitlab.nic.cz/knot/knot-resolver/-/issues/19
lib: modules should use map_t for config options map (not string)
2017-08-22T13:33:43+02:00
Ghost User
lib: modules should use map_t for config options map (not string)
### Problem
Module interface specifies module configuration as a string-encoded JSON, so each module has to interpret it, while it could already be interpreted as map.
### Problem
Module interface specifies module configuration as a string-encoded JSON, so each module has to interpret it, while it could already be interpreted as map.
2015 Q2
https://gitlab.nic.cz/knot/knot-resolver/-/issues/15
lib: split kr_resolve code to steps, so it doesn't depend on requestor
2017-12-08T11:24:16+01:00
Ghost User
lib: split kr_resolve code to steps, so it doesn't depend on requestor
### Problem
The kr_resolve runs blocks until the resolution is complete. This way we can't resolve queries while possibly long queries are being resolved. The problem is that the code uses requestor in a loop until the resolution is d...
### Problem
The kr_resolve runs blocks until the resolution is complete. This way we can't resolve queries while possibly long queries are being resolved. The problem is that the code uses requestor in a loop until the resolution is done.
### Expected outcome
* [x] The API should be broken into several phases: `init, step, finish`.
* [x] The `init` step would take the input query, the `step` would either resolve a query or return the next query that should be sent.
* [x] If the query is resolved, then the caller could `finish` the resolution and return answer.
* [x] If not, it should issue the query, save the context and place the socket into the event loop.
* [x] Implement the new API in the daemon event loop.
* [x] Keep multiple requests at once.
* [x] ~~Implement timeouts for the requests.~~ #22
* [x] Reimplement iteration limits.
* [x] ~~Implement query deduplication (ID+query)~~ N/A for now
This way, we could process multiple queries at once.
2015 Q2
https://gitlab.nic.cz/knot/knot-resolver/-/issues/14
lib: implement NS reputation, write address election code
2017-12-08T11:24:16+01:00
Ghost User
lib: implement NS reputation, write address election code
### Problem
if a NS has an unreachable address, resolver discards the whole nameserver record. Then the nameserver record is fetched again and random server is tried leading to the same error. This leads to short resolution loops for ...
### Problem
if a NS has an unreachable address, resolver discards the whole nameserver record. Then the nameserver record is fetched again and random server is tried leading to the same error. This leads to short resolution loops for broken servers.
### Example
```
0.gravatar.com A
ns1.edgecastcdn.net. has broken AAAA records, leading to resolution fail
```
### Expected behaviour
if an address is unreachable, it should be marked as this in the reputation system. On the next iteration, address election should be ran and different address should be selected.
* [x] Zone cut keeps a set of addresses to choose from (instead of just one)
* [x] Needs a different structure to avoid frequent realloc (`pack`)
* [x] Zone cut needs a map of NS names to records
* [x] Rework iterator to use address set
* [ ] Best address election function
* [x] Keep elected address in the `kr_query` (as sockaddr)
* [x] Prefer IPv6 if possible (bonus score)
* [x] Fuzzy selection (message id may be used as a random value)
2015 Q2
https://gitlab.nic.cz/knot/knot-resolver/-/issues/30
modules/block: add qsource api, more actions (TC=1, log, ...)
2017-08-22T13:33:42+02:00
Ghost User
modules/block: add qsource api, more actions (TC=1, log, ...)
2015 Q3
https://gitlab.nic.cz/knot/knot-resolver/-/issues/29
test: extend with raw packets (+fuzzed) tests
2022-04-08T16:14:03+02:00
Ghost User
test: extend with raw packets (+fuzzed) tests
Depends on #5
To do:
* [ ] Support for raw queries in the .rpl files (http://unbound.net/svn/trunk/testdata/test_packets.1 .. 9)
This could look something like:
```
SCENARIO_BEGIN raw_queries
STEP 0 QUERY
ENTRY_BEGIN
RAW
000...
Depends on #5
To do:
* [ ] Support for raw queries in the .rpl files (http://unbound.net/svn/trunk/testdata/test_packets.1 .. 9)
This could look something like:
```
SCENARIO_BEGIN raw_queries
STEP 0 QUERY
ENTRY_BEGIN
RAW
00000000700240004aa200000204059801010402
ENTRY_END
STEP 1 CHECK_ANSWER
ENTRY_BEGIN
RAW
000080010000000000000000
ENTRY_END
```
If you just add the `RAW` parsing in the https://gitlab.labs.nic.cz/knot/resolver/blob/master/tests/test_integration.py#L44 and https://gitlab.labs.nic.cz/knot/resolver/blob/master/tests/pydnstest/scenario.py#L5 but that's just one way to do it.
2015 Q3
Grigorii Demidov
Grigorii Demidov
https://gitlab.nic.cz/knot/knot-resolver/-/issues/17
daemon: improve tty interface
2022-04-08T16:13:58+02:00
Ghost User
daemon: improve tty interface
### Problem
The CLI interface is based on reading stdin lines, not a TTY, so it doesn't support text cursor, tab completion or multiline commands.
### Expected outcome
Basically it should behave like a Lua interpreter, but inte...
### Problem
The CLI interface is based on reading stdin lines, not a TTY, so it doesn't support text cursor, tab completion or multiline commands.
### Expected outcome
Basically it should behave like a Lua interpreter, but integrated in libuv loop.
There is already TTY code in libuv, and Lua interpreters around so we might want to reuse something.
* [ ] Real TTY, support for arrows
* [ ] Basic introspection
* [ ] Tab completion
2015 Q3
https://gitlab.nic.cz/knot/knot-resolver/-/issues/10
library: dnssec validation (module, APIs, prep)
2018-09-14T14:41:07+02:00
Ghost User
library: dnssec validation (module, APIs, prep)
## Idea
wip
## Steps
* [x] Fetch/store RRSIGs in the record cache
* [ ] Put this in cache unit test
* [ ] Obstacle 1
* [ ] Make a generic crypto API for signature verification
* [ ] Look at different crypto backends and assess the...
## Idea
wip
## Steps
* [x] Fetch/store RRSIGs in the record cache
* [ ] Put this in cache unit test
* [ ] Obstacle 1
* [ ] Make a generic crypto API for signature verification
* [ ] Look at different crypto backends and assess them (CC @jvcelak)
* [ ] Select a crypto backend and implement verification for it
* [ ] Make a unit test for mock signature verification
* [ ] Validate RRSIGs in packet (if required)
* [ ] Start playing with the `tests/testdata/test_notimpl` DNSSEC tests
* [ ] Validate trust chain
* [ ] Obstacle 2
* [ ] Process `DS` records
* [ ] RFC5011 for root trust anchor management
* [ ] Integration tests should pass now
^ fixme @kslany
2015 Q3
https://gitlab.nic.cz/knot/knot-resolver/-/issues/5
tests: test binary using socket_wrapper (cwrap)
2021-04-16T19:20:19+02:00
Ghost User
tests: test binary using socket_wrapper (cwrap)
Things missing:
* [x] Wrap I/O syscalls instead of libknot library calls (more portable, generic)
* [ ] Make Python test server listen on all addresses listed in the test
* [ ] use socket_wrapper to isolate it in a test environmen...
Things missing:
* [x] Wrap I/O syscalls instead of libknot library calls (more portable, generic)
* [ ] Make Python test server listen on all addresses listed in the test
* [ ] use socket_wrapper to isolate it in a test environment https://cwrap.org/socket_wrapper.html
* [ ] isolate the binary as well and test if it connects to the faked servers
* [ ] prepare configuration for binary in the test cases
* [ ] check that all tests pass on the binary!
* [ ] Documentation (may reference to the https://www.unbound.net/documentation/doxygen/replay_8h.html#details)
* [ ] Publish this as a tool to test recursive/auth DNS compliance
2015 Q3
Grigorii Demidov
Grigorii Demidov
https://gitlab.nic.cz/knot/knot-resolver/-/issues/55
Crash after torturing kresd with dnsperf
2017-08-22T13:33:40+02:00
Ondřej Surý
Crash after torturing kresd with dnsperf
```
(gdb) run -v --forks=1 --addr=127.0.0.1#53 /var/lib/kresd
Starting program: /usr/sbin/kresd -v --forks=1 --addr=127.0.0.1#53 /var/lib/kresd
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_6...
```
(gdb) run -v --forks=1 --addr=127.0.0.1#53 /var/lib/kresd
Starting program: /usr/sbin/kresd -v --forks=1 --addr=127.0.0.1#53 /var/lib/kresd
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff3a01700 (LWP 23545)]
[New Thread 0x7ffff30a0700 (LWP 23546)]
[New Thread 0x7ffff285f700 (LWP 23547)]
[New Thread 0x7ffff185d700 (LWP 23549)]
[New Thread 0x7ffff205e700 (LWP 23548)]
[tinyweb] listening on 127.0.0.1:8080
[plan] plan 'finalfantasy.jp.' type 'AAAA'
[resl] => querying: '203.119.40.1' score: 10 zone cut: 'jp.' m12n: 'FiNaLfaNTAsy.jP.' type: 'AAAA'
[resl] optional: '2001:2f8:0:100::153' score: 10 zone cut: 'jp.' m12n: 'FiNaLfaNTAsy.jP.' type: 'AAAA'
[resl] optional: '150.100.6.8' score: 10 zone cut: 'jp.' m12n: 'FiNaLfaNTAsy.jP.' type: 'AAAA'
[resl] optional: '2001:200:c000::35' score: 10 zone cut: 'jp.' m12n: 'FiNaLfaNTAsy.jP.' type: 'AAAA'
[plan] plan 'motherfuckingwebsite.com.' type 'AAAA'
[resl] => querying: '192.55.83.30' score: 10 zone cut: 'com.' m12n: 'moTHeRFuckIngWeBsITE.coM.' type: 'AAAA'
[resl] optional: '192.41.162.30' score: 10 zone cut: 'com.' m12n: 'moTHeRFuckIngWeBsITE.coM.' type: 'AAAA'
[resl] optional: '192.52.178.30' score: 10 zone cut: 'com.' m12n: 'moTHeRFuckIngWeBsITE.coM.' type: 'AAAA'
[resl] optional: '192.48.79.30' score: 10 zone cut: 'com.' m12n: 'moTHeRFuckIngWeBsITE.coM.' type: 'AAAA'
[plan] plan 'islamnor.com.' type 'A'
[resl] => querying: '192.55.83.30' score: 10 zone cut: 'com.' m12n: 'iSLaMNOR.Com.' type: 'A'
[resl] optional: '192.41.162.30' score: 10 zone cut: 'com.' m12n: 'iSLaMNOR.Com.' type: 'A'
[resl] optional: '192.52.178.30' score: 10 zone cut: 'com.' m12n: 'iSLaMNOR.Com.' type: 'A'
[resl] optional: '192.48.79.30' score: 10 zone cut: 'com.' m12n: 'iSLaMNOR.Com.' type: 'A'
[plan] plan 'backtweets.com.' type 'A'
[resl] => querying: '192.55.83.30' score: 10 zone cut: 'com.' m12n: 'baCKTWeets.cOm.' type: 'A'
[resl] optional: '192.41.162.30' score: 10 zone cut: 'com.' m12n: 'baCKTWeets.cOm.' type: 'A'
[resl] optional: '192.52.178.30' score: 10 zone cut: 'com.' m12n: 'baCKTWeets.cOm.' type: 'A'
[resl] optional: '192.48.79.30' score: 10 zone cut: 'com.' m12n: 'baCKTWeets.cOm.' type: 'A'
[plan] plan 'schoolclipart.biz.' type 'A'
[resl] => querying: '2001:503:e239::3:2' score: 10 zone cut: 'biz.' m12n: 'ScHoolCLIpArt.biZ.' type: 'A'
[resl] optional: '156.154.128.65' score: 10 zone cut: 'biz.' m12n: 'ScHoolCLIpArt.biZ.' type: 'A'
[resl] optional: '2001:500:3682::12' score: 10 zone cut: 'biz.' m12n: 'ScHoolCLIpArt.biZ.' type: 'A'
[resl] optional: '209.173.58.66' score: 10 zone cut: 'biz.' m12n: 'ScHoolCLIpArt.biZ.' type: 'A'
[plan] plan 'hagalil.com.' type 'MX'
[resl] => querying: '192.55.83.30' score: 10 zone cut: 'com.' m12n: 'haGalil.COm.' type: 'MX'
[resl] optional: '192.41.162.30' score: 10 zone cut: 'com.' m12n: 'haGalil.COm.' type: 'MX'
[resl] optional: '192.52.178.30' score: 10 zone cut: 'com.' m12n: 'haGalil.COm.' type: 'MX'
[resl] optional: '192.48.79.30' score: 10 zone cut: 'com.' m12n: 'haGalil.COm.' type: 'MX'
[plan] plan 'st-fashiony.ru.' type 'MX'
[resl] => querying: '2001:678:14:0:193:232:156:17' score: 10 zone cut: 'ru.' m12n: 'sT-fAShioNY.RU.' type: 'MX'
[resl] optional: '193.232.156.17' score: 10 zone cut: 'ru.' m12n: 'sT-fAShioNY.RU.' type: 'MX'
[resl] optional: '2001:678:15:0:193:232:142:17' score: 10 zone cut: 'ru.' m12n: 'sT-fAShioNY.RU.' type: 'MX'
[resl] optional: '193.232.142.17' score: 10 zone cut: 'ru.' m12n: 'sT-fAShioNY.RU.' type: 'MX'
[plan] plan 'nohandsseo.com.' type 'A'
[ rc ] => satisfied from cache
[iter] <= rcode: NOERROR
[resl] finished: 4, queries: 1, mempool: 16400 B
[plan] plan 'ignegocios.com.br.' type 'A'
[resl] => querying: '200.219.159.10' score: 10 zone cut: 'com.br.' m12n: 'IgNegOCIoS.CoM.BR.' type: 'A'
[resl] optional: '2001:12f8:1::10' score: 10 zone cut: 'com.br.' m12n: 'IgNegOCIoS.CoM.BR.' type: 'A'
[resl] optional: '200.229.248.10' score: 10 zone cut: 'com.br.' m12n: 'IgNegOCIoS.CoM.BR.' type: 'A'
[resl] optional: '2001:12f8:4::10' score: 10 zone cut: 'com.br.' m12n: 'IgNegOCIoS.CoM.BR.' type: 'A'
[plan] plan 'dolina.su.' type 'A'
[resl] => querying: '2001:678:14:0:193:232:156:17' score: 10 zone cut: 'su.' m12n: 'DOliNA.sU.' type: 'A'
[resl] optional: '193.232.156.17' score: 10 zone cut: 'su.' m12n: 'DOliNA.sU.' type: 'A'
[resl] optional: '2001:678:15:0:193:232:142:17' score: 10 zone cut: 'su.' m12n: 'DOliNA.sU.' type: 'A'
[resl] optional: '193.232.142.17' score: 10 zone cut: 'su.' m12n: 'DOliNA.sU.' type: 'A'
[plan] plan 'newsarmenia.am.' type 'MX'
[resl] => querying: '2001:500:2e::1' score: 10 zone cut: 'am.' m12n: 'NEwsArmenIA.am.' type: 'MX'
[resl] optional: '192.5.4.1' score: 10 zone cut: 'am.' m12n: 'NEwsArmenIA.am.' type: 'MX'
[resl] optional: '2001:67c:21c:53::1' score: 10 zone cut: 'am.' m12n: 'NEwsArmenIA.am.' type: 'MX'
[resl] optional: '195.43.74.53' score: 10 zone cut: 'am.' m12n: 'NEwsArmenIA.am.' type: 'MX'
[plan] plan 'balticgruppen.se.' type 'MX'
[resl] => querying: '2001:500:2c::1' score: 10 zone cut: 'se.' m12n: 'BALTicGRuppeN.SE.' type: 'MX'
[resl] optional: '199.254.63.1' score: 10 zone cut: 'se.' m12n: 'BALTicGRuppeN.SE.' type: 'MX'
[resl] optional: '2001:67c:1010:5::53' score: 10 zone cut: 'se.' m12n: 'BALTicGRuppeN.SE.' type: 'MX'
[resl] optional: '194.146.106.22' score: 10 zone cut: 'se.' m12n: 'BALTicGRuppeN.SE.' type: 'MX'
[plan] plan 'rednecknewswire.com.' type 'AAAA'
[resl] => querying: '192.55.83.30' score: 10 zone cut: 'com.' m12n: 'rednECKnEWsWIRE.COM.' type: 'AAAA'
[resl] optional: '192.41.162.30' score: 10 zone cut: 'com.' m12n: 'rednECKnEWsWIRE.COM.' type: 'AAAA'
[resl] optional: '192.52.178.30' score: 10 zone cut: 'com.' m12n: 'rednECKnEWsWIRE.COM.' type: 'AAAA'
[resl] optional: '192.48.79.30' score: 10 zone cut: 'com.' m12n: 'rednECKnEWsWIRE.COM.' type: 'AAAA'
[plan] plan 'freeyounggayporn.com.' type 'A'
[resl] => querying: '192.55.83.30' score: 10 zone cut: 'com.' m12n: 'frEEYoUnggAyPORN.coM.' type: 'A'
[resl] optional: '192.41.162.30' score: 10 zone cut: 'com.' m12n: 'frEEYoUnggAyPORN.coM.' type: 'A'
[resl] optional: '192.52.178.30' score: 10 zone cut: 'com.' m12n: 'frEEYoUnggAyPORN.coM.' type: 'A'
[resl] optional: '192.48.79.30' score: 10 zone cut: 'com.' m12n: 'frEEYoUnggAyPORN.coM.' type: 'A'
[plan] plan 'tourexpress.com.' type 'A'
[resl] => querying: '192.55.83.30' score: 10 zone cut: 'com.' m12n: 'tOUrEXPresS.cOm.' type: 'A'
[resl] optional: '192.41.162.30' score: 10 zone cut: 'com.' m12n: 'tOUrEXPresS.cOm.' type: 'A'
[resl] optional: '192.52.178.30' score: 10 zone cut: 'com.' m12n: 'tOUrEXPresS.cOm.' type: 'A'
[resl] optional: '192.48.79.30' score: 10 zone cut: 'com.' m12n: 'tOUrEXPresS.cOm.' type: 'A'
[plan] plan 'fatehgar.org.' type 'A'
[resl] => querying: '2001:500:f::1' score: 10 zone cut: 'org.' m12n: 'fAteHGaR.org.' type: 'A'
[resl] optional: '199.19.57.1' score: 10 zone cut: 'org.' m12n: 'fAteHGaR.org.' type: 'A'
[resl] optional: '2001:500:b::1' score: 10 zone cut: 'org.' m12n: 'fAteHGaR.org.' type: 'A'
[resl] optional: '199.19.53.1' score: 10 zone cut: 'org.' m12n: 'fAteHGaR.org.' type: 'A'
[plan] plan 'referent.ru.' type 'A'
[resl] => querying: '2001:678:14:0:193:232:156:17' score: 10 zone cut: 'ru.' m12n: 'RefErent.rU.' type: 'A'
[resl] optional: '193.232.156.17' score: 10 zone cut: 'ru.' m12n: 'RefErent.rU.' type: 'A'
[resl] optional: '2001:678:15:0:193:232:142:17' score: 10 zone cut: 'ru.' m12n: 'RefErent.rU.' type: 'A'
[resl] optional: '193.232.142.17' score: 10 zone cut: 'ru.' m12n: 'RefErent.rU.' type: 'A'
[plan] plan 'azimage.com.' type 'AAAA'
[resl] => querying: '192.55.83.30' score: 10 zone cut: 'com.' m12n: 'AzImAge.COm.' type: 'AAAA'
[resl] optional: '192.41.162.30' score: 10 zone cut: 'com.' m12n: 'AzImAge.COm.' type: 'AAAA'
[resl] optional: '192.52.178.30' score: 10 zone cut: 'com.' m12n: 'AzImAge.COm.' type: 'AAAA'
[resl] optional: '192.48.79.30' score: 10 zone cut: 'com.' m12n: 'AzImAge.COm.' type: 'AAAA'
[plan] plan 'tradetoolsfx.com.' type 'A'
[ rc ] => satisfied from cache
[iter] <= rcode: NOERROR
[resl] finished: 4, queries: 1, mempool: 16400 B
[plan] plan 'amway.com.' type 'AAAA'
[resl] => querying: '192.55.83.30' score: 10 zone cut: 'com.' m12n: 'aMwAy.cOm.' type: 'AAAA'
[resl] optional: '192.41.162.30' score: 10 zone cut: 'com.' m12n: 'aMwAy.cOm.' type: 'AAAA'
[resl] optional: '192.52.178.30' score: 10 zone cut: 'com.' m12n: 'aMwAy.cOm.' type: 'AAAA'
[resl] optional: '192.48.79.30' score: 10 zone cut: 'com.' m12n: 'aMwAy.cOm.' type: 'AAAA'
[plan] plan 'tellows.co.za.' type 'A'
[ rc ] => satisfied from cache
[iter] <= rcode: NOERROR
[resl] finished: 4, queries: 1, mempool: 16400 B
[plan] plan 'trendbende.com.' type 'MX'
[resl] => querying: '192.55.83.30' score: 10 zone cut: 'com.' m12n: 'TreNDBENde.COM.' type: 'MX'
[resl] optional: '192.41.162.30' score: 10 zone cut: 'com.' m12n: 'TreNDBENde.COM.' type: 'MX'
[resl] optional: '192.52.178.30' score: 10 zone cut: 'com.' m12n: 'TreNDBENde.COM.' type: 'MX'
[resl] optional: '192.48.79.30' score: 10 zone cut: 'com.' m12n: 'TreNDBENde.COM.' type: 'MX'
[plan] plan 'futuri.pl.' type 'AAAA'
[resl] => querying: '156.154.100.15' score: 10 zone cut: 'pl.' m12n: 'fuTUrI.pL.' type: 'AAAA'
[resl] optional: '2001:678:4::2' score: 10 zone cut: 'pl.' m12n: 'fuTUrI.pL.' type: 'AAAA'
[resl] optional: '194.0.1.2' score: 10 zone cut: 'pl.' m12n: 'fuTUrI.pL.' type: 'AAAA'
[resl] optional: '2001:6d8:1001:1::252' score: 10 zone cut: 'pl.' m12n: 'fuTUrI.pL.' type: 'AAAA'
[iter] <= referral response, follow
[resl] <= server: '156.154.100.15' rtt: 23 ms
[plan] plan 'ns2.megapliki.info.' type 'AAAA'
[resl] => querying: '2001:500:1c::1' score: 10 zone cut: 'info.' m12n: 'MEGaPlikI.Info.' type: 'NS'
[resl] optional: '199.254.50.1' score: 10 zone cut: 'info.' m12n: 'MEGaPlikI.Info.' type: 'NS'
[resl] optional: '2001:500:1b::1' score: 10 zone cut: 'info.' m12n: 'MEGaPlikI.Info.' type: 'NS'
[resl] optional: '199.254.49.1' score: 10 zone cut: 'info.' m12n: 'MEGaPlikI.Info.' type: 'NS'
[iter] <= referral response, follow
*** Error in `/usr/sbin/kresd': double free or corruption (!prev): 0x00005555557be060 ***
Program received signal SIGABRT, Aborted.
0x00007ffff6497067 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
```
And backtrace:
```
#0 0x00007ffff6497067 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
resultvar = 0
pid = 23541
selftid = 23541
#1 0x00007ffff6498448 in __GI_abort () at abort.c:89
save_stage = 2
act = {__sigaction_handler = {sa_handler = 0x14, sa_sigaction = 0x14}, sa_mask = {__val = {140737488332736, 140737488332448, 140737319858966, 140736993066468, 140737319856847, 20, 140737488332784, 140737488332496,
93824995123472, 143168134112, 140737488332740, 23, 140736993066476, 140736969179136, 14580838424428381440, 140737488332816}}, sa_flags = 1433963704, sa_restorer = 0x10000}
sigs = {__val = {32, 0 <repeats 15 times>}}
#2 0x00007ffff64d51b4 in __libc_message (do_abort=do_abort@entry=1, fmt=fmt@entry=0x7ffff65ca820 "*** Error in `%s': %s: 0x%s ***\n") at ../sysdeps/posix/libc_fatal.c:175
ap = {{gp_offset = 40, fp_offset = 2003267177, overflow_arg_area = 0x7fffffffa990, reg_save_area = 0x7fffffffa920}}
fd = 21
on_2 = <optimized out>
list = <optimized out>
nlist = <optimized out>
cp = <optimized out>
written = <optimized out>
#3 0x00007ffff64da98e in malloc_printerr (action=1, str=0x7ffff65ca928 "double free or corruption (!prev)", ptr=<optimized out>) at malloc.c:4996
buf = "00005555557be060"
cp = <optimized out>
#4 0x00007ffff64db696 in _int_free (av=<optimized out>, p=<optimized out>, have_lock=0) at malloc.c:3840
size = <optimized out>
fb = <optimized out>
nextchunk = <optimized out>
nextsize = <optimized out>
nextinuse = <optimized out>
prevsize = <optimized out>
bck = <optimized out>
fwd = <optimized out>
errstr = <optimized out>
locked = <optimized out>
__func__ = "_int_free"
#5 0x00007ffff7b8a92b in rrcache_stash (ctx=<optimized out>, pkt=<optimized out>) at lib/layer/rrcache.c:339
cache = 0x7fffffffe3e8
txn = {t = {db = 0x555555788cb8, txn = 0x5555557be060}, owner = 0x7fffffffe3e8}
req = 0x5555557c2ab0
qry = <optimized out>
qtype = <optimized out>
is_eligible = <optimized out>
stash = {root = 0x5555557c5c59, malloc = 0x7ffff7b8a220 <mm_alloc>, free = 0x7ffff7b8a1e0 <mm_free>, baton = 0x5555557c2b50}
ret = <optimized out>
is_auth = <optimized out>
#6 0x00007ffff7b90794 in kr_resolve_consume (request=request@entry=0x5555557c2ab0, src=src@entry=0x7fffffffacf0, packet=packet@entry=0x55555578a1c0) at lib/resolve.c:449
layer = {mm = 0x0, state = 4, data = 0x5555557c2ab0, api = 0x7ffff7d9a240 <_layer.6233>}
mod = <optimized out>
i = 2
qname_raw = <optimized out>
rplan = 0x5555557c2b10
ctx = 0x7fffffffe350
qry = 0x5555557c4f00
tried_tcp = false
#7 0x000055555555e0cd in qr_task_step (task=0x5555557c2ab0, packet_source=packet_source@entry=0x7fffffffacf0, packet=0x55555578a1c0) at daemon/worker.c:603
sock_type = -1
state = <optimized out>
choice = <optimized out>
ret = <optimized out>
#8 0x000055555555e982 in worker_exec (worker=worker@entry=0x7ffff7e5b010, handle=handle@entry=0x5555557c6a60, query=<optimized out>, addr=addr@entry=0x7fffffffacf0) at daemon/worker.c:716
task = <optimized out>
is_master_socket = <optimized out>
#9 0x000055555555a5e3 in udp_recv (handle=0x5555557c6a60, nread=<optimized out>, buf=<optimized out>, addr=0x7fffffffacf0, flags=<optimized out>) at daemon/io.c:89
loop = <optimized out>
worker = 0x7ffff7e5b010
query = <optimized out>
#10 0x00007ffff72dac19 in uv__udp_recvmsg (handle=0x5555557c6a60) at src/unix/udp.c:201
addr = <optimized out>
peer = {ss_family = 2, __ss_align = 0,
__ss_padding = "\020\256\377\377\377\177\000\000W\374\203\366\377\177\000\000\300\256\003@\373\377\377\377\200\351\206\366\377\177\000\000\020\256\377\377\377\177\000\000\315\016\204\366\377\177\000\000\300\273\377\377\377\177\000\000 \264\377\377\377\177\000\000$\257\377\377\377\177\000\000\220\255\377\377\377\177\000\000\001\000\000\000\000\000\000\000\340\255\377\377\377\177\000\000\200yN\367\377\177\000\000\v\000\000\000\000\000\000"}
buf = {base = 0x7ffff7e5b028 "\336u\200", len = 65536}
count = 32
h = {msg_name = 0x7fffffffacf0, msg_namelen = 16, msg_iov = 0x7fffffffaca0, msg_iovlen = 1, msg_control = 0x0, msg_controllen = 0, msg_flags = 0}
nread = <optimized out>
#11 uv__udp_io (loop=<optimized out>, w=0x5555557c6ae0, revents=1) at src/unix/udp.c:139
handle = 0x5555557c6a60
#12 0x00007ffff72dc75a in uv__io_poll (loop=loop@entry=0x7ffff74e7980 <default_loop_struct>, timeout=270) at src/unix/linux-core.c:346
no_epoll_pwait = 0
no_epoll_wait = 0
events = {{events = 1, data = 18446744073709551615}, {events = 32767, data = 140737488335904}, {events = 4135922194, data = 18446655150706687999}, {events = 32767, data = 140737488334528}, {events = 1073988648,
data = 18446656318937759744}, {events = 32767, data = 140737488337856}, {events = 4135996959, data = 4612746119435288575}, {events = 0, data = 18446744069414584323}, {events = 4294967295, data = 17763655642976911359}, {
events = 32767, data = 140737488337856}, {events = 4135844594, data = 824633753599}, {events = 0, data = 140737329232626}, {events = 384, data = 30064771072}, {events = 0, data = 7}, {events = 1073742712,
data = 18446669100760432640}, {events = 32767, data = 140737329232626}, {events = 192, data = 12884901888}, {events = 0, data = 3}, {events = 1073742712, data = 4612777524236124160}, {events = 0, data = 1073995864}, {
events = 1073996032, data = 17763318805871722496}, {events = 32767, data = 18446744053308472112}, {events = 1073742712, data = 18446669100760432640}, {events = 32767, data = 140737488337856}, {events = 4294949884,
data = 17764142516174618623}, {events = 32767, data = 140737488335008}, {events = 4135849677, data = 18446669032040988671}, {events = 32767, data = 140737488337872}, {events = 10, data = 18446660648264794112}, {
events = 32767, data = 140737488335300}, {events = 4294947872, data = 18446669032040988671}, {events = 32767, data = 140737329240366}, {events = 1073959296, data = 18446660652559761403}, {events = 32767,
data = 140737488335904}, {events = 4135922194, data = 18446656799974129663}, {events = 32767, data = 140737488334912}, {events = 1073959296, data = 18446658036924678144}, {events = 32767, data = 140737488337856}, {
events = 4135996959, data = 4612620053555216383}, {events = 0, data = 18446744069414584323}, {events = 4294967295, data = 17763970910756306943}, {events = 32767, data = 140737488337856}, {events = 4294947264,
data = 18446660648264826879}, {events = 32767, data = 140737329397766}, {events = 2, data = 18446658071284416512}, {events = 32767, data = 140737488335300}, {events = 1073742712, data = 18446669100760432640}, {
events = 32767, data = 140737488337856}, {events = 4294949884, data = 17764142516174618623}, {events = 32767, data = 140737488335280}, {events = 4294947872, data = 73014476799}, {events = 0, data = 140737488335296}, {
events = 2, data = 17763644922738507776}, {events = 32767, data = 140737488335296}, {events = 4294947872, data = 8589967359}, {events = 0, data = 140737488335904}, {events = 18, data = 18446658861558398976}, {events = 32767,
data = 16974397}, {events = 4294949824, data = 18446669032040988671}, {events = 32767, data = 140737329308205}, {events = 4294949824, data = 18446660648264826879}, {events = 32767, data = 140737488335296}, {
events = 4294947456, data = 18446669032040988671}, {events = 32767, data = 9}, {events = 4294949824, data = 17763316722812616703}, {events = 32767, data = 1536}, {events = 31, data = 133143986176}, {events = 0,
data = 1073742712}, {events = 1073990240, data = 4612719662436712448}, {events = 0, data = 1073990984}, {events = 4135844951, data = 4611751095771889663}, {events = 4294967291, data = 1073742712}, {events = 1073990240,
data = 17763321116564127744}, {events = 32767, data = 24}, {events = 1, data = 144398046032035840}, {events = 0, data = 4612752961318140864}, {events = 4294947520, data = 18446659754911629311}, {events = 32767, data = 32}, {
events = 1073982488, data = 0}, {events = 0, data = 0}, {events = 32, data = 17763324586897702912}, {events = 32767, data = 140737488335552}, {events = 4136009277, data = 18446659754911596545}, {events = 32767,
data = 1073742712}, {events = 0, data = 0}, {events = 0, data = 0}, {events = 0, data = 0}, {events = 0, data = 0}, {events = 0, data = 0}, {events = 0, data = 0}, {events = 0, data = 0}, {events = 0, data = 0}, {events = 0,
data = 0}, {events = 0, data = 140737488337856}, {events = 1073742712, data = 18446659754911596544}, {events = 32767, data = 140737329232498}, {events = 4294949884, data = 4611689832358379519}, {events = 0,
data = 1073752432}, {events = 4294949824, data = 18446669289739026431}, {events = 32767, data = 140737329424768}, {events = 4294949824, data = 17763318805871755263}, {events = 32767, data = 18446744053308467568}, {
events = 4294949824, data = 18446669289739026431}, {events = 32767, data = 140737329232983}, {events = 1073752432, data = 17764142520469553147}, {events = 32767, data = 140737488337856}, {events = 4135849677,
data = 18446669032040988671}, {events = 32767, data = 140737488337872}, {events = 32, data = 17763968316596027392}, {events = 32767, data = 1310771}, {events = 4294949824, data = 18446669032040988671}, {events = 32767,
data = 140737488337856}, {events = 4294948896, data = 4612737976177295359}, {events = 0, data = 140737488336816}, {events = 4294947872, data = 18446669032040988671}, {events = 32767, data = 140737329384813}, {events = 1,
data = 17764000447246368768}, {events = 32767, data = 0}, {events = 0, data = 18446660648264794112}, {events = 32767, data = 691489734657}, {events = 0, data = 21474836480}, {events = 4096, data = 1073995864}, {
events = 4294949824, data = 4611689832358379519}, {events = 0, data = 0}, {events = 4294948896, data = 111669182463}, {events = 19, data = 4294967295}, {events = 0, data = 25769803776}, {events = 161, data = 1073986928}, {
events = 106, data = 72903255918641157}, {events = 393221, data = 2814788422336519}, {events = 786443, data = 4503664052797453}, {events = 1179665, data = 1073983064}, {events = 4294948112, data = 17763317272568430591}, {
events = 32767, data = 140737488337916}, {events = 1073742712, data = 4611797859375775744}, {events = 0, data = 140737329232626}, {events = 768, data = 64424509440}, {events = 0, data = 15}, {events = 1073742712,
data = 4612724301001392128}, {events = 0, data = 1073982488}, {events = 1073983928, data = 17763318805871722496}, {events = 32767, data = 18446744053308674432}, {events = 1073742712, data = 4612724301001392128}, {events = 0,
data = 140737329233521}, {events = 4294949824, data = 17762738998171697151}, {events = 32767, data = 140737488337856}, {events = 10, data = 42949672960}, {events = 0, data = 140737329074904}, {events = 16,
data = 4612719662436712448}, {events = 0, data = 140737488337856}, {events = 4135919573, data = 68719509503}, {events = 0, data = 140737488337856}, {events = 4294949840, data = 17763959722366500863}, {events = 32767,
data = 140737488336544}, {events = 1073742712, data = 0}, {events = 0, data = 140737488337856}, {events = 4294948784, data = 18446665046311337983}, {events = 32767, data = 140737488337856}, {events = 1073745824,
data = 18446669032040955904}, {events = 32767, data = 140737329384813}, {events = 1073960224, data = 18446669032040955904}, {events = 32767, data = 140737488336816}, {events = 4136009616, data = 32767}, {events = 0,
data = 140737488336824}, {events = 4294948788, data = 4611689832358379519}, {events = 0, data = 1073756976}, {events = 4294949824, data = 18446669289739026431}, {events = 32767, data = 140737329424768}, {events = 4294949824,
data = 18446669032040988671}, {events = 32767, data = 140737488336816}, {events = 1, data = 18446669032040955904}, {events = 32767, data = 1073745824}, {events = 4294949824, data = 17764006597639569407}, {events = 32767,
data = 140737488337872}, {events = 4294949824, data = 32767}, {events = 32767, data = 140737329424768}, {events = 4294949824, data = 17763339103887196159}, {events = 32767, data = 140737488337856}, {events = 4294948896,
data = 107374215167}, {events = 0, data = 1}, {events = 131148, data = 18446669032040955904}, {events = 32767, data = 140737488337856}, {events = 4135920173, data = 17764105029700059135}, {events = 32767,
data = 140737488336928}, {events = 131148, data = 4294967296}, {events = 0, data = 140737329416040}, {events = 1073745824, data = 4611690107236253696}, {events = 0, data = 342}, {events = 1073742712, data = 68719476736}, {
events = 0, data = 1073993240}, {events = 4135796938, data = 1468878847999}, {events = 0, data = 9}, {events = 4294948896, data = 17763691540313571327}, {events = 32767, data = 140737488346336}, {events = 4294949884,
data = 4611689832358379519}, {events = 0, data = 256}, {events = 256, data = 1206885810176}, {events = 0, data = 0}, {events = 256, data = 18446744069414584320}, {events = 0, data = 140733193388204}...}
pe = 0x7fffffffae70
e = {events = 1, data = 39}
real_timeout = 270
q = <optimized out>
w = <optimized out>
sigset = {__val = {1073988648, 140737488337856, 140737488337916, 140737329424768, 140737488334624, 140737329232983, 18446744053308703784, 140737329424768, 140737488334624, 140737329237709, 140737488337856, 140737488335904,
140737488334900, 140737488335904, 140737488337856, 140737329240366}}
base = 6236040573
is_sigmasked = 0
nevents = 0
count = 48
nfds = 1
fd = <optimized out>
op = <optimized out>
i = <optimized out>
__PRETTY_FUNCTION__ = "uv__io_poll"
#13 0x00007ffff72ce7f8 in uv_run (loop=0x7ffff74e7980 <default_loop_struct>, mode=UV_RUN_DEFAULT) at src/unix/core.c:351
timeout = <optimized out>
r = 1
#14 0x000055555555a3e7 in run_worker (engine=0x7fffffffe350, loop=0x7ffff74e7980 <default_loop_struct>) at daemon/main.c:225
sock_file = 0x55555576ccb0 "tty/23541"
pipe = {data = 0x7fffffffe350, loop = 0x7ffff74e7980 <default_loop_struct>, type = UV_NAMED_PIPE, close_cb = 0x0, handle_queue = {0x5555557be930, 0x5555557bc1b0}, u = {fd = -7584, reserved = {0x7fffffffe260, 0x360ae0,
0x7fffffffe250, 0x7fffffffe180}}, next_closing = 0x0, flags = 24576, write_queue_size = 0, alloc_cb = 0x0, read_cb = 0x0, connect_req = 0x0, shutdown_req = 0x0, io_watcher = {cb = 0x7ffff72d8010 <uv__server_io>,
pending_queue = {0x7fffffffe190, 0x7fffffffe190}, watcher_queue = {0x7fffffffe1a0, 0x7fffffffe1a0}, pevents = 1, events = 1, fd = 19}, write_queue = {0x7fffffffe1c0, 0x7fffffffe1c0}, write_completed_queue = {0x7fffffffe1d0,
0x7fffffffe1d0}, connection_cb = 0x5555555618d0 <tty_accept>, delayed_error = 0, accepted_fd = -1, queued_fds = 0x0, ipc = 0, pipe_fname = 0x55555576d8e0 "tty/23541"}
#15 main (argc=<optimized out>, argv=<optimized out>) at daemon/main.c:430
forks = 0
addr_set = {at = 0x555555788470, len = 1, cap = <optimized out>}
fd_set = {at = 0x0, len = <optimized out>, cap = <optimized out>}
keyfile = 0x0
config = 0x0
keyfile_buf = <optimized out>
c = <optimized out>
li = 0
ret = 0
opts = {{name = 0x555555565d32 "addr", has_arg = 1, flag = 0x0, val = 97}, {name = 0x555555566190 "fd", has_arg = 1, flag = 0x0, val = 83}, {name = 0x55555556428e "config", has_arg = 1, flag = 0x0, val = 99}, {
name = 0x555555566193 "keyfile", has_arg = 1, flag = 0x0, val = 107}, {name = 0x55555556619b "forks", has_arg = 1, flag = 0x0, val = 102}, {name = 0x5555555642d0 "verbose", has_arg = 0, flag = 0x0, val = 118}, {
name = 0x5555555661a1 "quiet", has_arg = 0, flag = 0x0, val = 113}, {name = 0x5555555661a7 "version", has_arg = 0, flag = 0x0, val = 86}, {name = 0x5555555642bd "help", has_arg = 0, flag = 0x0, val = 104}, {name = 0x0,
has_arg = 0, flag = 0x0, val = 0}}
__PRETTY_FUNCTION__ = "main"
fork_count = <optimized out>
loop = 0x7ffff74e7980 <default_loop_struct>
sigint = {data = 0x7fffffffe368, loop = 0x7ffff74e7980 <default_loop_struct>, type = UV_SIGNAL, close_cb = 0x7ffff7de4c1c <check_match+300>, handle_queue = {0x7fffffffe080, 0x7ffff74e7a50 <default_loop_struct+208>}, u = {
fd = 11, reserved = {0xb, 0x7ffff7de4c1c <check_match+300>, 0x7ffff7fe26d8, 0xb01bca00}}, next_closing = 0x0, flags = 24576, signal_cb = 0x5555555618a0 <signal_handler>, signum = 2, tree_entry = {rbe_left = 0x0,
rbe_right = 0x7fffffffe060, rbe_parent = 0x0, rbe_color = 0}, caught_signals = 0, dispatched_signals = 0}
sigterm = {data = 0x7fffffffe190, loop = 0x7ffff74e7980 <default_loop_struct>, type = UV_SIGNAL, close_cb = 0x7ffff7de4c1c <check_match+300>, handle_queue = {0x55555578a450, 0x7fffffffdfe0}, u = {fd = -134328224, reserved = {
0x7ffff7fe5060, 0x7ffff59fd4c9, 0x7ffff59fd438, 0x7ffff59fca30}}, next_closing = 0x0, flags = 24576, signal_cb = 0x5555555618a0 <signal_handler>, signum = 15, tree_entry = {rbe_left = 0x0, rbe_right = 0x0,
rbe_parent = 0x7fffffffdfc0, rbe_color = 1}, caught_signals = 0, dispatched_signals = 0}
pool = {ctx = 0x555555788530, alloc = 0x7ffff7b95050 <mp_alloc>, free = 0x0}
engine = {resolver = {options = 0, opt_rr = 0x5555557885a0, trust_anchors = {root = 0x0, malloc = 0x7ffff7b87a10 <malloc_std>, free = 0x7ffff7b87a00 <free_std>, baton = 0x0}, negative_anchors = {root = 0x0,
malloc = 0x7ffff7b87a10 <malloc_std>, free = 0x7ffff7b87a00 <free_std>, baton = 0x0}, root_hints = {name = 0x5555557885d8 "", key = 0x0, trust_anchor = 0x0, parent = 0x0, nsset = {root = 0x5555557886a1,
malloc = 0x7ffff7b91d70 <mm_alloc>, free = 0x7ffff7b91d30 <mm_free>, baton = 0x7fffffffdfa0}, pool = 0x7fffffffdfa0}, cache = {db = 0x555555788cb8, api = 0x7ffff7b7f240, stats = {hit = 303, miss = 228, insert = 2,
delete = 1, txn_read = 66, txn_write = 4}}, cache_rtt = 0x7ffff7edd010, cache_rep = 0x7ffff7e9c010, modules = 0x7fffffffe458, pool = 0x7fffffffdfa0}, net = {loop = 0x7ffff74e7980 <default_loop_struct>, endpoints = {
root = 0x55555576c060, malloc = 0x7ffff7b87a10 <malloc_std>, free = 0x7ffff7b87a00 <free_std>, baton = 0x0}}, modules = {at = 0x5555557b2e50, len = 8, cap = 10}, storage_registry = {at = 0x5555557898b0, len = 1, cap = 5},
pool = 0x7fffffffdfa0, L = 0x40000378}
```
The kresd recovers after the lmdb cache files are deleted.
1.0.0 release
https://gitlab.nic.cz/knot/knot-resolver/-/issues/54
daemon: manpages
2017-08-22T13:33:40+02:00
Marek Vavrusa
daemon: manpages
It has to be done.
It has to be done.
1.0.0 release
https://gitlab.nic.cz/knot/knot-resolver/-/issues/53
daemon: support --fd=<X> for listening on inherited fds
2017-08-22T13:33:40+02:00
Marek Vavrusa
daemon: support --fd=<X> for listening on inherited fds
This is related to #11 but easier deliverable.
* Support the `--fd` parameter and accept fd/list of fds
* Extract the local address and add them to libuv evloop as raw sockets
This is related to #11 but easier deliverable.
* Support the `--fd` parameter and accept fd/list of fds
* Extract the local address and add them to libuv evloop as raw sockets
1.0.0 release
https://gitlab.nic.cz/knot/knot-resolver/-/issues/52
daemon: rtt cache clearing
2017-08-22T13:33:40+02:00
Marek Vavrusa
daemon: rtt cache clearing
Outcome:
* [ ] Add `cachectl.prune_rtt([subnet])` function to prune RTT cache (to be able to do it periodically) for operators
* [x] Add documentation for feature kill-switches `option()`
Outcome:
* [ ] Add `cachectl.prune_rtt([subnet])` function to prune RTT cache (to be able to do it periodically) for operators
* [x] Add documentation for feature kill-switches `option()`
1.0.0 release
https://gitlab.nic.cz/knot/knot-resolver/-/issues/11
daemon: systemd socket activation
2017-12-08T11:24:16+01:00
Ghost User
daemon: systemd socket activation
http://0pointer.de/blog/projects/socket-activation.html
As in labs/knot#325
Steps:
* [x] Add optional dependency on systemd in Makefile
* [x] Add -DHAS_SYSTEMD to CFLAGS depending on the outcome (Makefile)
* [ ] Add unit test ...
http://0pointer.de/blog/projects/socket-activation.html
As in labs/knot#325
Steps:
* [x] Add optional dependency on systemd in Makefile
* [x] Add -DHAS_SYSTEMD to CFLAGS depending on the outcome (Makefile)
* [ ] Add unit test for this (with mocked systemd)
* [ ] Add the ability to pass fds over parameters `--fd=`
* [ ] Add socket activation in `main()` guarded by `#if HAS_SYSTEMD`
1.0.0 release