]> git.ipfire.org Git - thirdparty/pdns.git/log
thirdparty/pdns.git
4 years agoadd markup 10466/head
Peter van Dijk [Thu, 3 Jun 2021 14:57:18 +0000 (16:57 +0200)] 
add markup

4 years agoUpdate with @Habbie's suggestions
Mark Schouten [Thu, 3 Jun 2021 11:59:37 +0000 (13:59 +0200)] 
Update with @Habbie's suggestions

4 years agoUpdate documentation to reflect changes in default-soa-content.
Mark Schouten [Thu, 3 Jun 2021 10:32:06 +0000 (12:32 +0200)] 
Update documentation to reflect changes in default-soa-content.

There are more settings that need replacing.

4 years agoMerge pull request #10460 from rgacogne/rec-referral-from-parent-on-ds
Remi Gacogne [Thu, 3 Jun 2021 08:44:39 +0000 (10:44 +0200)] 
Merge pull request #10460 from rgacogne/rec-referral-from-parent-on-ds

rec: Don't follow referral from the parent to the child for DS queries

4 years agoMerge pull request #10419 from rgacogne/ddist-fix-edns-notify
Remi Gacogne [Wed, 2 Jun 2021 14:36:13 +0000 (16:36 +0200)] 
Merge pull request #10419 from rgacogne/ddist-fix-edns-notify

dnsdist: Properly handle ECS for queries with ancount or nscount > 0

4 years agorec: Cleaner way of handling a referral to a child zone for DS queries 10460/head
Remi Gacogne [Wed, 2 Jun 2021 14:29:40 +0000 (16:29 +0200)] 
rec: Cleaner way of handling a referral to a child zone for DS queries

4 years agorec: Also test for the "referral to child on DS query" case in a Secure zone
Remi Gacogne [Wed, 2 Jun 2021 14:26:14 +0000 (16:26 +0200)] 
rec: Also test for the "referral to child on DS query" case in a Secure zone

4 years agorec: Fix a typo in a comment
Remi Gacogne [Wed, 2 Jun 2021 13:02:42 +0000 (15:02 +0200)] 
rec: Fix a typo in a comment

4 years agorec: Add a unit test for the "referral to child on DS query" case
Remi Gacogne [Wed, 2 Jun 2021 13:00:32 +0000 (15:00 +0200)] 
rec: Add a unit test for the "referral to child on DS query" case

4 years agoMerge pull request #10445 from rgacogne/rec-typo-edns-prometheus-metric
Otto Moerbeek [Wed, 2 Jun 2021 11:28:18 +0000 (13:28 +0200)] 
Merge pull request #10445 from rgacogne/rec-typo-edns-prometheus-metric

rec: Fix a typo in the prometheus "edns-ping-mismatches" metric

4 years agoMerge pull request #10459 from Habbie/auth-py-tests
Peter van Dijk [Wed, 2 Jun 2021 10:15:17 +0000 (12:15 +0200)] 
Merge pull request #10459 from Habbie/auth-py-tests

auth-py tests: unbreak, enable in CircleCI

4 years agoMerge pull request #10407 from zeha/bullseye
Peter van Dijk [Tue, 1 Jun 2021 08:36:56 +0000 (10:36 +0200)] 
Merge pull request #10407 from zeha/bullseye

builder-support: add Debian bullseye dockerfiles

4 years agoMerge pull request #10462 from pieterlexis/update-boost-m4
Peter van Dijk [Tue, 1 Jun 2021 08:33:27 +0000 (10:33 +0200)] 
Merge pull request #10462 from pieterlexis/update-boost-m4

Update boost.m4

4 years agoauth LUA testing: allow 2 seconds for health checking to run 10459/head
Peter van Dijk [Tue, 1 Jun 2021 08:12:42 +0000 (10:12 +0200)] 
auth LUA testing: allow 2 seconds for health checking to run

4 years agoUpdate boost.m4 10462/head
Pieter Lexis [Tue, 1 Jun 2021 07:12:15 +0000 (09:12 +0200)] 
Update boost.m4

4 years agorec: Don't follow referral from the parent to the child for DS queries
Remi Gacogne [Mon, 31 May 2021 15:00:18 +0000 (17:00 +0200)] 
rec: Don't follow referral from the parent to the child for DS queries

It happens if the server does not know about the DS special case.
Treat the delegation as a unsigned NODATA answer in that case.

For example for sthc.nordlo.cloud we go from the existing:

```
[1]   sthc.nordlo.cloud: Resolved 'nordlo.cloud' NS ns2.zetup.se to: 159.253.27.75
[1]   sthc.nordlo.cloud: Trying IP 159.253.27.75:53, asking 'sthc.nordlo.cloud|DS'
[1]   sthc.nordlo.cloud: Got 3 answers from ns2.zetup.se (159.253.27.75), rcode=0 (No Error), aa=0, in 35ms
[1]   sthc.nordlo.cloud: accept answer 'sthc.nordlo.cloud|NS|ns2.loopia.se.' from 'nordlo.cloud' nameservers? ttl=3600, place=2 YES!
[1]   sthc.nordlo.cloud: accept answer 'sthc.nordlo.cloud|NS|ns1.loopia.se.' from 'nordlo.cloud' nameservers? ttl=3600, place=2 YES!
[1]   sthc.nordlo.cloud: OPT answer '.' from 'nordlo.cloud' nameservers
[1]   sthc.nordlo.cloud: determining status after receiving this packet
[1]   sthc.nordlo.cloud: got NS record 'sthc.nordlo.cloud' -> 'ns2.loopia.se.'
[1]   sthc.nordlo.cloud: got NS record 'sthc.nordlo.cloud' -> 'ns1.loopia.se.'
[1]   sthc.nordlo.cloud: status=did not resolve, got 2 NS, looping to them
[1]   sthc.nordlo.cloud.: Nameservers: ns1.loopia.se(37.85ms), ns2.loopia.se(38.26ms)
[1]   sthc.nordlo.cloud: Trying to resolve NS 'ns1.loopia.se' (1/2)
[1]   Nameserver ns1.loopia.se IPs: 93.188.0.20(37.85ms)
[1]   sthc.nordlo.cloud: Resolved 'sthc.nordlo.cloud' NS ns1.loopia.se to: 93.188.0.20
[1]   sthc.nordlo.cloud: Trying IP 93.188.0.20:53, asking 'sthc.nordlo.cloud|DS'
```

to:

```
[1]   sthc.nordlo.cloud: Resolved 'nordlo.cloud' NS ns2.zetup.se to: 159.253.27.75
[1]   sthc.nordlo.cloud: Trying IP 159.253.27.75:53, asking 'sthc.nordlo.cloud|DS'
[1]   sthc.nordlo.cloud: Got 3 answers from ns2.zetup.se (159.253.27.75), rcode=0 (No Error), aa=0, in 35ms
[1]   sthc.nordlo.cloud: accept answer 'sthc.nordlo.cloud|NS|ns2.loopia.se.' from 'nordlo.cloud' nameservers? ttl=3600, place=2 YES!
[1]   sthc.nordlo.cloud: accept answer 'sthc.nordlo.cloud|NS|ns1.loopia.se.' from 'nordlo.cloud' nameservers? ttl=3600, place=2 YES!
[1]   sthc.nordlo.cloud: OPT answer '.' from 'nordlo.cloud' nameservers
[1]   sthc.nordlo.cloud: determining status after receiving this packet
[1]   sthc.nordlo.cloud: got NS record 'sthc.nordlo.cloud' -> 'ns2.loopia.se.'
[1]   sthc.nordlo.cloud: got (implicit) negative indication of DS record for 'sthc.nordlo.cloud'
[1]   sthc.nordlo.cloud: got NS record 'sthc.nordlo.cloud' -> 'ns1.loopia.se.'
[1]   sthc.nordlo.cloud: status=noerror, other types may exist, but we are done (have negative SOA)
[1] : no signatures for sthc.nordlo.cloud, we likely missed a cut between cloud and nordlo.cloud, looking for it
```

4 years agocircleci: test auth-py
Peter van Dijk [Mon, 15 Feb 2021 13:20:15 +0000 (14:20 +0100)] 
circleci: test auth-py

4 years agoauth testing: enable svc-autohints when testing autohints
Peter van Dijk [Mon, 31 May 2021 13:00:59 +0000 (15:00 +0200)] 
auth testing: enable svc-autohints when testing autohints

4 years agoMerge pull request #10455 from Habbie/builder-yum-upgrade
Peter van Dijk [Fri, 28 May 2021 10:30:21 +0000 (12:30 +0200)] 
Merge pull request #10455 from Habbie/builder-yum-upgrade

builder rpmbuild: run yum upgrade first

4 years agobuilder rpmbuild: run yum upgrade first 10455/head
Peter van Dijk [Thu, 27 May 2021 16:04:46 +0000 (18:04 +0200)] 
builder rpmbuild: run yum upgrade first

4 years agoMerge pull request #10434 from pieterlexis/upgrade-local-ipv6
Peter van Dijk [Thu, 27 May 2021 11:19:22 +0000 (13:19 +0200)] 
Merge pull request #10434 from pieterlexis/upgrade-local-ipv6

Fix the upgrade guide for local-ipv6 + other doc fixes

4 years agoFix SQL highlighting in pgsql docs 10434/head
Pieter Lexis [Fri, 21 May 2021 13:36:54 +0000 (15:36 +0200)] 
Fix SQL highlighting in pgsql docs

4 years agoCorrectly update local-ipv6 deprecation info
Pieter Lexis [Fri, 21 May 2021 13:32:41 +0000 (15:32 +0200)] 
Correctly update local-ipv6 deprecation info

4 years agoMerge pull request #10376 from Habbie/auth-4.5.0-alpha1-docs
Peter van Dijk [Thu, 27 May 2021 08:39:18 +0000 (10:39 +0200)] 
Merge pull request #10376 from Habbie/auth-4.5.0-alpha1-docs

changelog and secpoll for auth-4.5.0-alpha1

4 years agoupdate release date; mention new zone cache feature 10376/head
Peter van Dijk [Thu, 27 May 2021 08:26:56 +0000 (10:26 +0200)] 
update release date; mention new zone cache feature

4 years agoMerge pull request #10398 from dmachard/doc-dnsdist-eol
Remi Gacogne [Wed, 26 May 2021 15:41:56 +0000 (17:41 +0200)] 
Merge pull request #10398 from dmachard/doc-dnsdist-eol

 dnsdist: docs new EOL page

4 years agoMerge pull request #10417 from omoerbeek/rec-docs-PolicyEvent.appliedPolicy
Otto Moerbeek [Wed, 26 May 2021 11:21:11 +0000 (13:21 +0200)] 
Merge pull request #10417 from omoerbeek/rec-docs-PolicyEvent.appliedPolicy

rec: Refer to the description in dq.appliedPolicy for PolicyEvent.appliedPolicy

4 years agoMerge pull request #10416 from omoerbeek/redundant-checks-updateCacheFromRecords
Otto Moerbeek [Wed, 26 May 2021 11:20:53 +0000 (13:20 +0200)] 
Merge pull request #10416 from omoerbeek/redundant-checks-updateCacheFromRecords

rec: Remove checks in updateCacheFromRecords that are already done by sanitizeRecords.

4 years agoMerge pull request #10396 from omoerbeek/rec-log-levels
Otto Moerbeek [Wed, 26 May 2021 11:20:27 +0000 (13:20 +0200)] 
Merge pull request #10396 from omoerbeek/rec-log-levels

Take into account g_quiet when determing loglevel and change a few loglevels

4 years agodoc formatting/parsing fixes
Peter van Dijk [Wed, 26 May 2021 11:00:03 +0000 (13:00 +0200)] 
doc formatting/parsing fixes

4 years agochangelog and secpoll for auth-4.5.0-alpha1
Peter van Dijk [Mon, 10 May 2021 09:50:59 +0000 (11:50 +0200)] 
changelog and secpoll for auth-4.5.0-alpha1

4 years agorec: Fix a typo in the prometheus "edns-ping-mismatches" metric 10445/head
Remi Gacogne [Wed, 26 May 2021 08:59:50 +0000 (10:59 +0200)] 
rec: Fix a typo in the prometheus "edns-ping-mismatches" metric

4 years agoMerge pull request #10440 from omoerbeek/rec-nsec3-iter-default
Otto Moerbeek [Wed, 26 May 2021 08:43:33 +0000 (10:43 +0200)] 
Merge pull request #10440 from omoerbeek/rec-nsec3-iter-default

rec: Change nsec3-max-iterations default to 150

4 years agoMerge pull request #10342 from pieterlexis/svcb-rename-echconfig
Peter van Dijk [Tue, 25 May 2021 19:25:56 +0000 (21:25 +0200)] 
Merge pull request #10342 from pieterlexis/svcb-rename-echconfig

SVCB: rename echconfig to ech and add test vectors from draft

4 years agoMerge pull request #10423 from rgacogne/ddist-tcp-max-connections-stats-race
Remi Gacogne [Tue, 25 May 2021 16:11:28 +0000 (18:11 +0200)] 
Merge pull request #10423 from rgacogne/ddist-tcp-max-connections-stats-race

dnsdist: Add a suppression for a race in TCP stats reported by TSAN

4 years agoMerge pull request #10439 from rgacogne/ddist-snmp-tsan-race
Remi Gacogne [Tue, 25 May 2021 16:11:02 +0000 (18:11 +0200)] 
Merge pull request #10439 from rgacogne/ddist-snmp-tsan-race

dnsdist: Fix a data race reported by TSAN in SNMP metrics

4 years agoChange nsec3-max-iterations default to 150 10440/head
Otto [Tue, 25 May 2021 14:17:40 +0000 (16:17 +0200)] 
Change nsec3-max-iterations default to 150

4 years agoMerge pull request #10433 from Habbie/rec-irrelevant-logging
Otto Moerbeek [Tue, 25 May 2021 13:55:21 +0000 (15:55 +0200)] 
Merge pull request #10433 from Habbie/rec-irrelevant-logging

rec: distinguish the various 'Removing irrelevant record' log lines

4 years agoMerge pull request #10326 from omoerbeek/docs-year
Otto Moerbeek [Tue, 25 May 2021 13:42:10 +0000 (15:42 +0200)] 
Merge pull request #10326 from omoerbeek/docs-year

docs: Determine copyright upper bound year by code

4 years agoMerge pull request #10304 from Habbie/auth-faq-protectsystem
Pieter Lexis [Tue, 25 May 2021 13:40:52 +0000 (15:40 +0200)] 
Merge pull request #10304 from Habbie/auth-faq-protectsystem

auth faq: document a ProtectSystem=full implication

4 years agodnsdist: Fix a data race reported by TSAN in SNMP metrics 10439/head
Remi Gacogne [Tue, 25 May 2021 13:37:59 +0000 (15:37 +0200)] 
dnsdist: Fix a data race reported by TSAN in SNMP metrics

Unless I'm mistaken, the report (below) is a false positive since
`std::atomic<T>::operator T` is equivalent to `load()` and
`std::atomic<T>::operator=` to `store()`, but perhaps I'm missing
something.
Note that I could not reproduce the issue using clang++ 11.1.0's
TSAN, only with the one from g++ 11.1.0.

```
==================
WARNING: ThreadSanitizer: data race (pid=11157)
  Atomic read of size 8 at 0x7b7400002580 by thread T2:
    #0 __tsan_atomic64_load <null> (dnsdist+0x7a6eb0)
    #1 std::atomic<double>::load(std::memory_order) const /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/atomic:250:2 (dnsdist+0x83c4da)
    #2 pdns::stat_t_trait<double>::operator double() const /opt/project/pdns/dnsdistdist/./stat_t.hh:67:60 (dnsdist+0xd05b2e)
    #3 backendStatTable_handler(netsnmp_mib_handler_s*, netsnmp_handler_registration_s*, netsnmp_agent_request_info_s*, netsnmp_request_info_s*) /opt/project/pdns/dnsdistdist/dnsdist-snmp.cc:356:54 (dnsdist+0xeceab8)
    #4 netsnmp_call_next_handler <null> (libnetsnmpagent.so.30+0x2a0cc)
    #5 SNMPAgent::handleSNMPQueryCB(int, boost::any&) /opt/project/pdns/dnsdistdist/snmp-agent.cc:96:13 (dnsdist+0xfb2417)
    #6 boost::detail::function::void_function_invoker2<void (*)(int, boost::any&), void, int, boost::any&>::invoke(boost::detail::function::function_buffer&, int, boost::any&) /usr/include/boost/function/function_template.hpp:118:11 (dnsdist+0x8956e8)
    #7 boost::function2<void, int, boost::any&>::operator()(int, boost::any&) const /usr/include/boost/function/function_template.hpp:768:14 (dnsdist+0xf9f13c)
    #8 EpollFDMultiplexer::run(timeval*, int) /opt/project/pdns/dnsdistdist/epollmplexer.cc:176:7 (dnsdist+0xfd1feb)
    #9 SNMPAgent::worker() /opt/project/pdns/dnsdistdist/snmp-agent.cc:141:24 (dnsdist+0xfb273f)
    #10 void std::__invoke_impl<void, void (SNMPAgent::*)(), SNMPAgent*>(std::__invoke_memfun_deref, void (SNMPAgent::*&&)(), SNMPAgent*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/invoke.h:73:14 (dnsdist+0xf36079)
    #11 std::__invoke_result<void (SNMPAgent::*)(), SNMPAgent*>::type std::__invoke<void (SNMPAgent::*)(), SNMPAgent*>(void (SNMPAgent::*&&)(), SNMPAgent*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/invoke.h:95:14 (dnsdist+0xf35f71)
    #12 decltype(std::__invoke(_S_declval<0ul>(), _S_declval<1ul>())) std::thread::_Invoker<std::tuple<void (SNMPAgent::*)(), SNMPAgent*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/thread:244:13 (dnsdist+0xf35f1e)
    #13 std::thread::_Invoker<std::tuple<void (SNMPAgent::*)(), SNMPAgent*> >::operator()() /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/thread:253:11 (dnsdist+0xf35ec5)
    #14 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (SNMPAgent::*)(), SNMPAgent*> > >::_M_run() /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/thread:196:13 (dnsdist+0xf35c29)
    #15 <null> <null> (libstdc++.so.6+0xbbb2e)

  Previous write of size 8 at 0x7b7400002580 by thread T18:
    [failed to restore the stack]

  Location is heap block of size 2304 at 0x7b7400001e00 allocated by main thread:
    #0 operator new(unsigned long, std::align_val_t) <null> (dnsdist+0x7e8c57)
    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<DownstreamState, std::allocator<DownstreamState>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/ext/new_allocator.h:108:31 (dnsdist+0xe6b4e2)
    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<DownstreamState, std::allocator<DownstreamState>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<DownstreamState, std::allocator<DownstreamState>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/alloc_traits.h:436:20 (dnsdist+0xe6b430)
    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<DownstreamState, std::allocator<DownstreamState>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<DownstreamState, std::allocator<DownstreamState>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<DownstreamState, std::allocator<DownstreamState>, (__gnu_cxx::_Lock_policy)2> >&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/allocated_ptr.h:97:21 (dnsdist+0xe6b1d0)
    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<DownstreamState, std::allocator<DownstreamState>, ComboAddress&, ComboAddress&, unsigned int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long&, bool>(DownstreamState*&, std::_Sp_alloc_shared_tag<std::allocator<DownstreamState> >, ComboAddress&, ComboAddress&, unsigned int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long&, bool&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/shared_ptr_base.h:675:19 (dnsdist+0xe6fb0a)
    #5 std::__shared_ptr<DownstreamState, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<DownstreamState>, ComboAddress&, ComboAddress&, unsigned int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long&, bool>(std::_Sp_alloc_shared_tag<std::allocator<DownstreamState> >, ComboAddress&, ComboAddress&, unsigned int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long&, bool&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/shared_ptr_base.h:1342:14 (dnsdist+0xe6fa7a)
    #6 std::shared_ptr<DownstreamState>::shared_ptr<std::allocator<DownstreamState>, ComboAddress&, ComboAddress&, unsigned int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long&, bool>(std::_Sp_alloc_shared_tag<std::allocator<DownstreamState> >, ComboAddress&, ComboAddress&, unsigned int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long&, bool&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/shared_ptr.h:359:4 (dnsdist+0xe6f99d)
    #7 std::shared_ptr<DownstreamState> std::allocate_shared<DownstreamState, std::allocator<DownstreamState>, ComboAddress&, ComboAddress&, unsigned int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long&, bool>(std::allocator<DownstreamState> const&, ComboAddress&, ComboAddress&, unsigned int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long&, bool&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/shared_ptr.h:705:14 (dnsdist+0xe6f8e0)
    #8 std::shared_ptr<DownstreamState> std::make_shared<DownstreamState, ComboAddress&, ComboAddress&, unsigned int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long&, bool>(ComboAddress&, ComboAddress&, unsigned int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long&, bool&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/shared_ptr.h:721:14 (dnsdist+0xe6a726)
    #9 setupLuaConfig(LuaContext&, bool, bool)::$_2::operator()(boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> > > > > >, boost::optional<int>) const /opt/project/pdns/dnsdistdist/dnsdist-lua.cc:356:11 (dnsdist+0xdf9166)
    #10 _ZN10LuaContext6BinderIRZL14setupLuaConfigRS_bbE3$_2RKN5boost7variantINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJSt13unordered_mapISB_NS5_IbJSB_St6vectorISt4pairIiSB_ESaISF_EESt8functionIFSt5tupleIJ7DNSNamettEERKSK_ttP9dnsheaderEEEEESt4hashISB_ESt8equal_toISB_ESaISE_IKSB_SS_EEEEEEEclIJRKNS4_8optionalIiEEEEEDTcldtdefpT8functiondtdefpT5paramspclsr3stdE7forwardIT_Efp_EEEDpOS1A_ /opt/project/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:1846:20 (dnsdist+0xdf89af)
    #11 _ZN10LuaContext6BinderIRNS0_IRZL14setupLuaConfigRS_bbE3$_2RKN5boost7variantINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJSt13unordered_mapISB_NS5_IbJSB_St6vectorISt4pairIiSB_ESaISF_EESt8functionIFSt5tupleIJ7DNSNamettEERKSK_ttP9dnsheaderEEEEESt4hashISB_ESt8equal_toISB_ESaISE_IKSB_SS_EEEEEEEERKNS4_8optionalIiEEEclIJEEEDTcldtdefpT8functiondtdefpT5paramspclsr3stdE7forwardIT_Efp_EEEDpOS1C_ /opt/project/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:1846:20 (dnsdist+0xdf8917)
    #12 std::shared_ptr<DownstreamState> LuaContext::readIntoFunction<std::shared_ptr<DownstreamState>, LuaContext::Binder<LuaContext::Binder<setupLuaConfig(LuaContext&, bool, bool)::$_2&, boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> > > > > > const&>&, boost::optional<int> const&>&>(lua_State*, LuaContext::tag<std::shared_ptr<DownstreamState> >, LuaContext::Binder<LuaContext::Binder<setupLuaConfig(LuaContext&, bool, bool)::$_2&, boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> > > > > > const&>&, boost::optional<int> const&>&, int) /opt/project/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:1766:16 (dnsdist+0xdf88be)
    #13 std::enable_if<IsOptional<boost::optional<int> >::value, std::shared_ptr<DownstreamState> >::type LuaContext::readIntoFunction<std::shared_ptr<DownstreamState>, LuaContext::Binder<setupLuaConfig(LuaContext&, bool, bool)::$_2&, boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> > > > > > const&>&, boost::optional<int> >(lua_State*, LuaContext::tag<std::shared_ptr<DownstreamState> >, LuaContext::Binder<setupLuaConfig(LuaContext&, bool, bool)::$_2&, boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> > > > > > const&>&, int, LuaContext::tag<boost::optional<int> >) /opt/project/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:1774:20 (dnsdist+0xdf8624)
    #14 std::enable_if<!(IsOptional<boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> > > > > > >::value), std::shared_ptr<DownstreamState> >::type LuaContext::readIntoFunction<std::shared_ptr<DownstreamState>, setupLuaConfig(LuaContext&, bool, bool)::$_2&, boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> > > > > >, boost::optional<int> >(lua_State*, LuaContext::tag<std::shared_ptr<DownstreamState> >, setupLuaConfig(LuaContext&, bool, bool)::$_2&, int, LuaContext::tag<boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> > > > > > >, LuaContext::tag<boost::optional<int> >) /opt/project/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:1796:16 (dnsdist+0xdf848d)
    #15 std::enable_if<(!(std::integral_constant<bool, false>::value)) && (!(std::is_void<bool>::value)), LuaContext::PushedObject>::type LuaContext::Pusher<std::shared_ptr<DownstreamState> (boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> > > > > >, boost::optional<int>), void>::callback2<setupLuaConfig(LuaContext&, bool, bool)::$_2&>(lua_State*, bool&&, int) /opt/project/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:2429:31 (dnsdist+0xdf83c2)
    #16 LuaContext::PushedObject LuaContext::Pusher<std::shared_ptr<DownstreamState> (boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> > > > > >, boost::optional<int>), void>::callback<setupLuaConfig(LuaContext&, bool, bool)::$_2>(lua_State*, setupLuaConfig(LuaContext&, bool, bool)::$_2*, int) /opt/project/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:2398:20 (dnsdist+0xdf8169)
    #17 std::enable_if<boost::has_trivial_destructor<setupLuaConfig(LuaContext&, bool, bool)::$_2>::value, LuaContext::PushedObject>::type LuaContext::Pusher<std::shared_ptr<DownstreamState> (boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> > > > > >, boost::optional<int>), void>::push<setupLuaConfig(LuaContext&, bool, bool)::$_2>(lua_State*, setupLuaConfig(LuaContext&, bool, bool)::$_2)::'lambda'(lua_State*)::operator()(lua_State*) const /opt/project/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:2327:20 (dnsdist+0xdf80c9)
    #18 std::enable_if<boost::has_trivial_destructor<setupLuaConfig(LuaContext&, bool, bool)::$_2>::value, LuaContext::PushedObject>::type LuaContext::Pusher<std::shared_ptr<DownstreamState> (boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> > > > > >, boost::optional<int>), void>::push<setupLuaConfig(LuaContext&, bool, bool)::$_2>(lua_State*, setupLuaConfig(LuaContext&, bool, bool)::$_2)::'lambda'(lua_State*)::__invoke(lua_State*) /opt/project/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:2323:31 (dnsdist+0xdf8055)
    #19 _init <null> (libluajit-5.1.so.2+0x9dd6)
    #20 std::tuple<> LuaContext::call<std::tuple<> >(lua_State*, LuaContext::PushedObject) /opt/project/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:1413:29 (dnsdist+0xc9ae67)
    #21 LuaContext::executeCode(std::istream&) /opt/project/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:267:9 (dnsdist+0xe6077a)
    #22 setupLua(LuaContext&, bool, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /opt/project/pdns/dnsdistdist/dnsdist-lua.cc:2599:10 (dnsdist+0xdf4ff3)
    #23 main /opt/project/pdns/dnsdistdist/dnsdist.cc:2235:17 (dnsdist+0xf282ea)

  Thread T2 'dnsdist/SNMP' (tid=11160, running) created by main thread at:
    #0 pthread_create <null> (dnsdist+0x75f2d5)
    #1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xbbdb4)
    #2 SNMPAgent::run() /opt/project/pdns/dnsdistdist/./snmp-agent.hh:36:14 (dnsdist+0xf3087c)
    #3 main /opt/project/pdns/dnsdistdist/dnsdist.cc:2373:20 (dnsdist+0xf28f32)

  Thread T18 'dnsdist/healthC' (tid=11176, running) created by main thread at:
    #0 pthread_create <null> (dnsdist+0x75f2d5)
    #1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xbbdb4)
    #2 main /opt/project/pdns/dnsdistdist/dnsdist.cc:2463:12 (dnsdist+0xf29769)

SUMMARY: ThreadSanitizer: data race (/opt/dnsdist-with-tsan/bin/dnsdist+0x7a6eb0) in __tsan_atomic64_load
```

4 years agoMerge pull request #10432 from mind04/pdns-zonecache auth-4.5.0-alpha1
Peter van Dijk [Tue, 25 May 2021 10:05:31 +0000 (12:05 +0200)] 
Merge pull request #10432 from mind04/pdns-zonecache

auth: zone-cache improvements

4 years agoMerge pull request #10430 from mind04/pdns-wording
Peter van Dijk [Fri, 21 May 2021 17:00:46 +0000 (19:00 +0200)] 
Merge pull request #10430 from mind04/pdns-wording

auth: use primary and secondary for pdnsutil and pdns_control commands

4 years agorec: distinguish the various 'Removing irrelevant record' log lines 10433/head
Peter van Dijk [Fri, 21 May 2021 13:45:54 +0000 (15:45 +0200)] 
rec: distinguish the various 'Removing irrelevant record' log lines

4 years agoauth: replace or insert newly created zones in the zone cache 10432/head
Kees Monshouwer [Thu, 20 May 2021 14:17:13 +0000 (16:17 +0200)] 
auth: replace or insert newly created zones in the zone cache

4 years agoauth: add new autosecondary domains to the zone cache
Kees Monshouwer [Thu, 20 May 2021 13:17:40 +0000 (15:17 +0200)] 
auth: add new autosecondary domains to the zone cache

4 years agoauth: update pdnsutil help message 10430/head
Kees Monshouwer [Wed, 19 May 2021 19:04:52 +0000 (21:04 +0200)] 
auth: update pdnsutil help message

4 years agoauth: use primary/seconday in pddns_control and s/zone/domain
Kees Monshouwer [Tue, 18 May 2021 19:19:13 +0000 (21:19 +0200)] 
auth: use primary/seconday in pddns_control and s/zone/domain

4 years agoauth: use primary/seconday in pdnsutil
Kees Monshouwer [Tue, 18 May 2021 19:02:49 +0000 (21:02 +0200)] 
auth: use primary/seconday in pdnsutil

4 years agoMerge pull request #10399 from mind04/pdns-recheck
Peter van Dijk [Thu, 20 May 2021 12:35:09 +0000 (14:35 +0200)] 
Merge pull request #10399 from mind04/pdns-recheck

auth: make sure we recheck failed SOA lookups for notifies

4 years agoMerge pull request #10429 from rgacogne/loop-warnings
Remi Gacogne [Thu, 20 May 2021 05:15:56 +0000 (07:15 +0200)] 
Merge pull request #10429 from rgacogne/loop-warnings

Fix 'temporary used in loop' warnings reported by g++ 11.1.0

4 years agoMerge branch 'PowerDNS:master' into doc-dnsdist-eol 10398/head
Denis MACHARD [Wed, 19 May 2021 18:07:01 +0000 (20:07 +0200)] 
Merge branch 'PowerDNS:master' into doc-dnsdist-eol

4 years agoauth: Fix a 'temporary used in loop' warning reported by g++ 11.1.0 10429/head
Remi Gacogne [Wed, 19 May 2021 17:44:12 +0000 (19:44 +0200)] 
auth: Fix a 'temporary used in loop' warning reported by g++ 11.1.0

```
common_startup.cc: In function ‘void mainthread()’:
common_startup.cc:617:24: warning: loop variable ‘algotype’ of type ‘const string&’ {aka ‘const std::__cxx11::basic_string<char>&’} binds to a temporary constructed from type ‘const char* const’ [-Wrange-loop-construct]
  617 |     for (const string& algotype : {"ksk", "zsk"}) {
      |                        ^~~~~~~~
common_startup.cc:617:24: note: use non-reference type ‘const string’ {aka ‘const std::__cxx11::basic_string<char>’} to make the copy explicit or ‘const char* const&’ to prevent copying
```

4 years agotest-dnsname_cc.cc: Fix a 'temporary used in loop' warning reported by g++ 11.1.0
Remi Gacogne [Wed, 19 May 2021 17:23:24 +0000 (19:23 +0200)] 
test-dnsname_cc.cc: Fix a 'temporary used in loop' warning reported by g++ 11.1.0

```
test-dnsname_cc.cc: In member function ‘void test_dnsname_cc::test_compare_canonical::test_method()’:
test-dnsname_cc.cc:684:26: warning: loop variable ‘b’ of type ‘const string&’ {aka ‘const std::__cxx11::basic_string<char>&’} binds to a temporary constructed from type ‘const char* const’ [-Wrange-loop-construct]
  684 |   for(const std::string& b : {"bert.com.", "alpha.nl.", "articles.xxx.",
      |                          ^
test-dnsname_cc.cc:684:26: note: use non-reference type ‘const string’ {aka ‘const std::__cxx11::basic_string<char>’} to make the copy explicit or ‘const char* const&’ to prevent copying
```

4 years agoMerge pull request #10421 from mind04/pdns-list-zones
Peter van Dijk [Wed, 19 May 2021 16:38:35 +0000 (18:38 +0200)] 
Merge pull request #10421 from mind04/pdns-list-zones

auth: add an option to in/exclude disabled zones in the pdnsutil list-all-zone and list-keys output.

4 years agoMerge pull request #10260 from mind04/pdns-nsec3param
Peter van Dijk [Wed, 19 May 2021 15:59:51 +0000 (17:59 +0200)] 
Merge pull request #10260 from mind04/pdns-nsec3param

auth: lower max-nsec3-iterations to 100

4 years agoauth: pdnsutil, use cmds.at() 10421/head
Kees Monshouwer [Wed, 19 May 2021 15:02:25 +0000 (17:02 +0200)] 
auth: pdnsutil, use cmds.at()

4 years agoauth: optionally include disabled or empty zones in the pdnsutil list-all-zone and...
Kees Monshouwer [Thu, 4 Mar 2021 15:27:53 +0000 (16:27 +0100)] 
auth: optionally include disabled or empty zones in the pdnsutil list-all-zone and list-keys output

4 years agoauth: lower max-nsec3-iterations to 100 10260/head
Kees Monshouwer [Thu, 1 Apr 2021 18:03:28 +0000 (20:03 +0200)] 
auth: lower max-nsec3-iterations to 100

4 years agoMerge pull request #10424 from mind04/pdns-domain2zone
Peter van Dijk [Wed, 19 May 2021 14:06:29 +0000 (16:06 +0200)] 
Merge pull request #10424 from mind04/pdns-domain2zone

auth: replace domain-metadata-cache-ttl by zone-metadata-cache-ttl

4 years agoauth: change domain to zone round 1 10424/head
Kees Monshouwer [Tue, 18 May 2021 16:55:44 +0000 (18:55 +0200)] 
auth: change domain to zone round 1

4 years agoauth: replace domain-metadata-cache-ttl by zone-metadata-cache-ttl
Kees Monshouwer [Tue, 18 May 2021 16:44:20 +0000 (18:44 +0200)] 
auth: replace domain-metadata-cache-ttl by zone-metadata-cache-ttl

4 years agoMerge pull request #9464 from zeha/zonecache
Peter van Dijk [Wed, 19 May 2021 10:52:54 +0000 (12:52 +0200)] 
Merge pull request #9464 from zeha/zonecache

auth: cache list of all domains

4 years agotest zone-cache in gsqlite3 master and slave, with low TTL for more intensive testing 9464/head
Peter van Dijk [Wed, 19 May 2021 09:15:21 +0000 (11:15 +0200)] 
test zone-cache in gsqlite3 master and slave, with low TTL for more intensive testing

4 years agoMerge pull request #10349 from omoerbeek/rec-tcpiohandler
Otto Moerbeek [Wed, 19 May 2021 08:35:53 +0000 (10:35 +0200)] 
Merge pull request #10349 from omoerbeek/rec-tcpiohandler

rec: move to tcpiohandler for outgoing TCP

4 years agoMerge pull request #10420 from omoerbeek/rec-nod-no-qm
Otto Moerbeek [Wed, 19 May 2021 08:34:49 +0000 (10:34 +0200)] 
Merge pull request #10420 from omoerbeek/rec-nod-no-qm

rec: For the NOD lookup case, we don't want QName Minimization.

4 years agoMerge pull request #10381 from rgacogne/ddist-better-padding
Remi Gacogne [Wed, 19 May 2021 07:21:31 +0000 (09:21 +0200)] 
Merge pull request #10381 from rgacogne/ddist-better-padding

dnsdist: Reorganize the IDState and Rings fields

4 years agoRename domaincache to zonecache, also ttl to refreshinterval
Chris Hofstaedtler [Tue, 18 May 2021 19:18:56 +0000 (21:18 +0200)] 
Rename domaincache to zonecache, also ttl to refreshinterval

4 years agoMerge pull request #10282 from omoerbeek/qtype-tostring dnsdist-1.7.0-alpha0
Otto Moerbeek [Tue, 18 May 2021 16:57:15 +0000 (18:57 +0200)] 
Merge pull request #10282 from omoerbeek/qtype-tostring

Rename QType.getName() to QType.toString()

4 years agoRename QType.getName() to QType.toString() 10282/head
Otto [Fri, 9 Apr 2021 12:46:26 +0000 (14:46 +0200)] 
Rename QType.getName() to QType.toString()

4 years agoMerge pull request #10401 from mind04/consistent
Peter van Dijk [Tue, 18 May 2021 15:41:04 +0000 (17:41 +0200)] 
Merge pull request #10401 from mind04/consistent

auth: change the consistent-backends default to 'yes'

4 years agodnsdist: Add a suppression for a race in TCP stats reported by TSAN 10423/head
Remi Gacogne [Tue, 18 May 2021 15:30:36 +0000 (17:30 +0200)] 
dnsdist: Add a suppression for a race in TCP stats reported by TSAN

We might indeed be off by a few connections in the "maximum connections
seen" counter, but we don't care that much.

4 years agoFor the NOD lookup case, we don't want QName Minimization. 10420/head
Otto [Tue, 18 May 2021 13:40:44 +0000 (15:40 +0200)] 
For the NOD lookup case, we don't want QName Minimization.

4 years agodnsdist: Properly handle ECS for queries with ancount or nscount > 0 10419/head
Remi Gacogne [Mon, 17 May 2021 13:39:46 +0000 (15:39 +0200)] 
dnsdist: Properly handle ECS for queries with ancount or nscount > 0

4 years agoueberbackend: include disabled domains in cache
Chris Hofstaedtler [Tue, 18 May 2021 12:11:59 +0000 (14:11 +0200)] 
ueberbackend: include disabled domains in cache

4 years agoAdd (domain-)cache-ttl to gsqlite3-master CI
Chris Hofstaedtler [Tue, 18 May 2021 12:10:38 +0000 (14:10 +0200)] 
Add (domain-)cache-ttl to gsqlite3-master CI

4 years agoauth: change the consistent-backends default to 'yes' 10401/head
Kees Monshouwer [Wed, 12 May 2021 23:18:41 +0000 (01:18 +0200)] 
auth: change the consistent-backends default to 'yes'

4 years agoTreat vanished domains like they were never in the cache
Chris Hofstaedtler [Tue, 18 May 2021 07:56:21 +0000 (09:56 +0200)] 
Treat vanished domains like they were never in the cache

4 years agoRefer to the description in dq.appliedPolicy for PolicyEvent.appliedPolicy. 10417/head
Otto [Mon, 17 May 2021 14:45:31 +0000 (16:45 +0200)] 
Refer to the description in dq.appliedPolicy for PolicyEvent.appliedPolicy.

Improving consistency.

4 years agoRemove checks in updateCacheFromRecords that are already done by santizeRecords. 10416/head
Otto [Mon, 17 May 2021 13:35:05 +0000 (15:35 +0200)] 
Remove checks in updateCacheFromRecords that are already done by santizeRecords.

Fixes #10415 (at least the most obvious cases).

4 years agoMerge branch 'PowerDNS:master' into doc-dnsdist-eol
Denis MACHARD [Mon, 17 May 2021 12:45:25 +0000 (14:45 +0200)] 
Merge branch 'PowerDNS:master' into doc-dnsdist-eol

4 years agoCreate eol.rst
Alex1234 [Mon, 17 May 2021 11:08:08 +0000 (13:08 +0200)] 
Create eol.rst

Changed Aril -> May 2021, and added november 2021 as the 1.5 date

4 years agoMerge pull request #10400 from mind04/headers
Peter van Dijk [Mon, 17 May 2021 09:56:56 +0000 (11:56 +0200)] 
Merge pull request #10400 from mind04/headers

add missing includes (Fedora 34, gcc 11.1 / clang 12)

4 years agogetAuth: abort if backend returned wrong SOA for cached domain
Chris Hofstaedtler [Sat, 15 May 2021 22:10:59 +0000 (00:10 +0200)] 
getAuth: abort if backend returned wrong SOA for cached domain

4 years agogetAuth: avoid throwing when no SOA is returned for cached domain
Chris Hofstaedtler [Sat, 15 May 2021 22:10:42 +0000 (00:10 +0200)] 
getAuth: avoid throwing when no SOA is returned for cached domain

4 years agoauth-domaincache: use info-zone-query for inserted zone id
Chris Hofstaedtler [Mon, 10 May 2021 08:28:35 +0000 (10:28 +0200)] 
auth-domaincache: use info-zone-query for inserted zone id

Also apply "RETURNING id" optimization for postgresql.

4 years agolmdbbackend/createDomain: reuse RW transaction
Chris Hofstaedtler [Mon, 10 May 2021 15:29:42 +0000 (17:29 +0200)] 
lmdbbackend/createDomain: reuse RW transaction

4 years agoauth-domaincache: apply suggested comment improvement
Chris Hofstaedtler [Wed, 12 May 2021 09:37:28 +0000 (11:37 +0200)] 
auth-domaincache: apply suggested comment improvement

4 years agoApply clang-format
Chris Hofstaedtler [Mon, 10 May 2021 08:31:12 +0000 (10:31 +0200)] 
Apply clang-format

4 years agoauth-domaincache: add "new" headers
Chris Hofstaedtler [Mon, 10 May 2021 08:27:55 +0000 (10:27 +0200)] 
auth-domaincache: add "new" headers

4 years agosetReplacePending: avoid lock
Chris Hofstaedtler [Mon, 10 May 2021 08:16:10 +0000 (10:16 +0200)] 
setReplacePending: avoid lock

4 years agotest-auth-domaincache_cc: check zoneId value explicitly
Chris Hofstaedtler [Mon, 10 May 2021 08:15:33 +0000 (10:15 +0200)] 
test-auth-domaincache_cc: check zoneId value explicitly

4 years agoTidy up style nits
Chris Hofstaedtler [Mon, 10 May 2021 08:12:59 +0000 (10:12 +0200)] 
Tidy up style nits

4 years agodomaincache: preserve domains added while replace data collection was running
Chris Hofstaedtler [Mon, 29 Mar 2021 13:49:39 +0000 (15:49 +0200)] 
domaincache: preserve domains added while replace data collection was running

4 years agoReformat
Chris Hofstaedtler [Mon, 15 Mar 2021 09:05:27 +0000 (10:05 +0100)] 
Reformat

4 years agoRemove unused d_ops
Chris Hofstaedtler [Sun, 14 Mar 2021 21:57:23 +0000 (22:57 +0100)] 
Remove unused d_ops

4 years agoAdd separate auth domain cache test
Chris Hofstaedtler [Mon, 8 Feb 2021 12:51:04 +0000 (13:51 +0100)] 
Add separate auth domain cache test

4 years agoAuthDomainCache: init d_ttl
Chris Hofstaedtler [Mon, 8 Feb 2021 12:34:09 +0000 (13:34 +0100)] 
AuthDomainCache: init d_ttl

4 years agoAuthDomainCache: use std::move
Chris Hofstaedtler [Mon, 8 Feb 2021 12:33:58 +0000 (13:33 +0100)] 
AuthDomainCache: use std::move

4 years agoMove extern AuthDomainCache into auth-domaincache.hh
Chris Hofstaedtler [Mon, 8 Feb 2021 12:33:47 +0000 (13:33 +0100)] 
Move extern AuthDomainCache into auth-domaincache.hh