]>
git.ipfire.org Git - thirdparty/pdns.git/log
Peter van Dijk [Thu, 19 Sep 2024 08:47:07 +0000 (10:47 +0200)]
auth mssql CI: switch to 2022-CU12 image
https://github.com/actions/runner-images/releases/tag/ubuntu22%
2F20240915 .1 broke mssql.
https://github.com/microsoft/mssql-docker/issues/868 fits the kernel upgrade.
this commit switches from 2017-GA to 2022-CU12, which unbreaks the build
(cherry picked from commit
0b805ddebc3e14f78effa44ebf06377c593276ed )
Otto Moerbeek [Fri, 12 Jul 2024 12:58:50 +0000 (14:58 +0200)]
Merge pull request #14422 from Habbie/backport-14403-to-auth-4.7.x
auth-4.7: switch el7 builds to Oracle Linux 7
Peter van Dijk [Tue, 9 Jul 2024 08:29:55 +0000 (10:29 +0200)]
use devtoolset-8
Peter van Dijk [Tue, 9 Jul 2024 08:05:17 +0000 (10:05 +0200)]
build el-7, not centos-7
Peter van Dijk [Tue, 2 Jul 2024 09:19:31 +0000 (11:19 +0200)]
switch el7 builds to Oracle Linux 7
(cherry picked from commit
73a1b98f92c671c590540ac19d74d70499f89066 )
(cherry picked from commit
87e2e08b41de7453f144721ed232219052205651 )
Peter van Dijk [Fri, 5 Jul 2024 13:13:49 +0000 (15:13 +0200)]
Merge pull request #14424 from Habbie/backport-14405-to-auth-4.7.x
auth-4.7: dns.cc: use pdns::views::UnsignedCharView
Otto Moerbeek [Wed, 19 Jun 2024 11:10:15 +0000 (13:10 +0200)]
dns.cc: use pdns::views::UnsignedCharView
Includes minor cleanup and additions to make UnsignedCharView usable for this use case.
Supersedes #14356
Fixes
/usr/include/c++/v1/__fwd/string_view.h:22:41: warning: 'char_traits<unsigned char>' is deprecated: char_traits<T> for T not equal to char, wchar_t, char8_t, char16_t or char32_t is non-standard and is provided for a temporary period. It will be removed in LLVM 19, so please migrate off of it. [-Wdeprecated-declarations]
(cherry picked from commit
949ea9456dbe76e78aeff5f6f37f218549d1b493 )
(cherry picked from commit
c3a5649044ae49bdf0f0271744d76b948efcffc5 )
Peter van Dijk [Tue, 2 Jul 2024 10:48:38 +0000 (12:48 +0200)]
import views.hh from master
(cherry picked from commit
99bf661661e46c6ca4ee71b955fb00f5b9baa130 )
Peter van Dijk [Mon, 1 Jul 2024 11:06:00 +0000 (13:06 +0200)]
Merge pull request #14315 from romeroalx/backport-14241-to-auth-4.7.x
auth-4.7.x: Backport removal of centos-8 and centos-8-stream as build targets
romeroalx [Tue, 4 Jun 2024 09:16:18 +0000 (11:16 +0200)]
remove centos-8 and centos-8-stream as build targets
Peter van Dijk [Thu, 6 Jun 2024 14:46:11 +0000 (16:46 +0200)]
Merge pull request #14291 from romeroalx/backport-14171-to-auth-4.7.x-2
auth-4.7.x: backport of #14171 for fixing the build of images on new tags
romeroalx [Tue, 14 May 2024 15:45:08 +0000 (17:45 +0200)]
gh actions: add WF for building and pushing images when a new tag is created
romeroalx [Tue, 14 May 2024 15:43:26 +0000 (17:43 +0200)]
gh actions: add WF for building and pushing images manually
romeroalx [Tue, 14 May 2024 15:40:11 +0000 (17:40 +0200)]
gh actions: modify docker.yml for building and pushing images daily (master)
romeroalx [Tue, 14 May 2024 15:35:44 +0000 (17:35 +0200)]
gh actions: add WF for building and pushing multi-platform images on workflow_call events
Peter van Dijk [Fri, 24 May 2024 08:17:45 +0000 (10:17 +0200)]
Merge pull request #14212 from romeroalx/backport-14171-to-auth-4.7.x
auth-4.7.x: Partial backport of #14171 for fixing the build of arm64 images
romeroalx [Tue, 14 May 2024 15:26:05 +0000 (17:26 +0200)]
Adding liblua5.3-dev/libluajit-5.1-dev to dockerfiles
Peter van Dijk [Fri, 17 May 2024 12:34:16 +0000 (14:34 +0200)]
Merge pull request #14154 from romeroalx/backport-14044-to-auth-4.7.x
auth: Backport 14044 to auth-4.7.x: gh actions - replace yq snap in collect job build-and-test-all
romeroalx [Thu, 9 May 2024 14:36:59 +0000 (16:36 +0200)]
gh actions - build-and-test-all: use a ubuntu-22 runner for job collect
romeroalx [Fri, 5 Apr 2024 10:02:55 +0000 (12:02 +0200)]
gh actions - replace yq snap in collect job build-and-test-all
romeroalx [Wed, 13 Dec 2023 06:16:58 +0000 (07:16 +0100)]
Merge pull request #13568 from romeroalx/rel/auth-4.7.x-wc
GH Actions - rel/auth-4.7.x: make `build-and-test-all` and `builder` workflows reusable from other branches
romeroalx [Wed, 22 Nov 2023 13:07:38 +0000 (14:07 +0100)]
make builder workflow reusable
Alexis Romero [Thu, 16 Nov 2023 15:49:50 +0000 (16:49 +0100)]
make build-and-test-all reusable
Josh Soref [Thu, 9 Mar 2023 15:47:41 +0000 (10:47 -0500)]
Use actions/cache@v3
Josh Soref [Thu, 9 Mar 2023 15:47:03 +0000 (10:47 -0500)]
Use actions/checkout@v3
Peter van Dijk [Fri, 14 Jan 2022 11:12:09 +0000 (12:12 +0100)]
test ubuntu jammy build target
Peter van Dijk [Thu, 14 Sep 2023 06:35:05 +0000 (08:35 +0200)]
builder: drop ubuntu kinetic, it is EOL
Josh Soref [Tue, 25 Jul 2023 10:13:28 +0000 (06:13 -0400)]
Switch from deprecated ::set-output
https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Peter van Dijk [Fri, 6 Oct 2023 15:01:03 +0000 (17:01 +0200)]
Merge pull request #13333 from Habbie/backport-12961-to-auth-4.7.x
auth-4.7: Work around Red Hat 8 pooping the bed in OpenSSL's headers
Peter van Dijk [Fri, 6 Oct 2023 15:00:45 +0000 (17:00 +0200)]
Merge pull request #13334 from Habbie/backport-13005-to-auth-4.7.x
auth-4.7: Fix incorrect optsize
Remi Gacogne [Wed, 28 Jun 2023 13:23:35 +0000 (15:23 +0200)]
Work around Red Hat 8 pooping the bed in OpenSSL's headers
The openssl/kdf.h header on EL8 is invalid because someone backported
a work-in-progress feature to an older OpenSSL branch and did not
bother to backport the fixes that were added later.
Red Hat declined to fix their mess and helpfully suggested we do the
work instead in https://bugzilla.redhat.com/show_bug.cgi?id=
2215856
(cherry picked from commit
3dabf2d4a1a478fb00a232259e8043f075eb4d03 )
Jelle Kaufmann [Sun, 9 Jul 2023 05:04:12 +0000 (07:04 +0200)]
Fix incorrect optsize
(cherry picked from commit
ca250bdad16b9ac6a2789541be88bf17a653262b )
Peter van Dijk [Fri, 6 Oct 2023 13:07:34 +0000 (15:07 +0200)]
Merge pull request #13337 from Habbie/backport-12562-to-auth-4.7.x
auth-4.7: fix github actions grub issue
romeroalx [Fri, 17 Feb 2023 13:59:34 +0000 (14:59 +0100)]
Update FIXME comment in build-scripts/gh-actions-setup-inv
Co-authored-by: Remi Gacogne <github@coredump.fr>
(cherry picked from commit
03db3c76cf5b8fdf6df24180e8e5cf64f706e14d )
Alexis Romero [Fri, 17 Feb 2023 10:13:01 +0000 (11:13 +0100)]
workaround for grub error raised after apt-get dist-upgrade
(cherry picked from commit
735582e64f176c9fbca3c3fc20c162f6c94ae8cd )
Peter van Dijk [Mon, 25 Sep 2023 13:53:02 +0000 (15:53 +0200)]
Merge pull request #13273 from Habbie/backport-13194-to-auth-4.7.x
auth-4.7.x: switch from `docker-compose` to `docker compose` and stop installing docker-compose because that uninstalls runc
Peter van Dijk [Tue, 29 Aug 2023 13:07:19 +0000 (15:07 +0200)]
switch from `docker-compose` to `docker compose` and
stop installing docker-compose because that uninstalls runc
(cherry picked from commit
5bb9f0fcd0c63a8ea31bc150e29b47b301009696 )
Peter van Dijk [Mon, 25 Sep 2023 11:43:45 +0000 (13:43 +0200)]
Merge pull request #13272 from Habbie/backport-13245-to-auth-4.7.x
auth-4.7.x: smysql: stop explicity setting MYSQL_OPT_RECONNECT to 0
Peter van Dijk [Tue, 12 Sep 2023 15:09:57 +0000 (17:09 +0200)]
smysql: stop explicity setting MYSQL_OPT_RECONNECT to 0
Setting this option, even to 0, causes spurious warnings to the console
with recent libmysqlclient versions. The upstream bug
( https://bugs.mysql.com/bug.php?id=112089 )
has now been open for a month, so we're implementing a workaround.
0 was the default since at least MySQL 5.7, perhaps longer.
closes #13242
(cherry picked from commit
f1cbc20b72ab95531f0a84bab40ac6ea1610241f )
Peter van Dijk [Fri, 14 Apr 2023 08:38:34 +0000 (10:38 +0200)]
Merge pull request #12745 from mind04/auth47-loop
auth-4.7.x: calm down the communicator loop
Peter van Dijk [Fri, 14 Apr 2023 08:38:10 +0000 (10:38 +0200)]
Merge pull request #12746 from mind04/auth47-nsec-at-delegation
auth-4.7.x: Pick the right signer name when a NSEC name is also a delegation point
Peter van Dijk [Thu, 13 Apr 2023 15:23:55 +0000 (17:23 +0200)]
Merge pull request #12743 from Habbie/backport-12125-to-auth-4.7.x
auth-4.7.x: timeout handling for IXFRs as a client
Peter van Dijk [Thu, 13 Apr 2023 15:23:45 +0000 (17:23 +0200)]
Merge pull request #12744 from Habbie/backport-12127-to-auth-4.7.x
auth-4.7.x: Fix multiple-version IXFR request handling in ixfrdist
Peter van Dijk [Tue, 6 Dec 2022 14:40:51 +0000 (15:40 +0100)]
add ordername testing
Peter van Dijk [Thu, 13 Apr 2023 13:45:37 +0000 (15:45 +0200)]
Merge pull request #12742 from Habbie/backport-12260-to-auth-4.7.x
auth-4.7.x: Properly encode json string containing binary data
Peter van Dijk [Thu, 13 Apr 2023 13:45:14 +0000 (15:45 +0200)]
Merge pull request #12741 from Habbie/backport-12659-to-auth-4.7.x
auth-4.7.x: Prevent a race during the processing of SVC auto-hints
Kees Monshouwer [Thu, 13 Apr 2023 07:32:16 +0000 (09:32 +0200)]
make getCommonLabels() root aware
Kees Monshouwer [Wed, 12 Apr 2023 22:50:08 +0000 (00:50 +0200)]
auth: add nsec at delegation point test
Kees Monshouwer [Wed, 12 Apr 2023 22:49:24 +0000 (00:49 +0200)]
auth: fix nsec at delegation point
Kees Monshouwer [Wed, 5 Apr 2023 07:52:09 +0000 (09:52 +0200)]
auth: calm down the communicator loop
HÃ¥kan Lindqvist [Mon, 24 Oct 2022 21:00:24 +0000 (21:00 +0000)]
Add ixfrdist tests for multi-version IXFR
(cherry picked from commit
de934ccdeb9b347e1c70901db4157b6b064a33bd )
HÃ¥kan Lindqvist [Mon, 24 Oct 2022 17:26:54 +0000 (17:26 +0000)]
Fix generation of multiple-version updates
See https://github.com/PowerDNS/pdns/issues/6880#issuecomment-
420980817
(cherry picked from commit
f821ff19dcd4ad1bb4e88d40913e40201d81c118 )
Otto Moerbeek [Thu, 3 Nov 2022 08:50:12 +0000 (09:50 +0100)]
Better wording in comment
Co-authored-by: Peter van Dijk <peter.van.dijk@powerdns.com>
(cherry picked from commit
240460d77be35a6a1c1e6fa22364efe19dc3ee84 )
Otto Moerbeek [Mon, 24 Oct 2022 14:25:59 +0000 (16:25 +0200)]
Timout handling for ixfrs as a client.
One complicating factor is that this is shared code, but auth and
rec do not agree on the definiton of the timeout value: auth states
it is a maximum idle time, while rec state it is the total xfr time.
While both apporaches make sense and in the end we would like to
enforce both, we now go for a more simple solution that respects
auth or rec behaviour based on a flag.
(cherry picked from commit
fee334ae0f5083d47f9adc207d5a1a6d36ebc2ac )
Otto Moerbeek [Fri, 2 Dec 2022 08:16:55 +0000 (09:16 +0100)]
Properly encode json string containing binary data
The existing code assumes the strings are alreayd valid UTF8 and contain potential out-of-bound accesses.
Also urlEncode path in log lines, as it trips pytest.xml:
Running tests...
$ 'pytest' '--junitxml=pytest.xml' '-v'
==STDOUT===
==STDERRR===
File "/home/otto/pdns/regression-tests.api/runtests.py", line 304, in <module>
print(serverproc.stderr.read())
File "/usr/lib/python3.9/codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xeb in position 4304: invalid continuation byte
There might be more places where this is needed.
(cherry picked from commit
1478a2c8713535e4cbd1943e2526e3527d58a19b )
Remi Gacogne [Thu, 16 Mar 2023 12:43:00 +0000 (13:43 +0100)]
auth: Prevent a race during the processing of SVC auto-hints
When `svc-autohints` is enabled, the content of SVCB and HTTPS records
is modified in `PacketHandler::doAdditionalProcessing()` to expand
the IPv4 and IPv6 with their actual values.
This causes an issue because the content of these records might be
shared between threads, via the record cache, and one thread could
be trying to read from the internal `std::set` while a second thread
is altering it, leading to a data race and possibly to memory corruption
and a crash.
This is correctly detected by TSAN:
```
WARNING: ThreadSanitizer: data race (pid=102795)
Write of size 8 at 0x7b3400010350 by thread T33:
#0 operator delete(void*) <null> (pdns_server+0x211b7c) (BuildId:
384adc19a67695435bd5e89d0a77f562561f4593 )
#1 std::__new_allocator<std::_Rb_tree_node<SvcParam>>::deallocate(std::_Rb_tree_node<SvcParam>*, unsigned long) /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/new_allocator.h:158:2 (pdns_server+0x33fc78) (BuildId:
384adc19a67695435bd5e89d0a77f562561f4593 )
#2 std::allocator_traits<std::allocator<std::_Rb_tree_node<SvcParam>>>::deallocate(std::allocator<std::_Rb_tree_node<SvcParam>>&, std::_Rb_tree_node<SvcParam>*, unsigned long) /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/alloc_traits.h:496:13 (pdns_server+0x33fc78)
#3 std::_Rb_tree<SvcParam, SvcParam, std::_Identity<SvcParam>, std::less<SvcParam>, std::allocator<SvcParam>>::_M_put_node(std::_Rb_tree_node<SvcParam>*) /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/stl_tree.h:565:9 (pdns_server+0x33fc78)
#4 std::_Rb_tree<SvcParam, SvcParam, std::_Identity<SvcParam>, std::less<SvcParam>, std::allocator<SvcParam>>::_M_drop_node(std::_Rb_tree_node<SvcParam>*) /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/stl_tree.h:632:2 (pdns_server+0x33fc78)
#5 std::_Rb_tree<SvcParam, SvcParam, std::_Identity<SvcParam>, std::less<SvcParam>, std::allocator<SvcParam>>::_M_erase_aux(std::_Rb_tree_const_iterator<SvcParam>) /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/stl_tree.h:2495:7 (pdns_server+0x33fc78)
#6 std::_Rb_tree<SvcParam, SvcParam, std::_Identity<SvcParam>, std::less<SvcParam>, std::allocator<SvcParam>>::erase[abi:cxx11](std::_Rb_tree_const_iterator<SvcParam>) /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/stl_tree.h:1197:2 (pdns_server+0x33fc78)
#7 std::set<SvcParam, std::less<SvcParam>, std::allocator<SvcParam>>::erase[abi:cxx11](std::_Rb_tree_const_iterator<SvcParam>) /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/stl_set.h:655:21 (pdns_server+0x33fc78)
#8 SVCBBaseRecordContent::setHints(SvcParam::SvcParamKey const&, std::vector<ComboAddress, std::allocator<ComboAddress>> const&) /work/pdns/pdns/dnsrecords.cc:768:14 (pdns_server+0x33fc78)
#9 PacketHandler::doAdditionalProcessing(DNSPacket&, std::unique_ptr<DNSPacket, std::default_delete<DNSPacket>>&) /work/pdns/pdns/packethandler.cc:565:16 (pdns_server+0x4ed330) (BuildId:
384adc19a67695435bd5e89d0a77f562561f4593 )
#10 PacketHandler::doQuestion(DNSPacket&) /work/pdns/pdns/packethandler.cc:1794:5 (pdns_server+0x4f79b4) (BuildId:
384adc19a67695435bd5e89d0a77f562561f4593 )
#11 PacketHandler::question(DNSPacket&) /work/pdns/pdns/packethandler.cc:1175:10 (pdns_server+0x4f649a) (BuildId:
384adc19a67695435bd5e89d0a77f562561f4593 )
#12 MultiThreadDistributor<DNSPacket, DNSPacket, PacketHandler>::distribute(int) /work/pdns/pdns/./distributor.hh:220:14 (pdns_server+0x260f70) (BuildId:
384adc19a67695435bd5e89d0a77f562561f4593 )
#13 MultiThreadDistributor<DNSPacket, DNSPacket, PacketHandler>::MultiThreadDistributor(int)::'lambda'()::operator()() const /work/pdns/pdns/./distributor.hh:179:25 (pdns_server+0x260b31) (BuildId:
384adc19a67695435bd5e89d0a77f562561f4593 )
#14 void std::__invoke_impl<void, MultiThreadDistributor<DNSPacket, DNSPacket, PacketHandler>::MultiThreadDistributor(int)::'lambda'()>(std::__invoke_other, MultiThreadDistributor<DNSPacket, DNSPacket, PacketHandler>::MultiThreadDistributor(int)::'lambda'()&&) /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/invoke.h:61:14 (pdns_server+0x260b31)
#15 std::__invoke_result<MultiThreadDistributor<DNSPacket, DNSPacket, PacketHandler>::MultiThreadDistributor(int)::'lambda'()>::type std::__invoke<MultiThreadDistributor<DNSPacket, DNSPacket, PacketHandler>::MultiThreadDistributor(int)::'lambda'()>(MultiThreadDistributor<DNSPacket, DNSPacket, PacketHandler>::MultiThreadDistributor(int)::'lambda'()&&) /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/invoke.h:96:14 (pdns_server+0x260b31)
#16 void std::thread::_Invoker<std::tuple<MultiThreadDistributor<DNSPacket, DNSPacket, PacketHandler>::MultiThreadDistributor(int)::'lambda'()>>::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/std_thread.h:258:13 (pdns_server+0x260b31)
#17 std::thread::_Invoker<std::tuple<MultiThreadDistributor<DNSPacket, DNSPacket, PacketHandler>::MultiThreadDistributor(int)::'lambda'()>>::operator()() /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/std_thread.h:265:11 (pdns_server+0x260b31)
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<MultiThreadDistributor<DNSPacket, DNSPacket, PacketHandler>::MultiThreadDistributor(int)::'lambda'()>>>::_M_run() /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/std_thread.h:210:13 (pdns_server+0x260b31)
#19 execute_native_thread_routine /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:82:18 (libstdc++.so.6+0xd72c2) (BuildId:
6fe66a2d539a78c993bd2d377e00fad389220963 )
Previous read of size 2 at 0x7b3400010350 by thread T39:
#0 SvcParam::getKey() const /work/pdns/pdns/./svc-records.hh:80:12 (pdns_server+0x3721f3) (BuildId:
384adc19a67695435bd5e89d0a77f562561f4593 )
#1 GenericDNSPacketWriter<std::vector<unsigned char, std::allocator<unsigned char>>>::xfrSvcParamKeyVals(std::set<SvcParam, std::less<SvcParam>, std::allocator<SvcParam>> const&) /work/pdns/pdns/dnswriter.cc:404:23 (pdns_server+0x3721f3)
#2 void HTTPSRecordContent::xfrPacket<GenericDNSPacketWriter<std::vector<unsigned char, std::allocator<unsigned char>>>>(GenericDNSPacketWriter<std::vector<unsigned char, std::allocator<unsigned char>>>&, bool) /work/pdns/pdns/dnsrecords.cc:348:1 (pdns_server+0x3349bd) (BuildId:
384adc19a67695435bd5e89d0a77f562561f4593 )
#3 HTTPSRecordContent::toPacket(GenericDNSPacketWriter<std::vector<unsigned char, std::allocator<unsigned char>>>&) /work/pdns/pdns/dnsrecords.cc:348:1 (pdns_server+0x3349bd)
#4 DNSRecordContent::serialize[abi:cxx11](DNSName const&, bool, bool) /work/pdns/pdns/./dnsparser.hh:215:11 (pdns_server+0x311140) (BuildId:
384adc19a67695435bd5e89d0a77f562561f4593 )
#5 DNSPacket::addRecord(DNSZoneRecord&&) /work/pdns/pdns/dnspacket.cc:177:68 (pdns_server+0x2fa894) (BuildId:
384adc19a67695435bd5e89d0a77f562561f4593 )
#6 PacketHandler::doAdditionalProcessing(DNSPacket&, std::unique_ptr<DNSPacket, std::default_delete<DNSPacket>>&) /work/pdns/pdns/packethandler.cc:542:8 (pdns_server+0x4eccf2) (BuildId:
384adc19a67695435bd5e89d0a77f562561f4593 )
#7 PacketHandler::doQuestion(DNSPacket&) /work/pdns/pdns/packethandler.cc:1794:5 (pdns_server+0x4f79b4) (BuildId:
384adc19a67695435bd5e89d0a77f562561f4593 )
#8 PacketHandler::question(DNSPacket&) /work/pdns/pdns/packethandler.cc:1175:10 (pdns_server+0x4f649a) (BuildId:
384adc19a67695435bd5e89d0a77f562561f4593 )
#9 MultiThreadDistributor<DNSPacket, DNSPacket, PacketHandler>::distribute(int) /work/pdns/pdns/./distributor.hh:220:14 (pdns_server+0x260f70) (BuildId:
384adc19a67695435bd5e89d0a77f562561f4593 )
#10 MultiThreadDistributor<DNSPacket, DNSPacket, PacketHandler>::MultiThreadDistributor(int)::'lambda'()::operator()() const /work/pdns/pdns/./distributor.hh:179:25 (pdns_server+0x260b31) (BuildId:
384adc19a67695435bd5e89d0a77f562561f4593 )
#11 void std::__invoke_impl<void, MultiThreadDistributor<DNSPacket, DNSPacket, PacketHandler>::MultiThreadDistributor(int)::'lambda'()>(std::__invoke_other, MultiThreadDistributor<DNSPacket, DNSPacket, PacketHandler>::MultiThreadDistributor(int)::'lambda'()&&) /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/invoke.h:61:14 (pdns_server+0x260b31)
#12 std::__invoke_result<MultiThreadDistributor<DNSPacket, DNSPacket, PacketHandler>::MultiThreadDistributor(int)::'lambda'()>::type std::__invoke<MultiThreadDistributor<DNSPacket, DNSPacket, PacketHandler>::MultiThreadDistributor(int)::'lambda'()>(MultiThreadDistributor<DNSPacket, DNSPacket, PacketHandler>::MultiThreadDistributor(int)::'lambda'()&&) /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/invoke.h:96:14 (pdns_server+0x260b31)
#13 void std::thread::_Invoker<std::tuple<MultiThreadDistributor<DNSPacket, DNSPacket, PacketHandler>::MultiThreadDistributor(int)::'lambda'()>>::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/std_thread.h:258:13 (pdns_server+0x260b31)
#14 std::thread::_Invoker<std::tuple<MultiThreadDistributor<DNSPacket, DNSPacket, PacketHandler>::MultiThreadDistributor(int)::'lambda'()>>::operator()() /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/std_thread.h:265:11 (pdns_server+0x260b31)
#15 std::thread::_State_impl<std::thread::_Invoker<std::tuple<MultiThreadDistributor<DNSPacket, DNSPacket, PacketHandler>::MultiThreadDistributor(int)::'lambda'()>>>::_M_run() /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/std_thread.h:210:13 (pdns_server+0x260b31)
#16 execute_native_thread_routine /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:82:18 (libstdc++.so.6+0xd72c2) (BuildId:
6fe66a2d539a78c993bd2d377e00fad389220963 )
Thread T33 'pdns/distributo' (tid=102833, running) created by thread T17 at:
#0 pthread_create <null> (pdns_server+0x1904e6) (BuildId:
384adc19a67695435bd5e89d0a77f562561f4593 )
#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:35 (libstdc++.so.6+0xd73a9) (BuildId:
6fe66a2d539a78c993bd2d377e00fad389220963 )
#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:147:37 (libstdc++.so.6+0xd73a9)
#3 Distributor<DNSPacket, DNSPacket, PacketHandler>::Create(int) /work/pdns/pdns/./distributor.hh:134:18 (pdns_server+0x256d23) (BuildId:
384adc19a67695435bd5e89d0a77f562561f4593 )
#4 qthread(unsigned int) /work/pdns/pdns/auth-main.cc:536:25 (pdns_server+0x256d23)
#5 void std::__invoke_impl<void, void (*)(unsigned int), unsigned int>(std::__invoke_other, void (*&&)(unsigned int), unsigned int&&) /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/invoke.h:61:14 (pdns_server+0x2635f0) (BuildId:
384adc19a67695435bd5e89d0a77f562561f4593 )
#6 std::__invoke_result<void (*)(unsigned int), unsigned int>::type std::__invoke<void (*)(unsigned int), unsigned int>(void (*&&)(unsigned int), unsigned int&&) /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/invoke.h:96:14 (pdns_server+0x2635f0)
#7 void std::thread::_Invoker<std::tuple<void (*)(unsigned int), unsigned int>>::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/std_thread.h:258:13 (pdns_server+0x2635f0)
#8 std::thread::_Invoker<std::tuple<void (*)(unsigned int), unsigned int>>::operator()() /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/std_thread.h:265:11 (pdns_server+0x2635f0)
#9 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(unsigned int), unsigned int>>>::_M_run() /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/std_thread.h:210:13 (pdns_server+0x2635f0)
#10 execute_native_thread_routine /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:82:18 (libstdc++.so.6+0xd72c2) (BuildId:
6fe66a2d539a78c993bd2d377e00fad389220963 )
Thread T39 'pdns/distributo' (tid=102837, running) created by thread T19 at:
#0 pthread_create <null> (pdns_server+0x1904e6) (BuildId:
384adc19a67695435bd5e89d0a77f562561f4593 )
#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:35 (libstdc++.so.6+0xd73a9) (BuildId:
6fe66a2d539a78c993bd2d377e00fad389220963 )
#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:147:37 (libstdc++.so.6+0xd73a9)
#3 Distributor<DNSPacket, DNSPacket, PacketHandler>::Create(int) /work/pdns/pdns/./distributor.hh:134:18 (pdns_server+0x256d23) (BuildId:
384adc19a67695435bd5e89d0a77f562561f4593 )
#4 qthread(unsigned int) /work/pdns/pdns/auth-main.cc:536:25 (pdns_server+0x256d23)
#5 void std::__invoke_impl<void, void (*)(unsigned int), unsigned int>(std::__invoke_other, void (*&&)(unsigned int), unsigned int&&) /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/invoke.h:61:14 (pdns_server+0x2635f0) (BuildId:
384adc19a67695435bd5e89d0a77f562561f4593 )
#6 std::__invoke_result<void (*)(unsigned int), unsigned int>::type std::__invoke<void (*)(unsigned int), unsigned int>(void (*&&)(unsigned int), unsigned int&&) /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/invoke.h:96:14 (pdns_server+0x2635f0)
#7 void std::thread::_Invoker<std::tuple<void (*)(unsigned int), unsigned int>>::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/std_thread.h:258:13 (pdns_server+0x2635f0)
#8 std::thread::_Invoker<std::tuple<void (*)(unsigned int), unsigned int>>::operator()() /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/std_thread.h:265:11 (pdns_server+0x2635f0)
#9 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(unsigned int), unsigned int>>>::_M_run() /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/std_thread.h:210:13 (pdns_server+0x2635f0)
#10 execute_native_thread_routine /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:82:18 (libstdc++.so.6+0xd72c2) (BuildId:
6fe66a2d539a78c993bd2d377e00fad389220963 )
SUMMARY: ThreadSanitizer: data race (/work/pdns-rgacogne/pdns/pdns_server+0x211b7c) (BuildId:
384adc19a67695435bd5e89d0a77f562561f4593 ) in operator delete(void*)
```
To prevent this issue, this commit wraps the internal `std::set` in a
mutex. In theory this will cause a performance impact, but in practice
I did not find it to be noticeable.
If we ever do, a different solution would be to duplicate the content
of the SVCB/HTTPS records before modifying them.
(cherry picked from commit
18d5647a6fcaa254632eaed334637b3e58156e49 )
Peter van Dijk [Thu, 13 Apr 2023 10:18:08 +0000 (12:18 +0200)]
Merge pull request #12676 from mind04/auth47-catalog-members
auth-4.7.x: pdnsutil, implement list-member-zones
Peter van Dijk [Thu, 13 Apr 2023 10:17:25 +0000 (12:17 +0200)]
Merge pull request #12675 from mind04/auth47-lmdb-delete
auth-4.7.x backport lmdb delete fixes and tests
Kees Monshouwer [Wed, 22 Mar 2023 21:05:03 +0000 (22:05 +0100)]
auth, lmdb, backport delete fixes
Kees Monshouwer [Tue, 13 Dec 2022 22:25:27 +0000 (23:25 +0100)]
auth: lmdb, fix TSIG key removal
Peter van Dijk [Wed, 8 Mar 2023 13:25:55 +0000 (14:25 +0100)]
update completions
Kees Monshouwer [Thu, 22 Dec 2022 20:21:20 +0000 (21:21 +0100)]
auth: pdnsutil, implement list-member-zones
Peter van Dijk [Wed, 8 Mar 2023 13:05:18 +0000 (14:05 +0100)]
Merge pull request #12616 from romeroalx/update-gh-actions-auth-to-4.7
Backport GH Actions updates from master to auth-4.7.x
dependabot[bot] [Wed, 19 Oct 2022 14:28:07 +0000 (14:28 +0000)]
build(deps): bump actions/setup-python from 2 to 4
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2 to 4.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v2...v4)
---
updated-dependencies:
- dependency-name: actions/setup-python
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Peter van Dijk [Mon, 6 Feb 2023 10:41:18 +0000 (11:41 +0100)]
codeql workflow: set ubuntu mirror
Peter van Dijk [Fri, 13 Jan 2023 10:06:14 +0000 (11:06 +0100)]
build-and-test-all: add functionality to quickly switch ubuntu mirrors
Josh Soref [Tue, 6 Dec 2022 17:39:08 +0000 (12:39 -0500)]
Switch from set-output tot GITHUB_OUTPUT
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
dependabot[bot] [Wed, 19 Oct 2022 14:28:01 +0000 (14:28 +0000)]
build(deps): bump actions/upload-artifact from 1 to 3
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 1 to 3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v1...v3)
---
updated-dependencies:
- dependency-name: actions/upload-artifact
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] [Wed, 19 Oct 2022 14:27:58 +0000 (14:27 +0000)]
build(deps): bump actions/download-artifact from 2 to 3
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v2...v3)
---
updated-dependencies:
- dependency-name: actions/download-artifact
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] [Wed, 19 Oct 2022 14:44:55 +0000 (14:44 +0000)]
build(deps): bump actions/checkout from 2.3.4 to 3.1.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 2.3.4 to 3.1.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2.3.4...v3.1.0)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] [Wed, 19 Oct 2022 14:28:05 +0000 (14:28 +0000)]
build(deps): bump actions/cache from 2 to 3.0.11
Bumps [actions/cache](https://github.com/actions/cache) from 2 to 3.0.11.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v2...v3.0.11)
---
updated-dependencies:
- dependency-name: actions/cache
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Alexis Romero [Thu, 23 Feb 2023 10:03:30 +0000 (11:03 +0100)]
Avoid Microsoft repo for ODBC. Step 1: codeql allow apt downgrades
Alexis Romero [Wed, 22 Feb 2023 10:48:28 +0000 (11:48 +0100)]
Avoid Microsoft repo for ODBC. Step 1: allow apt downgrades
Alexis Romero [Thu, 16 Feb 2023 05:55:48 +0000 (06:55 +0100)]
removed ldap and geoip-mmdb tests from circleci
Alexis Romero [Thu, 16 Feb 2023 05:54:23 +0000 (06:54 +0100)]
gh actions: simplified collector job in build-and-test-all.yml
Alexis Romero [Thu, 16 Feb 2023 05:52:49 +0000 (06:52 +0100)]
gh actions: added ldap and geoip-mmdb tests
Alexis Romero [Thu, 9 Feb 2023 11:16:04 +0000 (12:16 +0100)]
GH actions: added auth odbc{sqlitle3, mssql} tests. Removed from CircleCI
Remi Gacogne [Thu, 1 Dec 2022 13:34:19 +0000 (14:34 +0100)]
Restrict permissions for GITHUB_TOKEN in our workflows
Added using https://github.com/step-security/secure-workflows
For more information see:
- https://github.com/ossf/scorecard/blob/
d8fefc9b246db3600c777e9d60d441d7c386ce1d /docs/checks.md#token-permissions
- https://github.blog/changelog/2021-04-20-github-actions-control-permissions-for-github_token/
Peter van Dijk [Tue, 21 Feb 2023 15:11:28 +0000 (16:11 +0100)]
Merge pull request #12429 from Habbie/auth47-no-leak-hostlist
auth 4.7 minicurl: stop leaking hostlist memory
Peter van Dijk [Thu, 9 Feb 2023 15:46:22 +0000 (16:46 +0100)]
Merge pull request #12521 from Habbie/auth-4.7-ixfrdist-backports
auth-4.7.x: ixfrdist fixes and improvements
Remi Gacogne [Mon, 6 Feb 2023 09:07:04 +0000 (10:07 +0100)]
ixfrdist: Make sure that our metrics are properly initialized
Before C++20 std::atomic variables are not guaranteed to be initialized,
even though it looks like compilers are actually doing the initialization
even in C++17.
Reported by Coverity as CID
1504405 .
(cherry picked from commit
de9fbd402dc05263e8ddb2e6ffc09b5cf01bef1e )
Peter van Dijk [Thu, 2 Feb 2023 09:17:20 +0000 (10:17 +0100)]
use counters for things that count up over time
(cherry picked from commit
b0069a9b63157e05e36f3fbf788b22a1c43e65df )
Peter van Dijk [Tue, 31 Jan 2023 12:40:10 +0000 (13:40 +0100)]
ixfrdist /metrics: add CPU and memory stats, note unit for uptime
(cherry picked from commit
4be206f56769495b1090f7e39d111560b77494fc )
Peter van Dijk [Tue, 31 Jan 2023 12:13:53 +0000 (13:13 +0100)]
ixfrdist /metrics: add FD usage
(cherry picked from commit
7bba0dae6d97b248e206e7dbda3813432a77b06d )
Remi Gacogne [Thu, 2 Feb 2023 08:56:27 +0000 (09:56 +0100)]
ixfrdist: Remove unused counters, simplify prometheus types handling
(cherry picked from commit
54f93cb8542aa46a9a9669fa623f5a6d8a6a5857 )
Peter van Dijk [Tue, 31 Jan 2023 09:48:27 +0000 (10:48 +0100)]
ixfrdist /metrics: add unknown domain in-query counter
(cherry picked from commit
ca0831d9a14c409c631b0ee49d6fdba6b2239b6f )
Peter van Dijk [Mon, 30 Jan 2023 17:42:46 +0000 (18:42 +0100)]
ixfrdist /metrics: quote label values; suffix counters with _total; remove full totals; add promtool test
(cherry picked from commit
7c05901b1d22693a29cced84f9c3b24f5dc4a0ec )
Peter van Dijk [Wed, 25 Jan 2023 12:03:00 +0000 (13:03 +0100)]
Merge pull request #12458 from Habbie/backport-12453-to-auth-4.7.x
auth-4.7: lock.hh: include <stdexcept>
Peter van Dijk [Mon, 23 Jan 2023 13:54:09 +0000 (14:54 +0100)]
lock.hh: include <stdexcept>
(cherry picked from commit
d8b4ea24dc5dbe7c53c24bfffba24bcae7f58e02 )
Peter van Dijk [Tue, 17 Jan 2023 18:10:04 +0000 (19:10 +0100)]
minicurl: stop leaking hostlist memory
Peter van Dijk [Thu, 8 Dec 2022 13:11:56 +0000 (14:11 +0100)]
Merge pull request #12299 from Habbie/backport-12282-to-auth-4.7.x
auth-4.7 lmdb: make outgoing notifications work
Peter van Dijk [Tue, 6 Dec 2022 17:56:58 +0000 (18:56 +0100)]
lmdb tests: actually use lmdb config
(cherry picked from commit
f7d7e059f69b1330248ecd904c215630a77f038b )
Peter van Dijk [Tue, 6 Dec 2022 16:42:27 +0000 (17:42 +0100)]
auth lmdb: make outgoing notifications work
(cherry picked from commit
bbd6102241d18d8bce551b5e19d0c315368913b9 )
Peter van Dijk [Thu, 8 Dec 2022 08:04:55 +0000 (09:04 +0100)]
Merge pull request #12291 from Habbie/backport-12285-to-auth-4.7.x
auth-4.7 api: do not create SOA and NS records for consumer zones
Peter van Dijk [Thu, 8 Dec 2022 08:04:11 +0000 (09:04 +0100)]
Merge pull request #12296 from Habbie/backport-12257-to-auth-4.7.x
auth 4.7 API: slightly clearer message when a backend cannot create domains
Peter van Dijk [Thu, 8 Dec 2022 08:03:44 +0000 (09:03 +0100)]
Merge pull request #12294 from Habbie/backport-12132-to-auth-4.7.x
auth-4.7: take into account default urlcheck timeout is 2 seconds for Lua records tests
Peter van Dijk [Thu, 1 Dec 2022 18:51:40 +0000 (19:51 +0100)]
auth API: slightly clearer message when a backend cannot create domains
(cherry picked from commit
b53ab9d6ef126f3be04160e36cbc381e27d85e79 )
Otto Moerbeek [Tue, 25 Oct 2022 13:36:31 +0000 (15:36 +0200)]
This test assumes the health check timeout is 1 second, while it is 2 seconds by default.
Adapt tests to take that into account, which resolves the occasional failure as tested locally.
(cherry picked from commit
2abc153929e22c4abad73f1eba9395e00f18febd )
Kees Monshouwer [Tue, 6 Dec 2022 17:34:09 +0000 (18:34 +0100)]
auth: api, add create/delete consumer zone test
(cherry picked from commit
2f27a15fb72cdbef5c4f5af8f0d089722ee2253a )
Kees Monshouwer [Tue, 6 Dec 2022 17:29:16 +0000 (18:29 +0100)]
auth: api, do not create SOA and NS records for consumer zones
(cherry picked from commit
1f1674ed5ed14af10a6ce38b9956ffdbef6fcee8 )