]> git.ipfire.org Git - thirdparty/pdns.git/log
thirdparty/pdns.git
22 months agoUse at(i) instead of [i] 13208/head
Otto Moerbeek [Tue, 5 Sep 2023 10:40:50 +0000 (12:40 +0200)] 
Use at(i) instead of [i]

22 months agoremove make_tuple and make_pair
Rosen Penev [Fri, 1 Sep 2023 08:41:48 +0000 (08:41 +0000)] 
remove make_tuple and make_pair

Not needed

Signed-off-by: Rosen Penev <rosenp@gmail.com>
23 months agoMerge pull request #13190 from omoerbeek/rec-unused-warnings
Otto Moerbeek [Tue, 29 Aug 2023 14:42:31 +0000 (16:42 +0200)] 
Merge pull request #13190 from omoerbeek/rec-unused-warnings

rec: fix a few unused argument warnings (depening on features enabled)

23 months agoMerge pull request #13181 from rgacogne/fix-provenance
Remi Gacogne [Tue, 29 Aug 2023 11:27:37 +0000 (13:27 +0200)] 
Merge pull request #13181 from rgacogne/fix-provenance

Fix provenance generation for our packages

23 months agorec: fix a few unused argument warnings (depening on features enabled) 13190/head
Otto Moerbeek [Tue, 29 Aug 2023 09:28:33 +0000 (11:28 +0200)] 
rec: fix a few unused argument warnings (depening on features enabled)

Additionally, handle a few clang-tidy warnings

23 months agobuilder-dispatch: Remove the newline at the end of the os list 13181/head
Remi Gacogne [Tue, 29 Aug 2023 09:48:57 +0000 (11:48 +0200)] 
builder-dispatch: Remove the newline at the end of the os list

23 months agoMerge pull request #13162 from fredmorcos/auth-print-loaded-modules
Fred Morcos [Tue, 29 Aug 2023 09:09:39 +0000 (11:09 +0200)] 
Merge pull request #13162 from fredmorcos/auth-print-loaded-modules

Auth: Print the list of loaded modules next to the config.h preset

23 months agoMerge pull request #13164 from fredmorcos/bindlexer-use-c++-header
Peter van Dijk [Tue, 29 Aug 2023 08:24:36 +0000 (10:24 +0200)] 
Merge pull request #13164 from fredmorcos/bindlexer-use-c++-header

Bindlexer use C++ bison header

23 months agoUse the C++ header file generated by bison instead of opting for a C header file 13164/head
Fred Morcos [Tue, 22 Aug 2023 14:50:00 +0000 (16:50 +0200)] 
Use the C++ header file generated by bison instead of opting for a C header file

23 months agoMerge pull request #13183 from omoerbeek/rec-pb-test-fix-empty-call
Otto Moerbeek [Mon, 28 Aug 2023 15:11:17 +0000 (17:11 +0200)] 
Merge pull request #13183 from omoerbeek/rec-pb-test-fix-empty-call

rec: fix call of empty() in Protobuf regression test, nice speedup

23 months agorec: fix call of empty() in Protobuf regression test, nice speedup 13183/head
Otto Moerbeek [Mon, 28 Aug 2023 14:19:05 +0000 (16:19 +0200)] 
rec: fix call of empty() in Protobuf regression test, nice speedup

23 months agobuild-packages: Fix 'check if hashes were created for all requested targets'
Remi Gacogne [Mon, 28 Aug 2023 13:54:18 +0000 (15:54 +0200)] 
build-packages: Fix 'check if hashes were created for all requested targets'

If the 'inputs.os' list ends with a newline the check fails.

23 months agoFix the generation of packages JSON list for provenance
Remi Gacogne [Mon, 28 Aug 2023 13:52:38 +0000 (15:52 +0200)] 
Fix the generation of packages JSON list for provenance

23 months agoMerge pull request #13154 from rgacogne/ddist-parallel-tests
Remi Gacogne [Mon, 28 Aug 2023 11:34:27 +0000 (13:34 +0200)] 
Merge pull request #13154 from rgacogne/ddist-parallel-tests

dnsdist: Switch to pytest for our regression tests, run them in parallel

23 months agodnsdist: Add missing 'sys' import in the Async regression test 13154/head
Remi Gacogne [Mon, 28 Aug 2023 10:33:21 +0000 (12:33 +0200)] 
dnsdist: Add missing 'sys' import in the Async regression test

As noticed by Charles-Henri (thanks!).

23 months agoMerge pull request #13143 from rgacogne/ddist-cache-metrics-tsan-warning
Remi Gacogne [Mon, 28 Aug 2023 09:22:44 +0000 (11:22 +0200)] 
Merge pull request #13143 from rgacogne/ddist-cache-metrics-tsan-warning

dnsdist: Try to fix a data race warning reported by TSAN

23 months agoMerge pull request #13167 from rgacogne/tcpiohandler-fix-conn-index-race
Remi Gacogne [Mon, 28 Aug 2023 08:55:20 +0000 (10:55 +0200)] 
Merge pull request #13167 from rgacogne/tcpiohandler-fix-conn-index-race

TCPIOHandler: Fix a race when creating the first TLS connections

23 months agoMerge pull request #13175 from omoerbeek/ssh_compat_getentropy
Otto Moerbeek [Mon, 28 Aug 2023 08:16:43 +0000 (10:16 +0200)] 
Merge pull request #13175 from omoerbeek/ssh_compat_getentropy

Declare ssh_compat_getentropy in the right spot.

23 months agoMerge pull request #13174 from omoerbeek/rec-include-cstdint
Otto Moerbeek [Mon, 28 Aug 2023 08:13:59 +0000 (10:13 +0200)] 
Merge pull request #13174 from omoerbeek/rec-include-cstdint

rec: Include cstdint in mtasker_ucontext.cc, noted by @zeha

23 months agoDeclare ssh_compat_getentropy in the right spot. 13175/head
Otto Moerbeek [Fri, 25 Aug 2023 13:00:37 +0000 (15:00 +0200)] 
Declare ssh_compat_getentropy in the right spot.

Avoiding a redundant and/or missing declaration (depending HAVE_* defines)

23 months agoInclude cstdint in mtasker_ucontext.cc, noted by @zeha 13174/head
Otto Moerbeek [Fri, 25 Aug 2023 12:08:36 +0000 (14:08 +0200)] 
Include cstdint in mtasker_ucontext.cc, noted by @zeha

23 months agoMerge pull request #13165 from omoerbeek/rec-prep-20230825
Otto Moerbeek [Fri, 25 Aug 2023 08:34:06 +0000 (10:34 +0200)] 
Merge pull request #13165 from omoerbeek/rec-prep-20230825

rec: Prep for upcoming rec 4.7.6, 4.8.5 and 4.9.1 releases

23 months agoMerge pull request #13097 from romeroalx/build-pkgs-add-pkghashes-check
Remi Gacogne [Thu, 24 Aug 2023 10:29:12 +0000 (12:29 +0200)] 
Merge pull request #13097 from romeroalx/build-pkgs-add-pkghashes-check

GH actions. build-packages.yml: check if hash entries were created for all targets

23 months agoMerge pull request #13168 from rgacogne/default-net-snmp-to-no
Remi Gacogne [Wed, 23 Aug 2023 15:55:33 +0000 (17:55 +0200)] 
Merge pull request #13168 from rgacogne/default-net-snmp-to-no

Change the default for building with net-snmp from `auto` to `no`

23 months agoChange the default for building with net-snmp from `auto` to `no` 13168/head
Remi Gacogne [Wed, 23 Aug 2023 15:00:17 +0000 (17:00 +0200)] 
Change the default for building with net-snmp from `auto` to `no`

We have had a fair amount of issues with `net-snmp` adding unexpected
and unwanted values to both `CXXFLAGS` and `LDFLAGS`, and it was just
reported to also define `HAVE_LIBSSL` is in public header, which messes
up our own feature detection. Therefore it is likely better for everyone
to prevent net-snmp from being enabled without the user intending it.
For our own packages we explicitly enable net-snmp when supported,
and this commit also enables it in our CI for dnsdist (it was already
done for the recursor) so it should not have any impact.

23 months agoTCPIOHandler: Fix a race when creating the first TLS connections 13167/head
Remi Gacogne [Wed, 23 Aug 2023 14:46:55 +0000 (16:46 +0200)] 
TCPIOHandler: Fix a race when creating the first TLS connections

We used to get a index from OpenSSL when the first incoming or
outgoing TLS connection was created. That index is later used
to store application-related data along the TLS connection, to
be able to access it in callbacks called from inside the OpenSSL
library.
Unfortunately the atomic flag construction used was racy: if a second
connection is created while the first one is still getting the index,
it could be reading the initial value (-1) instead of the actual index,
which might prevent the callback from working properly because they
cannot retrieve the necessary data. The good news is that this should
not have a serious impact: a TLS session might not be properly resumed
while it should have been, leading to a full TLS session negotiation.
This commit fixes the race by using a full mutex and only releasing
it once the value has been computed. In order to avoid a performance
penalty, the index is now computed when a TLS connection _context_
is created, instead of a TLS connection. TLS contexts should be
reused for a large number of connections, and mostly created during
startup or in the first few seconds of the application.

The race was reported by Thread Sanitizer during the
`test_TLS.py::TestTLSFrontendLimits::testTCPConnsPerTLSFrontend`
regression test as:
```
WARNING: ThreadSanitizer: data race (pid=120466)
  Read of size 4 at 0x55a12bf3d758 by thread T4:
    #0 OpenSSLTLSConnection::OpenSSLTLSConnection(int, timeval const&, std::shared_ptr<OpenSSLFrontendContext>) /work/pdns/pdns/dnsdistdist/tcpiohandler.cc:106 (dnsdist+0x97ece8) (BuildId: ad82581368352777fda41d4b4145ba8ec738044c)
    #1 std::__detail::_MakeUniq<OpenSSLTLSConnection>::__single_object std::make_unique<OpenSSLTLSConnection, int&, timeval const&, std::shared_ptr<OpenSSLFrontendContext>&>(int&, timeval const&, std::shared_ptr<OpenSSLFrontendContext>&) /usr/include/c++/13.2.1/bits/unique_ptr.h:1070 (dnsdist+0x97eff6) (BuildId: ad82581368352777fda41d4b4145ba8ec738044c)
    #2 OpenSSLTLSIOCtx::getConnection(int, timeval const&, long) /work/pdns/pdns/dnsdistdist/tcpiohandler.cc:797 (dnsdist+0x97eff6)
    #3 TCPIOHandler::TCPIOHandler(int, timeval const&, std::shared_ptr<TLSCtx>, long) /work/pdns/pdns/dnsdistdist/tcpiohandler.hh:246 (dnsdist+0x88c24f) (BuildId: ad82581368352777fda41d4b4145ba8ec738044c)
    #4 IncomingTCPConnectionState::IncomingTCPConnectionState(ConnectionInfo&&, TCPClientThreadData&, timeval const&) /work/pdns/pdns/dnsdistdist/dnsdist-tcp-upstream.hh:29 (dnsdist+0x88c24f)
    #5 void std::_Construct<IncomingTCPConnectionState, ConnectionInfo, TCPClientThreadData&, timeval&>(IncomingTCPConnectionState*, ConnectionInfo&&, TCPClientThreadData&, timeval&) /usr/include/c++/13.2.1/bits/stl_construct.h:119 (dnsdist+0x878b1e) (BuildId: ad82581368352777fda41d4b4145ba8ec738044c)
    #6 void std::allocator_traits<std::allocator<void> >::construct<IncomingTCPConnectionState, ConnectionInfo, TCPClientThreadData&, timeval&>(std::allocator<void>&, IncomingTCPConnectionState*, ConnectionInfo&&, TCPClientThreadData&, timeval&) /usr/include/c++/13.2.1/bits/alloc_traits.h:660 (dnsdist+0x878b1e)
    #7 std::_Sp_counted_ptr_inplace<IncomingTCPConnectionState, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<ConnectionInfo, TCPClientThreadData&, timeval&>(std::allocator<void>, ConnectionInfo&&, TCPClientThreadData&, timeval&) /usr/include/c++/13.2.1/bits/shared_ptr_base.h:604 (dnsdist+0x878b1e)
    #8 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<IncomingTCPConnectionState, std::allocator<void>, ConnectionInfo, TCPClientThreadData&, timeval&>(IncomingTCPConnectionState*&, std::_Sp_alloc_shared_tag<std::allocator<void> >, ConnectionInfo&&, TCPClientThreadData&, timeval&) /usr/include/c++/13.2.1/bits/shared_ptr_base.h:971 (dnsdist+0x878b1e)
    #9 std::__shared_ptr<IncomingTCPConnectionState, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, ConnectionInfo, TCPClientThreadData&, timeval&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, ConnectionInfo&&, TCPClientThreadData&, timeval&) /usr/include/c++/13.2.1/bits/shared_ptr_base.h:1712 (dnsdist+0x878b1e)
    #10 std::shared_ptr<IncomingTCPConnectionState>::shared_ptr<std::allocator<void>, ConnectionInfo, TCPClientThreadData&, timeval&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, ConnectionInfo&&, TCPClientThreadData&, timeval&) /usr/include/c++/13.2.1/bits/shared_ptr.h:464 (dnsdist+0x878b1e)
    #11 std::shared_ptr<std::enable_if<!std::is_array<IncomingTCPConnectionState>::value, IncomingTCPConnectionState>::type> std::make_shared<IncomingTCPConnectionState, ConnectionInfo, TCPClientThreadData&, timeval&>(ConnectionInfo&&, TCPClientThreadData&, timeval&) /usr/include/c++/13.2.1/bits/shared_ptr.h:1010 (dnsdist+0x878b1e)
    #12 handleIncomingTCPQuery /work/pdns/pdns/dnsdistdist/dnsdist-tcp.cc:1118 (dnsdist+0x878b1e)
    #13 void std::__invoke_impl<void, void (*&)(int, boost::any&), int, boost::any&>(std::__invoke_other, void (*&)(int, boost::any&), int&&, boost::any&) /usr/include/c++/13.2.1/bits/invoke.h:61 (dnsdist+0x32d951) (BuildId: ad82581368352777fda41d4b4145ba8ec738044c)
    #14 std::enable_if<is_invocable_r_v<void, void (*&)(int, boost::any&), int, boost::any&>, void>::type std::__invoke_r<void, void (*&)(int, boost::any&), int, boost::any&>(void (*&)(int, boost::any&), int&&, boost::any&) /usr/include/c++/13.2.1/bits/invoke.h:111 (dnsdist+0x32d951)
    #15 std::_Function_handler<void (int, boost::any&), void (*)(int, boost::any&)>::_M_invoke(std::_Any_data const&, int&&, boost::any&) /usr/include/c++/13.2.1/bits/std_function.h:290 (dnsdist+0x32d951)
    #16 std::function<void (int, boost::any&)>::operator()(int, boost::any&) const /usr/include/c++/13.2.1/bits/std_function.h:591 (dnsdist+0x98fc0f) (BuildId: ad82581368352777fda41d4b4145ba8ec738044c)
    #17 EpollFDMultiplexer::run(timeval*, int) /work/pdns/pdns/dnsdistdist/epollmplexer.cc:190 (dnsdist+0x98fc0f)
    #18 tcpClientThread /work/pdns/pdns/dnsdistdist/dnsdist-tcp.cc:1251 (dnsdist+0x86cb7f) (BuildId: ad82581368352777fda41d4b4145ba8ec738044c)
    #19 void std::__invoke_impl<void, void (*)(pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >&&, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >&&, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, std::vector<ClientState*, std::allocator<ClientState*> >), pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >, std::vector<ClientState*, std::allocator<ClientState*> > >(std::__invoke_other, void (*&&)(pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >&&, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >&&, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, std::vector<ClientState*, std::allocator<ClientState*> >), pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >&&, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >&&, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, std::vector<ClientState*, std::allocator<ClientState*> >&&) /usr/include/c++/13.2.1/bits/invoke.h:61 (dnsdist+0x87aab1) (BuildId: ad82581368352777fda41d4b4145ba8ec738044c)
    #20 std::__invoke_result<void (*)(pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >&&, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >&&, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, std::vector<ClientState*, std::allocator<ClientState*> >), pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >, std::vector<ClientState*, std::allocator<ClientState*> > >::type std::__invoke<void (*)(pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >&&, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >&&, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, std::vector<ClientState*, std::allocator<ClientState*> >), pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >, std::vector<ClientState*, std::allocator<ClientState*> > >(void (*&&)(pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >&&, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >&&, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, std::vector<ClientState*, std::allocator<ClientState*> >), pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >&&, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >&&, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, std::vector<ClientState*, std::allocator<ClientState*> >&&) /usr/include/c++/13.2.1/bits/invoke.h:96 (dnsdist+0x87aab1)
    #21 void std::thread::_Invoker<std::tuple<void (*)(pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >&&, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >&&, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, std::vector<ClientState*, std::allocator<ClientState*> >), pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >, std::vector<ClientState*, std::allocator<ClientState*> > > >::_M_invoke<0ul, 1ul, 2ul, 3ul, 4ul, 5ul>(std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul, 5ul>) /usr/include/c++/13.2.1/bits/std_thread.h:292 (dnsdist+0x87aab1)
    #22 std::thread::_Invoker<std::tuple<void (*)(pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >&&, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >&&, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, std::vector<ClientState*, std::allocator<ClientState*> >), pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >, std::vector<ClientState*, std::allocator<ClientState*> > > >::operator()() /usr/include/c++/13.2.1/bits/std_thread.h:299 (dnsdist+0x87aab1)
    #23 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >&&, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >&&, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, std::vector<ClientState*, std::allocator<ClientState*> >), pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >, std::vector<ClientState*, std::allocator<ClientState*> > > > >::_M_run() /usr/include/c++/13.2.1/bits/std_thread.h:244 (dnsdist+0x87aab1)
    #24 execute_native_thread_routine /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:104 (libstdc++.so.6+0xe1942) (BuildId: 207eb738c5976dd9aac1ae0640fc4de5946b547e)

  Previous write of size 4 at 0x55a12bf3d758 by thread T3:
    #0 OpenSSLTLSConnection::OpenSSLTLSConnection(int, timeval const&, std::shared_ptr<OpenSSLFrontendContext>) /work/pdns/pdns/dnsdistdist/tcpiohandler.cc:88 (dnsdist+0x97ed98) (BuildId: ad82581368352777fda41d4b4145ba8ec738044c)
    #1 std::__detail::_MakeUniq<OpenSSLTLSConnection>::__single_object std::make_unique<OpenSSLTLSConnection, int&, timeval const&, std::shared_ptr<OpenSSLFrontendContext>&>(int&, timeval const&, std::shared_ptr<OpenSSLFrontendContext>&) /usr/include/c++/13.2.1/bits/unique_ptr.h:1070 (dnsdist+0x97eff6) (BuildId: ad82581368352777fda41d4b4145ba8ec738044c)
    #2 OpenSSLTLSIOCtx::getConnection(int, timeval const&, long) /work/pdns/pdns/dnsdistdist/tcpiohandler.cc:797 (dnsdist+0x97eff6)
    #3 TCPIOHandler::TCPIOHandler(int, timeval const&, std::shared_ptr<TLSCtx>, long) /work/pdns/pdns/dnsdistdist/tcpiohandler.hh:246 (dnsdist+0x88c24f) (BuildId: ad82581368352777fda41d4b4145ba8ec738044c)
    #4 IncomingTCPConnectionState::IncomingTCPConnectionState(ConnectionInfo&&, TCPClientThreadData&, timeval const&) /work/pdns/pdns/dnsdistdist/dnsdist-tcp-upstream.hh:29 (dnsdist+0x88c24f)
    #5 void std::_Construct<IncomingTCPConnectionState, ConnectionInfo, TCPClientThreadData&, timeval&>(IncomingTCPConnectionState*, ConnectionInfo&&, TCPClientThreadData&, timeval&) /usr/include/c++/13.2.1/bits/stl_construct.h:119 (dnsdist+0x878b1e) (BuildId: ad82581368352777fda41d4b4145ba8ec738044c)
    #6 void std::allocator_traits<std::allocator<void> >::construct<IncomingTCPConnectionState, ConnectionInfo, TCPClientThreadData&, timeval&>(std::allocator<void>&, IncomingTCPConnectionState*, ConnectionInfo&&, TCPClientThreadData&, timeval&) /usr/include/c++/13.2.1/bits/alloc_traits.h:660 (dnsdist+0x878b1e)
    #7 std::_Sp_counted_ptr_inplace<IncomingTCPConnectionState, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<ConnectionInfo, TCPClientThreadData&, timeval&>(std::allocator<void>, ConnectionInfo&&, TCPClientThreadData&, timeval&) /usr/include/c++/13.2.1/bits/shared_ptr_base.h:604 (dnsdist+0x878b1e)
    #8 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<IncomingTCPConnectionState, std::allocator<void>, ConnectionInfo, TCPClientThreadData&, timeval&>(IncomingTCPConnectionState*&, std::_Sp_alloc_shared_tag<std::allocator<void> >, ConnectionInfo&&, TCPClientThreadData&, timeval&) /usr/include/c++/13.2.1/bits/shared_ptr_base.h:971 (dnsdist+0x878b1e)
    #9 std::__shared_ptr<IncomingTCPConnectionState, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, ConnectionInfo, TCPClientThreadData&, timeval&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, ConnectionInfo&&, TCPClientThreadData&, timeval&) /usr/include/c++/13.2.1/bits/shared_ptr_base.h:1712 (dnsdist+0x878b1e)
    #10 std::shared_ptr<IncomingTCPConnectionState>::shared_ptr<std::allocator<void>, ConnectionInfo, TCPClientThreadData&, timeval&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, ConnectionInfo&&, TCPClientThreadData&, timeval&) /usr/include/c++/13.2.1/bits/shared_ptr.h:464 (dnsdist+0x878b1e)
    #11 std::shared_ptr<std::enable_if<!std::is_array<IncomingTCPConnectionState>::value, IncomingTCPConnectionState>::type> std::make_shared<IncomingTCPConnectionState, ConnectionInfo, TCPClientThreadData&, timeval&>(ConnectionInfo&&, TCPClientThreadData&, timeval&) /usr/include/c++/13.2.1/bits/shared_ptr.h:1010 (dnsdist+0x878b1e)
    #12 handleIncomingTCPQuery /work/pdns/pdns/dnsdistdist/dnsdist-tcp.cc:1118 (dnsdist+0x878b1e)
    #13 void std::__invoke_impl<void, void (*&)(int, boost::any&), int, boost::any&>(std::__invoke_other, void (*&)(int, boost::any&), int&&, boost::any&) /usr/include/c++/13.2.1/bits/invoke.h:61 (dnsdist+0x32d951) (BuildId: ad82581368352777fda41d4b4145ba8ec738044c)
    #14 std::enable_if<is_invocable_r_v<void, void (*&)(int, boost::any&), int, boost::any&>, void>::type std::__invoke_r<void, void (*&)(int, boost::any&), int, boost::any&>(void (*&)(int, boost::any&), int&&, boost::any&) /usr/include/c++/13.2.1/bits/invoke.h:111 (dnsdist+0x32d951)
    #15 std::_Function_handler<void (int, boost::any&), void (*)(int, boost::any&)>::_M_invoke(std::_Any_data const&, int&&, boost::any&) /usr/include/c++/13.2.1/bits/std_function.h:290 (dnsdist+0x32d951)
    #16 std::function<void (int, boost::any&)>::operator()(int, boost::any&) const /usr/include/c++/13.2.1/bits/std_function.h:591 (dnsdist+0x98fc0f) (BuildId: ad82581368352777fda41d4b4145ba8ec738044c)
    #17 EpollFDMultiplexer::run(timeval*, int) /work/pdns/pdns/dnsdistdist/epollmplexer.cc:190 (dnsdist+0x98fc0f)
    #18 tcpClientThread /work/pdns/pdns/dnsdistdist/dnsdist-tcp.cc:1251 (dnsdist+0x86cb7f) (BuildId: ad82581368352777fda41d4b4145ba8ec738044c)
    #19 void std::__invoke_impl<void, void (*)(pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >&&, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >&&, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, std::vector<ClientState*, std::allocator<ClientState*> >), pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >, std::vector<ClientState*, std::allocator<ClientState*> > >(std::__invoke_other, void (*&&)(pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >&&, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >&&, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, std::vector<ClientState*, std::allocator<ClientState*> >), pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >&&, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >&&, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, std::vector<ClientState*, std::allocator<ClientState*> >&&) /usr/include/c++/13.2.1/bits/invoke.h:61 (dnsdist+0x87aab1) (BuildId: ad82581368352777fda41d4b4145ba8ec738044c)
    #20 std::__invoke_result<void (*)(pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >&&, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >&&, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, std::vector<ClientState*, std::allocator<ClientState*> >), pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >, std::vector<ClientState*, std::allocator<ClientState*> > >::type std::__invoke<void (*)(pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >&&, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >&&, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, std::vector<ClientState*, std::allocator<ClientState*> >), pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >, std::vector<ClientState*, std::allocator<ClientState*> > >(void (*&&)(pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >&&, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >&&, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, std::vector<ClientState*, std::allocator<ClientState*> >), pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >&&, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >&&, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, std::vector<ClientState*, std::allocator<ClientState*> >&&) /usr/include/c++/13.2.1/bits/invoke.h:96 (dnsdist+0x87aab1)
    #21 void std::thread::_Invoker<std::tuple<void (*)(pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >&&, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >&&, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, std::vector<ClientState*, std::allocator<ClientState*> >), pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >, std::vector<ClientState*, std::allocator<ClientState*> > > >::_M_invoke<0ul, 1ul, 2ul, 3ul, 4ul, 5ul>(std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul, 5ul>) /usr/include/c++/13.2.1/bits/std_thread.h:292 (dnsdist+0x87aab1)
    #22 std::thread::_Invoker<std::tuple<void (*)(pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >&&, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >&&, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, std::vector<ClientState*, std::allocator<ClientState*> >), pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >, std::vector<ClientState*, std::allocator<ClientState*> > > >::operator()() /usr/include/c++/13.2.1/bits/std_thread.h:299 (dnsdist+0x87aab1)
    #23 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >&&, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >&&, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >&&, std::vector<ClientState*, std::allocator<ClientState*> >), pdns::channel::Receiver<ConnectionInfo, std::default_delete<ConnectionInfo> >, pdns::channel::Receiver<CrossProtocolQuery, std::default_delete<CrossProtocolQuery> >, pdns::channel::Receiver<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >, pdns::channel::Sender<TCPCrossProtocolResponse, std::default_delete<TCPCrossProtocolResponse> >, std::vector<ClientState*, std::allocator<ClientState*> > > > >::_M_run() /usr/include/c++/13.2.1/bits/std_thread.h:244 (dnsdist+0x87aab1)
    #24 execute_native_thread_routine /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:104 (libstdc++.so.6+0xe1942) (BuildId: 207eb738c5976dd9aac1ae0640fc4de5946b547e)

  Location is global 'OpenSSLTLSConnection::s_tlsConnIndex' of size 4 at 0x55a12bf3d758 (dnsdist+0xc49758)

  Thread T4 'dnsdist/tcpClie' (tid=120471, running) created by main thread at:
    #0 pthread_create /usr/src/debug/gcc/gcc/libsanitizer/tsan/tsan_interceptors_posix.cpp:1036 (libtsan.so.2+0x44219) (BuildId: 7e8fcb9ed0a63b98f2293e37c92ac955413efd9e)
    #1 __gthread_create /usr/src/debug/gcc/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:663 (libstdc++.so.6+0xe1a29) (BuildId: 207eb738c5976dd9aac1ae0640fc4de5946b547e)
    #2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:172 (libstdc++.so.6+0xe1a29)
    #3 TCPClientCollection::addTCPClientThread(std::vector<ClientState*, std::allocator<ClientState*> >&) /work/pdns/pdns/dnsdistdist/dnsdist-tcp.cc:149 (dnsdist+0x8685a1) (BuildId: ad82581368352777fda41d4b4145ba8ec738044c)
    #4 TCPClientCollection::TCPClientCollection(unsigned long, std::vector<ClientState*, std::allocator<ClientState*> >) /work/pdns/pdns/dnsdistdist/dnsdist-tcp.cc:126 (dnsdist+0x868912) (BuildId: ad82581368352777fda41d4b4145ba8ec738044c)
    #5 std::__detail::_MakeUniq<TCPClientCollection>::__single_object std::make_unique<TCPClientCollection, unsigned long&, std::vector<ClientState*, std::allocator<ClientState*> > >(unsigned long&, std::vector<ClientState*, std::allocator<ClientState*> >&&) /usr/include/c++/13.2.1/bits/unique_ptr.h:1070 (dnsdist+0x20adef) (BuildId: ad82581368352777fda41d4b4145ba8ec738044c)
    #6 main /work/pdns/pdns/dnsdistdist/dnsdist.cc:2865 (dnsdist+0x20adef)

  Thread T3 'dnsdist/tcpClie' (tid=120470, running) created by main thread at:
    #0 pthread_create /usr/src/debug/gcc/gcc/libsanitizer/tsan/tsan_interceptors_posix.cpp:1036 (libtsan.so.2+0x44219) (BuildId: 7e8fcb9ed0a63b98f2293e37c92ac955413efd9e)
    #1 __gthread_create /usr/src/debug/gcc/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:663 (libstdc++.so.6+0xe1a29) (BuildId: 207eb738c5976dd9aac1ae0640fc4de5946b547e)
    #2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:172 (libstdc++.so.6+0xe1a29)
    #3 TCPClientCollection::addTCPClientThread(std::vector<ClientState*, std::allocator<ClientState*> >&) /work/pdns/pdns/dnsdistdist/dnsdist-tcp.cc:149 (dnsdist+0x8685a1) (BuildId: ad82581368352777fda41d4b4145ba8ec738044c)
    #4 TCPClientCollection::TCPClientCollection(unsigned long, std::vector<ClientState*, std::allocator<ClientState*> >) /work/pdns/pdns/dnsdistdist/dnsdist-tcp.cc:126 (dnsdist+0x868912) (BuildId: ad82581368352777fda41d4b4145ba8ec738044c)
    #5 std::__detail::_MakeUniq<TCPClientCollection>::__single_object std::make_unique<TCPClientCollection, unsigned long&, std::vector<ClientState*, std::allocator<ClientState*> > >(unsigned long&, std::vector<ClientState*, std::allocator<ClientState*> >&&) /usr/include/c++/13.2.1/bits/unique_ptr.h:1070 (dnsdist+0x20adef) (BuildId: ad82581368352777fda41d4b4145ba8ec738044c)
    #6 main /work/pdns/pdns/dnsdistdist/dnsdist.cc:2865 (dnsdist+0x20adef)

SUMMARY: ThreadSanitizer: data race /work/pdns/pdns/dnsdistdist/tcpiohandler.cc:106 in OpenSSLTLSConnection::OpenSSLTLSConnection(int, timeval const&, std::shared_ptr<OpenSSLFrontendContext>)
```

23 months agoMerge pull request #13166 from omoerbeek/rec-buildbot-nosnmp
Otto Moerbeek [Wed, 23 Aug 2023 13:03:43 +0000 (15:03 +0200)] 
Merge pull request #13166 from omoerbeek/rec-buildbot-nosnmp

rec/buildbot: Avoid running SNMP tests on the current buildbot setup

23 months agodnsdist: Split the DynBlocks regression tests
Remi Gacogne [Wed, 23 Aug 2023 12:40:30 +0000 (14:40 +0200)] 
dnsdist: Split the DynBlocks regression tests

On my 8 physical CPU cores machine this brings the total time for
all regression tests to 107.60s (01:47).

23 months agoAvoid running SNMP tests on the current buildbot setup 13166/head
Otto Moerbeek [Wed, 23 Aug 2023 11:23:56 +0000 (13:23 +0200)] 
Avoid running SNMP tests on the current buildbot setup

Since the change from nose to pytest, the SNMP exclusion via the environment
var NOSE_EXLUDE does no longer work.

23 months agoPrep for upcoming rec 4.7.6, 4.8.5 and 4.9.1 releases 13165/head
Otto Moerbeek [Wed, 23 Aug 2023 09:16:50 +0000 (11:16 +0200)] 
Prep for upcoming rec 4.7.6, 4.8.5 and 4.9.1 releases

23 months agoMerge pull request #13095 from rgacogne/coding-guidelines
Remi Gacogne [Wed, 23 Aug 2023 07:40:09 +0000 (09:40 +0200)] 
Merge pull request #13095 from rgacogne/coding-guidelines

Add a coding guidelines document to the public repository

23 months agoBindlexer whitespace cleanup
Fred Morcos [Tue, 22 Aug 2023 14:49:49 +0000 (16:49 +0200)] 
Bindlexer whitespace cleanup

23 months agoMerge pull request #13071 from omoerbeek/json-encoding
Otto Moerbeek [Tue, 22 Aug 2023 13:55:15 +0000 (15:55 +0200)] 
Merge pull request #13071 from omoerbeek/json-encoding

Fix code producing json

23 months agoAuth: Print the list of loaded modules next to the config.h preset 13162/head
Fred Morcos [Tue, 22 Aug 2023 09:30:29 +0000 (11:30 +0200)] 
Auth: Print the list of loaded modules next to the config.h preset

23 months agoCoding Guidelines: Apply suggestions from reviews 13095/head
Remi Gacogne [Mon, 21 Aug 2023 15:35:30 +0000 (17:35 +0200)] 
Coding Guidelines: Apply suggestions from reviews

23 months agoMerge pull request #13155 from rgacogne/channel-make-blocking-params-explicit
Remi Gacogne [Mon, 21 Aug 2023 09:26:16 +0000 (11:26 +0200)] 
Merge pull request #13155 from rgacogne/channel-make-blocking-params-explicit

channel: Make the blocking parameters of the object queue explicit

23 months agoMerge pull request #13102 from omoerbeek/rec-nodata-condition
Otto Moerbeek [Mon, 21 Aug 2023 08:25:17 +0000 (10:25 +0200)] 
Merge pull request #13102 from omoerbeek/rec-nodata-condition

rec: Do not assume the records are in a particular order when determining if an answer is NODATA

23 months agoMerge pull request #13106 from omoerbeek/rec-aggr-cache-replace
Otto Moerbeek [Mon, 21 Aug 2023 08:24:55 +0000 (10:24 +0200)] 
Merge pull request #13106 from omoerbeek/rec-aggr-cache-replace

rec: replace data in the aggressive cache if new data becomes available

23 months agoMerge pull request #13144 from fredmorcos/iputils-cleanup
Fred Morcos [Fri, 18 Aug 2023 19:57:53 +0000 (21:57 +0200)] 
Merge pull request #13144 from fredmorcos/iputils-cleanup

Consistency: Use #ifdef instead of #if in `iputils.cc`

23 months agoMerge pull request #13152 from fredmorcos/cleanup-yaml-to-json
Fred Morcos [Fri, 18 Aug 2023 19:44:16 +0000 (21:44 +0200)] 
Merge pull request #13152 from fredmorcos/cleanup-yaml-to-json

Cleanup `convert-yaml-to-json.py`

23 months agoConsistency: Use #ifdef instead of #if in iputils.cc 13144/head
Fred Morcos [Wed, 16 Aug 2023 12:14:21 +0000 (14:14 +0200)] 
Consistency: Use #ifdef instead of #if in iputils.cc

23 months agochannel: Make the blocking parameters of the object queue explicit 13155/head
Remi Gacogne [Wed, 16 Aug 2023 14:42:26 +0000 (16:42 +0200)] 
channel: Make the blocking parameters of the object queue explicit

23 months agoMerge pull request #13151 from aj-gh/fixtypos
Remi Gacogne [Fri, 18 Aug 2023 11:03:04 +0000 (13:03 +0200)] 
Merge pull request #13151 from aj-gh/fixtypos

Fix a few typos in log messages

23 months agoMerge pull request #13147 from chbruyand/dnsdist-channel-fix
Remi Gacogne [Fri, 18 Aug 2023 11:02:36 +0000 (13:02 +0200)] 
Merge pull request #13147 from chbruyand/dnsdist-channel-fix

dnsdist: DOH - make query channel receiving part blocking

23 months agodnsdist: Use the same UDP timeouts than usual in the 'advanced' tests
Remi Gacogne [Fri, 18 Aug 2023 10:55:10 +0000 (12:55 +0200)] 
dnsdist: Use the same UDP timeouts than usual in the 'advanced' tests

It makes sense to use a short timeout when we know this is going to
fail, but here we actually expect a response, and it seems that the
current timeout is sometimes too short when running with TSAN,
especially when we have a lot of tests running in parallel.

23 months agodnsdist: Set verbose for TestAdvancedGetLocalAddressOnAnyBind
Remi Gacogne [Fri, 18 Aug 2023 06:37:29 +0000 (08:37 +0200)] 
dnsdist: Set verbose for TestAdvancedGetLocalAddressOnAnyBind

23 months agodnsdist: Better handling of network events in the regression test responders
Remi Gacogne [Fri, 18 Aug 2023 06:36:54 +0000 (08:36 +0200)] 
dnsdist: Better handling of network events in the regression test responders

23 months agodnsdist: Fix a deprecation warning in the XPF regression tests
Remi Gacogne [Fri, 18 Aug 2023 06:36:19 +0000 (08:36 +0200)] 
dnsdist: Fix a deprecation warning in the XPF regression tests

23 months agodnsdist: Update the regression tests for parallel testing
Remi Gacogne [Fri, 7 Jul 2023 16:17:13 +0000 (18:17 +0200)] 
dnsdist: Update the regression tests for parallel testing

23 months agoCleanup convert-yaml-to-json.py 13152/head
Fred Morcos [Thu, 17 Aug 2023 14:59:37 +0000 (16:59 +0200)] 
Cleanup convert-yaml-to-json.py

23 months agoFix a few typos. 13151/head
Andreas Jakum [Thu, 17 Aug 2023 13:24:05 +0000 (15:24 +0200)] 
Fix a few typos.

23 months agoMerge pull request #13149 from rgacogne/ddist-fix-frontend-metrics-recvmmsg
Remi Gacogne [Thu, 17 Aug 2023 10:06:50 +0000 (12:06 +0200)] 
Merge pull request #13149 from rgacogne/ddist-fix-frontend-metrics-recvmmsg

dnsdist: Properly record self-answered UDP responses with recvmmsg

23 months agoMerge pull request #13146 from chbruyand/dnsdist-cosmetic-fixes
Remi Gacogne [Thu, 17 Aug 2023 09:37:30 +0000 (11:37 +0200)] 
Merge pull request #13146 from chbruyand/dnsdist-cosmetic-fixes

dnsdist: cosmetic compilation warning fixes

23 months agodnsdist: Properly record self-answered UDP responses with recvmmsg 13149/head
Remi Gacogne [Thu, 17 Aug 2023 09:19:15 +0000 (11:19 +0200)] 
dnsdist: Properly record self-answered UDP responses with recvmmsg

Responses sent directly from dnsdist, without reaching out to a backend
(self-generated and cache hits answers, mostly) where not properly
accounted for in frontend metrics, ring buffer entries and latency
computation when recvmmsg/sendmmsg support was enabled via
`setUDPMultipleMessagesVectorSize()`.

23 months agodnsdsit: reset IncomingTCPConnectionState's buffer with clear() instead of resize() 13146/head
Charles-Henri Bruyand [Wed, 16 Aug 2023 15:20:21 +0000 (17:20 +0200)] 
dnsdsit: reset IncomingTCPConnectionState's buffer with clear() instead of resize()

23 months agodnsdist: remove unused variables warnings
Charles-Henri Bruyand [Wed, 16 Aug 2023 14:32:22 +0000 (16:32 +0200)] 
dnsdist: remove unused variables warnings

23 months agodnsdist: make query channel receiving part blocking to avoid unnecessary CPU consumption 13147/head
Charles-Henri Bruyand [Wed, 16 Aug 2023 15:28:23 +0000 (17:28 +0200)] 
dnsdist: make query channel receiving part blocking to avoid unnecessary CPU consumption

23 months agoMerge pull request #13141 from rgacogne/auth-coverity-4
Remi Gacogne [Wed, 16 Aug 2023 13:59:21 +0000 (15:59 +0200)] 
Merge pull request #13141 from rgacogne/auth-coverity-4

tools: Address more Coverity warnings

23 months agoMerge pull request #13005 from jellekaufmann/master
Peter van Dijk [Wed, 16 Aug 2023 11:31:20 +0000 (13:31 +0200)] 
Merge pull request #13005 from jellekaufmann/master

optsize off by -4 when including DNS cookie

23 months agodnsbulktest: Fix warnings from clang-tidy 13141/head
Remi Gacogne [Wed, 16 Aug 2023 09:46:03 +0000 (11:46 +0200)] 
dnsbulktest: Fix warnings from clang-tidy

23 months agodnsdist: Try to fix a data race warning reported by TSAN 13143/head
Remi Gacogne [Wed, 16 Aug 2023 09:49:23 +0000 (11:49 +0200)] 
dnsdist: Try to fix a data race warning reported by TSAN

23 months agocalidns: Fix warnings from clang-tidy
Remi Gacogne [Wed, 16 Aug 2023 09:45:49 +0000 (11:45 +0200)] 
calidns: Fix warnings from clang-tidy

23 months agodnsgram: Fix Coverity CID 1401647
Remi Gacogne [Wed, 16 Aug 2023 09:13:09 +0000 (11:13 +0200)] 
dnsgram: Fix Coverity CID 1401647

23 months agoixfrdist: Fix Coverity CID 1504137: Uncaught exception
Remi Gacogne [Wed, 16 Aug 2023 08:15:42 +0000 (10:15 +0200)] 
ixfrdist: Fix Coverity CID 1504137: Uncaught exception

23 months agodnsbulktest: Fix Coverity CID 1401681 and 1401676
Remi Gacogne [Wed, 16 Aug 2023 08:15:07 +0000 (10:15 +0200)] 
dnsbulktest: Fix Coverity CID 1401681 and 1401676

23 months agocalidns: Fix Coverity CID 1401679: Uncaught exception
Remi Gacogne [Wed, 16 Aug 2023 08:14:25 +0000 (10:14 +0200)] 
calidns: Fix Coverity CID 1401679: Uncaught exception

23 months agoCoding Guidelines: Mention reserve()/resize() explicitly, with links
Remi Gacogne [Wed, 16 Aug 2023 07:36:21 +0000 (09:36 +0200)] 
Coding Guidelines: Mention reserve()/resize() explicitly, with links

23 months agoMerge pull request #13135 from rgacogne/ddist-gettc
Remi Gacogne [Wed, 16 Aug 2023 07:28:01 +0000 (09:28 +0200)] 
Merge pull request #13135 from rgacogne/ddist-gettc

dnsdist: Add a DNSHeader:getTC() Lua binding

23 months agoMerge pull request #13138 from Habbie/cid398388
Peter van Dijk [Tue, 15 Aug 2023 19:02:14 +0000 (21:02 +0200)] 
Merge pull request #13138 from Habbie/cid398388

coverity CID 398388: useless <0 check on unsigned value

23 months agodnsdist: Remove a second useless check, useless static casts 13138/head
Remi Gacogne [Tue, 15 Aug 2023 16:07:52 +0000 (18:07 +0200)] 
dnsdist: Remove a second useless check, useless static casts

23 months agoMerge pull request #13139 from fredmorcos/minor-cleanups
Peter van Dijk [Tue, 15 Aug 2023 16:27:24 +0000 (18:27 +0200)] 
Merge pull request #13139 from fredmorcos/minor-cleanups

Minor cleanup

23 months agogettime: fix minor compilation warnings 13139/head
Fred Morcos [Tue, 15 Aug 2023 11:22:34 +0000 (13:22 +0200)] 
gettime: fix minor compilation warnings

23 months agoMakefile whitespace
Fred Morcos [Tue, 15 Aug 2023 11:22:51 +0000 (13:22 +0200)] 
Makefile whitespace

23 months agoMerge pull request #13136 from Habbie/ixfrdist-soa-aa
Peter van Dijk [Tue, 15 Aug 2023 11:41:04 +0000 (13:41 +0200)] 
Merge pull request #13136 from Habbie/ixfrdist-soa-aa

ixfrdist: set AA=1 on SOA responses

23 months agoMerge pull request #13134 from Habbie/ixfrdist-pytest
Peter van Dijk [Tue, 15 Aug 2023 11:40:49 +0000 (13:40 +0200)] 
Merge pull request #13134 from Habbie/ixfrdist-pytest

ixfrdist: switch testing to pytest

23 months agocoverity CID 398388: useless <0 check on unsigned value
Peter van Dijk [Tue, 15 Aug 2023 08:28:46 +0000 (10:28 +0200)] 
coverity CID 398388: useless <0 check on unsigned value

23 months agodnsdist: Fix the documented return value of DNSHeader:getTC() 13135/head
Remi Gacogne [Mon, 14 Aug 2023 15:50:52 +0000 (17:50 +0200)] 
dnsdist: Fix the documented return value of DNSHeader:getTC()

23 months agoixfrdist: set AA=1 on SOA responses 13136/head
Peter van Dijk [Mon, 14 Aug 2023 14:52:27 +0000 (16:52 +0200)] 
ixfrdist: set AA=1 on SOA responses

23 months agoeqdnsmessage: adjust to type changes in dnspython
Peter van Dijk [Mon, 14 Aug 2023 15:10:10 +0000 (17:10 +0200)] 
eqdnsmessage: adjust to type changes in dnspython

23 months agoMerge pull request #13094 from rgacogne/ixfrdist-main-complexity
Remi Gacogne [Mon, 14 Aug 2023 15:08:05 +0000 (17:08 +0200)] 
Merge pull request #13094 from rgacogne/ixfrdist-main-complexity

ixfrdist: Reduce the complexity of the main function

23 months agodnsdist: Add a DNSHeader:getTC() Lua binding
Remi Gacogne [Mon, 14 Aug 2023 15:02:39 +0000 (17:02 +0200)] 
dnsdist: Add a DNSHeader:getTC() Lua binding

23 months agoixfrdist: switch testing to pytest 13134/head
Peter van Dijk [Mon, 14 Aug 2023 14:55:02 +0000 (16:55 +0200)] 
ixfrdist: switch testing to pytest

23 months agoixfrdist: after --help or --version, exit (includes var rename) 13094/head
Peter van Dijk [Mon, 14 Aug 2023 13:32:30 +0000 (15:32 +0200)] 
ixfrdist: after --help or --version, exit (includes var rename)

23 months agoMerge pull request #13114 from rgacogne/auth-coverity-3
Remi Gacogne [Mon, 14 Aug 2023 12:39:15 +0000 (14:39 +0200)] 
Merge pull request #13114 from rgacogne/auth-coverity-3

auth: Fix uninitialized scalar field warnings from Coverity

23 months agoCoding Guidelines: More suggestions from Chris Hofstaedtler (thanks!)
Remi Gacogne [Mon, 14 Aug 2023 12:38:04 +0000 (14:38 +0200)] 
Coding Guidelines: More suggestions from Chris Hofstaedtler (thanks!)

23 months agoMerge pull request #13093 from rgacogne/ixfrdist-fix-max-soa-refresh
Peter van Dijk [Mon, 14 Aug 2023 12:23:02 +0000 (14:23 +0200)] 
Merge pull request #13093 from rgacogne/ixfrdist-fix-max-soa-refresh

ixfrdist: Fix the validation of 'max-soa-refresh'

23 months agoMerge pull request #13113 from rgacogne/ddist-discovery-short-read
Remi Gacogne [Mon, 14 Aug 2023 11:23:40 +0000 (13:23 +0200)] 
Merge pull request #13113 from rgacogne/ddist-discovery-short-read

dnsdist: Properly handle short reads on backend upgrade discovery

23 months agoCoding Guidelines: Apply suggestions from review
Remi Gacogne [Mon, 14 Aug 2023 11:22:48 +0000 (13:22 +0200)] 
Coding Guidelines: Apply suggestions from review

23 months agoixfrdist: Call `getpwuid()` before going multi-threaded
Remi Gacogne [Mon, 14 Aug 2023 10:15:53 +0000 (12:15 +0200)] 
ixfrdist: Call `getpwuid()` before going multi-threaded

23 months agoauth: Fix Coverity CID 1504120: Uninitialized scalar field 13114/head
Remi Gacogne [Mon, 14 Aug 2023 10:09:40 +0000 (12:09 +0200)] 
auth: Fix Coverity CID 1504120: Uninitialized scalar field

23 months agoauth: Fix coverity CID 1030024: Uninitialized scalar field
Remi Gacogne [Mon, 14 Aug 2023 10:09:00 +0000 (12:09 +0200)] 
auth: Fix coverity CID 1030024: Uninitialized scalar field

23 months agodnsdist: Uglify the code to make the formatter happy 13113/head
Remi Gacogne [Mon, 14 Aug 2023 09:01:41 +0000 (11:01 +0200)] 
dnsdist: Uglify the code to make the formatter happy

23 months agoMerge pull request #13105 from Habbie/rec-ixfr-debugging
Peter van Dijk [Mon, 14 Aug 2023 08:58:27 +0000 (10:58 +0200)] 
Merge pull request #13105 from Habbie/rec-ixfr-debugging

(I)XFR: handle partial read of len prefix

23 months agodnsdist: Add a 'partial read' case to the backend upgrade tests
Remi Gacogne [Mon, 14 Aug 2023 08:57:38 +0000 (10:57 +0200)] 
dnsdist: Add a 'partial read' case to the backend upgrade tests

23 months agosstuff: Document that Socket::readWithTimeout() does not handle partial reads
Remi Gacogne [Mon, 14 Aug 2023 08:56:53 +0000 (10:56 +0200)] 
sstuff: Document that Socket::readWithTimeout() does not handle partial reads

23 months agodnsdist: Properly handle short reads on backend upgrade discovery
Remi Gacogne [Mon, 14 Aug 2023 08:56:21 +0000 (10:56 +0200)] 
dnsdist: Properly handle short reads on backend upgrade discovery

23 months agoMerge pull request #13111 from franklouwers/master
Peter van Dijk [Mon, 14 Aug 2023 08:23:30 +0000 (10:23 +0200)] 
Merge pull request #13111 from franklouwers/master

Document default for `webserver-loglevel`

23 months agoCoding Guidelines: Formatting of the C++ casts bullet points
Fred Morcos [Thu, 10 Aug 2023 14:57:34 +0000 (16:57 +0200)] 
Coding Guidelines: Formatting of the C++ casts bullet points

23 months agoCoding Guidelines: Some formatting of C++ keywords
Fred Morcos [Thu, 10 Aug 2023 14:57:18 +0000 (16:57 +0200)] 
Coding Guidelines: Some formatting of C++ keywords

23 months agoCoding Guidelines: More descriptive section titles
Fred Morcos [Thu, 10 Aug 2023 14:56:45 +0000 (16:56 +0200)] 
Coding Guidelines: More descriptive section titles