]> git.ipfire.org Git - thirdparty/pdns.git/log
thirdparty/pdns.git
2 years agoauth: do not answer with broken TYPE0 data when expanding an ENT wildcard 12860/head
Peter van Dijk [Sun, 28 May 2023 21:05:35 +0000 (23:05 +0200)] 
auth: do not answer with broken TYPE0 data when expanding an ENT wildcard

2 years agoMerge pull request #12863 from omoerbeek/rec-val-log-typo
Otto Moerbeek [Tue, 30 May 2023 13:04:16 +0000 (15:04 +0200)] 
Merge pull request #12863 from omoerbeek/rec-val-log-typo

rec: fix typo in trace message

2 years agoMerge pull request #12838 from omoerbeek/delint-rec-tcp
Otto Moerbeek [Tue, 30 May 2023 13:03:58 +0000 (15:03 +0200)] 
Merge pull request #12838 from omoerbeek/delint-rec-tcp

Delint rec-tcp.cc

2 years agoMerge pull request #12837 from omoerbeek/nolint-validate
Otto Moerbeek [Tue, 30 May 2023 13:03:35 +0000 (15:03 +0200)] 
Merge pull request #12837 from omoerbeek/nolint-validate

Delint validate.cc and related files

2 years agoMerge pull request #12836 from omoerbeek/rec-main-delint-followup
Otto Moerbeek [Tue, 30 May 2023 13:03:06 +0000 (15:03 +0200)] 
Merge pull request #12836 from omoerbeek/rec-main-delint-followup

rec: Full delint rec-main.cc

2 years agorec: fix typo in trace message 12863/head
Otto Moerbeek [Tue, 30 May 2023 08:31:32 +0000 (10:31 +0200)] 
rec: fix typo in trace message

2 years agoMerge pull request #12726 from rgacogne/ddist-wait-reconnect
Remi Gacogne [Thu, 18 May 2023 11:30:26 +0000 (13:30 +0200)] 
Merge pull request #12726 from rgacogne/ddist-wait-reconnect

dnsdist: Properly handle reconnection failure for backend UDP sockets

2 years agoMerge pull request #12819 from rgacogne/ddist-reuseaddr-udp
Remi Gacogne [Thu, 18 May 2023 11:29:47 +0000 (13:29 +0200)] 
Merge pull request #12819 from rgacogne/ddist-reuseaddr-udp

dnsdist: Stop setting SO_REUSEADDR on outgoing UDP client sockets

2 years agoTweaks 12838/head
Otto Moerbeek [Wed, 17 May 2023 12:16:05 +0000 (14:16 +0200)] 
Tweaks

2 years agoReformat
Otto Moerbeek [Wed, 17 May 2023 12:06:17 +0000 (14:06 +0200)] 
Reformat

2 years agoDelint rec-tcp.cc
Otto Moerbeek [Wed, 17 May 2023 10:54:01 +0000 (12:54 +0200)] 
Delint rec-tcp.cc

2 years agoDelint validate.cc and related files 12837/head
Otto Moerbeek [Wed, 17 May 2023 10:22:18 +0000 (12:22 +0200)] 
Delint validate.cc and related files

2 years agoMerge pull request #12835 from romeroalx/fix-clang-misc
romeroalx [Wed, 17 May 2023 09:41:46 +0000 (11:41 +0200)] 
Merge pull request #12835 from romeroalx/fix-clang-misc

GH actions - misc-dailies.yaml: set clang version for Ubuntu-20

2 years agoFull delint rec-main.cc 12836/head
Otto Moerbeek [Wed, 17 May 2023 08:44:44 +0000 (10:44 +0200)] 
Full delint rec-main.cc

2 years agoMerge pull request #12834 from jpmens/patch-14
Peter van Dijk [Wed, 17 May 2023 08:50:15 +0000 (10:50 +0200)] 
Merge pull request #12834 from jpmens/patch-14

Be more specific in describing config-dir

2 years agoGH actions - misc-dailies: Set clang version for Ubuntu-20 12835/head
Alexis Romero [Wed, 17 May 2023 08:28:29 +0000 (10:28 +0200)] 
GH actions - misc-dailies: Set clang version for Ubuntu-20

2 years agoMerge pull request #12833 from romeroalx/fix-cifuzz-apt-repo
Peter van Dijk [Tue, 16 May 2023 18:10:44 +0000 (20:10 +0200)] 
Merge pull request #12833 from romeroalx/fix-cifuzz-apt-repo

Changing apt mirror for cifuzz base-builder image

2 years agoMerge pull request #12810 from romeroalx/actions-debian-container
Peter van Dijk [Tue, 16 May 2023 18:10:33 +0000 (20:10 +0200)] 
Merge pull request #12810 from romeroalx/actions-debian-container

Run build-and-test-all.yml on a custom Debian 11 container instead of an Ubuntu Runner VM

2 years agoBe more specific in describing config-dir 12834/head
Jan-Piet Mens [Tue, 16 May 2023 18:07:10 +0000 (20:07 +0200)] 
Be more specific in describing config-dir

I think this more clearly describes the option

2 years agoset apt mirror for cifuzz base builder image 12833/head
Alexis Romero [Tue, 16 May 2023 16:59:06 +0000 (18:59 +0200)] 
set apt mirror for cifuzz base builder image

2 years agoRun build-and-test-all.yml on a custom debian container 12810/head
Alexis Romero [Fri, 12 May 2023 09:30:50 +0000 (11:30 +0200)] 
Run build-and-test-all.yml on a custom debian container

2 years agoMerge pull request #12829 from omoerbeek/fix-log-fail
Otto Moerbeek [Tue, 16 May 2023 10:28:47 +0000 (12:28 +0200)] 
Merge pull request #12829 from omoerbeek/fix-log-fail

rec: fix clang-tidy botch wrt spelling of "log-fail"

2 years agoMerge pull request #12830 from omoerbeek/secpoll-ubuntu-mirror
Otto Moerbeek [Tue, 16 May 2023 10:22:12 +0000 (12:22 +0200)] 
Merge pull request #12830 from omoerbeek/secpoll-ubuntu-mirror

secpoll check: use preferred ubuntu mirror

2 years agosecpoll check: use preferred ubuntu mirror 12830/head
Otto Moerbeek [Tue, 16 May 2023 07:33:28 +0000 (09:33 +0200)] 
secpoll check: use preferred ubuntu mirror

2 years agoMerge pull request #12831 from Habbie/apt-no-qq
romeroalx [Tue, 16 May 2023 09:18:13 +0000 (11:18 +0200)] 
Merge pull request #12831 from Habbie/apt-no-qq

Fix error retrieving firefox package from ubuntu repo by removing it.

2 years agoget rid of firefox 12831/head
Peter van Dijk [Tue, 16 May 2023 07:38:36 +0000 (09:38 +0200)] 
get rid of firefox

2 years agomore apt no -qq
Peter van Dijk [Tue, 16 May 2023 07:30:54 +0000 (09:30 +0200)] 
more apt no -qq

2 years agoapt no qq
Peter van Dijk [Tue, 16 May 2023 07:18:00 +0000 (09:18 +0200)] 
apt no qq

2 years agoMerge pull request #12825 from omoerbeek/rec-fix-simpledottest
Otto Moerbeek [Tue, 16 May 2023 06:39:07 +0000 (08:39 +0200)] 
Merge pull request #12825 from omoerbeek/rec-fix-simpledottest

rec: Fix DoT test to no use www.powerdns.com, as it changed

2 years agorec: fix clang-tidy botch wrt spelling of "log-fail" 12829/head
Otto Moerbeek [Tue, 16 May 2023 06:23:51 +0000 (08:23 +0200)] 
rec: fix clang-tidy botch wrt spelling of "log-fail"

Followup to #12790

2 years agoFix DoT test to no use www.powerdns.com, as it changed 12825/head
Otto Moerbeek [Mon, 15 May 2023 13:09:04 +0000 (15:09 +0200)] 
Fix DoT test to no use www.powerdns.com, as it changed

2 years agodnsdist: Really disable REUSEADDR on outgoing UDP client sockets 12819/head
Remi Gacogne [Mon, 15 May 2023 13:32:27 +0000 (15:32 +0200)] 
dnsdist: Really disable REUSEADDR on outgoing UDP client sockets

It turns out that our `Socket::bind()` will _helpfully_ enable this
by default.

2 years agoMerge pull request #12779 from omoerbeek/rec-cname-length-vs-depth
Otto Moerbeek [Mon, 15 May 2023 13:28:38 +0000 (15:28 +0200)] 
Merge pull request #12779 from omoerbeek/rec-cname-length-vs-depth

rec: Distinguish between recursion depth and cname length

2 years agoMerge pull request #12818 from rgacogne/cang-tidy-inc-cognitive-complexity
Remi Gacogne [Mon, 15 May 2023 12:23:30 +0000 (14:23 +0200)] 
Merge pull request #12818 from rgacogne/cang-tidy-inc-cognitive-complexity

clang-tidy: Increase the cognitive complexity threshold to 75

2 years agodnsdist: Stop setting SO_REUSEADDR on outgoing UDP client sockets
Remi Gacogne [Mon, 15 May 2023 12:10:55 +0000 (14:10 +0200)] 
dnsdist: Stop setting SO_REUSEADDR on outgoing UDP client sockets

`SO_REUSEADDR` is useful on TCP server sockets to allow binding quickly
after restarting the process without waiting `TIME_WAIT` seconds, or
to allow some port reuse on BSD. It also allows reusing a port more
quickly for TCP client sockets.
For UDP sockets, however, Linux allows two sockets to be bound to the
same address and port, and will distribute all packets to the most
recent socket, which is very unexpected, to say the least.

2 years ago-cppcoreguidelines-avoid-non-const-global-variables 12779/head
Otto Moerbeek [Mon, 15 May 2023 11:40:06 +0000 (13:40 +0200)] 
-cppcoreguidelines-avoid-non-const-global-variables

2 years agoNOLINT(readability-function-cognitive-complexity) markers
Otto Moerbeek [Mon, 15 May 2023 11:38:10 +0000 (13:38 +0200)] 
NOLINT(readability-function-cognitive-complexity) markers

2 years agoAs an experiment, just fix the two reported cases of performance-unnecessary-value...
Otto Moerbeek [Mon, 15 May 2023 11:23:55 +0000 (13:23 +0200)] 
As an experiment, just fix the two reported cases of performance-unnecessary-value-param

2 years agorec: Distinguish between recursion depth and cname length, they are not the same
Otto Moerbeek [Fri, 14 Apr 2023 08:43:23 +0000 (10:43 +0200)] 
rec: Distinguish between recursion depth and cname length, they are not the same

2 years agoMerge pull request #12790 from omoerbeek/rec-lint
Otto Moerbeek [Mon, 15 May 2023 11:34:10 +0000 (13:34 +0200)] 
Merge pull request #12790 from omoerbeek/rec-lint

rec: delint rec-main.cc wrt high complexity

2 years agoMerge pull request #12750 from omoerbeek/rec-log-variable
Otto Moerbeek [Mon, 15 May 2023 11:24:16 +0000 (13:24 +0200)] 
Merge pull request #12750 from omoerbeek/rec-log-variable

rec: Log if the answer was marked variable by SyncRes and if it was stored into  the packet cache (if !quiet)

2 years agoAlso log in the non-structured logging case 12750/head
Otto Moerbeek [Mon, 15 May 2023 09:49:17 +0000 (11:49 +0200)] 
Also log in the non-structured logging case

2 years agoProcess review comments 12790/head
Otto Moerbeek [Mon, 15 May 2023 10:00:58 +0000 (12:00 +0200)] 
Process review comments

2 years agoclang-tidy: Increase the cognitive complexity threshold to 75 12818/head
Remi Gacogne [Mon, 15 May 2023 08:57:53 +0000 (10:57 +0200)] 
clang-tidy: Increase the cognitive complexity threshold to 75

The current level of 50 is too low for a function like
'handleQueuedHealthChecks' which is quite simple.

2 years agoMerge pull request #12780 from zeha/workaround11804
Peter van Dijk [Mon, 15 May 2023 08:56:51 +0000 (10:56 +0200)] 
Merge pull request #12780 from zeha/workaround11804

auth: add setting workaround-11804-max-chunk-records

2 years agoMerge pull request #12813 from rgacogne/ci-disable-clang-tidy-non-const-global-vars
Remi Gacogne [Mon, 15 May 2023 08:56:25 +0000 (10:56 +0200)] 
Merge pull request #12813 from rgacogne/ci-disable-clang-tidy-non-const-global-vars

clang-tidy: Disable cppcoreguidelines-avoid-non-const-global-variables

2 years agoApply changes for doc nits 12780/head
Chris Hofstaedtler [Fri, 12 May 2023 20:37:13 +0000 (22:37 +0200)] 
Apply changes for doc nits

2 years agoclang-tidy: Disable cppcoreguidelines-avoid-non-const-global-variables 12813/head
Remi Gacogne [Fri, 12 May 2023 15:57:02 +0000 (17:57 +0200)] 
clang-tidy: Disable cppcoreguidelines-avoid-non-const-global-variables

While I agree that we should try to avoid non-const global vars
as much as possible, this rule kills the boost testing framework
so we cannot keep it.

2 years agodnsdist: Add a TSAN suppression for the backend re-connection code 12726/head
Remi Gacogne [Wed, 3 May 2023 15:55:34 +0000 (17:55 +0200)] 
dnsdist: Add a TSAN suppression for the backend re-connection code

2 years agodnsdist: check that the UDP responder thread is running after reconnecting
Remi Gacogne [Wed, 3 May 2023 14:37:36 +0000 (16:37 +0200)] 
dnsdist: check that the UDP responder thread is running after reconnecting

2 years agodnsdist: Only log failed backend connection attempt at info on first try
Remi Gacogne [Wed, 3 May 2023 14:36:29 +0000 (16:36 +0200)] 
dnsdist: Only log failed backend connection attempt at info on first try

2 years agodnsdist: Properly handle reconnection failure for backend UDP sockets
Remi Gacogne [Wed, 5 Apr 2023 20:17:23 +0000 (22:17 +0200)] 
dnsdist: Properly handle reconnection failure for backend UDP sockets

We try to reconnect our UDP sockets toward backends on some kind of
network errors that indicate a topology change, but we need to be
careful to handle the case where we actually fail to reconnect, as
we end up with no remaining sockets to use.
This commit properly deals with this case by pausing the thread handling
UDP responses from the backend, instead of having it enter a busy loop,
and by attempting to reconnect if we get a `bad file number` error when
trying to send a UDP datagram to the backend.

2 years agoMerge pull request #12812 from rgacogne/ci-clang-tidy-disable-union-warning
Remi Gacogne [Fri, 12 May 2023 14:35:07 +0000 (16:35 +0200)] 
Merge pull request #12812 from rgacogne/ci-clang-tidy-disable-union-warning

clang-tidy: Disable cppcoreguidelines-special-member-functions

2 years agoMerge pull request #12712 from Habbie/move-keyblock
Peter van Dijk [Fri, 12 May 2023 13:35:56 +0000 (15:35 +0200)] 
Merge pull request #12712 from Habbie/move-keyblock

docs: update GPG keyblock link

2 years agoclang-tidy: Disable cppcoreguidelines-special-member-functions 12812/head
Remi Gacogne [Fri, 12 May 2023 13:29:37 +0000 (15:29 +0200)] 
clang-tidy: Disable cppcoreguidelines-special-member-functions

We will need to re-enable it once https://github.com/PowerDNS/pdns/issues/12809
has been fixed.

2 years agoMerge pull request #12806 from christofchen/12801-SpoofAction
Remi Gacogne [Fri, 12 May 2023 09:10:51 +0000 (11:10 +0200)] 
Merge pull request #12806 from christofchen/12801-SpoofAction

SpoofAction: copy the QClass from the request, fixes #12801 + regression test

2 years agoauth: add setting workaround-11804
Chris Hofstaedtler [Wed, 26 Apr 2023 13:52:25 +0000 (15:52 +0200)] 
auth: add setting workaround-11804

Workaround for https://github.com/PowerDNS/pdns/issues/11804. Defaults to no,
implying the previously hard-coded value of 100.

2 years agofix #12801 + regression test 12806/head
Christof Chen [Thu, 11 May 2023 18:00:01 +0000 (20:00 +0200)] 
fix #12801 + regression test

2 years agoMerge pull request #12628 from kpfleming/debian-source-artifacts
Peter van Dijk [Thu, 11 May 2023 12:30:08 +0000 (14:30 +0200)] 
Merge pull request #12628 from kpfleming/debian-source-artifacts

builder-support: Prepare to make Debian-style source artifacts

2 years agoMerge pull request #12800 from rgacogne/ddist-health-wrong-id-wrong-message
Remi Gacogne [Thu, 11 May 2023 12:00:06 +0000 (14:00 +0200)] 
Merge pull request #12800 from rgacogne/ddist-health-wrong-id-wrong-message

dnsdist: Print the received, invalid health-check response ID

2 years agoMerge pull request #12799 from rgacogne/ddist-race-backend-health-check-mode
Remi Gacogne [Thu, 11 May 2023 10:36:33 +0000 (12:36 +0200)] 
Merge pull request #12799 from rgacogne/ddist-race-backend-health-check-mode

dnsdist: Suppress a race warning when setting a backend health-check mode

2 years agodnsdist: Print the received, invalid health-check response ID 12800/head
Remi Gacogne [Thu, 11 May 2023 08:15:44 +0000 (10:15 +0200)] 
dnsdist: Print the received, invalid health-check response ID

2 years agodnsdist: Suppress a race warning when setting a backend health-check mode 12799/head
Remi Gacogne [Wed, 10 May 2023 12:47:44 +0000 (14:47 +0200)] 
dnsdist: Suppress a race warning when setting a backend health-check mode

There is an actual race when one thread, likely the console, changes
the health-check mode of a given backend just when the health-check
thread is determining whether it should send a health-check probe.
We are fine with getting a wrong value in the health-check thread,
as long as we eventually get the new one, so let's not worry about it
and add a TSAN suppression.
The TSAN report was:
```
WARNING: ThreadSanitizer: data race (pid=5301)
  Read of size 1 at 0x7b78000002ae by thread T11:
    #0 DownstreamState::healthCheckRequired(std::optional<long>) /__w/pdns/pdns/pdns/dnsdistdist/dnsdist-backend.cc:555:16 (dnsdist+0x18f003)
    #1 healthChecksThread() /__w/pdns/pdns/pdns/dnsdistdist/dnsdist.cc:2046:17 (dnsdist+0x811ea9)
    #2 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/invoke.h:60:14 (dnsdist+0x1dfe39)
    #3 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/invoke.h:95:14 (dnsdist+0x1dfe39)
    #4 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/thread:264:13 (dnsdist+0x1dfe39)
    #5 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/thread:271:11 (dnsdist+0x1dfe39)
    #6 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/thread:215:13 (dnsdist+0x1dfe39)
    #7 <null> <null> (libstdc++.so.6+0xceecf)

  Previous write of size 1 at 0x7b78000002ae by thread T21 (mutexes: write M189):
    #0 std::enable_if<IsOptional<DownstreamState>::value, setupLuaBindings(LuaContext&, bool)::$_15>::type LuaContext::readIntoFunction<void, LuaContext::Binder<void LuaContext::registerFunctionImpl<setupLuaBindings(LuaContext&, bool)::$_15, void, DownstreamState, boost::optional<bool> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, setupLuaBindings(LuaContext&, bool)::$_15, LuaContext::tag<DownstreamState>, LuaContext::tag<void (boost::optional<bool>)>)::'lambda'(std::shared_ptr<DownstreamState> const&, boost::optional<bool>)&, std::shared_ptr<DownstreamState> const&>&, boost::optional<bool> >(lua_State*, LuaContext::tag<setupLuaBindings(LuaContext&, bool)::$_15>, void&&, int, LuaContext::tag<DownstreamState>, LuaContext::tag<boost::optional<bool> >) /__w/pdns/pdns/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp (dnsdist+0x4b6ab2)
    #1 std::enable_if<!(IsOptional<DownstreamState>::value), setupLuaBindings(LuaContext&, bool)::$_15>::type LuaContext::readIntoFunction<void, void LuaContext::registerFunctionImpl<setupLuaBindings(LuaContext&, bool)::$_15, void, DownstreamState, boost::optional<bool> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, setupLuaBindings(LuaContext&, bool)::$_15, LuaContext::tag<DownstreamState>, LuaContext::tag<void (boost::optional<bool>)>)::'lambda'(std::shared_ptr<DownstreamState> const&, boost::optional<bool>)&, std::shared_ptr<DownstreamState>, boost::optional<bool> >(lua_State*, LuaContext::tag<setupLuaBindings(LuaContext&, bool)::$_15>, void&&, int, LuaContext::tag<DownstreamState>, LuaContext::tag<boost::optional<bool> >) /__w/pdns/pdns/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:1803:16 (dnsdist+0x4b6ab2)
    #2 std::enable_if<(std::integral_constant<bool, true>::value) && (!(std::is_void<setupLuaBindings(LuaContext&, bool)::$_15>::value)), LuaContext::PushedObject>::type LuaContext::Pusher<void (std::shared_ptr<DownstreamState>, boost::optional<bool>), void>::callback2<void LuaContext::registerFunctionImpl<setupLuaBindings(LuaContext&, bool)::$_15, void, DownstreamState, boost::optional<bool> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, setupLuaBindings(LuaContext&, bool)::$_15, LuaContext::tag<DownstreamState>, LuaContext::tag<void (boost::optional<bool>)>)::'lambda'(std::shared_ptr<DownstreamState> const&, boost::optional<bool>)&>(lua_State*, setupLuaBindings(LuaContext&, bool)::$_15&&, int) /__w/pdns/pdns/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:2443:9 (dnsdist+0x4b6ab2)
    #3 LuaContext::PushedObject LuaContext::Pusher<void (std::shared_ptr<DownstreamState>, boost::optional<bool>), void>::callback<void LuaContext::registerFunctionImpl<setupLuaBindings(LuaContext&, bool)::$_15, void, DownstreamState, boost::optional<bool> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, setupLuaBindings(LuaContext&, bool)::$_15, LuaContext::tag<DownstreamState>, LuaContext::tag<void (boost::optional<bool>)>)::'lambda'(std::shared_ptr<DownstreamState> const&, boost::optional<bool>)>(lua_State*, setupLuaBindings(LuaContext&, bool)::$_15*, int) /__w/pdns/pdns/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:2405:20 (dnsdist+0x4b6ab2)
    #4 std::enable_if<boost::has_trivial_destructor<setupLuaBindings(LuaContext&, bool)::$_15>::value, LuaContext::PushedObject>::type LuaContext::Pusher<void (std::shared_ptr<DownstreamState>, boost::optional<bool>), void>::push<void LuaContext::registerFunctionImpl<setupLuaBindings(LuaContext&, bool)::$_15, void, DownstreamState, boost::optional<bool> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, setupLuaBindings(LuaContext&, bool)::$_15, LuaContext::tag<DownstreamState>, LuaContext::tag<void (boost::optional<bool>)>)::'lambda'(std::shared_ptr<DownstreamState> const&, boost::optional<bool>)>(lua_State*, setupLuaBindings(LuaContext&, bool)::$_15)::'lambda'(lua_State*)::operator()(lua_State*) const /__w/pdns/pdns/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:2334:20 (dnsdist+0x4b6ab2)
    #5 std::enable_if<boost::has_trivial_destructor<setupLuaBindings(LuaContext&, bool)::$_15>::value, LuaContext::PushedObject>::type LuaContext::Pusher<void (std::shared_ptr<DownstreamState>, boost::optional<bool>), void>::push<void LuaContext::registerFunctionImpl<setupLuaBindings(LuaContext&, bool)::$_15, void, DownstreamState, boost::optional<bool> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, setupLuaBindings(LuaContext&, bool)::$_15, LuaContext::tag<DownstreamState>, LuaContext::tag<void (boost::optional<bool>)>)::'lambda'(std::shared_ptr<DownstreamState> const&, boost::optional<bool>)>(lua_State*, setupLuaBindings(LuaContext&, bool)::$_15)::'lambda'(lua_State*)::__invoke(lua_State*) /__w/pdns/pdns/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:2330:31 (dnsdist+0x4b6ab2)
    #6 <null> <null> (libluajit-5.1.so.2+0xa5e6)
    #7 boost::optional<boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::shared_ptr<DownstreamState>, ClientState*, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, 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, double> > > > > LuaContext::call<boost::optional<boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::shared_ptr<DownstreamState>, ClientState*, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, 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, double> > > > > >(lua_State*, LuaContext::PushedObject) /__w/pdns/pdns/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:1413:29 (dnsdist+0x1c2b4b)
    #8 boost::optional<boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::shared_ptr<DownstreamState>, ClientState*, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, 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, double> > > > > LuaContext::executeCode<boost::optional<boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::shared_ptr<DownstreamState>, ClientState*, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, 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, double> > > > > >(char const*) /__w/pdns/pdns/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:324:16 (dnsdist+0x1c2b4b)
    #9 boost::optional<boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::shared_ptr<DownstreamState>, ClientState*, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, 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, double> > > > > LuaContext::executeCode<boost::optional<boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::shared_ptr<DownstreamState>, ClientState*, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, 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, double> > > > > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /__w/pdns/pdns/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:301:16 (dnsdist+0x1bf450)
    #10 controlClientThread(ConsoleConnection&&) /__w/pdns/pdns/pdns/dnsdistdist/dnsdist-console.cc:897:27 (dnsdist+0x1bf450)
    #11 boost::optional<boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::shared_ptr<DownstreamState>, ClientState*, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, 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, double> > > > > LuaContext::executeCode<boost::optional<boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::shared_ptr<DownstreamState>, ClientState*, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, 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, double> > > > > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /__w/pdns/pdns/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:301:16 (dnsdist+0x1bf450)
    #12 controlClientThread(ConsoleConnection&&) /__w/pdns/pdns/pdns/dnsdistdist/dnsdist-console.cc:897:27 (dnsdist+0x1bf450)
    #13 void std::__invoke_impl<void, void (*)(ConsoleConnection&&), ConsoleConnection>(std::__invoke_other, void (*&&)(ConsoleConnection&&), ConsoleConnection&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/invoke.h:60:14 (dnsdist+0x1c76f3)
    #14 std::__invoke_result<void (*)(ConsoleConnection&&), ConsoleConnection>::type std::__invoke<void (*)(ConsoleConnection&&), ConsoleConnection>(void (*&&)(ConsoleConnection&&), ConsoleConnection&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/invoke.h:95:14 (dnsdist+0x1c76f3)
    #15 void std::thread::_Invoker<std::tuple<void (*)(ConsoleConnection&&), ConsoleConnection> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/thread:264:13 (dnsdist+0x1c76f3)
    #16 std::thread::_Invoker<std::tuple<void (*)(ConsoleConnection&&), ConsoleConnection> >::operator()() /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/thread:271:11 (dnsdist+0x1c76f3)
    #17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(ConsoleConnection&&), ConsoleConnection> > >::_M_run() /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/thread:215:13 (dnsdist+0x1c76f3)
    #18 <null> <null> (libstdc++.so.6+0xceecf)

  As if synchronized via sleep:
    #0 healthChecksThread() /__w/pdns/pdns/pdns/dnsdistdist/dnsdist.cc:2034:5 (dnsdist+0xc77e8)
    #1 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/invoke.h:60:14 (dnsdist+0x811b8e)
    #2 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/invoke.h:95:14 (dnsdist+0x811b8e)
    #3 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/thread:264:13 (dnsdist+0x811b8e)
    #4 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/thread:271:11 (dnsdist+0x811b8e)
    #5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/thread:215:13 (dnsdist+0x811b8e)
    #6 <null> <null> (dnsdist+0x1dfe39)
    #7 operator new(unsigned long, std::align_val_t) <null> (libstdc++.so.6+0xceecf)

  Location is heap block of size 2880 at 0x7b7800000000 allocated by main thread:
    #0 __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/10/../../../../include/c++/10/ext/new_allocator.h:112:31 (dnsdist+0x13f29c)
    #1 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/10/../../../../include/c++/10/bits/alloc_traits.h:460:20 (dnsdist+0x13f29c)
    #2 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/10/../../../../include/c++/10/bits/allocated_ptr.h:97:21 (dnsdist+0x13f29c)
    #3 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<DownstreamState, std::allocator<DownstreamState>, DownstreamState::Config, std::shared_ptr<TLSCtx>, bool>(DownstreamState*&, std::_Sp_alloc_shared_tag<std::allocator<DownstreamState> >, DownstreamState::Config&&, std::shared_ptr<TLSCtx>&&, bool&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/shared_ptr_base.h:680:19 (dnsdist+0x13f29c)
    #4 std::__shared_ptr<DownstreamState, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<DownstreamState>, DownstreamState::Config, std::shared_ptr<TLSCtx>, bool>(std::_Sp_alloc_shared_tag<std::allocator<DownstreamState> >, DownstreamState::Config&&, std::shared_ptr<TLSCtx>&&, bool&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/shared_ptr_base.h:1371:14 (dnsdist+0x13f29c)
    #5 std::shared_ptr<DownstreamState>::shared_ptr<std::allocator<DownstreamState>, DownstreamState::Config, std::shared_ptr<TLSCtx>, bool>(std::_Sp_alloc_shared_tag<std::allocator<DownstreamState> >, DownstreamState::Config&&, std::shared_ptr<TLSCtx>&&, bool&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/shared_ptr.h:408:4 (dnsdist+0x1db3be)
    #6 std::shared_ptr<DownstreamState> std::allocate_shared<DownstreamState, std::allocator<DownstreamState>, DownstreamState::Config, std::shared_ptr<TLSCtx>, bool>(std::allocator<DownstreamState> const&, DownstreamState::Config&&, std::shared_ptr<TLSCtx>&&, bool&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/shared_ptr.h:859:14 (dnsdist+0x1db3be)
    #7 std::shared_ptr<DownstreamState> std::make_shared<DownstreamState, DownstreamState::Config, std::shared_ptr<TLSCtx>, bool>(DownstreamState::Config&&, std::shared_ptr<TLSCtx>&&, bool&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/shared_ptr.h:875:14 (dnsdist+0x1db3be)
    #8 setupLuaConfig(LuaContext&, bool, bool)::$_3::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 /__w/pdns/pdns/pdns/dnsdistdist/dnsdist-lua.cc:619:37 (dnsdist+0x1db3be)
    #9 tor<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)::$_3&>(lua_State*, setupLuaConfig(LuaContext&, bool, bool)::$_3&, int) /__w/pdns/pdns/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:2436:31 (dnsdist+0x69065d)
    #10 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)::$_3>(lua_State*, setupLuaConfig(LuaContext&, bool, bool)::$_3*, int) /__w/pdns/pdns/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:2405:20 (dnsdist+0x69065d)
    #11 std::enable_if<boost::has_trivial_destructor<setupLuaConfig(LuaContext&, bool, bool)::$_3>::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)::$_3>(lua_State*, setupLuaConfig(LuaContext&, bool, bool)::$_3)::'lambda'(lua_State*)::operator()(lua_State*) const /__w/pdns/pdns/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:2334:20 (dnsdist+0x69065d)
    #12 std::enable_if<boost::has_trivial_destructor<setupLuaConfig(LuaContext&, bool, bool)::$_3>::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)::$_3>(lua_State*, setupLuaConfig(LuaContext&, bool, bool)::$_3)::'lambda'(lua_State*)::__invoke(lua_State*) /__w/pdns/pdns/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:2330:31 (dnsdist+0x69065d)
    #13 <null> <null> (dnsdist+0x687942)
    #14 <null> <null> (libluajit-5.1.so.2+0xa5e6)
    #15 std::tuple<> LuaContext::call<std::tuple<> >(lua_State*, LuaContext::PushedObject) /__w/pdns/pdns/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:1413:29 (dnsdist+0x577e85)
    #16 LuaContext::executeCode(std::istream&) /__w/pdns/pdns/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:267:9 (dnsdist+0x685db6)
    #17 setupLua(LuaContext&, bool, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /__w/pdns/pdns/pdns/dnsdistdist/dnsdist-lua.cc:3025:10 (dnsdist+0x67b759)
    #18 main /__w/pdns/pdns/pdns/dnsdistdist/dnsdist.cc:2668:17 (dnsdist+0x809d2c)

  Mutex M189 (0x55801da4cdf0) created at:
    #0 pthread_mutex_lock <null> (dnsdist+0xe74f8)
    #1 __gthread_mutex_lock(pthread_mutex_t*) /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/x86_64-linux-gnu/c++/10/bits/gthr-default.h:749:12 (dnsdist+0x80c177)
    #2 std::mutex::lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/std_mutex.h:100:17 (dnsdist+0x80c177)
    #3 std::lock_guard<std::mutex>::lock_guard(std::mutex&) /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/std_mutex.h:159:19 (dnsdist+0x80c177)
    #4 LockGuardedHolder<LuaContext>::LockGuardedHolder(LuaContext&, std::mutex&) /__w/pdns/pdns/pdns/dnsdistdist/./lock.hh:209:60 (dnsdist+0x80c177)
    #5 LockGuarded<LuaContext>::lock() /__w/pdns/pdns/pdns/dnsdistdist/./lock.hh:289:12 (dnsdist+0x80c177)
    #6 main /__w/pdns/pdns/pdns/dnsdistdist/dnsdist.cc:2668:34 (dnsdist+0x809d0c)

  Thread T11 'dnsdist/healthC' (tid=5313, running) created by main thread at:
    #0 pthread_create <null> (dnsdist+0xca21d)
    #1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xcf144)
    #2 main /__w/pdns/pdns/pdns/dnsdistdist/dnsdist.cc:2938:12 (dnsdist+0x80b06e)

  Thread T21 'dnsdist/conscli' (tid=5325, finished) created by thread T5 at:
    #0 pthread_create <null> (dnsdist+0xca21d)
    #1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xcf144)
    #2 void std::__invoke_impl<void, void (*)(int, ComboAddress), int, ComboAddress>(std::__invoke_other, void (*&&)(int, ComboAddress), int&&, ComboAddress&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/invoke.h:60:14 (dnsdist+0x6c0435)
    #3 std::__invoke_result<void (*)(int, ComboAddress), int, ComboAddress>::type std::__invoke<void (*)(int, ComboAddress), int, ComboAddress>(void (*&&)(int, ComboAddress), int&&, ComboAddress&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/invoke.h:95:14 (dnsdist+0x6c0435)
    #4 void std::thread::_Invoker<std::tuple<void (*)(int, ComboAddress), int, ComboAddress> >::_M_invoke<0ul, 1ul, 2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/thread:264:13 (dnsdist+0x6c0435)
    #5 std::thread::_Invoker<std::tuple<void (*)(int, ComboAddress), int, ComboAddress> >::operator()() /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/thread:271:11 (dnsdist+0x6c0435)
    #6 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(int, ComboAddress), int, ComboAddress> > >::_M_run() /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/thread:215:13 (dnsdist+0x6c0435)
    #7 <null> <null> (libstdc++.so.6+0xceecf)
```

2 years agoName housekeeping0 better
Otto Moerbeek [Wed, 10 May 2023 11:08:08 +0000 (13:08 +0200)] 
Name housekeeping0 better

2 years agoMerge pull request #12792 from fredmorcos/fix-clang-tidy-commit
Fred Morcos [Wed, 10 May 2023 08:32:40 +0000 (10:32 +0200)] 
Merge pull request #12792 from fredmorcos/fix-clang-tidy-commit

Fix the `clang-tidy` jobs failing

2 years agoMerge pull request #12794 from rgacogne/ddist-ossl3-ticket-leak
Remi Gacogne [Tue, 9 May 2023 14:07:37 +0000 (16:07 +0200)] 
Merge pull request #12794 from rgacogne/ddist-ossl3-ticket-leak

libssl: Fix a memory leak when processing TLS tickets w/ OpenSSL 3.x

2 years agoFix indentation 12792/head
Fred Morcos [Tue, 9 May 2023 13:47:43 +0000 (15:47 +0200)] 
Fix indentation

2 years agolibssl: Fix a memory leak when processing TLS tickets w/ OpenSSL 3.x 12794/head
Remi Gacogne [Tue, 9 May 2023 13:15:06 +0000 (15:15 +0200)] 
libssl: Fix a memory leak when processing TLS tickets w/ OpenSSL 3.x

2 years agoMerge pull request #12683 from Habbie/remove-ubuntu-bionic
Peter van Dijk [Tue, 9 May 2023 12:42:27 +0000 (14:42 +0200)] 
Merge pull request #12683 from Habbie/remove-ubuntu-bionic

builder: remove ubuntu bionic target

2 years agoFix check for recursor clang-tidy output
Fred Morcos [Tue, 9 May 2023 10:31:23 +0000 (12:31 +0200)] 
Fix check for recursor clang-tidy output

Co-authored-by: Remi Gacogne <github@coredump.fr>
2 years agoHandle the case where none of the products produce any warnings
Fred Morcos [Tue, 9 May 2023 10:02:51 +0000 (12:02 +0200)] 
Handle the case where none of the products produce any warnings

Co-authored-by: Remi Gacogne <github@coredump.fr>
2 years agoConsistent formatting
Fred Morcos [Tue, 9 May 2023 09:31:27 +0000 (11:31 +0200)] 
Consistent formatting

Co-authored-by: Remi Gacogne <github@coredump.fr>
2 years agoswitch builder docs target to ubuntu jammy 12683/head
Peter van Dijk [Fri, 24 Mar 2023 10:12:18 +0000 (11:12 +0100)] 
switch builder docs target to ubuntu jammy

2 years agoremove ubuntu bionic target, as 18.04 will EOL soon
Peter van Dijk [Fri, 24 Mar 2023 09:40:28 +0000 (10:40 +0100)] 
remove ubuntu bionic target, as 18.04 will EOL soon

2 years agoDon't fail when there are no warnings produced by clang-tidy
Fred Morcos [Mon, 8 May 2023 12:30:48 +0000 (14:30 +0200)] 
Don't fail when there are no warnings produced by clang-tidy

2 years agoQuote the output vars
Fred Morcos [Mon, 8 May 2023 12:24:39 +0000 (14:24 +0200)] 
Quote the output vars

2 years agoAdd // NOLINT(readability-function-cognitive-complexity)
Otto Moerbeek [Mon, 8 May 2023 12:01:40 +0000 (14:01 +0200)] 
Add // NOLINT(readability-function-cognitive-complexity)
Once readability-function-cognitive-complexity.IgnoreMacros works
in CI, these annotations can be removed. It currenlty does not work
as clang-12 does not support it.

2 years agomark getenv() NOLINT
Otto Moerbeek [Mon, 8 May 2023 09:58:54 +0000 (11:58 +0200)] 
mark getenv() NOLINT

Locally (using clangd) no warning is reported...

2 years agoSome general clang-tidy cleanup
Otto Moerbeek [Mon, 8 May 2023 09:07:10 +0000 (11:07 +0200)] 
Some general clang-tidy cleanup

2 years agoSplit recursorThread() to reduce complexity
Otto Moerbeek [Mon, 8 May 2023 08:58:29 +0000 (10:58 +0200)] 
Split recursorThread() to reduce complexity

2 years agoReformat
Otto Moerbeek [Mon, 8 May 2023 08:21:04 +0000 (10:21 +0200)] 
Reformat

2 years agosplit main() to reduce complexity
Otto Moerbeek [Mon, 8 May 2023 08:20:06 +0000 (10:20 +0200)] 
split main() to reduce complexity

2 years agoSplit serviceMain() to reduce cognitive complexity
Otto Moerbeek [Mon, 8 May 2023 07:51:19 +0000 (09:51 +0200)] 
Split serviceMain() to reduce cognitive complexity

2 years agoserviceMain: fix all lints except complexity
Otto Moerbeek [Mon, 8 May 2023 06:58:45 +0000 (08:58 +0200)] 
serviceMain: fix all lints except complexity

2 years agoMerge pull request #12788 from rgacogne/clang-tidy-increase-code-complexity-threshold
Remi Gacogne [Fri, 5 May 2023 12:34:04 +0000 (14:34 +0200)] 
Merge pull request #12788 from rgacogne/clang-tidy-increase-code-complexity-threshold

clang-tidy: Increase the code complexity threshold to 50 for now

2 years agoclang-tidy: Lower the code complexity threshold to 50 12788/head
Remi Gacogne [Fri, 5 May 2023 09:08:48 +0000 (11:08 +0200)] 
clang-tidy: Lower the code complexity threshold to 50

Let's see how it goes.

2 years agoclang-tidy: Increase the code complexity threshold to 100 for now
Remi Gacogne [Thu, 4 May 2023 14:38:53 +0000 (16:38 +0200)] 
clang-tidy: Increase the code complexity threshold to 100 for now

2 years agoMerge pull request #12786 from rgacogne/ci-separate-failure-tidy
Remi Gacogne [Thu, 4 May 2023 12:16:12 +0000 (14:16 +0200)] 
Merge pull request #12786 from rgacogne/ci-separate-failure-tidy

ci: Add a separate check for clang-tidy failure

2 years agoMerge pull request #12787 from Habbie/auth-4.8.0-beta1-secpoll-serial
Peter van Dijk [Thu, 4 May 2023 11:20:14 +0000 (13:20 +0200)] 
Merge pull request #12787 from Habbie/auth-4.8.0-beta1-secpoll-serial

bump secpoll serial, adjust release date

2 years agobump secpoll serial, adjust release date 12787/head
Peter van Dijk [Thu, 4 May 2023 10:07:20 +0000 (12:07 +0200)] 
bump secpoll serial, adjust release date

2 years agoci: Add a separate check for clang-tidy failure 12786/head
Remi Gacogne [Thu, 4 May 2023 08:32:09 +0000 (10:32 +0200)] 
ci: Add a separate check for clang-tidy failure

This way the tests are still run even if clang-tidy reported a
warning, instead of stopping everything.

2 years agoMerge pull request #12781 from Habbie/auth-4.8.0-beta1-docs
Peter van Dijk [Thu, 4 May 2023 09:53:56 +0000 (11:53 +0200)] 
Merge pull request #12781 from Habbie/auth-4.8.0-beta1-docs

auth-4.8.0-beta1: secpoll&docs

2 years agoMerge pull request #12748 from omoerbeek/rec-ws-total-unused
Otto Moerbeek [Wed, 3 May 2023 12:51:10 +0000 (14:51 +0200)] 
Merge pull request #12748 from omoerbeek/rec-ws-total-unused

rec: warning: variable 'total' set but not used

2 years agoMerge pull request #12739 from omoerbeek/rec-lwres-uninited-len
Otto Moerbeek [Wed, 3 May 2023 12:50:18 +0000 (14:50 +0200)] 
Merge pull request #12739 from omoerbeek/rec-lwres-uninited-len

rec: Fix uninited var causing wrong `bytes` field reported in protobuf log in rare cases

2 years agoMerge pull request #12782 from omoerbeek/dsdist-api-test-timeout
Otto Moerbeek [Wed, 3 May 2023 12:36:55 +0000 (14:36 +0200)] 
Merge pull request #12782 from omoerbeek/dsdist-api-test-timeout

dnsdist: github runners can be *very* slow wrt I/O, use a more generous timeout in tests

2 years agoInit len earlier, as suggested by rgacogne 12739/head
Otto Moerbeek [Wed, 3 May 2023 12:11:20 +0000 (14:11 +0200)] 
Init len earlier, as suggested by rgacogne

2 years agoMerge pull request #12737 from nbakker/patch-1
Remi Gacogne [Wed, 3 May 2023 12:00:27 +0000 (14:00 +0200)] 
Merge pull request #12737 from nbakker/patch-1

Some webserver parameters were removed with 1.8.0

2 years agogithub runners can be *very* slow wrt I/O, use a more generous timeout in tests 12782/head
Otto Moerbeek [Wed, 3 May 2023 11:32:18 +0000 (13:32 +0200)] 
github runners can be *very* slow wrt I/O, use a more generous timeout in tests

This issue seems to be more prominent when using a TSAN enabled dnsdist.

2 years agoauth-4.8.0-beta1: secpoll&docs 12781/head
Peter van Dijk [Wed, 3 May 2023 10:19:47 +0000 (12:19 +0200)] 
auth-4.8.0-beta1: secpoll&docs

2 years agoMerge pull request #12765 from fredmorcos/clang-tidy-prs
Fred Morcos [Wed, 3 May 2023 09:22:39 +0000 (11:22 +0200)] 
Merge pull request #12765 from fredmorcos/clang-tidy-prs

Run `clang-tidy` on auth, rec and dnsdist when opening PRs