ISC Open Source Projects issues
https://gitlab.isc.org/groups/isc-projects/-/issues
2021-05-04T10:55:35Z
https://gitlab.isc.org/isc-projects/kea/-/issues/1808
hammer: add freeradius-client version for fedora 33
2021-05-04T10:55:35Z
Michal Nowikowski
hammer: add freeradius-client version for fedora 33
kea1.9.7
https://gitlab.isc.org/isc-projects/bind9/-/issues/2551
Comparison is always true due to limited range of data type error in named-jo...
2021-03-08T11:01:40Z
Michal Nowak
Comparison is always true due to limited range of data type error in named-journalprint.c on ARM64
`stress:authoritative:fedora:33:arm64` [job](https://gitlab.isc.org/isc-projects/bind9/-/jobs/1549698) fails to build BIND on ARM64 on add81d64809d2b3cf27fa6e964d3df323fa3dbda (isc-projects/bind9!4720) with:
```
named-journalprint.c: In ...
`stress:authoritative:fedora:33:arm64` [job](https://gitlab.isc.org/isc-projects/bind9/-/jobs/1549698) fails to build BIND on ARM64 on add81d64809d2b3cf27fa6e964d3df323fa3dbda (isc-projects/bind9!4720) with:
```
named-journalprint.c: In function 'main':
named-journalprint.c:75:57: error: comparison is always true due to limited range of data type [-Werror=type-limits]
75 | while ((ch = isc_commandline_parse(argc, argv, "dux")) != -1) {
| ^~
```
The code was added in fb2d0e2897e10e71627bf895aeb6b8664ee54ad2.
This blocks stress testing on `main` and thus the March release.
March 2021 (9.11.29, 9.11.29-S1, 9.16.13, 9.16.13-S1, 9.17.11)
https://gitlab.isc.org/isc-projects/kea/-/issues/1809
distcheck fails on Debian 9
2021-05-31T06:37:48Z
Michal Nowikowski
distcheck fails on Debian 9
```
11:03:14 [ RUN ] HttpsClientTest.clientRequestLateStartQueue
11:03:24 ../../../../../../src/lib/http/tests/tls_client_unittests.cc:234: Failure
11:03:24 Failed
11:03:24 Timeout occurred while running the test!
11:03:24 [ F...
```
11:03:14 [ RUN ] HttpsClientTest.clientRequestLateStartQueue
11:03:24 ../../../../../../src/lib/http/tests/tls_client_unittests.cc:234: Failure
11:03:24 Failed
11:03:24 Timeout occurred while running the test!
11:03:24 [ FAILED ] HttpsClientTest.clientRequestLateStartQueue (10001 ms)
11:03:24 [ RUN ] HttpsClientTest.clientRequestLateStartQueueMultiThreading
11:03:36 ../../../../../../src/lib/http/tests/tls_client_unittests.cc:234: Failure
11:03:36 Failed
11:03:36 Timeout occurred while running the test!
11:03:36 [ FAILED ] HttpsClientTest.clientRequestLateStartQueueMultiThreading (10000 ms)
...
11:03:36 [==========] 204 tests from 21 test cases ran. (31039 ms total)
11:03:36 [ PASSED ] 202 tests.
11:03:36 [ FAILED ] 2 tests, listed below:
11:03:36 [ FAILED ] HttpsClientTest.clientRequestLateStartQueue
11:03:36 [ FAILED ] HttpsClientTest.clientRequestLateStartQueueMultiThreading
11:03:36
11:03:36 2 FAILED TESTS
11:03:36 YOU HAVE 2 DISABLED TESTS
11:03:36
11:03:36 FAIL: libhttp_unittests
11:03:36 ======================================
11:03:36 1 of 1 test failed
```
more in: https://jenkins.aws.isc.org/view/Kea-manual/job/kea-manual/job/distcheck/8/execution/node/109/log/
kea1.9.9
Michal Nowikowski
Michal Nowikowski
https://gitlab.isc.org/isc-projects/bind9/-/issues/2552
Comparison between signed and unsigned integer expressions in http.c on ARM7
2021-03-08T11:00:40Z
Michal Nowak
Comparison between signed and unsigned integer expressions in http.c on ARM7
I get the following warning when building `main` on 32-bit ARM7 with GCC 6.3.0:
```
netmgr/http.c: In function ‘https_readcb’:
netmgr/http.c:707:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
i...
I get the following warning when building `main` on 32-bit ARM7 with GCC 6.3.0:
```
netmgr/http.c: In function ‘https_readcb’:
netmgr/http.c:707:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (readlen < region->length) {
^
```
March 2021 (9.11.29, 9.11.29-S1, 9.16.13, 9.16.13-S1, 9.17.11)
https://gitlab.isc.org/isc-projects/kea/-/issues/1810
kea behaviour when 'cache-threshold' and 'cache-max-age' are used together
2022-11-02T15:10:18Z
Wlodzimierz Wencel
kea behaviour when 'cache-threshold' and 'cache-max-age' are used together
in section `8.2.29. Lease Caching` of ARM both `cache-threshold` and `cache-max-age` are described. But there is no statement that user should not use both of those parameters on the same level (e.g subent). In practice Kea will accept c...
in section `8.2.29. Lease Caching` of ARM both `cache-threshold` and `cache-max-age` are described. But there is no statement that user should not use both of those parameters on the same level (e.g subent). In practice Kea will accept config whit both of those parameters and the one that will generate shorter cache time will be used.
Ways to solve this:
* kea should return configuration error when both of those parameters are used
* update documentation
backlog
https://gitlab.isc.org/isc-projects/bind9/-/issues/2553
[ISC-support #18082] "forwarders" IP addresses list for forward zone configur...
2024-02-14T14:29:11Z
Cathy Almond
[ISC-support #18082] "forwarders" IP addresses list for forward zone configuration syntax
This is a feature request submitted by a customer ([Support ticket #18082](https://support.isc.org/Ticket/Display.html?id=18082))
On the face of it, it's a reasonable request - stated thus:
```
We have some resolvers that contain many ...
This is a feature request submitted by a customer ([Support ticket #18082](https://support.isc.org/Ticket/Display.html?id=18082))
On the face of it, it's a reasonable request - stated thus:
```
We have some resolvers that contain many forward-only zones (because we have a lot of different networks with limited connectivity).
For a secondary zone, I can specify a pre-defined primaries list by name, for example:
primaries "acme-primaries" { 10.1.1.1; 10.2.2.2; }
zone "acme.example.com" {
type secondary;
file "secondary/acme.example.com";
primaries { "acme-primaries"; };
}
zone "acme.example.org" {
type secondary;
file "secondary/acme.example.org";
primaries { "acme-primaries"; };
}
I'd like to be able to do the same type of thing, but with the forwarders clause in a forward zone:
forwarders "acme-resolvers" { 10.3.3.3; 10.4.4.4; };
zone "acme.example.com" {
type forward;
forward only;
forwarders { "acme-resolvers"; };
};
zone "acme.example.org" {
type forward;
forward only;
forwarders { "acme-resolvers"; };
};
```
But I'm well aware of the reality that a forward zone (and a static-stub zone for that matter) is not actually a zone in named - we're just using the zone declaration syntax to generate a specific set of NS RRs that will be used when handling queries for names in that zone. (Which is why, for example, that you can't manage forward zones via Catalog zones - there's no actual zone to manage).
This is *not* going to work using existing address_match_list syntax (A list of one or more ip_addr, ip_prefix, key_id, or acl_name elements).
And it's also *not* going to work using a primaries list (used to be masters) because that is type primaries_list (A named list of one or more ip_addr with optional key_id and/or ip_port)
This is because we already know that it's not possible to define per-zone forwarders to include port or other information (see [GL #582](https://gitlab.isc.org/isc-projects/bind9/-/issues/582#note_24565) - this being because what we're actually generating is an RRset similar to a set of NS records - in which there's no place to put port or keys (the ARM has since been updated, but it used to incorrectly suggest that you could configure forwarders thus).
But maybe... there could be a place for another ACL-type of list - as suggested in the proposal above, that is IP addresses only?
Not planned
https://gitlab.isc.org/isc-projects/kea/-/issues/1811
postgres read only UTs fail on ut-extended
2021-05-04T10:55:34Z
Andrei Pavel
andrei@isc.org
postgres read only UTs fail on ut-extended
```
unknown file
C++ exception with description "unable to execute PostgreSQL statement <SELECT version, minor FROM schema_version;, reason: ERROR: permission denied for relation schema_version
" thrown in the test body.
```
https://je...
```
unknown file
C++ exception with description "unable to execute PostgreSQL statement <SELECT version, minor FROM schema_version;, reason: ERROR: permission denied for relation schema_version
" thrown in the test body.
```
https://jenkins.aws.isc.org/job/kea-dev/job/ut-extended/246/
might need changes to the way hammer sets up read only permissions
kea1.9.7
https://gitlab.isc.org/isc-projects/kea/-/issues/1812
UT fails in distcheck on centos 7
2021-06-04T10:10:03Z
Michal Nowikowski
UT fails in distcheck on centos 7
https://jenkins.aws.isc.org/view/Kea-manual/job/kea-manual/job/distcheck/11/execution/node/120/log/
```
16:13:21 [ RUN ] IOSignalTest.mixedSignals
16:13:21 ../../../../../src/lib/asiolink/tests/io_service_signal_unittests.cc:274:...
https://jenkins.aws.isc.org/view/Kea-manual/job/kea-manual/job/distcheck/11/execution/node/120/log/
```
16:13:21 [ RUN ] IOSignalTest.mixedSignals
16:13:21 ../../../../../src/lib/asiolink/tests/io_service_signal_unittests.cc:274: Failure
16:13:21 Expected equality of these values:
16:13:21 sigint_cnt
16:13:21 Which is: 21
16:13:21 (stop_at_count_/3)
16:13:21 Which is: 7
16:13:21 ../../../../../src/lib/asiolink/tests/io_service_signal_unittests.cc:275: Failure
16:13:21 Expected equality of these values:
16:13:21 sigusr1_cnt
16:13:21 Which is: 0
16:13:21 (stop_at_count_/3)
16:13:21 Which is: 7
16:13:21 ../../../../../src/lib/asiolink/tests/io_service_signal_unittests.cc:276: Failure
16:13:21 Expected equality of these values:
16:13:21 sigusr2_cnt
16:13:21 Which is: 0
16:13:21 (stop_at_count_/3)
16:13:21 Which is: 7
16:13:21 [ FAILED ] IOSignalTest.mixedSignals (21 ms)
```
kea1.9.9
Michal Nowikowski
Michal Nowikowski
https://gitlab.isc.org/isc-projects/bind9/-/issues/2555
journal test fails on Windows
2021-03-22T10:46:56Z
Michal Nowak
journal test fails on Windows
The newly added `journal` system test [fails](https://gitlab.isc.org/isc-projects/bind9/-/jobs/1553451) on Windows on `v9_16`:
```
S:journal:2021-03-04T19:27:15-0800
T:journal:1:A
A:journal:System test journal
I:journal:PORTRANGE:8800 - ...
The newly added `journal` system test [fails](https://gitlab.isc.org/isc-projects/bind9/-/jobs/1553451) on Windows on `v9_16`:
```
S:journal:2021-03-04T19:27:15-0800
T:journal:1:A
A:journal:System test journal
I:journal:PORTRANGE:8800 - 8899
I:journal:starting servers
I:journal:check outdated journal rolled forward (dynamic) (1)
I:journal:check outdated empty journal did not cause an error (dynamic) (2)
I:journal:check outdated journals were updated or removed (dynamic) (3)
I:journal:failed
I:journal:check updated journal has correct RR count (dynamic) (4)
I:journal:failed
I:journal:check new-format journal rolled forward (dynamic) (5)
I:journal:check new-format empty journal did not cause error (dynamic) (6)
I:journal:check new-format journals were updated or removed (dynamic) (7)
I:journal:check outdated up-to-date journal succeeded (ixfr-from-differences) (8)
I:journal:check outdated journal was updated (ixfr-from-differences) (9)
I:journal:failed
I:journal:check journal with mixed headers succeeded (version 1,2,1,2) (10)
I:journal:check journal with mixed headers was updated (version 1,2,1,2) (11)
I:journal:failed
I:journal:check journal with mixed headers succeeded (version 2,1,2,1) (12)
I:journal:check journal with mixed headers was updated (version 2,1,2,1) (13)
I:journal:failed
I:journal:check there are no journals left un-updated (14)
I:journal:failed
I:journal:check journal downgrade/upgrade (15)
I:journal:check max-journal-size works after journal update (16)
I:journal:failed
I:journal:check max-journal-size works with non-updated journals (17)
I:journal:check journal index consistency (18)
I:journal:exit status: 7
I:journal:stopping servers
I:journal:pytest not installed, skipping python tests
R:journal:FAIL
E:journal:2021-03-04T19:27:25-0800
```
Starting with this test failing:
```
I:journal:check outdated journals were updated or removed (dynamic) (3)
I:journal:failed
```
It's `changed.db.jnl` file has the `;BIND LOG V9` version header but `;BIND LOG V9.2` is expected (as happens on Unix).
March 2021 (9.11.29, 9.11.29-S1, 9.16.13, 9.16.13-S1, 9.17.11)
Evan Hunt
Evan Hunt
https://gitlab.isc.org/isc-projects/kea/-/issues/1813
hammer: add freeradius client version for ubuntu 20.10
2021-05-04T10:55:33Z
Michal Nowikowski
hammer: add freeradius client version for ubuntu 20.10
kea1.9.7
https://gitlab.isc.org/isc-projects/bind9/-/issues/2556
BIND 9.16.12 is missing the full documentation pieces for back-ported option ...
2021-03-08T11:31:59Z
Cathy Almond
BIND 9.16.12 is missing the full documentation pieces for back-ported option max-ixfr-option
Specifically, I couldn't find the option grammar, so had no idea of the syntax and that 'unlimited' can be used (which essentially reverts the behaviour to as it was before this option was created).
Additionally, I don't know (in either...
Specifically, I couldn't find the option grammar, so had no idea of the syntax and that 'unlimited' can be used (which essentially reverts the behaviour to as it was before this option was created).
Additionally, I don't know (in either 9.16 or 9.17, if I can set a percentage greater than 100, and/or what happens if I set the percentage to 0 (which I assume is the equivalent of disabling outbound IXFRs).
Please fix!
(I've tagged this as Customer because I was researching how to use the option on behalf of a specific customer in order to respond with advice on their support ticket)
March 2021 (9.11.29, 9.11.29-S1, 9.16.13, 9.16.13-S1, 9.17.11)
https://gitlab.isc.org/isc-projects/kea/-/issues/1814
hammer.py: pg_hba.conf not found on rpm-based distros
2021-05-04T10:55:36Z
Andrei Pavel
andrei@isc.org
hammer.py: pg_hba.conf not found on rpm-based distros
https://jenkins.aws.isc.org/job/kea-dev/job/tarball-system-tests/92/execution/node/49/log/
```
00:08:02.790 |forge-srv1-f32-v4 14:27:28.880697| find: /etc/postgresql: No such file or directory
00:08:02.790 |forge-srv1-f32-v4 14:27:28.8...
https://jenkins.aws.isc.org/job/kea-dev/job/tarball-system-tests/92/execution/node/49/log/
```
00:08:02.790 |forge-srv1-f32-v4 14:27:28.880697| find: /etc/postgresql: No such file or directory
00:08:02.790 |forge-srv1-f32-v4 14:27:28.880704| sed: no input files
```
kea1.9.7
Andrei Pavel
andrei@isc.org
Andrei Pavel
andrei@isc.org
https://gitlab.isc.org/isc-projects/bind9/-/issues/2557
broken trust chain with my DNS setup
2021-03-06T14:49:19Z
legacy1
broken trust chain with my DNS setup
Hi hope someone can help here is my setup on Bind 9.17.10.
https://bridgemode.bounceme.net/DNS%20BIND%20setup.html
When working what happens is:
first lookup
Lookup by 127.0.0.1 on main PC then bind forwards to 192.168.255.53 from 19...
Hi hope someone can help here is my setup on Bind 9.17.10.
https://bridgemode.bounceme.net/DNS%20BIND%20setup.html
When working what happens is:
first lookup
Lookup by 127.0.0.1 on main PC then bind forwards to 192.168.255.53 from 192.168.255.56 then
HTPC by bind forwards to 192.168.255.55 from 192.168.255.53
Main PC then does the recursion lookup in the given view/ACL
second lookup
Lookup by 192.168.255.53 on main PC from 192.168.255.55 then
HTPC by bind forwards to 192.168.255.56 from 192.168.255.54
Main PC then does the recursion lookup in the given view/ACL
**issue**
What happens is this after many days of working fine:
client @00000227150F1FE8 127.0.0.1#55768 (community.zyxel.com): view loopbackPC: query failed (broken trust chain) for community.zyxel.com/IN/A at c:\builds\isc-private\bind9\lib\ns\query.c:7581
Only way to fix is to restart bind on the main PC.
https://gitlab.isc.org/isc-projects/kea/-/issues/1815
add new DROP points
2021-07-01T16:01:59Z
Francis Dupont
add new DROP points
The idea is to extend the DROP class idea by adding new points where queries belonging to the DROP class are dropped (named DROP points):
- duplicate the current only DROP point code
- add a new log message
- add a new unit test
- up...
The idea is to extend the DROP class idea by adding new points where queries belonging to the DROP class are dropped (named DROP points):
- duplicate the current only DROP point code
- add a new log message
- add a new unit test
- update documentation
To summary the DROP class idea was very successful so we should increase the number of use cases.
kea1.9.8
Francis Dupont
Francis Dupont
https://gitlab.isc.org/isc-projects/bind9/-/issues/2558
CID 329158: Waiting while holding a lock in lib/ns/interfacemgr.c
2021-09-02T08:54:15Z
Michal Nowak
CID 329158: Waiting while holding a lock in lib/ns/interfacemgr.c
Coverity Scan [identified](https://scan8.coverity.com/reports.htm#v38342/p12579/fileInstanceId=40401352&defectInstanceId=11469125&mergedDefectId=329158) a problem on `main` after isc-projects/bind9!4672 was merged:
```
*** CID 329158: P...
Coverity Scan [identified](https://scan8.coverity.com/reports.htm#v38342/p12579/fileInstanceId=40401352&defectInstanceId=11469125&mergedDefectId=329158) a problem on `main` after isc-projects/bind9!4672 was merged:
```
*** CID 329158: Program hangs (SLEEP)
/lib/ns/interfacemgr.c: 777 in purge_old_interfaces()
771 char sabuf[256];
772 ISC_LIST_UNLINK(ifp->mgr->interfaces, ifp, link);
773 isc_sockaddr_format(&ifp->addr, sabuf, sizeof(sabuf));
774 isc_log_write(IFMGR_COMMON_LOGARGS, ISC_LOG_INFO,
775 "no longer listening on %s", sabuf);
776 ns_interface_shutdown(ifp);
>>> CID 329158: Program hangs (SLEEP)
>>> Call to "ns_interface_detach" might sleep while holding lock "mgr->lock".
777 ns_interface_detach(&ifp);
778 }
779 }
780 UNLOCK(&mgr->lock);
781 }
782
```
/cc @each @artem
September 2021 (9.16.21, 9.16.21-S1, 9.17.18)
https://gitlab.isc.org/isc-projects/kea/-/issues/1816
Bug in CfgSubnets4::initSelector
2021-05-20T14:50:50Z
Chuck Stearns
Bug in CfgSubnets4::initSelector
Once the code detects that there is an RAI option it skips checking the
subnet selection option whether or not the RAI option actually included
a LINK SELECTION sub-option.
If a request arrives that has a relay option that doesn't inc...
Once the code detects that there is an RAI option it skips checking the
subnet selection option whether or not the RAI option actually included
a LINK SELECTION sub-option.
If a request arrives that has a relay option that doesn't include the link selection
sub option and that does include the subnet selection option the code will end up
using the GIADDR or if that doesn't exist fall back to one of the other choices.
kea1.9.8
Marcin Siodelski
Marcin Siodelski
https://gitlab.isc.org/isc-projects/bind9/-/issues/2559
CID 329159: Logically dead code in lib/dns/journal.c
2021-03-08T05:45:10Z
Michal Nowak
CID 329159: Logically dead code in lib/dns/journal.c
Coverity Scan [identified](https://scan8.coverity.com/reports.htm#v38342/p12579/fileInstanceId=40401349&defectInstanceId=11469124&mergedDefectId=329159) a problem on `main` and `v9_16` after isc-projects/bind9!4720 was merged:
```
*** CI...
Coverity Scan [identified](https://scan8.coverity.com/reports.htm#v38342/p12579/fileInstanceId=40401349&defectInstanceId=11469124&mergedDefectId=329159) a problem on `main` and `v9_16` after isc-projects/bind9!4720 was merged:
```
*** CID 329159: (DEADCODE)
/lib/dns/journal.c: 1719 in dns_journal_print()
1713 }
1714 CHECK(dns_difftuple_create(
1715 diff.mctx, n_soa == 1 ? DNS_DIFFOP_DEL : DNS_DIFFOP_ADD,
1716 name, ttl, rdata, &tuple));
1717 dns_diff_append(&diff, &tuple);
1718
>>> CID 329159: (DEADCODE)
>>> Execution cannot reach the expression "printxhdr" inside this statement: "if (++n_put != 0U || printx...".
1719 if (++n_put != 0 || printxhdr) {
1720 result = dns_diff_print(&diff, file);
1721 dns_diff_clear(&diff);
1722 n_put = 0;
1723 if (result != ISC_R_SUCCESS) {
1724 break;
/lib/dns/journal.c: 1734 in dns_journal_print()
1728 if (result == ISC_R_NOMORE) {
1729 result = ISC_R_SUCCESS;
1730 }
1731 CHECK(result);
1732
1733 if (!printxhdr && n_put != 0) {
>>> CID 329159: (DEADCODE)
>>> Execution cannot reach this statement: "result = dns_diff_print(&di...".
1734 result = dns_diff_print(&diff, file);
1735 dns_diff_clear(&diff);
1736 }
1737 goto cleanup;
1738
1739 failure:
```
/cc @each @marka
March 2021 (9.11.29, 9.11.29-S1, 9.16.13, 9.16.13-S1, 9.17.11)
https://gitlab.isc.org/isc-projects/kea/-/issues/1817
thread sanitizer warnings on HTTP client multithreaded tests
2021-06-08T10:49:26Z
Andrei Pavel
andrei@isc.org
thread sanitizer warnings on HTTP client multithreaded tests
<details><summary>[ RUN ] MtHttpClientTest.oneByThreeByOne </summary><pre>
WARNING: ThreadSanitizer: data race (pid=75745)
Read of size 1 at 0x7b1c00005110 by thread T7:
#0 boost::asio::detail::conditionally_enabled_mutex::sc...
<details><summary>[ RUN ] MtHttpClientTest.oneByThreeByOne </summary><pre>
WARNING: ThreadSanitizer: data race (pid=75745)
Read of size 1 at 0x7b1c00005110 by thread T7:
#0 boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:53:13 (libhttp_unittests+0x463617)
#1 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:445:26 (libhttp_unittests+0x464a43)
#2 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:431:16 (libhttp_unittests+0x4638ca)
#3 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (libhttp_unittests+0x4631bf)
#4 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#5 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#6 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#7 decltype(*(std::__1::forward<boost::shared_ptr<isc::asiolink::IOService>&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&, void>(void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&) /usr/include/c++/v1/type_traits:3840:1 (libkea-http.so.24+0x25f539)
#8 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (libkea-http.so.24+0x25f433)
#9 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>::operator()<>() /usr/include/c++/v1/functional:2886:20 (libkea-http.so.24+0x25f3a1)
#10 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-http.so.24+0x25f2a0)
#11 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (libkea-http.so.24+0x25f128)
#12 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> > >(void*) /usr/include/c++/v1/thread:291:5 (libkea-http.so.24+0x25e2f9)
Previous write of size 8 at 0x7b1c00005110 by main thread (mutexes: write M590388334811970352, write M592359364023828904, write M590951370664706736):
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (libhttp_unittests+0x41afe4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (libhttp_unittests+0x583afa)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (libhttp_unittests+0x5839a8)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (libhttp_unittests+0x58386f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (libhttp_unittests+0x5834f0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (libhttp_unittests+0x582f10)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (libhttp_unittests+0x582b18)
#7 boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket.hpp:419:25 (libkea-http.so.24+0x27b010)
#8 isc::asiolink::TCPSocket<(anonymous namespace)::SocketCallback>::open(isc::asiolink::IOEndpoint const*, (anonymous namespace)::SocketCallback&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_socket.h:291:21 (libkea-http.so.24+0x20f507)
#9 (anonymous namespace)::Connection::doTransactionInternal(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1107:26 (libkea-http.so.24+0x23d860)
#10 (anonymous namespace)::Connection::doTransaction(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1026:9 (libkea-http.so.24+0x203fc7)
#11 (anonymous namespace)::ConnectionPool::queueRequestInternal(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:638:21 (libkea-http.so.24+0x202a7c)
#12 (anonymous namespace)::ConnectionPool::queueRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:500:21 (libkea-http.so.24+0x1fe9a7)
#13 isc::http::HttpClient::asyncSendRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, isc::http::HttpClient::RequestTimeout const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1746:24 (libkea-http.so.24+0x1fe761)
#14 (anonymous namespace)::MtHttpClientTest::startRequest(int, int) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:297:9 (libhttp_unittests+0x65e664)
#15 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:438:21 (libhttp_unittests+0x65a9ec)
#16 (anonymous namespace)::MtHttpClientTest_oneByThreeByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:670:5 (libhttp_unittests+0x666f35)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#18 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
Location is heap block of size 104 at 0x7b1c000050f0 allocated by main thread:
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (libhttp_unittests+0x41afe4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (libhttp_unittests+0x583afa)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (libhttp_unittests+0x5839a8)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (libhttp_unittests+0x58386f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (libhttp_unittests+0x5834f0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (libhttp_unittests+0x582f10)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (libhttp_unittests+0x582b18)
#7 boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket.hpp:419:25 (libkea-http.so.24+0x27b010)
#8 isc::asiolink::TCPSocket<(anonymous namespace)::SocketCallback>::open(isc::asiolink::IOEndpoint const*, (anonymous namespace)::SocketCallback&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_socket.h:291:21 (libkea-http.so.24+0x20f507)
#9 (anonymous namespace)::Connection::doTransactionInternal(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1107:26 (libkea-http.so.24+0x23d860)
#10 (anonymous namespace)::Connection::doTransaction(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1026:9 (libkea-http.so.24+0x203fc7)
#11 (anonymous namespace)::ConnectionPool::queueRequestInternal(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:638:21 (libkea-http.so.24+0x202a7c)
#12 (anonymous namespace)::ConnectionPool::queueRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:500:21 (libkea-http.so.24+0x1fe9a7)
#13 isc::http::HttpClient::asyncSendRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, isc::http::HttpClient::RequestTimeout const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1746:24 (libkea-http.so.24+0x1fe761)
#14 (anonymous namespace)::MtHttpClientTest::startRequest(int, int) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:297:9 (libhttp_unittests+0x65e664)
#15 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:438:21 (libhttp_unittests+0x65a9ec)
#16 (anonymous namespace)::MtHttpClientTest_oneByThreeByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:670:5 (libhttp_unittests+0x666f35)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#18 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
Mutex M590388334811970352 is already destroyed.
Mutex M592359364023828904 is already destroyed.
Mutex M590951370664706736 is already destroyed.
Thread T7 (tid=104180, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (libhttp_unittests+0x3bfaf3)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (libkea-http.so.24+0x25e23e)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/thread:307:16 (libkea-http.so.24+0x25c5cb)
#3 isc::http::HttpClientImpl::HttpClientImpl(isc::asiolink::IOService&, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1617:59 (libkea-http.so.24+0x251f4a)
#4 isc::http::HttpClient::HttpClient(isc::asiolink::IOService&, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1710:21 (libkea-http.so.24+0x1fdeca)
#5 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:417:9 (libhttp_unittests+0x659643)
#6 (anonymous namespace)::MtHttpClientTest_oneByThreeByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:670:5 (libhttp_unittests+0x666f35)
#7 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#8 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
SUMMARY: ThreadSanitizer: data race /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:53:13 in boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&)
WARNING: ThreadSanitizer: data race (pid=75745)
Atomic read of size 1 at 0x7b1c00005108 by thread T7:
#0 pthread_mutex_lock /usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:4196:3 (libhttp_unittests+0x3d60d4)
#1 boost::asio::detail::posix_mutex::lock() /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 (libhttp_unittests+0x464528)
#2 boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:55:23 (libhttp_unittests+0x463641)
#3 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:445:26 (libhttp_unittests+0x464a43)
#4 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:431:16 (libhttp_unittests+0x4638ca)
#5 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (libhttp_unittests+0x4631bf)
#6 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#7 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#8 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#9 decltype(*(std::__1::forward<boost::shared_ptr<isc::asiolink::IOService>&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&, void>(void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&) /usr/include/c++/v1/type_traits:3840:1 (libkea-http.so.24+0x25f539)
#10 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (libkea-http.so.24+0x25f433)
#11 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>::operator()<>() /usr/include/c++/v1/functional:2886:20 (libkea-http.so.24+0x25f3a1)
#12 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-http.so.24+0x25f2a0)
#13 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (libkea-http.so.24+0x25f128)
#14 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> > >(void*) /usr/include/c++/v1/thread:291:5 (libkea-http.so.24+0x25e2f9)
Previous write of size 8 at 0x7b1c00005108 by main thread (mutexes: write M590388334811970352, write M592359364023828904, write M590951370664706736):
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (libhttp_unittests+0x41afe4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (libhttp_unittests+0x583afa)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (libhttp_unittests+0x5839a8)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (libhttp_unittests+0x58386f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (libhttp_unittests+0x5834f0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (libhttp_unittests+0x582f10)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (libhttp_unittests+0x582b18)
#7 boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket.hpp:419:25 (libkea-http.so.24+0x27b010)
#8 isc::asiolink::TCPSocket<(anonymous namespace)::SocketCallback>::open(isc::asiolink::IOEndpoint const*, (anonymous namespace)::SocketCallback&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_socket.h:291:21 (libkea-http.so.24+0x20f507)
#9 (anonymous namespace)::Connection::doTransactionInternal(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1107:26 (libkea-http.so.24+0x23d860)
#10 (anonymous namespace)::Connection::doTransaction(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1026:9 (libkea-http.so.24+0x203fc7)
#11 (anonymous namespace)::ConnectionPool::queueRequestInternal(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:638:21 (libkea-http.so.24+0x202a7c)
#12 (anonymous namespace)::ConnectionPool::queueRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:500:21 (libkea-http.so.24+0x1fe9a7)
#13 isc::http::HttpClient::asyncSendRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, isc::http::HttpClient::RequestTimeout const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1746:24 (libkea-http.so.24+0x1fe761)
#14 (anonymous namespace)::MtHttpClientTest::startRequest(int, int) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:297:9 (libhttp_unittests+0x65e664)
#15 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:438:21 (libhttp_unittests+0x65a9ec)
#16 (anonymous namespace)::MtHttpClientTest_oneByThreeByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:670:5 (libhttp_unittests+0x666f35)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#18 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
Location is heap block of size 104 at 0x7b1c000050f0 allocated by main thread:
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (libhttp_unittests+0x41afe4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (libhttp_unittests+0x583afa)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (libhttp_unittests+0x5839a8)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (libhttp_unittests+0x58386f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (libhttp_unittests+0x5834f0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (libhttp_unittests+0x582f10)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (libhttp_unittests+0x582b18)
#7 boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket.hpp:419:25 (libkea-http.so.24+0x27b010)
#8 isc::asiolink::TCPSocket<(anonymous namespace)::SocketCallback>::open(isc::asiolink::IOEndpoint const*, (anonymous namespace)::SocketCallback&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_socket.h:291:21 (libkea-http.so.24+0x20f507)
#9 (anonymous namespace)::Connection::doTransactionInternal(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1107:26 (libkea-http.so.24+0x23d860)
#10 (anonymous namespace)::Connection::doTransaction(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1026:9 (libkea-http.so.24+0x203fc7)
#11 (anonymous namespace)::ConnectionPool::queueRequestInternal(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:638:21 (libkea-http.so.24+0x202a7c)
#12 (anonymous namespace)::ConnectionPool::queueRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:500:21 (libkea-http.so.24+0x1fe9a7)
#13 isc::http::HttpClient::asyncSendRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, isc::http::HttpClient::RequestTimeout const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1746:24 (libkea-http.so.24+0x1fe761)
#14 (anonymous namespace)::MtHttpClientTest::startRequest(int, int) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:297:9 (libhttp_unittests+0x65e664)
#15 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:438:21 (libhttp_unittests+0x65a9ec)
#16 (anonymous namespace)::MtHttpClientTest_oneByThreeByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:670:5 (libhttp_unittests+0x666f35)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#18 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
Mutex M590388334811970352 is already destroyed.
Mutex M592359364023828904 is already destroyed.
Mutex M590951370664706736 is already destroyed.
Thread T7 (tid=104180, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (libhttp_unittests+0x3bfaf3)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (libkea-http.so.24+0x25e23e)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/thread:307:16 (libkea-http.so.24+0x25c5cb)
#3 isc::http::HttpClientImpl::HttpClientImpl(isc::asiolink::IOService&, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1617:59 (libkea-http.so.24+0x251f4a)
#4 isc::http::HttpClient::HttpClient(isc::asiolink::IOService&, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1710:21 (libkea-http.so.24+0x1fdeca)
#5 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:417:9 (libhttp_unittests+0x659643)
#6 (anonymous namespace)::MtHttpClientTest_oneByThreeByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:670:5 (libhttp_unittests+0x666f35)
#7 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#8 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
SUMMARY: ThreadSanitizer: data race /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 in boost::asio::detail::posix_mutex::lock()
[ OK ] MtHttpClientTest.oneByThreeByOne (567 ms) </pre></details>
<details><summary>[ RUN ] MtHttpClientTest.threeByThreeByOne </summary><pre>
WARNING: ThreadSanitizer: data race (pid=75745)
Read of size 1 at 0x7b1c00005960 by thread T10:
#0 boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:53:13 (libhttp_unittests+0x463617)
#1 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:445:26 (libhttp_unittests+0x464a43)
#2 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:431:16 (libhttp_unittests+0x4638ca)
#3 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (libhttp_unittests+0x4631bf)
#4 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#5 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#6 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#7 decltype(*(std::__1::forward<boost::shared_ptr<isc::asiolink::IOService>&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&, void>(void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&) /usr/include/c++/v1/type_traits:3840:1 (libkea-http.so.24+0x25f539)
#8 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (libkea-http.so.24+0x25f433)
#9 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>::operator()<>() /usr/include/c++/v1/functional:2886:20 (libkea-http.so.24+0x25f3a1)
#10 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-http.so.24+0x25f2a0)
#11 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (libkea-http.so.24+0x25f128)
#12 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> > >(void*) /usr/include/c++/v1/thread:291:5 (libkea-http.so.24+0x25e2f9)
Previous write of size 8 at 0x7b1c00005960 by main thread (mutexes: write M847374988548805168, write M849346017760616872, write M847938024401535664):
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (libhttp_unittests+0x41afe4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (libhttp_unittests+0x583afa)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (libhttp_unittests+0x5839a8)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (libhttp_unittests+0x58386f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (libhttp_unittests+0x5834f0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (libhttp_unittests+0x582f10)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (libhttp_unittests+0x582b18)
#7 boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket.hpp:419:25 (libkea-http.so.24+0x27b010)
#8 isc::asiolink::TCPSocket<(anonymous namespace)::SocketCallback>::open(isc::asiolink::IOEndpoint const*, (anonymous namespace)::SocketCallback&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_socket.h:291:21 (libkea-http.so.24+0x20f507)
#9 (anonymous namespace)::Connection::doTransactionInternal(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1107:26 (libkea-http.so.24+0x23d860)
#10 (anonymous namespace)::Connection::doTransaction(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1026:9 (libkea-http.so.24+0x203fc7)
#11 (anonymous namespace)::ConnectionPool::queueRequestInternal(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:638:21 (libkea-http.so.24+0x202a7c)
#12 (anonymous namespace)::ConnectionPool::queueRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:500:21 (libkea-http.so.24+0x1fe9a7)
#13 isc::http::HttpClient::asyncSendRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, isc::http::HttpClient::RequestTimeout const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1746:24 (libkea-http.so.24+0x1fe761)
#14 (anonymous namespace)::MtHttpClientTest::startRequest(int, int) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:297:9 (libhttp_unittests+0x65e664)
#15 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:438:21 (libhttp_unittests+0x65a9ec)
#16 (anonymous namespace)::MtHttpClientTest_threeByThreeByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:677:5 (libhttp_unittests+0x667205)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#18 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
Location is heap block of size 104 at 0x7b1c00005940 allocated by main thread:
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (libhttp_unittests+0x41afe4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (libhttp_unittests+0x583afa)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (libhttp_unittests+0x5839a8)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (libhttp_unittests+0x58386f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (libhttp_unittests+0x5834f0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (libhttp_unittests+0x582f10)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (libhttp_unittests+0x582b18)
#7 boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket.hpp:419:25 (libkea-http.so.24+0x27b010)
#8 isc::asiolink::TCPSocket<(anonymous namespace)::SocketCallback>::open(isc::asiolink::IOEndpoint const*, (anonymous namespace)::SocketCallback&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_socket.h:291:21 (libkea-http.so.24+0x20f507)
#9 (anonymous namespace)::Connection::doTransactionInternal(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1107:26 (libkea-http.so.24+0x23d860)
#10 (anonymous namespace)::Connection::doTransaction(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1026:9 (libkea-http.so.24+0x203fc7)
#11 (anonymous namespace)::ConnectionPool::queueRequestInternal(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:638:21 (libkea-http.so.24+0x202a7c)
#12 (anonymous namespace)::ConnectionPool::queueRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:500:21 (libkea-http.so.24+0x1fe9a7)
#13 isc::http::HttpClient::asyncSendRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, isc::http::HttpClient::RequestTimeout const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1746:24 (libkea-http.so.24+0x1fe761)
#14 (anonymous namespace)::MtHttpClientTest::startRequest(int, int) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:297:9 (libhttp_unittests+0x65e664)
#15 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:438:21 (libhttp_unittests+0x65a9ec)
#16 (anonymous namespace)::MtHttpClientTest_threeByThreeByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:677:5 (libhttp_unittests+0x667205)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#18 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
Mutex M847374988548805168 is already destroyed.
Mutex M849346017760616872 is already destroyed.
Mutex M847938024401535664 is already destroyed.
Thread T10 (tid=104183, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (libhttp_unittests+0x3bfaf3)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (libkea-http.so.24+0x25e23e)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/thread:307:16 (libkea-http.so.24+0x25c5cb)
#3 isc::http::HttpClientImpl::HttpClientImpl(isc::asiolink::IOService&, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1617:59 (libkea-http.so.24+0x251f4a)
#4 isc::http::HttpClient::HttpClient(isc::asiolink::IOService&, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1710:21 (libkea-http.so.24+0x1fdeca)
#5 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:417:9 (libhttp_unittests+0x659643)
#6 (anonymous namespace)::MtHttpClientTest_threeByThreeByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:677:5 (libhttp_unittests+0x667205)
#7 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#8 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
SUMMARY: ThreadSanitizer: data race /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:53:13 in boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&)
WARNING: ThreadSanitizer: data race (pid=75745)
Atomic read of size 1 at 0x7b1c00005958 by thread T10:
#0 pthread_mutex_lock /usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:4196:3 (libhttp_unittests+0x3d60d4)
#1 boost::asio::detail::posix_mutex::lock() /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 (libhttp_unittests+0x464528)
#2 boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:55:23 (libhttp_unittests+0x463641)
#3 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:445:26 (libhttp_unittests+0x464a43)
#4 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:431:16 (libhttp_unittests+0x4638ca)
#5 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (libhttp_unittests+0x4631bf)
#6 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#7 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#8 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#9 decltype(*(std::__1::forward<boost::shared_ptr<isc::asiolink::IOService>&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&, void>(void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&) /usr/include/c++/v1/type_traits:3840:1 (libkea-http.so.24+0x25f539)
#10 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (libkea-http.so.24+0x25f433)
#11 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>::operator()<>() /usr/include/c++/v1/functional:2886:20 (libkea-http.so.24+0x25f3a1)
#12 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-http.so.24+0x25f2a0)
#13 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (libkea-http.so.24+0x25f128)
#14 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> > >(void*) /usr/include/c++/v1/thread:291:5 (libkea-http.so.24+0x25e2f9)
Previous write of size 8 at 0x7b1c00005958 by main thread (mutexes: write M847374988548805168, write M849346017760616872, write M847938024401535664):
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (libhttp_unittests+0x41afe4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (libhttp_unittests+0x583afa)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (libhttp_unittests+0x5839a8)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (libhttp_unittests+0x58386f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (libhttp_unittests+0x5834f0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (libhttp_unittests+0x582f10)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (libhttp_unittests+0x582b18)
#7 boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket.hpp:419:25 (libkea-http.so.24+0x27b010)
#8 isc::asiolink::TCPSocket<(anonymous namespace)::SocketCallback>::open(isc::asiolink::IOEndpoint const*, (anonymous namespace)::SocketCallback&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_socket.h:291:21 (libkea-http.so.24+0x20f507)
#9 (anonymous namespace)::Connection::doTransactionInternal(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1107:26 (libkea-http.so.24+0x23d860)
#10 (anonymous namespace)::Connection::doTransaction(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1026:9 (libkea-http.so.24+0x203fc7)
#11 (anonymous namespace)::ConnectionPool::queueRequestInternal(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:638:21 (libkea-http.so.24+0x202a7c)
#12 (anonymous namespace)::ConnectionPool::queueRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:500:21 (libkea-http.so.24+0x1fe9a7)
#13 isc::http::HttpClient::asyncSendRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, isc::http::HttpClient::RequestTimeout const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1746:24 (libkea-http.so.24+0x1fe761)
#14 (anonymous namespace)::MtHttpClientTest::startRequest(int, int) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:297:9 (libhttp_unittests+0x65e664)
#15 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:438:21 (libhttp_unittests+0x65a9ec)
#16 (anonymous namespace)::MtHttpClientTest_threeByThreeByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:677:5 (libhttp_unittests+0x667205)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#18 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
Location is heap block of size 104 at 0x7b1c00005940 allocated by main thread:
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (libhttp_unittests+0x41afe4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (libhttp_unittests+0x583afa)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (libhttp_unittests+0x5839a8)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (libhttp_unittests+0x58386f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (libhttp_unittests+0x5834f0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (libhttp_unittests+0x582f10)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (libhttp_unittests+0x582b18)
#7 boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket.hpp:419:25 (libkea-http.so.24+0x27b010)
#8 isc::asiolink::TCPSocket<(anonymous namespace)::SocketCallback>::open(isc::asiolink::IOEndpoint const*, (anonymous namespace)::SocketCallback&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_socket.h:291:21 (libkea-http.so.24+0x20f507)
#9 (anonymous namespace)::Connection::doTransactionInternal(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1107:26 (libkea-http.so.24+0x23d860)
#10 (anonymous namespace)::Connection::doTransaction(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1026:9 (libkea-http.so.24+0x203fc7)
#11 (anonymous namespace)::ConnectionPool::queueRequestInternal(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:638:21 (libkea-http.so.24+0x202a7c)
#12 (anonymous namespace)::ConnectionPool::queueRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:500:21 (libkea-http.so.24+0x1fe9a7)
#13 isc::http::HttpClient::asyncSendRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, isc::http::HttpClient::RequestTimeout const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1746:24 (libkea-http.so.24+0x1fe761)
#14 (anonymous namespace)::MtHttpClientTest::startRequest(int, int) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:297:9 (libhttp_unittests+0x65e664)
#15 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:438:21 (libhttp_unittests+0x65a9ec)
#16 (anonymous namespace)::MtHttpClientTest_threeByThreeByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:677:5 (libhttp_unittests+0x667205)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#18 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
Mutex M847374988548805168 is already destroyed.
Mutex M849346017760616872 is already destroyed.
Mutex M847938024401535664 is already destroyed.
Thread T10 (tid=104183, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (libhttp_unittests+0x3bfaf3)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (libkea-http.so.24+0x25e23e)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/thread:307:16 (libkea-http.so.24+0x25c5cb)
#3 isc::http::HttpClientImpl::HttpClientImpl(isc::asiolink::IOService&, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1617:59 (libkea-http.so.24+0x251f4a)
#4 isc::http::HttpClient::HttpClient(isc::asiolink::IOService&, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1710:21 (libkea-http.so.24+0x1fdeca)
#5 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:417:9 (libhttp_unittests+0x659643)
#6 (anonymous namespace)::MtHttpClientTest_threeByThreeByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:677:5 (libhttp_unittests+0x667205)
#7 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#8 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
SUMMARY: ThreadSanitizer: data race /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 in boost::asio::detail::posix_mutex::lock()
[ OK ] MtHttpClientTest.threeByThreeByOne (105 ms) </pre></details>
<details><summary>[ RUN ] MtHttpClientTest.threeByNineByOne </summary><pre>
WARNING: ThreadSanitizer: data race (pid=75745)
Read of size 1 at 0x7b1c00003040 by thread T13:
#0 boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:53:13 (libhttp_unittests+0x463617)
#1 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:445:26 (libhttp_unittests+0x464a43)
#2 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:431:16 (libhttp_unittests+0x4638ca)
#3 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (libhttp_unittests+0x4631bf)
#4 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#5 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#6 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#7 decltype(*(std::__1::forward<boost::shared_ptr<isc::asiolink::IOService>&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&, void>(void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&) /usr/include/c++/v1/type_traits:3840:1 (libkea-http.so.24+0x25f539)
#8 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (libkea-http.so.24+0x25f433)
#9 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>::operator()<>() /usr/include/c++/v1/functional:2886:20 (libkea-http.so.24+0x25f3a1)
#10 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-http.so.24+0x25f2a0)
#11 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (libkea-http.so.24+0x25f128)
#12 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> > >(void*) /usr/include/c++/v1/thread:291:5 (libkea-http.so.24+0x25e2f9)
Previous write of size 8 at 0x7b1c00003040 by main thread (mutexes: write M428821698180067248, write M430792727391748520, write M429384734032790192):
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (libhttp_unittests+0x41afe4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (libhttp_unittests+0x583afa)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (libhttp_unittests+0x5839a8)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (libhttp_unittests+0x58386f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (libhttp_unittests+0x5834f0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (libhttp_unittests+0x582f10)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (libhttp_unittests+0x582b18)
#7 boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket.hpp:419:25 (libkea-http.so.24+0x27b010)
#8 isc::asiolink::TCPSocket<(anonymous namespace)::SocketCallback>::open(isc::asiolink::IOEndpoint const*, (anonymous namespace)::SocketCallback&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_socket.h:291:21 (libkea-http.so.24+0x20f507)
#9 (anonymous namespace)::Connection::doTransactionInternal(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1107:26 (libkea-http.so.24+0x23d860)
#10 (anonymous namespace)::Connection::doTransaction(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1026:9 (libkea-http.so.24+0x203fc7)
#11 (anonymous namespace)::ConnectionPool::queueRequestInternal(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:638:21 (libkea-http.so.24+0x202a7c)
#12 (anonymous namespace)::ConnectionPool::queueRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:500:21 (libkea-http.so.24+0x1fe9a7)
#13 isc::http::HttpClient::asyncSendRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, isc::http::HttpClient::RequestTimeout const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1746:24 (libkea-http.so.24+0x1fe761)
#14 (anonymous namespace)::MtHttpClientTest::startRequest(int, int) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:297:9 (libhttp_unittests+0x65e664)
#15 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:438:21 (libhttp_unittests+0x65a9ec)
#16 (anonymous namespace)::MtHttpClientTest_threeByNineByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:684:5 (libhttp_unittests+0x6674d5)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#18 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
Location is heap block of size 104 at 0x7b1c00003020 allocated by main thread:
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (libhttp_unittests+0x41afe4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (libhttp_unittests+0x583afa)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (libhttp_unittests+0x5839a8)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (libhttp_unittests+0x58386f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (libhttp_unittests+0x5834f0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (libhttp_unittests+0x582f10)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (libhttp_unittests+0x582b18)
#7 boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket.hpp:419:25 (libkea-http.so.24+0x27b010)
#8 isc::asiolink::TCPSocket<(anonymous namespace)::SocketCallback>::open(isc::asiolink::IOEndpoint const*, (anonymous namespace)::SocketCallback&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_socket.h:291:21 (libkea-http.so.24+0x20f507)
#9 (anonymous namespace)::Connection::doTransactionInternal(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1107:26 (libkea-http.so.24+0x23d860)
#10 (anonymous namespace)::Connection::doTransaction(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1026:9 (libkea-http.so.24+0x203fc7)
#11 (anonymous namespace)::ConnectionPool::queueRequestInternal(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:638:21 (libkea-http.so.24+0x202a7c)
#12 (anonymous namespace)::ConnectionPool::queueRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:500:21 (libkea-http.so.24+0x1fe9a7)
#13 isc::http::HttpClient::asyncSendRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, isc::http::HttpClient::RequestTimeout const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1746:24 (libkea-http.so.24+0x1fe761)
#14 (anonymous namespace)::MtHttpClientTest::startRequest(int, int) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:297:9 (libhttp_unittests+0x65e664)
#15 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:438:21 (libhttp_unittests+0x65a9ec)
#16 (anonymous namespace)::MtHttpClientTest_threeByNineByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:684:5 (libhttp_unittests+0x6674d5)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#18 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
Mutex M428821698180067248 is already destroyed.
Mutex M430792727391748520 is already destroyed.
Mutex M429384734032790192 is already destroyed.
Thread T13 (tid=104186, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (libhttp_unittests+0x3bfaf3)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (libkea-http.so.24+0x25e23e)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/thread:307:16 (libkea-http.so.24+0x25c5cb)
#3 isc::http::HttpClientImpl::HttpClientImpl(isc::asiolink::IOService&, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1617:59 (libkea-http.so.24+0x251f4a)
#4 isc::http::HttpClient::HttpClient(isc::asiolink::IOService&, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1710:21 (libkea-http.so.24+0x1fdeca)
#5 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:417:9 (libhttp_unittests+0x659643)
#6 (anonymous namespace)::MtHttpClientTest_threeByNineByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:684:5 (libhttp_unittests+0x6674d5)
#7 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#8 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
SUMMARY: ThreadSanitizer: data race /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:53:13 in boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&)
WARNING: ThreadSanitizer: data race (pid=75745)
Atomic read of size 1 at 0x7b1c00003038 by thread T13:
#0 pthread_mutex_lock /usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:4196:3 (libhttp_unittests+0x3d60d4)
#1 boost::asio::detail::posix_mutex::lock() /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 (libhttp_unittests+0x464528)
#2 boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:55:23 (libhttp_unittests+0x463641)
#3 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:445:26 (libhttp_unittests+0x464a43)
#4 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:431:16 (libhttp_unittests+0x4638ca)
#5 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (libhttp_unittests+0x4631bf)
#6 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#7 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#8 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#9 decltype(*(std::__1::forward<boost::shared_ptr<isc::asiolink::IOService>&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&, void>(void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&) /usr/include/c++/v1/type_traits:3840:1 (libkea-http.so.24+0x25f539)
#10 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (libkea-http.so.24+0x25f433)
#11 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>::operator()<>() /usr/include/c++/v1/functional:2886:20 (libkea-http.so.24+0x25f3a1)
#12 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-http.so.24+0x25f2a0)
#13 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (libkea-http.so.24+0x25f128)
#14 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> > >(void*) /usr/include/c++/v1/thread:291:5 (libkea-http.so.24+0x25e2f9)
Previous write of size 8 at 0x7b1c00003038 by main thread:
[failed to restore the stack]
Location is heap block of size 104 at 0x7b1c00003020 allocated by main thread:
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (libhttp_unittests+0x41afe4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (libhttp_unittests+0x583afa)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (libhttp_unittests+0x5839a8)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (libhttp_unittests+0x58386f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (libhttp_unittests+0x5834f0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (libhttp_unittests+0x582f10)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (libhttp_unittests+0x582b18)
#7 boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket.hpp:419:25 (libkea-http.so.24+0x27b010)
#8 isc::asiolink::TCPSocket<(anonymous namespace)::SocketCallback>::open(isc::asiolink::IOEndpoint const*, (anonymous namespace)::SocketCallback&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_socket.h:291:21 (libkea-http.so.24+0x20f507)
#9 (anonymous namespace)::Connection::doTransactionInternal(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1107:26 (libkea-http.so.24+0x23d860)
#10 (anonymous namespace)::Connection::doTransaction(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1026:9 (libkea-http.so.24+0x203fc7)
#11 (anonymous namespace)::ConnectionPool::queueRequestInternal(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:638:21 (libkea-http.so.24+0x202a7c)
#12 (anonymous namespace)::ConnectionPool::queueRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:500:21 (libkea-http.so.24+0x1fe9a7)
#13 isc::http::HttpClient::asyncSendRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, isc::http::HttpClient::RequestTimeout const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1746:24 (libkea-http.so.24+0x1fe761)
#14 (anonymous namespace)::MtHttpClientTest::startRequest(int, int) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:297:9 (libhttp_unittests+0x65e664)
#15 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:438:21 (libhttp_unittests+0x65a9ec)
#16 (anonymous namespace)::MtHttpClientTest_threeByNineByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:684:5 (libhttp_unittests+0x6674d5)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#18 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
Thread T13 (tid=104186, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (libhttp_unittests+0x3bfaf3)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (libkea-http.so.24+0x25e23e)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/thread:307:16 (libkea-http.so.24+0x25c5cb)
#3 isc::http::HttpClientImpl::HttpClientImpl(isc::asiolink::IOService&, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1617:59 (libkea-http.so.24+0x251f4a)
#4 isc::http::HttpClient::HttpClient(isc::asiolink::IOService&, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1710:21 (libkea-http.so.24+0x1fdeca)
#5 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:417:9 (libhttp_unittests+0x659643)
#6 (anonymous namespace)::MtHttpClientTest_threeByNineByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:684:5 (libhttp_unittests+0x6674d5)
#7 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#8 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
SUMMARY: ThreadSanitizer: data race /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 in boost::asio::detail::posix_mutex::lock()
WARNING: ThreadSanitizer: data race (pid=75745)
Atomic read of size 1 at 0x7b1c000033b8 by thread T12:
#0 pthread_mutex_lock /usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:4196:3 (libhttp_unittests+0x3d60d4)
#1 boost::asio::detail::posix_mutex::lock() /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 (libhttp_unittests+0x464528)
#2 boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:55:23 (libhttp_unittests+0x463641)
#3 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:445:26 (libhttp_unittests+0x464a43)
#4 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:431:16 (libhttp_unittests+0x4638ca)
#5 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (libhttp_unittests+0x4631bf)
#6 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#7 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#8 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#9 decltype(*(std::__1::forward<boost::shared_ptr<isc::asiolink::IOService>&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&, void>(void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&) /usr/include/c++/v1/type_traits:3840:1 (libkea-http.so.24+0x25f539)
#10 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (libkea-http.so.24+0x25f433)
#11 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>::operator()<>() /usr/include/c++/v1/functional:2886:20 (libkea-http.so.24+0x25f3a1)
#12 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-http.so.24+0x25f2a0)
#13 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (libkea-http.so.24+0x25f128)
#14 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> > >(void*) /usr/include/c++/v1/thread:291:5 (libkea-http.so.24+0x25e2f9)
Previous write of size 8 at 0x7b1c000033b8 by main thread (mutexes: write M428821698180067248, write M465132674550366632, write M429384734032790192):
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (libhttp_unittests+0x41afe4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (libhttp_unittests+0x583afa)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (libhttp_unittests+0x5839a8)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (libhttp_unittests+0x58386f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (libhttp_unittests+0x5834f0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (libhttp_unittests+0x582f10)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (libhttp_unittests+0x582b18)
#7 boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket.hpp:419:25 (libkea-http.so.24+0x27b010)
#8 isc::asiolink::TCPSocket<(anonymous namespace)::SocketCallback>::open(isc::asiolink::IOEndpoint const*, (anonymous namespace)::SocketCallback&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_socket.h:291:21 (libkea-http.so.24+0x20f507)
#9 (anonymous namespace)::Connection::doTransactionInternal(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1107:26 (libkea-http.so.24+0x23d860)
#10 (anonymous namespace)::Connection::doTransaction(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1026:9 (libkea-http.so.24+0x203fc7)
#11 (anonymous namespace)::ConnectionPool::queueRequestInternal(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:638:21 (libkea-http.so.24+0x202a7c)
#12 (anonymous namespace)::ConnectionPool::queueRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:500:21 (libkea-http.so.24+0x1fe9a7)
#13 isc::http::HttpClient::asyncSendRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, isc::http::HttpClient::RequestTimeout const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1746:24 (libkea-http.so.24+0x1fe761)
#14 (anonymous namespace)::MtHttpClientTest::startRequest(int, int) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:297:9 (libhttp_unittests+0x65e664)
#15 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:438:21 (libhttp_unittests+0x65a9ec)
#16 (anonymous namespace)::MtHttpClientTest_threeByNineByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:684:5 (libhttp_unittests+0x6674d5)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#18 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
Location is heap block of size 104 at 0x7b1c000033a0 allocated by main thread:
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (libhttp_unittests+0x41afe4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (libhttp_unittests+0x583afa)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (libhttp_unittests+0x5839a8)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (libhttp_unittests+0x58386f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (libhttp_unittests+0x5834f0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (libhttp_unittests+0x582f10)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (libhttp_unittests+0x582b18)
#7 boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket.hpp:419:25 (libkea-http.so.24+0x27b010)
#8 isc::asiolink::TCPSocket<(anonymous namespace)::SocketCallback>::open(isc::asiolink::IOEndpoint const*, (anonymous namespace)::SocketCallback&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_socket.h:291:21 (libkea-http.so.24+0x20f507)
#9 (anonymous namespace)::Connection::doTransactionInternal(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1107:26 (libkea-http.so.24+0x23d860)
#10 (anonymous namespace)::Connection::doTransaction(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1026:9 (libkea-http.so.24+0x203fc7)
#11 (anonymous namespace)::ConnectionPool::queueRequestInternal(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:638:21 (libkea-http.so.24+0x202a7c)
#12 (anonymous namespace)::ConnectionPool::queueRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:500:21 (libkea-http.so.24+0x1fe9a7)
#13 isc::http::HttpClient::asyncSendRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, isc::http::HttpClient::RequestTimeout const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1746:24 (libkea-http.so.24+0x1fe761)
#14 (anonymous namespace)::MtHttpClientTest::startRequest(int, int) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:297:9 (libhttp_unittests+0x65e664)
#15 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:438:21 (libhttp_unittests+0x65a9ec)
#16 (anonymous namespace)::MtHttpClientTest_threeByNineByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:684:5 (libhttp_unittests+0x6674d5)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#18 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
Mutex M428821698180067248 is already destroyed.
Mutex M465132674550366632 is already destroyed.
Mutex M429384734032790192 is already destroyed.
Thread T12 (tid=104185, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (libhttp_unittests+0x3bfaf3)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (libkea-http.so.24+0x25e23e)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/thread:307:16 (libkea-http.so.24+0x25c5cb)
#3 isc::http::HttpClientImpl::HttpClientImpl(isc::asiolink::IOService&, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1617:59 (libkea-http.so.24+0x251f4a)
#4 isc::http::HttpClient::HttpClient(isc::asiolink::IOService&, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1710:21 (libkea-http.so.24+0x1fdeca)
#5 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:417:9 (libhttp_unittests+0x659643)
#6 (anonymous namespace)::MtHttpClientTest_threeByNineByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:684:5 (libhttp_unittests+0x6674d5)
#7 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#8 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
SUMMARY: ThreadSanitizer: data race /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 in boost::asio::detail::posix_mutex::lock()
[ OK ] MtHttpClientTest.threeByNineByOne (208 ms) </pre></details>
<details><summary>[ RUN ] MtHttpClientTest.twoByFourByTwo </summary><pre>
WARNING: ThreadSanitizer: data race (pid=75745)
Read of size 1 at 0x7b1c000123f0 by thread T15:
#0 boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:53:13 (libhttp_unittests+0x463617)
#1 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:445:26 (libhttp_unittests+0x464a43)
#2 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:431:16 (libhttp_unittests+0x4638ca)
#3 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (libhttp_unittests+0x4631bf)
#4 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#5 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#6 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#7 decltype(*(std::__1::forward<boost::shared_ptr<isc::asiolink::IOService>&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&, void>(void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&) /usr/include/c++/v1/type_traits:3840:1 (libkea-http.so.24+0x25f539)
#8 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (libkea-http.so.24+0x25f433)
#9 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>::operator()<>() /usr/include/c++/v1/functional:2886:20 (libkea-http.so.24+0x25f3a1)
#10 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-http.so.24+0x25f2a0)
#11 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (libkea-http.so.24+0x25f128)
#12 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> > >(void*) /usr/include/c++/v1/thread:291:5 (libkea-http.so.24+0x25e2f9)
Previous write of size 8 at 0x7b1c000123f0 by main thread (mutexes: write M106251374869625392, write M108222404081500584, write M106814410722378416):
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (libhttp_unittests+0x41afe4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (libhttp_unittests+0x583afa)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (libhttp_unittests+0x5839a8)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (libhttp_unittests+0x58386f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (libhttp_unittests+0x5834f0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (libhttp_unittests+0x582f10)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (libhttp_unittests+0x582b18)
#7 boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket.hpp:419:25 (libkea-http.so.24+0x27b010)
#8 isc::asiolink::TCPSocket<(anonymous namespace)::SocketCallback>::open(isc::asiolink::IOEndpoint const*, (anonymous namespace)::SocketCallback&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_socket.h:291:21 (libkea-http.so.24+0x20f507)
#9 (anonymous namespace)::Connection::doTransactionInternal(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1107:26 (libkea-http.so.24+0x23d860)
#10 (anonymous namespace)::Connection::doTransaction(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1026:9 (libkea-http.so.24+0x203fc7)
#11 (anonymous namespace)::ConnectionPool::queueRequestInternal(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:638:21 (libkea-http.so.24+0x202a7c)
#12 (anonymous namespace)::ConnectionPool::queueRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:500:21 (libkea-http.so.24+0x1fe9a7)
#13 isc::http::HttpClient::asyncSendRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, isc::http::HttpClient::RequestTimeout const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1746:24 (libkea-http.so.24+0x1fe761)
#14 (anonymous namespace)::MtHttpClientTest::startRequest(int, int) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:297:9 (libhttp_unittests+0x65e664)
#15 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:438:21 (libhttp_unittests+0x65a9ec)
#16 (anonymous namespace)::MtHttpClientTest_twoByFourByTwo_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:692:5 (libhttp_unittests+0x6677ac)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#18 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
Location is heap block of size 104 at 0x7b1c000123d0 allocated by main thread:
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (libhttp_unittests+0x41afe4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (libhttp_unittests+0x583afa)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (libhttp_unittests+0x5839a8)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (libhttp_unittests+0x58386f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (libhttp_unittests+0x5834f0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (libhttp_unittests+0x582f10)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (libhttp_unittests+0x582b18)
#7 boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket.hpp:419:25 (libkea-http.so.24+0x27b010)
#8 isc::asiolink::TCPSocket<(anonymous namespace)::SocketCallback>::open(isc::asiolink::IOEndpoint const*, (anonymous namespace)::SocketCallback&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_socket.h:291:21 (libkea-http.so.24+0x20f507)
#9 (anonymous namespace)::Connection::doTransactionInternal(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1107:26 (libkea-http.so.24+0x23d860)
#10 (anonymous namespace)::Connection::doTransaction(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1026:9 (libkea-http.so.24+0x203fc7)
#11 (anonymous namespace)::ConnectionPool::queueRequestInternal(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:638:21 (libkea-http.so.24+0x202a7c)
#12 (anonymous namespace)::ConnectionPool::queueRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:500:21 (libkea-http.so.24+0x1fe9a7)
#13 isc::http::HttpClient::asyncSendRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, isc::http::HttpClient::RequestTimeout const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1746:24 (libkea-http.so.24+0x1fe761)
#14 (anonymous namespace)::MtHttpClientTest::startRequest(int, int) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:297:9 (libhttp_unittests+0x65e664)
#15 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:438:21 (libhttp_unittests+0x65a9ec)
#16 (anonymous namespace)::MtHttpClientTest_twoByFourByTwo_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:692:5 (libhttp_unittests+0x6677ac)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#18 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
Mutex M106251374869625392 is already destroyed.
Mutex M108222404081500584 is already destroyed.
Mutex M106814410722378416 is already destroyed.
Thread T15 (tid=104188, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (libhttp_unittests+0x3bfaf3)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (libkea-http.so.24+0x25e23e)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/thread:307:16 (libkea-http.so.24+0x25c5cb)
#3 isc::http::HttpClientImpl::HttpClientImpl(isc::asiolink::IOService&, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1617:59 (libkea-http.so.24+0x251f4a)
#4 isc::http::HttpClient::HttpClient(isc::asiolink::IOService&, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1710:21 (libkea-http.so.24+0x1fdeca)
#5 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:417:9 (libhttp_unittests+0x659643)
#6 (anonymous namespace)::MtHttpClientTest_twoByFourByTwo_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:692:5 (libhttp_unittests+0x6677ac)
#7 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#8 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
SUMMARY: ThreadSanitizer: data race /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:53:13 in boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&)
WARNING: ThreadSanitizer: data race (pid=75745)
Atomic read of size 1 at 0x7b1c00002f58 by thread T14:
#0 pthread_mutex_lock /usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:4196:3 (libhttp_unittests+0x3d60d4)
#1 boost::asio::detail::posix_mutex::lock() /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 (libhttp_unittests+0x464528)
#2 boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:55:23 (libhttp_unittests+0x463641)
#3 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:445:26 (libhttp_unittests+0x464a43)
#4 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:431:16 (libhttp_unittests+0x4638ca)
#5 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (libhttp_unittests+0x4631bf)
#6 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#7 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#8 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#9 decltype(*(std::__1::forward<boost::shared_ptr<isc::asiolink::IOService>&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&, void>(void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&) /usr/include/c++/v1/type_traits:3840:1 (libkea-http.so.24+0x25f539)
#10 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (libkea-http.so.24+0x25f433)
#11 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>::operator()<>() /usr/include/c++/v1/functional:2886:20 (libkea-http.so.24+0x25f3a1)
#12 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-http.so.24+0x25f2a0)
#13 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (libkea-http.so.24+0x25f128)
#14 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> > >(void*) /usr/include/c++/v1/thread:291:5 (libkea-http.so.24+0x25e2f9)
Previous write of size 8 at 0x7b1c00002f58 by main thread (mutexes: write M106251374869625392, write M125673852637438376, write M106814410722378416):
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (libhttp_unittests+0x41afe4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (libhttp_unittests+0x583afa)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (libhttp_unittests+0x5839a8)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (libhttp_unittests+0x58386f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (libhttp_unittests+0x5834f0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (libhttp_unittests+0x582f10)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (libhttp_unittests+0x582b18)
#7 boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket.hpp:419:25 (libkea-http.so.24+0x27b010)
#8 isc::asiolink::TCPSocket<(anonymous namespace)::SocketCallback>::open(isc::asiolink::IOEndpoint const*, (anonymous namespace)::SocketCallback&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_socket.h:291:21 (libkea-http.so.24+0x20f507)
#9 (anonymous namespace)::Connection::doTransactionInternal(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1107:26 (libkea-http.so.24+0x23d860)
#10 (anonymous namespace)::Connection::doTransaction(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1026:9 (libkea-http.so.24+0x203fc7)
#11 (anonymous namespace)::ConnectionPool::queueRequestInternal(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:638:21 (libkea-http.so.24+0x202a7c)
#12 (anonymous namespace)::ConnectionPool::queueRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:500:21 (libkea-http.so.24+0x1fe9a7)
#13 isc::http::HttpClient::asyncSendRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, isc::http::HttpClient::RequestTimeout const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1746:24 (libkea-http.so.24+0x1fe761)
#14 (anonymous namespace)::MtHttpClientTest::startRequest(int, int) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:297:9 (libhttp_unittests+0x65e664)
#15 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:438:21 (libhttp_unittests+0x65a9ec)
#16 (anonymous namespace)::MtHttpClientTest_twoByFourByTwo_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:692:5 (libhttp_unittests+0x6677ac)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#18 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
Location is heap block of size 104 at 0x7b1c00002f40 allocated by main thread:
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (libhttp_unittests+0x41afe4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (libhttp_unittests+0x583afa)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (libhttp_unittests+0x5839a8)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (libhttp_unittests+0x58386f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (libhttp_unittests+0x5834f0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (libhttp_unittests+0x582f10)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (libhttp_unittests+0x582b18)
#7 boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket.hpp:419:25 (libkea-http.so.24+0x27b010)
#8 isc::asiolink::TCPSocket<(anonymous namespace)::SocketCallback>::open(isc::asiolink::IOEndpoint const*, (anonymous namespace)::SocketCallback&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_socket.h:291:21 (libkea-http.so.24+0x20f507)
#9 (anonymous namespace)::Connection::doTransactionInternal(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1107:26 (libkea-http.so.24+0x23d860)
#10 (anonymous namespace)::Connection::doTransaction(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1026:9 (libkea-http.so.24+0x203fc7)
#11 (anonymous namespace)::ConnectionPool::queueRequestInternal(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:638:21 (libkea-http.so.24+0x202a7c)
#12 (anonymous namespace)::ConnectionPool::queueRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:500:21 (libkea-http.so.24+0x1fe9a7)
#13 isc::http::HttpClient::asyncSendRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, isc::http::HttpClient::RequestTimeout const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1746:24 (libkea-http.so.24+0x1fe761)
#14 (anonymous namespace)::MtHttpClientTest::startRequest(int, int) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:297:9 (libhttp_unittests+0x65e664)
#15 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:438:21 (libhttp_unittests+0x65a9ec)
#16 (anonymous namespace)::MtHttpClientTest_twoByFourByTwo_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:692:5 (libhttp_unittests+0x6677ac)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#18 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
Mutex M106251374869625392 is already destroyed.
Mutex M125673852637438376 is already destroyed.
Mutex M106814410722378416 is already destroyed.
Thread T14 (tid=104187, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (libhttp_unittests+0x3bfaf3)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (libkea-http.so.24+0x25e23e)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/thread:307:16 (libkea-http.so.24+0x25c5cb)
#3 isc::http::HttpClientImpl::HttpClientImpl(isc::asiolink::IOService&, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1617:59 (libkea-http.so.24+0x251f4a)
#4 isc::http::HttpClient::HttpClient(isc::asiolink::IOService&, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1710:21 (libkea-http.so.24+0x1fdeca)
#5 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:417:9 (libhttp_unittests+0x659643)
#6 (anonymous namespace)::MtHttpClientTest_twoByFourByTwo_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:692:5 (libhttp_unittests+0x6677ac)
#7 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#8 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
SUMMARY: ThreadSanitizer: data race /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 in boost::asio::detail::posix_mutex::lock()
[ OK ] MtHttpClientTest.twoByFourByTwo (114 ms) </pre></details>
<details><summary>[ RUN ] MtHttpClientTest.fourByFourByTwo </summary><pre>
WARNING: ThreadSanitizer: data race (pid=75745)
Read of size 1 at 0x7b1c00003200 by thread T19:
#0 boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:53:13 (libhttp_unittests+0x463617)
#1 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:445:26 (libhttp_unittests+0x464a43)
#2 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:431:16 (libhttp_unittests+0x4638ca)
#3 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (libhttp_unittests+0x4631bf)
#4 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#5 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#6 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#7 decltype(*(std::__1::forward<boost::shared_ptr<isc::asiolink::IOService>&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&, void>(void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&) /usr/include/c++/v1/type_traits:3840:1 (libkea-http.so.24+0x25f539)
#8 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (libkea-http.so.24+0x25f433)
#9 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>::operator()<>() /usr/include/c++/v1/functional:2886:20 (libkea-http.so.24+0x25f3a1)
#10 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-http.so.24+0x25f2a0)
#11 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (libkea-http.so.24+0x25f128)
#12 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> > >(void*) /usr/include/c++/v1/thread:291:5 (libkea-http.so.24+0x25e2f9)
Previous write of size 8 at 0x7b1c00003200 by main thread (mutexes: write M210115641275868080, write M212086670487814568, write M210678677128610480):
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (libhttp_unittests+0x41afe4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (libhttp_unittests+0x583afa)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (libhttp_unittests+0x5839a8)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (libhttp_unittests+0x58386f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (libhttp_unittests+0x5834f0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (libhttp_unittests+0x582f10)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (libhttp_unittests+0x582b18)
#7 boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket.hpp:419:25 (libkea-http.so.24+0x27b010)
#8 isc::asiolink::TCPSocket<(anonymous namespace)::SocketCallback>::open(isc::asiolink::IOEndpoint const*, (anonymous namespace)::SocketCallback&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_socket.h:291:21 (libkea-http.so.24+0x20f507)
#9 (anonymous namespace)::Connection::doTransactionInternal(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1107:26 (libkea-http.so.24+0x23d860)
#10 (anonymous namespace)::Connection::doTransaction(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1026:9 (libkea-http.so.24+0x203fc7)
#11 (anonymous namespace)::ConnectionPool::queueRequestInternal(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:638:21 (libkea-http.so.24+0x202a7c)
#12 (anonymous namespace)::ConnectionPool::queueRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:500:21 (libkea-http.so.24+0x1fe9a7)
#13 isc::http::HttpClient::asyncSendRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, isc::http::HttpClient::RequestTimeout const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1746:24 (libkea-http.so.24+0x1fe761)
#14 (anonymous namespace)::MtHttpClientTest::startRequest(int, int) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:297:9 (libhttp_unittests+0x65e664)
#15 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:438:21 (libhttp_unittests+0x65a9ec)
#16 (anonymous namespace)::MtHttpClientTest_fourByFourByTwo_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:700:5 (libhttp_unittests+0x667a8c)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#18 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
Location is heap block of size 104 at 0x7b1c000031e0 allocated by main thread:
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (libhttp_unittests+0x41afe4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (libhttp_unittests+0x583afa)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (libhttp_unittests+0x5839a8)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (libhttp_unittests+0x58386f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (libhttp_unittests+0x5834f0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (libhttp_unittests+0x582f10)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (libhttp_unittests+0x582b18)
#7 boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket.hpp:419:25 (libkea-http.so.24+0x27b010)
#8 isc::asiolink::TCPSocket<(anonymous namespace)::SocketCallback>::open(isc::asiolink::IOEndpoint const*, (anonymous namespace)::SocketCallback&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_socket.h:291:21 (libkea-http.so.24+0x20f507)
#9 (anonymous namespace)::Connection::doTransactionInternal(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1107:26 (libkea-http.so.24+0x23d860)
#10 (anonymous namespace)::Connection::doTransaction(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1026:9 (libkea-http.so.24+0x203fc7)
#11 (anonymous namespace)::ConnectionPool::queueRequestInternal(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:638:21 (libkea-http.so.24+0x202a7c)
#12 (anonymous namespace)::ConnectionPool::queueRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:500:21 (libkea-http.so.24+0x1fe9a7)
#13 isc::http::HttpClient::asyncSendRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, isc::http::HttpClient::RequestTimeout const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1746:24 (libkea-http.so.24+0x1fe761)
#14 (anonymous namespace)::MtHttpClientTest::startRequest(int, int) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:297:9 (libhttp_unittests+0x65e664)
#15 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:438:21 (libhttp_unittests+0x65a9ec)
#16 (anonymous namespace)::MtHttpClientTest_fourByFourByTwo_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:700:5 (libhttp_unittests+0x667a8c)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#18 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
Mutex M210115641275868080 is already destroyed.
Mutex M212086670487814568 is already destroyed.
Mutex M210678677128610480 is already destroyed.
Thread T19 (tid=104192, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (libhttp_unittests+0x3bfaf3)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (libkea-http.so.24+0x25e23e)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/thread:307:16 (libkea-http.so.24+0x25c5cb)
#3 isc::http::HttpClientImpl::HttpClientImpl(isc::asiolink::IOService&, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1617:59 (libkea-http.so.24+0x251f4a)
#4 isc::http::HttpClient::HttpClient(isc::asiolink::IOService&, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1710:21 (libkea-http.so.24+0x1fdeca)
#5 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:417:9 (libhttp_unittests+0x659643)
#6 (anonymous namespace)::MtHttpClientTest_fourByFourByTwo_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:700:5 (libhttp_unittests+0x667a8c)
#7 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#8 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
SUMMARY: ThreadSanitizer: data race /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:53:13 in boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&)
WARNING: ThreadSanitizer: data race (pid=75745)
Atomic read of size 1 at 0x7b1c0000ba78 by thread T18:
#0 pthread_mutex_lock /usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:4196:3 (libhttp_unittests+0x3d60d4)
#1 boost::asio::detail::posix_mutex::lock() /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 (libhttp_unittests+0x464528)
#2 boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:55:23 (libhttp_unittests+0x463641)
#3 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:445:26 (libhttp_unittests+0x464a43)
#4 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:431:16 (libhttp_unittests+0x4638ca)
#5 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (libhttp_unittests+0x4631bf)
#6 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#7 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#8 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#9 decltype(*(std::__1::forward<boost::shared_ptr<isc::asiolink::IOService>&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&, void>(void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&) /usr/include/c++/v1/type_traits:3840:1 (libkea-http.so.24+0x25f539)
#10 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (libkea-http.so.24+0x25f433)
#11 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>::operator()<>() /usr/include/c++/v1/functional:2886:20 (libkea-http.so.24+0x25f3a1)
#12 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-http.so.24+0x25f2a0)
#13 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (libkea-http.so.24+0x25f128)
#14 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> > >(void*) /usr/include/c++/v1/thread:291:5 (libkea-http.so.24+0x25e2f9)
Previous write of size 8 at 0x7b1c0000ba78 by main thread (mutexes: write M210115641275868080, write M229538119043547560, write M210678677128610480):
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (libhttp_unittests+0x41afe4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (libhttp_unittests+0x583afa)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (libhttp_unittests+0x5839a8)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (libhttp_unittests+0x58386f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (libhttp_unittests+0x5834f0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (libhttp_unittests+0x582f10)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (libhttp_unittests+0x582b18)
#7 boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket.hpp:419:25 (libkea-http.so.24+0x27b010)
#8 isc::asiolink::TCPSocket<(anonymous namespace)::SocketCallback>::open(isc::asiolink::IOEndpoint const*, (anonymous namespace)::SocketCallback&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_socket.h:291:21 (libkea-http.so.24+0x20f507)
#9 (anonymous namespace)::Connection::doTransactionInternal(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1107:26 (libkea-http.so.24+0x23d860)
#10 (anonymous namespace)::Connection::doTransaction(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1026:9 (libkea-http.so.24+0x203fc7)
#11 (anonymous namespace)::ConnectionPool::queueRequestInternal(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:638:21 (libkea-http.so.24+0x202a7c)
#12 (anonymous namespace)::ConnectionPool::queueRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:500:21 (libkea-http.so.24+0x1fe9a7)
#13 isc::http::HttpClient::asyncSendRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, isc::http::HttpClient::RequestTimeout const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1746:24 (libkea-http.so.24+0x1fe761)
#14 (anonymous namespace)::MtHttpClientTest::startRequest(int, int) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:297:9 (libhttp_unittests+0x65e664)
#15 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:438:21 (libhttp_unittests+0x65a9ec)
#16 (anonymous namespace)::MtHttpClientTest_fourByFourByTwo_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:700:5 (libhttp_unittests+0x667a8c)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#18 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
Location is heap block of size 104 at 0x7b1c0000ba60 allocated by main thread:
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (libhttp_unittests+0x41afe4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (libhttp_unittests+0x583afa)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (libhttp_unittests+0x5839a8)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (libhttp_unittests+0x58386f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (libhttp_unittests+0x5834f0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (libhttp_unittests+0x582f10)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (libhttp_unittests+0x582b18)
#7 boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket.hpp:419:25 (libkea-http.so.24+0x27b010)
#8 isc::asiolink::TCPSocket<(anonymous namespace)::SocketCallback>::open(isc::asiolink::IOEndpoint const*, (anonymous namespace)::SocketCallback&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_socket.h:291:21 (libkea-http.so.24+0x20f507)
#9 (anonymous namespace)::Connection::doTransactionInternal(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1107:26 (libkea-http.so.24+0x23d860)
#10 (anonymous namespace)::Connection::doTransaction(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1026:9 (libkea-http.so.24+0x203fc7)
#11 (anonymous namespace)::ConnectionPool::queueRequestInternal(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:638:21 (libkea-http.so.24+0x202a7c)
#12 (anonymous namespace)::ConnectionPool::queueRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:500:21 (libkea-http.so.24+0x1fe9a7)
#13 isc::http::HttpClient::asyncSendRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, isc::http::HttpClient::RequestTimeout const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1746:24 (libkea-http.so.24+0x1fe761)
#14 (anonymous namespace)::MtHttpClientTest::startRequest(int, int) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:297:9 (libhttp_unittests+0x65e664)
#15 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:438:21 (libhttp_unittests+0x65a9ec)
#16 (anonymous namespace)::MtHttpClientTest_fourByFourByTwo_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:700:5 (libhttp_unittests+0x667a8c)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#18 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
Mutex M210115641275868080 is already destroyed.
Mutex M229538119043547560 is already destroyed.
Mutex M210678677128610480 is already destroyed.
Thread T18 (tid=104191, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (libhttp_unittests+0x3bfaf3)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (libkea-http.so.24+0x25e23e)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/thread:307:16 (libkea-http.so.24+0x25c5cb)
#3 isc::http::HttpClientImpl::HttpClientImpl(isc::asiolink::IOService&, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1617:59 (libkea-http.so.24+0x251f4a)
#4 isc::http::HttpClient::HttpClient(isc::asiolink::IOService&, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1710:21 (libkea-http.so.24+0x1fdeca)
#5 (anonymous namespace)::MtHttpClientTest::threadRequestAndReceive(unsigned long, unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:417:9 (libhttp_unittests+0x659643)
#6 (anonymous namespace)::MtHttpClientTest_fourByFourByTwo_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/http/tests/mt_client_unittests.cc:700:5 (libhttp_unittests+0x667a8c)
#7 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#8 main /usr/home/andrei/work/isc/kea/src/lib/http/tests/run_unittests.cc:18:18 (libhttp_unittests+0x4fbfca)
SUMMARY: ThreadSanitizer: data race /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 in boost::asio::detail::posix_mutex::lock()
[ OK ] MtHttpClientTest.fourByFourByTwo (226 ms) </pre></details>
<details><summary>[ RUN ] CmdHttpListenerTest.basicListenAndRespond </summary><pre>
WARNING: ThreadSanitizer: data race (pid=75816)
Read of size 1 at 0x7b1c000064c0 by thread T7:
#0 boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:53:13 (run_unittests+0x37def7)
#1 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:445:26 (run_unittests+0x3db303)
#2 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:431:16 (run_unittests+0x3da8da)
#3 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (run_unittests+0x3da39f)
#4 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#5 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#6 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#7 decltype(*(std::__1::forward<boost::shared_ptr<isc::asiolink::IOService>&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&, void>(void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&) /usr/include/c++/v1/type_traits:3840:1 (libkea-cfgclient.so.23+0x102d19)
#8 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (libkea-cfgclient.so.23+0x102c13)
#9 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>::operator()<>() /usr/include/c++/v1/functional:2886:20 (libkea-cfgclient.so.23+0x102b81)
#10 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-cfgclient.so.23+0x102a80)
#11 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (libkea-cfgclient.so.23+0x102908)
#12 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> > >(void*) /usr/include/c++/v1/thread:291:5 (libkea-cfgclient.so.23+0x101ad9)
Previous write of size 8 at 0x7b1c000064c0 by main thread (mutexes: write M1287):
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest_basicListenAndRespond_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:592:5 (run_unittests+0x3b9179)
#13 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#14 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#15 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Location is heap block of size 104 at 0x7b1c000064a0 allocated by main thread:
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest_basicListenAndRespond_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:592:5 (run_unittests+0x3b9179)
#13 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#14 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#15 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Mutex M1287 (0x7b2400000460) created at:
#0 pthread_mutex_init /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1224:3 (run_unittests+0x307869)
#1 boost::asio::detail::posix_mutex::posix_mutex() /usr/local/include/boost/asio/detail/impl/posix_mutex.ipp:34:15 (run_unittests+0x3dcb8c)
#2 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:108:12 (run_unittests+0x3d756c)
#3 boost::asio::detail::kqueue_reactor::kqueue_reactor(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:51:5 (run_unittests+0x3d6fb1)
#4 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::kqueue_reactor, boost::asio::execution_context>(void*) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:87:14 (run_unittests+0x3d6cc7)
#5 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) /usr/local/include/boost/asio/detail/impl/service_registry.ipp:132:36 (run_unittests+0x3d62c8)
#6 boost::asio::detail::kqueue_reactor& boost::asio::detail::service_registry::use_service<boost::asio::detail::kqueue_reactor>() /usr/local/include/boost/asio/detail/impl/service_registry.hpp:30:33 (run_unittests+0x3d6c08)
#7 boost::asio::detail::kqueue_reactor& boost::asio::use_service<boost::asio::detail::kqueue_reactor>(boost::asio::execution_context&) /usr/local/include/boost/asio/impl/execution_context.hpp:35:40 (run_unittests+0x3d6adb)
#8 boost::asio::detail::reactive_socket_service_base::reactive_socket_service_base(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:33:14 (run_unittests+0x3d6763)
#9 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::reactive_socket_service(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:80:7 (run_unittests+0x3d65e8)
#10 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>, boost::asio::io_context>(void*) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:87:14 (run_unittests+0x3d6127)
#11 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) /usr/local/include/boost/asio/detail/impl/service_registry.ipp:132:36 (run_unittests+0x3d62c8)
#12 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>& boost::asio::detail::service_registry::use_service<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp> >(boost::asio::io_context&) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:39:33 (run_unittests+0x3d5fed)
#13 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>& boost::asio::use_service<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp> >(boost::asio::io_context&) /usr/local/include/boost/asio/impl/io_context.hpp:42:42 (run_unittests+0x3d5cdf)
#14 boost::asio::detail::io_object_impl<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>, boost::asio::executor>::io_object_impl<boost::asio::io_context>(boost::asio::io_context&, std::__1::enable_if<is_convertible<boost::asio::io_context&, boost::asio::execution_context&>::value, void>::type*) /usr/local/include/boost/asio/detail/io_object_impl.hpp:86:17 (run_unittests+0x3d5b55)
#15 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::basic_socket_acceptor<boost::asio::io_context>(boost::asio::io_context&, std::__1::enable_if<is_convertible<boost::asio::io_context&, boost::asio::execution_context&>::value, void>::type*) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:142:7 (libkea-http.so.24+0x35b4ac)
#16 isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::IOAcceptor(isc::asiolink::IOService&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:42:25 (libkea-http.so.24+0x35b2b7)
#17 isc::asiolink::TCPAcceptor<std::__1::function<void (boost::system::error_code const&)> >::TCPAcceptor(isc::asiolink::IOService&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_acceptor.h:39:11 (libkea-http.so.24+0x35a44f)
#18 isc::http::HttpListenerImpl::HttpListenerImpl(isc::asiolink::IOService&, isc::asiolink::IOAddress const&, unsigned short, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpResponseCreatorFactory> const&, long, long) /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:32:29 (libkea-http.so.24+0x3590b7)
#19 isc::http::HttpListener::HttpListener(isc::asiolink::IOService&, isc::asiolink::IOAddress const&, unsigned short, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpResponseCreatorFactory> const&, isc::http::HttpListener::RequestTimeout const&, isc::http::HttpListener::IdleTimeout const&) /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:25:17 (libkea-http.so.24+0x358354)
#20 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:64:34 (libkea-cfgclient.so.23+0xfae47)
#21 (anonymous namespace)::CmdHttpListenerTest_basicListenAndRespond_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:592:5 (run_unittests+0x3b9179)
#22 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#23 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#24 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Thread T7 (tid=104200, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (run_unittests+0x3066b3)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (libkea-cfgclient.so.23+0x101a1e)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/thread:307:16 (libkea-cfgclient.so.23+0xfc0db)
#3 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:71:55 (libkea-cfgclient.so.23+0xfaf3e)
#4 (anonymous namespace)::CmdHttpListenerTest_basicListenAndRespond_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:592:5 (run_unittests+0x3b9179)
#5 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#6 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#7 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
SUMMARY: ThreadSanitizer: data race /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:53:13 in boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&)
WARNING: ThreadSanitizer: data race (pid=75816)
Atomic read of size 1 at 0x7b1c000064b8 by thread T7:
#0 pthread_mutex_lock /usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:4196:3 (run_unittests+0x31cc94)
#1 boost::asio::detail::posix_mutex::lock() /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 (run_unittests+0x37e188)
#2 boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:55:23 (run_unittests+0x37df21)
#3 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:445:26 (run_unittests+0x3db303)
#4 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:431:16 (run_unittests+0x3da8da)
#5 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (run_unittests+0x3da39f)
#6 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#7 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#8 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#9 decltype(*(std::__1::forward<boost::shared_ptr<isc::asiolink::IOService>&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&, void>(void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&) /usr/include/c++/v1/type_traits:3840:1 (libkea-cfgclient.so.23+0x102d19)
#10 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (libkea-cfgclient.so.23+0x102c13)
#11 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>::operator()<>() /usr/include/c++/v1/functional:2886:20 (libkea-cfgclient.so.23+0x102b81)
#12 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-cfgclient.so.23+0x102a80)
#13 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (libkea-cfgclient.so.23+0x102908)
#14 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> > >(void*) /usr/include/c++/v1/thread:291:5 (libkea-cfgclient.so.23+0x101ad9)
Previous write of size 8 at 0x7b1c000064b8 by main thread (mutexes: write M1287):
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest_basicListenAndRespond_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:592:5 (run_unittests+0x3b9179)
#13 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#14 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#15 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Location is heap block of size 104 at 0x7b1c000064a0 allocated by main thread:
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest_basicListenAndRespond_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:592:5 (run_unittests+0x3b9179)
#13 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#14 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#15 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Mutex M1287 (0x7b2400000460) created at:
#0 pthread_mutex_init /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1224:3 (run_unittests+0x307869)
#1 boost::asio::detail::posix_mutex::posix_mutex() /usr/local/include/boost/asio/detail/impl/posix_mutex.ipp:34:15 (run_unittests+0x3dcb8c)
#2 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:108:12 (run_unittests+0x3d756c)
#3 boost::asio::detail::kqueue_reactor::kqueue_reactor(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:51:5 (run_unittests+0x3d6fb1)
#4 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::kqueue_reactor, boost::asio::execution_context>(void*) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:87:14 (run_unittests+0x3d6cc7)
#5 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) /usr/local/include/boost/asio/detail/impl/service_registry.ipp:132:36 (run_unittests+0x3d62c8)
#6 boost::asio::detail::kqueue_reactor& boost::asio::detail::service_registry::use_service<boost::asio::detail::kqueue_reactor>() /usr/local/include/boost/asio/detail/impl/service_registry.hpp:30:33 (run_unittests+0x3d6c08)
#7 boost::asio::detail::kqueue_reactor& boost::asio::use_service<boost::asio::detail::kqueue_reactor>(boost::asio::execution_context&) /usr/local/include/boost/asio/impl/execution_context.hpp:35:40 (run_unittests+0x3d6adb)
#8 boost::asio::detail::reactive_socket_service_base::reactive_socket_service_base(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:33:14 (run_unittests+0x3d6763)
#9 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::reactive_socket_service(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:80:7 (run_unittests+0x3d65e8)
#10 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>, boost::asio::io_context>(void*) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:87:14 (run_unittests+0x3d6127)
#11 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) /usr/local/include/boost/asio/detail/impl/service_registry.ipp:132:36 (run_unittests+0x3d62c8)
#12 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>& boost::asio::detail::service_registry::use_service<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp> >(boost::asio::io_context&) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:39:33 (run_unittests+0x3d5fed)
#13 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>& boost::asio::use_service<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp> >(boost::asio::io_context&) /usr/local/include/boost/asio/impl/io_context.hpp:42:42 (run_unittests+0x3d5cdf)
#14 boost::asio::detail::io_object_impl<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>, boost::asio::executor>::io_object_impl<boost::asio::io_context>(boost::asio::io_context&, std::__1::enable_if<is_convertible<boost::asio::io_context&, boost::asio::execution_context&>::value, void>::type*) /usr/local/include/boost/asio/detail/io_object_impl.hpp:86:17 (run_unittests+0x3d5b55)
#15 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::basic_socket_acceptor<boost::asio::io_context>(boost::asio::io_context&, std::__1::enable_if<is_convertible<boost::asio::io_context&, boost::asio::execution_context&>::value, void>::type*) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:142:7 (libkea-http.so.24+0x35b4ac)
#16 isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::IOAcceptor(isc::asiolink::IOService&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:42:25 (libkea-http.so.24+0x35b2b7)
#17 isc::asiolink::TCPAcceptor<std::__1::function<void (boost::system::error_code const&)> >::TCPAcceptor(isc::asiolink::IOService&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_acceptor.h:39:11 (libkea-http.so.24+0x35a44f)
#18 isc::http::HttpListenerImpl::HttpListenerImpl(isc::asiolink::IOService&, isc::asiolink::IOAddress const&, unsigned short, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpResponseCreatorFactory> const&, long, long) /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:32:29 (libkea-http.so.24+0x3590b7)
#19 isc::http::HttpListener::HttpListener(isc::asiolink::IOService&, isc::asiolink::IOAddress const&, unsigned short, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpResponseCreatorFactory> const&, isc::http::HttpListener::RequestTimeout const&, isc::http::HttpListener::IdleTimeout const&) /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:25:17 (libkea-http.so.24+0x358354)
#20 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:64:34 (libkea-cfgclient.so.23+0xfae47)
#21 (anonymous namespace)::CmdHttpListenerTest_basicListenAndRespond_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:592:5 (run_unittests+0x3b9179)
#22 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#23 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#24 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Thread T7 (tid=104200, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (run_unittests+0x3066b3)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (libkea-cfgclient.so.23+0x101a1e)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/thread:307:16 (libkea-cfgclient.so.23+0xfc0db)
#3 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:71:55 (libkea-cfgclient.so.23+0xfaf3e)
#4 (anonymous namespace)::CmdHttpListenerTest_basicListenAndRespond_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:592:5 (run_unittests+0x3b9179)
#5 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#6 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#7 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
SUMMARY: ThreadSanitizer: data race /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 in boost::asio::detail::posix_mutex::lock()
[ OK ] CmdHttpListenerTest.basicListenAndRespond (207 ms) </pre></details>
<details><summary>[ RUN ] CmdHttpListenerTest.oneByOne </summary><pre>
WARNING: ThreadSanitizer: data race (pid=75816)
Read of size 1 at 0x7b1c00006370 by thread T8:
#0 boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:53:13 (run_unittests+0x37def7)
#1 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:445:26 (run_unittests+0x3db303)
#2 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:431:16 (run_unittests+0x3da8da)
#3 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (run_unittests+0x3da39f)
#4 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#5 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#6 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#7 decltype(*(std::__1::forward<boost::shared_ptr<isc::asiolink::IOService>&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&, void>(void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&) /usr/include/c++/v1/type_traits:3840:1 (libkea-cfgclient.so.23+0x102d19)
#8 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (libkea-cfgclient.so.23+0x102c13)
#9 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>::operator()<>() /usr/include/c++/v1/functional:2886:20 (libkea-cfgclient.so.23+0x102b81)
#10 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-cfgclient.so.23+0x102a80)
#11 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (libkea-cfgclient.so.23+0x102908)
#12 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> > >(void*) /usr/include/c++/v1/thread:291:5 (libkea-cfgclient.so.23+0x101ad9)
Previous write of size 8 at 0x7b1c00006370 by main thread (mutexes: write M1987):
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#13 (anonymous namespace)::CmdHttpListenerTest_oneByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:645:5 (run_unittests+0x3c0f20)
#14 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#15 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#16 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Location is heap block of size 104 at 0x7b1c00006350 allocated by main thread:
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#13 (anonymous namespace)::CmdHttpListenerTest_oneByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:645:5 (run_unittests+0x3c0f20)
#14 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#15 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#16 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Mutex M1987 (0x7b2400000460) created at:
#0 pthread_mutex_init /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1224:3 (run_unittests+0x307869)
#1 boost::asio::detail::posix_mutex::posix_mutex() /usr/local/include/boost/asio/detail/impl/posix_mutex.ipp:34:15 (run_unittests+0x3dcb8c)
#2 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:108:12 (run_unittests+0x3d756c)
#3 boost::asio::detail::kqueue_reactor::kqueue_reactor(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:51:5 (run_unittests+0x3d6fb1)
#4 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::kqueue_reactor, boost::asio::execution_context>(void*) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:87:14 (run_unittests+0x3d6cc7)
#5 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) /usr/local/include/boost/asio/detail/impl/service_registry.ipp:132:36 (run_unittests+0x3d62c8)
#6 boost::asio::detail::kqueue_reactor& boost::asio::detail::service_registry::use_service<boost::asio::detail::kqueue_reactor>() /usr/local/include/boost/asio/detail/impl/service_registry.hpp:30:33 (run_unittests+0x3d6c08)
#7 boost::asio::detail::kqueue_reactor& boost::asio::use_service<boost::asio::detail::kqueue_reactor>(boost::asio::execution_context&) /usr/local/include/boost/asio/impl/execution_context.hpp:35:40 (run_unittests+0x3d6adb)
#8 boost::asio::detail::reactive_socket_service_base::reactive_socket_service_base(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:33:14 (run_unittests+0x3d6763)
#9 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::reactive_socket_service(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:80:7 (run_unittests+0x3d65e8)
#10 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>, boost::asio::io_context>(void*) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:87:14 (run_unittests+0x3d6127)
#11 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) /usr/local/include/boost/asio/detail/impl/service_registry.ipp:132:36 (run_unittests+0x3d62c8)
#12 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>& boost::asio::detail::service_registry::use_service<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp> >(boost::asio::io_context&) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:39:33 (run_unittests+0x3d5fed)
#13 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>& boost::asio::use_service<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp> >(boost::asio::io_context&) /usr/local/include/boost/asio/impl/io_context.hpp:42:42 (run_unittests+0x3d5cdf)
#14 boost::asio::detail::io_object_impl<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>, boost::asio::executor>::io_object_impl<boost::asio::io_context>(boost::asio::io_context&, std::__1::enable_if<is_convertible<boost::asio::io_context&, boost::asio::execution_context&>::value, void>::type*) /usr/local/include/boost/asio/detail/io_object_impl.hpp:86:17 (run_unittests+0x3d5b55)
#15 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::basic_socket_acceptor<boost::asio::io_context>(boost::asio::io_context&, std::__1::enable_if<is_convertible<boost::asio::io_context&, boost::asio::execution_context&>::value, void>::type*) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:142:7 (libkea-http.so.24+0x35b4ac)
#16 isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::IOAcceptor(isc::asiolink::IOService&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:42:25 (libkea-http.so.24+0x35b2b7)
#17 isc::asiolink::TCPAcceptor<std::__1::function<void (boost::system::error_code const&)> >::TCPAcceptor(isc::asiolink::IOService&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_acceptor.h:39:11 (libkea-http.so.24+0x35a44f)
#18 isc::http::HttpListenerImpl::HttpListenerImpl(isc::asiolink::IOService&, isc::asiolink::IOAddress const&, unsigned short, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpResponseCreatorFactory> const&, long, long) /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:32:29 (libkea-http.so.24+0x3590b7)
#19 isc::http::HttpListener::HttpListener(isc::asiolink::IOService&, isc::asiolink::IOAddress const&, unsigned short, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpResponseCreatorFactory> const&, isc::http::HttpListener::RequestTimeout const&, isc::http::HttpListener::IdleTimeout const&) /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:25:17 (libkea-http.so.24+0x358354)
#20 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:64:34 (libkea-cfgclient.so.23+0xfae47)
#21 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#22 (anonymous namespace)::CmdHttpListenerTest_oneByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:645:5 (run_unittests+0x3c0f20)
#23 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#24 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#25 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Thread T8 (tid=104201, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (run_unittests+0x3066b3)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (libkea-cfgclient.so.23+0x101a1e)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/thread:307:16 (libkea-cfgclient.so.23+0xfc0db)
#3 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:71:55 (libkea-cfgclient.so.23+0xfaf3e)
#4 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#5 (anonymous namespace)::CmdHttpListenerTest_oneByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:645:5 (run_unittests+0x3c0f20)
#6 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#7 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#8 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
SUMMARY: ThreadSanitizer: data race /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:53:13 in boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&)
WARNING: ThreadSanitizer: data race (pid=75816)
Atomic read of size 1 at 0x7b1c00006368 by thread T8:
#0 pthread_mutex_lock /usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:4196:3 (run_unittests+0x31cc94)
#1 boost::asio::detail::posix_mutex::lock() /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 (run_unittests+0x37e188)
#2 boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:55:23 (run_unittests+0x37df21)
#3 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:445:26 (run_unittests+0x3db303)
#4 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:431:16 (run_unittests+0x3da8da)
#5 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (run_unittests+0x3da39f)
#6 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#7 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#8 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#9 decltype(*(std::__1::forward<boost::shared_ptr<isc::asiolink::IOService>&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&, void>(void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&) /usr/include/c++/v1/type_traits:3840:1 (libkea-cfgclient.so.23+0x102d19)
#10 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (libkea-cfgclient.so.23+0x102c13)
#11 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>::operator()<>() /usr/include/c++/v1/functional:2886:20 (libkea-cfgclient.so.23+0x102b81)
#12 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-cfgclient.so.23+0x102a80)
#13 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (libkea-cfgclient.so.23+0x102908)
#14 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> > >(void*) /usr/include/c++/v1/thread:291:5 (libkea-cfgclient.so.23+0x101ad9)
Previous write of size 8 at 0x7b1c00006368 by main thread (mutexes: write M1987):
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#13 (anonymous namespace)::CmdHttpListenerTest_oneByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:645:5 (run_unittests+0x3c0f20)
#14 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#15 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#16 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Location is heap block of size 104 at 0x7b1c00006350 allocated by main thread:
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#13 (anonymous namespace)::CmdHttpListenerTest_oneByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:645:5 (run_unittests+0x3c0f20)
#14 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#15 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#16 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Mutex M1987 (0x7b2400000460) created at:
#0 pthread_mutex_init /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1224:3 (run_unittests+0x307869)
#1 boost::asio::detail::posix_mutex::posix_mutex() /usr/local/include/boost/asio/detail/impl/posix_mutex.ipp:34:15 (run_unittests+0x3dcb8c)
#2 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:108:12 (run_unittests+0x3d756c)
#3 boost::asio::detail::kqueue_reactor::kqueue_reactor(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:51:5 (run_unittests+0x3d6fb1)
#4 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::kqueue_reactor, boost::asio::execution_context>(void*) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:87:14 (run_unittests+0x3d6cc7)
#5 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) /usr/local/include/boost/asio/detail/impl/service_registry.ipp:132:36 (run_unittests+0x3d62c8)
#6 boost::asio::detail::kqueue_reactor& boost::asio::detail::service_registry::use_service<boost::asio::detail::kqueue_reactor>() /usr/local/include/boost/asio/detail/impl/service_registry.hpp:30:33 (run_unittests+0x3d6c08)
#7 boost::asio::detail::kqueue_reactor& boost::asio::use_service<boost::asio::detail::kqueue_reactor>(boost::asio::execution_context&) /usr/local/include/boost/asio/impl/execution_context.hpp:35:40 (run_unittests+0x3d6adb)
#8 boost::asio::detail::reactive_socket_service_base::reactive_socket_service_base(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:33:14 (run_unittests+0x3d6763)
#9 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::reactive_socket_service(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:80:7 (run_unittests+0x3d65e8)
#10 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>, boost::asio::io_context>(void*) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:87:14 (run_unittests+0x3d6127)
#11 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) /usr/local/include/boost/asio/detail/impl/service_registry.ipp:132:36 (run_unittests+0x3d62c8)
#12 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>& boost::asio::detail::service_registry::use_service<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp> >(boost::asio::io_context&) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:39:33 (run_unittests+0x3d5fed)
#13 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>& boost::asio::use_service<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp> >(boost::asio::io_context&) /usr/local/include/boost/asio/impl/io_context.hpp:42:42 (run_unittests+0x3d5cdf)
#14 boost::asio::detail::io_object_impl<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>, boost::asio::executor>::io_object_impl<boost::asio::io_context>(boost::asio::io_context&, std::__1::enable_if<is_convertible<boost::asio::io_context&, boost::asio::execution_context&>::value, void>::type*) /usr/local/include/boost/asio/detail/io_object_impl.hpp:86:17 (run_unittests+0x3d5b55)
#15 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::basic_socket_acceptor<boost::asio::io_context>(boost::asio::io_context&, std::__1::enable_if<is_convertible<boost::asio::io_context&, boost::asio::execution_context&>::value, void>::type*) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:142:7 (libkea-http.so.24+0x35b4ac)
#16 isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::IOAcceptor(isc::asiolink::IOService&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:42:25 (libkea-http.so.24+0x35b2b7)
#17 isc::asiolink::TCPAcceptor<std::__1::function<void (boost::system::error_code const&)> >::TCPAcceptor(isc::asiolink::IOService&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_acceptor.h:39:11 (libkea-http.so.24+0x35a44f)
#18 isc::http::HttpListenerImpl::HttpListenerImpl(isc::asiolink::IOService&, isc::asiolink::IOAddress const&, unsigned short, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpResponseCreatorFactory> const&, long, long) /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:32:29 (libkea-http.so.24+0x3590b7)
#19 isc::http::HttpListener::HttpListener(isc::asiolink::IOService&, isc::asiolink::IOAddress const&, unsigned short, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpResponseCreatorFactory> const&, isc::http::HttpListener::RequestTimeout const&, isc::http::HttpListener::IdleTimeout const&) /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:25:17 (libkea-http.so.24+0x358354)
#20 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:64:34 (libkea-cfgclient.so.23+0xfae47)
#21 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#22 (anonymous namespace)::CmdHttpListenerTest_oneByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:645:5 (run_unittests+0x3c0f20)
#23 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#24 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#25 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Thread T8 (tid=104201, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (run_unittests+0x3066b3)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (libkea-cfgclient.so.23+0x101a1e)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/thread:307:16 (libkea-cfgclient.so.23+0xfc0db)
#3 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:71:55 (libkea-cfgclient.so.23+0xfaf3e)
#4 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#5 (anonymous namespace)::CmdHttpListenerTest_oneByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:645:5 (run_unittests+0x3c0f20)
#6 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#7 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#8 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
SUMMARY: ThreadSanitizer: data race /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 in boost::asio::detail::posix_mutex::lock()
[ OK ] CmdHttpListenerTest.oneByOne (23 ms) </pre></details>
<details><summary>[ RUN ] CmdHttpListenerTest.oneByFour </summary><pre>
WARNING: ThreadSanitizer: data race (pid=75816)
Read of size 1 at 0x7b1c00006e60 by thread T9:
#0 boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:53:13 (run_unittests+0x37def7)
#1 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:445:26 (run_unittests+0x3db303)
#2 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:431:16 (run_unittests+0x3da8da)
#3 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (run_unittests+0x3da39f)
#4 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#5 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#6 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#7 decltype(*(std::__1::forward<boost::shared_ptr<isc::asiolink::IOService>&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&, void>(void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&) /usr/include/c++/v1/type_traits:3840:1 (libkea-cfgclient.so.23+0x102d19)
#8 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (libkea-cfgclient.so.23+0x102c13)
#9 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>::operator()<>() /usr/include/c++/v1/functional:2886:20 (libkea-cfgclient.so.23+0x102b81)
#10 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-cfgclient.so.23+0x102a80)
#11 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (libkea-cfgclient.so.23+0x102908)
#12 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> > >(void*) /usr/include/c++/v1/thread:291:5 (libkea-cfgclient.so.23+0x101ad9)
Previous write of size 8 at 0x7b1c00006e60 by main thread (mutexes: write M2385):
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#13 (anonymous namespace)::CmdHttpListenerTest_oneByFour_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:652:5 (run_unittests+0x3ccb90)
#14 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#15 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#16 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Location is heap block of size 104 at 0x7b1c00006e40 allocated by main thread:
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#13 (anonymous namespace)::CmdHttpListenerTest_oneByFour_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:652:5 (run_unittests+0x3ccb90)
#14 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#15 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#16 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Mutex M2385 (0x7b2400000460) created at:
#0 pthread_mutex_init /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1224:3 (run_unittests+0x307869)
#1 boost::asio::detail::posix_mutex::posix_mutex() /usr/local/include/boost/asio/detail/impl/posix_mutex.ipp:34:15 (run_unittests+0x3dcb8c)
#2 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:108:12 (run_unittests+0x3d756c)
#3 boost::asio::detail::kqueue_reactor::kqueue_reactor(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:51:5 (run_unittests+0x3d6fb1)
#4 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::kqueue_reactor, boost::asio::execution_context>(void*) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:87:14 (run_unittests+0x3d6cc7)
#5 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) /usr/local/include/boost/asio/detail/impl/service_registry.ipp:132:36 (run_unittests+0x3d62c8)
#6 boost::asio::detail::kqueue_reactor& boost::asio::detail::service_registry::use_service<boost::asio::detail::kqueue_reactor>() /usr/local/include/boost/asio/detail/impl/service_registry.hpp:30:33 (run_unittests+0x3d6c08)
#7 boost::asio::detail::kqueue_reactor& boost::asio::use_service<boost::asio::detail::kqueue_reactor>(boost::asio::execution_context&) /usr/local/include/boost/asio/impl/execution_context.hpp:35:40 (run_unittests+0x3d6adb)
#8 boost::asio::detail::reactive_socket_service_base::reactive_socket_service_base(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:33:14 (run_unittests+0x3d6763)
#9 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::reactive_socket_service(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:80:7 (run_unittests+0x3d65e8)
#10 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>, boost::asio::io_context>(void*) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:87:14 (run_unittests+0x3d6127)
#11 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) /usr/local/include/boost/asio/detail/impl/service_registry.ipp:132:36 (run_unittests+0x3d62c8)
#12 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>& boost::asio::detail::service_registry::use_service<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp> >(boost::asio::io_context&) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:39:33 (run_unittests+0x3d5fed)
#13 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>& boost::asio::use_service<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp> >(boost::asio::io_context&) /usr/local/include/boost/asio/impl/io_context.hpp:42:42 (run_unittests+0x3d5cdf)
#14 boost::asio::detail::io_object_impl<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>, boost::asio::executor>::io_object_impl<boost::asio::io_context>(boost::asio::io_context&, std::__1::enable_if<is_convertible<boost::asio::io_context&, boost::asio::execution_context&>::value, void>::type*) /usr/local/include/boost/asio/detail/io_object_impl.hpp:86:17 (run_unittests+0x3d5b55)
#15 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::basic_socket_acceptor<boost::asio::io_context>(boost::asio::io_context&, std::__1::enable_if<is_convertible<boost::asio::io_context&, boost::asio::execution_context&>::value, void>::type*) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:142:7 (libkea-http.so.24+0x35b4ac)
#16 isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::IOAcceptor(isc::asiolink::IOService&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:42:25 (libkea-http.so.24+0x35b2b7)
#17 isc::asiolink::TCPAcceptor<std::__1::function<void (boost::system::error_code const&)> >::TCPAcceptor(isc::asiolink::IOService&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_acceptor.h:39:11 (libkea-http.so.24+0x35a44f)
#18 isc::http::HttpListenerImpl::HttpListenerImpl(isc::asiolink::IOService&, isc::asiolink::IOAddress const&, unsigned short, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpResponseCreatorFactory> const&, long, long) /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:32:29 (libkea-http.so.24+0x3590b7)
#19 isc::http::HttpListener::HttpListener(isc::asiolink::IOService&, isc::asiolink::IOAddress const&, unsigned short, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpResponseCreatorFactory> const&, isc::http::HttpListener::RequestTimeout const&, isc::http::HttpListener::IdleTimeout const&) /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:25:17 (libkea-http.so.24+0x358354)
#20 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:64:34 (libkea-cfgclient.so.23+0xfae47)
#21 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#22 (anonymous namespace)::CmdHttpListenerTest_oneByFour_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:652:5 (run_unittests+0x3ccb90)
#23 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#24 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#25 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Thread T9 (tid=104202, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (run_unittests+0x3066b3)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (libkea-cfgclient.so.23+0x101a1e)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/thread:307:16 (libkea-cfgclient.so.23+0xfc0db)
#3 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:71:55 (libkea-cfgclient.so.23+0xfaf3e)
#4 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#5 (anonymous namespace)::CmdHttpListenerTest_oneByFour_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:652:5 (run_unittests+0x3ccb90)
#6 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#7 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#8 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
SUMMARY: ThreadSanitizer: data race /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:53:13 in boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&)
WARNING: ThreadSanitizer: data race (pid=75816)
Atomic read of size 1 at 0x7b1c00006e58 by thread T9:
#0 pthread_mutex_lock /usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:4196:3 (run_unittests+0x31cc94)
#1 boost::asio::detail::posix_mutex::lock() /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 (run_unittests+0x37e188)
#2 boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:55:23 (run_unittests+0x37df21)
#3 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:445:26 (run_unittests+0x3db303)
#4 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:431:16 (run_unittests+0x3da8da)
#5 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (run_unittests+0x3da39f)
#6 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#7 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#8 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#9 decltype(*(std::__1::forward<boost::shared_ptr<isc::asiolink::IOService>&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&, void>(void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&) /usr/include/c++/v1/type_traits:3840:1 (libkea-cfgclient.so.23+0x102d19)
#10 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (libkea-cfgclient.so.23+0x102c13)
#11 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>::operator()<>() /usr/include/c++/v1/functional:2886:20 (libkea-cfgclient.so.23+0x102b81)
#12 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-cfgclient.so.23+0x102a80)
#13 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (libkea-cfgclient.so.23+0x102908)
#14 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> > >(void*) /usr/include/c++/v1/thread:291:5 (libkea-cfgclient.so.23+0x101ad9)
Previous write of size 8 at 0x7b1c00006e58 by main thread (mutexes: write M2385):
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#13 (anonymous namespace)::CmdHttpListenerTest_oneByFour_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:652:5 (run_unittests+0x3ccb90)
#14 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#15 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#16 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Location is heap block of size 104 at 0x7b1c00006e40 allocated by main thread:
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#13 (anonymous namespace)::CmdHttpListenerTest_oneByFour_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:652:5 (run_unittests+0x3ccb90)
#14 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#15 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#16 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Mutex M2385 (0x7b2400000460) created at:
#0 pthread_mutex_init /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1224:3 (run_unittests+0x307869)
#1 boost::asio::detail::posix_mutex::posix_mutex() /usr/local/include/boost/asio/detail/impl/posix_mutex.ipp:34:15 (run_unittests+0x3dcb8c)
#2 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:108:12 (run_unittests+0x3d756c)
#3 boost::asio::detail::kqueue_reactor::kqueue_reactor(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:51:5 (run_unittests+0x3d6fb1)
#4 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::kqueue_reactor, boost::asio::execution_context>(void*) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:87:14 (run_unittests+0x3d6cc7)
#5 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) /usr/local/include/boost/asio/detail/impl/service_registry.ipp:132:36 (run_unittests+0x3d62c8)
#6 boost::asio::detail::kqueue_reactor& boost::asio::detail::service_registry::use_service<boost::asio::detail::kqueue_reactor>() /usr/local/include/boost/asio/detail/impl/service_registry.hpp:30:33 (run_unittests+0x3d6c08)
#7 boost::asio::detail::kqueue_reactor& boost::asio::use_service<boost::asio::detail::kqueue_reactor>(boost::asio::execution_context&) /usr/local/include/boost/asio/impl/execution_context.hpp:35:40 (run_unittests+0x3d6adb)
#8 boost::asio::detail::reactive_socket_service_base::reactive_socket_service_base(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:33:14 (run_unittests+0x3d6763)
#9 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::reactive_socket_service(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:80:7 (run_unittests+0x3d65e8)
#10 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>, boost::asio::io_context>(void*) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:87:14 (run_unittests+0x3d6127)
#11 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) /usr/local/include/boost/asio/detail/impl/service_registry.ipp:132:36 (run_unittests+0x3d62c8)
#12 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>& boost::asio::detail::service_registry::use_service<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp> >(boost::asio::io_context&) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:39:33 (run_unittests+0x3d5fed)
#13 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>& boost::asio::use_service<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp> >(boost::asio::io_context&) /usr/local/include/boost/asio/impl/io_context.hpp:42:42 (run_unittests+0x3d5cdf)
#14 boost::asio::detail::io_object_impl<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>, boost::asio::executor>::io_object_impl<boost::asio::io_context>(boost::asio::io_context&, std::__1::enable_if<is_convertible<boost::asio::io_context&, boost::asio::execution_context&>::value, void>::type*) /usr/local/include/boost/asio/detail/io_object_impl.hpp:86:17 (run_unittests+0x3d5b55)
#15 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::basic_socket_acceptor<boost::asio::io_context>(boost::asio::io_context&, std::__1::enable_if<is_convertible<boost::asio::io_context&, boost::asio::execution_context&>::value, void>::type*) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:142:7 (libkea-http.so.24+0x35b4ac)
#16 isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::IOAcceptor(isc::asiolink::IOService&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:42:25 (libkea-http.so.24+0x35b2b7)
#17 isc::asiolink::TCPAcceptor<std::__1::function<void (boost::system::error_code const&)> >::TCPAcceptor(isc::asiolink::IOService&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_acceptor.h:39:11 (libkea-http.so.24+0x35a44f)
#18 isc::http::HttpListenerImpl::HttpListenerImpl(isc::asiolink::IOService&, isc::asiolink::IOAddress const&, unsigned short, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpResponseCreatorFactory> const&, long, long) /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:32:29 (libkea-http.so.24+0x3590b7)
#19 isc::http::HttpListener::HttpListener(isc::asiolink::IOService&, isc::asiolink::IOAddress const&, unsigned short, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpResponseCreatorFactory> const&, isc::http::HttpListener::RequestTimeout const&, isc::http::HttpListener::IdleTimeout const&) /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:25:17 (libkea-http.so.24+0x358354)
#20 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:64:34 (libkea-cfgclient.so.23+0xfae47)
#21 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#22 (anonymous namespace)::CmdHttpListenerTest_oneByFour_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:652:5 (run_unittests+0x3ccb90)
#23 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#24 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#25 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Thread T9 (tid=104202, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (run_unittests+0x3066b3)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (libkea-cfgclient.so.23+0x101a1e)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/thread:307:16 (libkea-cfgclient.so.23+0xfc0db)
#3 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:71:55 (libkea-cfgclient.so.23+0xfaf3e)
#4 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#5 (anonymous namespace)::CmdHttpListenerTest_oneByFour_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:652:5 (run_unittests+0x3ccb90)
#6 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#7 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#8 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
SUMMARY: ThreadSanitizer: data race /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 in boost::asio::detail::posix_mutex::lock()
[ OK ] CmdHttpListenerTest.oneByFour (56 ms) </pre></details>
<details><summary>[ RUN ] CmdHttpListenerTest.fourByOne </summary><pre>
WARNING: ThreadSanitizer: data race (pid=75816)
Read of size 1 at 0x7b1c00006610 by thread T10:
#0 boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:53:13 (run_unittests+0x37def7)
#1 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:445:26 (run_unittests+0x3db303)
#2 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:431:16 (run_unittests+0x3da8da)
#3 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (run_unittests+0x3da39f)
#4 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#5 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#6 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#7 decltype(*(std::__1::forward<boost::shared_ptr<isc::asiolink::IOService>&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&, void>(void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&) /usr/include/c++/v1/type_traits:3840:1 (libkea-cfgclient.so.23+0x102d19)
#8 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (libkea-cfgclient.so.23+0x102c13)
#9 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>::operator()<>() /usr/include/c++/v1/functional:2886:20 (libkea-cfgclient.so.23+0x102b81)
#10 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-cfgclient.so.23+0x102a80)
#11 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (libkea-cfgclient.so.23+0x102908)
#12 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> > >(void*) /usr/include/c++/v1/thread:291:5 (libkea-cfgclient.so.23+0x101ad9)
Previous write of size 8 at 0x7b1c00006610 by main thread (mutexes: write M3676):
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#13 (anonymous namespace)::CmdHttpListenerTest_fourByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:659:5 (run_unittests+0x3cce60)
#14 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#15 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#16 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Location is heap block of size 104 at 0x7b1c000065f0 allocated by main thread:
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#13 (anonymous namespace)::CmdHttpListenerTest_fourByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:659:5 (run_unittests+0x3cce60)
#14 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#15 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#16 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Mutex M3676 (0x7b2400000460) created at:
#0 pthread_mutex_init /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1224:3 (run_unittests+0x307869)
#1 boost::asio::detail::posix_mutex::posix_mutex() /usr/local/include/boost/asio/detail/impl/posix_mutex.ipp:34:15 (run_unittests+0x3dcb8c)
#2 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:108:12 (run_unittests+0x3d756c)
#3 boost::asio::detail::kqueue_reactor::kqueue_reactor(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:51:5 (run_unittests+0x3d6fb1)
#4 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::kqueue_reactor, boost::asio::execution_context>(void*) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:87:14 (run_unittests+0x3d6cc7)
#5 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) /usr/local/include/boost/asio/detail/impl/service_registry.ipp:132:36 (run_unittests+0x3d62c8)
#6 boost::asio::detail::kqueue_reactor& boost::asio::detail::service_registry::use_service<boost::asio::detail::kqueue_reactor>() /usr/local/include/boost/asio/detail/impl/service_registry.hpp:30:33 (run_unittests+0x3d6c08)
#7 boost::asio::detail::kqueue_reactor& boost::asio::use_service<boost::asio::detail::kqueue_reactor>(boost::asio::execution_context&) /usr/local/include/boost/asio/impl/execution_context.hpp:35:40 (run_unittests+0x3d6adb)
#8 boost::asio::detail::reactive_socket_service_base::reactive_socket_service_base(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:33:14 (run_unittests+0x3d6763)
#9 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::reactive_socket_service(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:80:7 (run_unittests+0x3d65e8)
#10 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>, boost::asio::io_context>(void*) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:87:14 (run_unittests+0x3d6127)
#11 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) /usr/local/include/boost/asio/detail/impl/service_registry.ipp:132:36 (run_unittests+0x3d62c8)
#12 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>& boost::asio::detail::service_registry::use_service<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp> >(boost::asio::io_context&) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:39:33 (run_unittests+0x3d5fed)
#13 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>& boost::asio::use_service<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp> >(boost::asio::io_context&) /usr/local/include/boost/asio/impl/io_context.hpp:42:42 (run_unittests+0x3d5cdf)
#14 boost::asio::detail::io_object_impl<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>, boost::asio::executor>::io_object_impl<boost::asio::io_context>(boost::asio::io_context&, std::__1::enable_if<is_convertible<boost::asio::io_context&, boost::asio::execution_context&>::value, void>::type*) /usr/local/include/boost/asio/detail/io_object_impl.hpp:86:17 (run_unittests+0x3d5b55)
#15 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::basic_socket_acceptor<boost::asio::io_context>(boost::asio::io_context&, std::__1::enable_if<is_convertible<boost::asio::io_context&, boost::asio::execution_context&>::value, void>::type*) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:142:7 (libkea-http.so.24+0x35b4ac)
#16 isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::IOAcceptor(isc::asiolink::IOService&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:42:25 (libkea-http.so.24+0x35b2b7)
#17 isc::asiolink::TCPAcceptor<std::__1::function<void (boost::system::error_code const&)> >::TCPAcceptor(isc::asiolink::IOService&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_acceptor.h:39:11 (libkea-http.so.24+0x35a44f)
#18 isc::http::HttpListenerImpl::HttpListenerImpl(isc::asiolink::IOService&, isc::asiolink::IOAddress const&, unsigned short, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpResponseCreatorFactory> const&, long, long) /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:32:29 (libkea-http.so.24+0x3590b7)
#19 isc::http::HttpListener::HttpListener(isc::asiolink::IOService&, isc::asiolink::IOAddress const&, unsigned short, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpResponseCreatorFactory> const&, isc::http::HttpListener::RequestTimeout const&, isc::http::HttpListener::IdleTimeout const&) /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:25:17 (libkea-http.so.24+0x358354)
#20 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:64:34 (libkea-cfgclient.so.23+0xfae47)
#21 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#22 (anonymous namespace)::CmdHttpListenerTest_fourByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:659:5 (run_unittests+0x3cce60)
#23 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#24 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#25 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Thread T10 (tid=104203, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (run_unittests+0x3066b3)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (libkea-cfgclient.so.23+0x101a1e)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/thread:307:16 (libkea-cfgclient.so.23+0xfc0db)
#3 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:71:55 (libkea-cfgclient.so.23+0xfaf3e)
#4 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#5 (anonymous namespace)::CmdHttpListenerTest_fourByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:659:5 (run_unittests+0x3cce60)
#6 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#7 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#8 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
SUMMARY: ThreadSanitizer: data race /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:53:13 in boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&)
WARNING: ThreadSanitizer: data race (pid=75816)
Atomic read of size 1 at 0x7b1c00006608 by thread T10:
#0 pthread_mutex_lock /usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:4196:3 (run_unittests+0x31cc94)
#1 boost::asio::detail::posix_mutex::lock() /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 (run_unittests+0x37e188)
#2 boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:55:23 (run_unittests+0x37df21)
#3 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:445:26 (run_unittests+0x3db303)
#4 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:431:16 (run_unittests+0x3da8da)
#5 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (run_unittests+0x3da39f)
#6 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#7 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#8 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#9 decltype(*(std::__1::forward<boost::shared_ptr<isc::asiolink::IOService>&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&, void>(void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&) /usr/include/c++/v1/type_traits:3840:1 (libkea-cfgclient.so.23+0x102d19)
#10 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (libkea-cfgclient.so.23+0x102c13)
#11 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>::operator()<>() /usr/include/c++/v1/functional:2886:20 (libkea-cfgclient.so.23+0x102b81)
#12 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-cfgclient.so.23+0x102a80)
#13 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (libkea-cfgclient.so.23+0x102908)
#14 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> > >(void*) /usr/include/c++/v1/thread:291:5 (libkea-cfgclient.so.23+0x101ad9)
Previous write of size 8 at 0x7b1c00006608 by main thread (mutexes: write M3676):
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#13 (anonymous namespace)::CmdHttpListenerTest_fourByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:659:5 (run_unittests+0x3cce60)
#14 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#15 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#16 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Location is heap block of size 104 at 0x7b1c000065f0 allocated by main thread:
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#13 (anonymous namespace)::CmdHttpListenerTest_fourByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:659:5 (run_unittests+0x3cce60)
#14 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#15 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#16 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Mutex M3676 (0x7b2400000460) created at:
#0 pthread_mutex_init /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1224:3 (run_unittests+0x307869)
#1 boost::asio::detail::posix_mutex::posix_mutex() /usr/local/include/boost/asio/detail/impl/posix_mutex.ipp:34:15 (run_unittests+0x3dcb8c)
#2 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:108:12 (run_unittests+0x3d756c)
#3 boost::asio::detail::kqueue_reactor::kqueue_reactor(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:51:5 (run_unittests+0x3d6fb1)
#4 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::kqueue_reactor, boost::asio::execution_context>(void*) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:87:14 (run_unittests+0x3d6cc7)
#5 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) /usr/local/include/boost/asio/detail/impl/service_registry.ipp:132:36 (run_unittests+0x3d62c8)
#6 boost::asio::detail::kqueue_reactor& boost::asio::detail::service_registry::use_service<boost::asio::detail::kqueue_reactor>() /usr/local/include/boost/asio/detail/impl/service_registry.hpp:30:33 (run_unittests+0x3d6c08)
#7 boost::asio::detail::kqueue_reactor& boost::asio::use_service<boost::asio::detail::kqueue_reactor>(boost::asio::execution_context&) /usr/local/include/boost/asio/impl/execution_context.hpp:35:40 (run_unittests+0x3d6adb)
#8 boost::asio::detail::reactive_socket_service_base::reactive_socket_service_base(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:33:14 (run_unittests+0x3d6763)
#9 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::reactive_socket_service(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:80:7 (run_unittests+0x3d65e8)
#10 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>, boost::asio::io_context>(void*) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:87:14 (run_unittests+0x3d6127)
#11 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) /usr/local/include/boost/asio/detail/impl/service_registry.ipp:132:36 (run_unittests+0x3d62c8)
#12 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>& boost::asio::detail::service_registry::use_service<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp> >(boost::asio::io_context&) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:39:33 (run_unittests+0x3d5fed)
#13 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>& boost::asio::use_service<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp> >(boost::asio::io_context&) /usr/local/include/boost/asio/impl/io_context.hpp:42:42 (run_unittests+0x3d5cdf)
#14 boost::asio::detail::io_object_impl<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>, boost::asio::executor>::io_object_impl<boost::asio::io_context>(boost::asio::io_context&, std::__1::enable_if<is_convertible<boost::asio::io_context&, boost::asio::execution_context&>::value, void>::type*) /usr/local/include/boost/asio/detail/io_object_impl.hpp:86:17 (run_unittests+0x3d5b55)
#15 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::basic_socket_acceptor<boost::asio::io_context>(boost::asio::io_context&, std::__1::enable_if<is_convertible<boost::asio::io_context&, boost::asio::execution_context&>::value, void>::type*) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:142:7 (libkea-http.so.24+0x35b4ac)
#16 isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::IOAcceptor(isc::asiolink::IOService&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:42:25 (libkea-http.so.24+0x35b2b7)
#17 isc::asiolink::TCPAcceptor<std::__1::function<void (boost::system::error_code const&)> >::TCPAcceptor(isc::asiolink::IOService&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_acceptor.h:39:11 (libkea-http.so.24+0x35a44f)
#18 isc::http::HttpListenerImpl::HttpListenerImpl(isc::asiolink::IOService&, isc::asiolink::IOAddress const&, unsigned short, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpResponseCreatorFactory> const&, long, long) /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:32:29 (libkea-http.so.24+0x3590b7)
#19 isc::http::HttpListener::HttpListener(isc::asiolink::IOService&, isc::asiolink::IOAddress const&, unsigned short, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpResponseCreatorFactory> const&, isc::http::HttpListener::RequestTimeout const&, isc::http::HttpListener::IdleTimeout const&) /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:25:17 (libkea-http.so.24+0x358354)
#20 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:64:34 (libkea-cfgclient.so.23+0xfae47)
#21 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#22 (anonymous namespace)::CmdHttpListenerTest_fourByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:659:5 (run_unittests+0x3cce60)
#23 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#24 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#25 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Thread T10 (tid=104203, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (run_unittests+0x3066b3)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (libkea-cfgclient.so.23+0x101a1e)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/thread:307:16 (libkea-cfgclient.so.23+0xfc0db)
#3 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:71:55 (libkea-cfgclient.so.23+0xfaf3e)
#4 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#5 (anonymous namespace)::CmdHttpListenerTest_fourByOne_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:659:5 (run_unittests+0x3cce60)
#6 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#7 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#8 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
SUMMARY: ThreadSanitizer: data race /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 in boost::asio::detail::posix_mutex::lock()
[ OK ] CmdHttpListenerTest.fourByOne (24 ms) </pre></details>
<details><summary>[ RUN ] CmdHttpListenerTest.fourByFour </summary><pre>
WARNING: ThreadSanitizer: data race (pid=75816)
Read of size 1 at 0x7b1c00009860 by thread T14:
#0 boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:53:13 (run_unittests+0x37def7)
#1 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:445:26 (run_unittests+0x3db303)
#2 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:431:16 (run_unittests+0x3da8da)
#3 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (run_unittests+0x3da39f)
#4 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#5 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#6 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#7 decltype(*(std::__1::forward<boost::shared_ptr<isc::asiolink::IOService>&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&, void>(void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&) /usr/include/c++/v1/type_traits:3840:1 (libkea-cfgclient.so.23+0x102d19)
#8 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (libkea-cfgclient.so.23+0x102c13)
#9 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>::operator()<>() /usr/include/c++/v1/functional:2886:20 (libkea-cfgclient.so.23+0x102b81)
#10 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-cfgclient.so.23+0x102a80)
#11 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (libkea-cfgclient.so.23+0x102908)
#12 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> > >(void*) /usr/include/c++/v1/thread:291:5 (libkea-cfgclient.so.23+0x101ad9)
Previous write of size 8 at 0x7b1c00009860 by main thread (mutexes: write M4080):
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#13 (anonymous namespace)::CmdHttpListenerTest_fourByFour_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:666:5 (run_unittests+0x3cd130)
#14 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#15 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#16 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Location is heap block of size 104 at 0x7b1c00009840 allocated by main thread:
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#13 (anonymous namespace)::CmdHttpListenerTest_fourByFour_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:666:5 (run_unittests+0x3cd130)
#14 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#15 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#16 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Mutex M4080 (0x7b2400000460) created at:
#0 pthread_mutex_init /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1224:3 (run_unittests+0x307869)
#1 boost::asio::detail::posix_mutex::posix_mutex() /usr/local/include/boost/asio/detail/impl/posix_mutex.ipp:34:15 (run_unittests+0x3dcb8c)
#2 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:108:12 (run_unittests+0x3d756c)
#3 boost::asio::detail::kqueue_reactor::kqueue_reactor(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:51:5 (run_unittests+0x3d6fb1)
#4 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::kqueue_reactor, boost::asio::execution_context>(void*) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:87:14 (run_unittests+0x3d6cc7)
#5 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) /usr/local/include/boost/asio/detail/impl/service_registry.ipp:132:36 (run_unittests+0x3d62c8)
#6 boost::asio::detail::kqueue_reactor& boost::asio::detail::service_registry::use_service<boost::asio::detail::kqueue_reactor>() /usr/local/include/boost/asio/detail/impl/service_registry.hpp:30:33 (run_unittests+0x3d6c08)
#7 boost::asio::detail::kqueue_reactor& boost::asio::use_service<boost::asio::detail::kqueue_reactor>(boost::asio::execution_context&) /usr/local/include/boost/asio/impl/execution_context.hpp:35:40 (run_unittests+0x3d6adb)
#8 boost::asio::detail::reactive_socket_service_base::reactive_socket_service_base(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:33:14 (run_unittests+0x3d6763)
#9 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::reactive_socket_service(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:80:7 (run_unittests+0x3d65e8)
#10 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>, boost::asio::io_context>(void*) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:87:14 (run_unittests+0x3d6127)
#11 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) /usr/local/include/boost/asio/detail/impl/service_registry.ipp:132:36 (run_unittests+0x3d62c8)
#12 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>& boost::asio::detail::service_registry::use_service<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp> >(boost::asio::io_context&) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:39:33 (run_unittests+0x3d5fed)
#13 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>& boost::asio::use_service<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp> >(boost::asio::io_context&) /usr/local/include/boost/asio/impl/io_context.hpp:42:42 (run_unittests+0x3d5cdf)
#14 boost::asio::detail::io_object_impl<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>, boost::asio::executor>::io_object_impl<boost::asio::io_context>(boost::asio::io_context&, std::__1::enable_if<is_convertible<boost::asio::io_context&, boost::asio::execution_context&>::value, void>::type*) /usr/local/include/boost/asio/detail/io_object_impl.hpp:86:17 (run_unittests+0x3d5b55)
#15 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::basic_socket_acceptor<boost::asio::io_context>(boost::asio::io_context&, std::__1::enable_if<is_convertible<boost::asio::io_context&, boost::asio::execution_context&>::value, void>::type*) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:142:7 (libkea-http.so.24+0x35b4ac)
#16 isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::IOAcceptor(isc::asiolink::IOService&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:42:25 (libkea-http.so.24+0x35b2b7)
#17 isc::asiolink::TCPAcceptor<std::__1::function<void (boost::system::error_code const&)> >::TCPAcceptor(isc::asiolink::IOService&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_acceptor.h:39:11 (libkea-http.so.24+0x35a44f)
#18 isc::http::HttpListenerImpl::HttpListenerImpl(isc::asiolink::IOService&, isc::asiolink::IOAddress const&, unsigned short, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpResponseCreatorFactory> const&, long, long) /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:32:29 (libkea-http.so.24+0x3590b7)
#19 isc::http::HttpListener::HttpListener(isc::asiolink::IOService&, isc::asiolink::IOAddress const&, unsigned short, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpResponseCreatorFactory> const&, isc::http::HttpListener::RequestTimeout const&, isc::http::HttpListener::IdleTimeout const&) /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:25:17 (libkea-http.so.24+0x358354)
#20 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:64:34 (libkea-cfgclient.so.23+0xfae47)
#21 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#22 (anonymous namespace)::CmdHttpListenerTest_fourByFour_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:666:5 (run_unittests+0x3cd130)
#23 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#24 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#25 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Thread T14 (tid=104207, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (run_unittests+0x3066b3)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (libkea-cfgclient.so.23+0x101a1e)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/thread:307:16 (libkea-cfgclient.so.23+0xfc0db)
#3 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:71:55 (libkea-cfgclient.so.23+0xfaf3e)
#4 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#5 (anonymous namespace)::CmdHttpListenerTest_fourByFour_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:666:5 (run_unittests+0x3cd130)
#6 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#7 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#8 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
SUMMARY: ThreadSanitizer: data race /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:53:13 in boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&)
WARNING: ThreadSanitizer: data race (pid=75816)
Atomic read of size 1 at 0x7b1c00009858 by thread T14:
#0 pthread_mutex_lock /usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:4196:3 (run_unittests+0x31cc94)
#1 boost::asio::detail::posix_mutex::lock() /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 (run_unittests+0x37e188)
#2 boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:55:23 (run_unittests+0x37df21)
#3 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:445:26 (run_unittests+0x3db303)
#4 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:431:16 (run_unittests+0x3da8da)
#5 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (run_unittests+0x3da39f)
#6 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#7 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#8 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#9 decltype(*(std::__1::forward<boost::shared_ptr<isc::asiolink::IOService>&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&, void>(void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&) /usr/include/c++/v1/type_traits:3840:1 (libkea-cfgclient.so.23+0x102d19)
#10 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (libkea-cfgclient.so.23+0x102c13)
#11 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>::operator()<>() /usr/include/c++/v1/functional:2886:20 (libkea-cfgclient.so.23+0x102b81)
#12 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-cfgclient.so.23+0x102a80)
#13 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (libkea-cfgclient.so.23+0x102908)
#14 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> > >(void*) /usr/include/c++/v1/thread:291:5 (libkea-cfgclient.so.23+0x101ad9)
Previous write of size 8 at 0x7b1c00009858 by main thread (mutexes: write M4080):
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#13 (anonymous namespace)::CmdHttpListenerTest_fourByFour_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:666:5 (run_unittests+0x3cd130)
#14 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#15 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#16 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Location is heap block of size 104 at 0x7b1c00009840 allocated by main thread:
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#13 (anonymous namespace)::CmdHttpListenerTest_fourByFour_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:666:5 (run_unittests+0x3cd130)
#14 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#15 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#16 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Mutex M4080 (0x7b2400000460) created at:
#0 pthread_mutex_init /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1224:3 (run_unittests+0x307869)
#1 boost::asio::detail::posix_mutex::posix_mutex() /usr/local/include/boost/asio/detail/impl/posix_mutex.ipp:34:15 (run_unittests+0x3dcb8c)
#2 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:108:12 (run_unittests+0x3d756c)
#3 boost::asio::detail::kqueue_reactor::kqueue_reactor(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:51:5 (run_unittests+0x3d6fb1)
#4 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::kqueue_reactor, boost::asio::execution_context>(void*) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:87:14 (run_unittests+0x3d6cc7)
#5 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) /usr/local/include/boost/asio/detail/impl/service_registry.ipp:132:36 (run_unittests+0x3d62c8)
#6 boost::asio::detail::kqueue_reactor& boost::asio::detail::service_registry::use_service<boost::asio::detail::kqueue_reactor>() /usr/local/include/boost/asio/detail/impl/service_registry.hpp:30:33 (run_unittests+0x3d6c08)
#7 boost::asio::detail::kqueue_reactor& boost::asio::use_service<boost::asio::detail::kqueue_reactor>(boost::asio::execution_context&) /usr/local/include/boost/asio/impl/execution_context.hpp:35:40 (run_unittests+0x3d6adb)
#8 boost::asio::detail::reactive_socket_service_base::reactive_socket_service_base(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:33:14 (run_unittests+0x3d6763)
#9 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::reactive_socket_service(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:80:7 (run_unittests+0x3d65e8)
#10 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>, boost::asio::io_context>(void*) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:87:14 (run_unittests+0x3d6127)
#11 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) /usr/local/include/boost/asio/detail/impl/service_registry.ipp:132:36 (run_unittests+0x3d62c8)
#12 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>& boost::asio::detail::service_registry::use_service<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp> >(boost::asio::io_context&) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:39:33 (run_unittests+0x3d5fed)
#13 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>& boost::asio::use_service<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp> >(boost::asio::io_context&) /usr/local/include/boost/asio/impl/io_context.hpp:42:42 (run_unittests+0x3d5cdf)
#14 boost::asio::detail::io_object_impl<boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>, boost::asio::executor>::io_object_impl<boost::asio::io_context>(boost::asio::io_context&, std::__1::enable_if<is_convertible<boost::asio::io_context&, boost::asio::execution_context&>::value, void>::type*) /usr/local/include/boost/asio/detail/io_object_impl.hpp:86:17 (run_unittests+0x3d5b55)
#15 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::basic_socket_acceptor<boost::asio::io_context>(boost::asio::io_context&, std::__1::enable_if<is_convertible<boost::asio::io_context&, boost::asio::execution_context&>::value, void>::type*) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:142:7 (libkea-http.so.24+0x35b4ac)
#16 isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::IOAcceptor(isc::asiolink::IOService&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:42:25 (libkea-http.so.24+0x35b2b7)
#17 isc::asiolink::TCPAcceptor<std::__1::function<void (boost::system::error_code const&)> >::TCPAcceptor(isc::asiolink::IOService&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/tcp_acceptor.h:39:11 (libkea-http.so.24+0x35a44f)
#18 isc::http::HttpListenerImpl::HttpListenerImpl(isc::asiolink::IOService&, isc::asiolink::IOAddress const&, unsigned short, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpResponseCreatorFactory> const&, long, long) /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:32:29 (libkea-http.so.24+0x3590b7)
#19 isc::http::HttpListener::HttpListener(isc::asiolink::IOService&, isc::asiolink::IOAddress const&, unsigned short, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpResponseCreatorFactory> const&, isc::http::HttpListener::RequestTimeout const&, isc::http::HttpListener::IdleTimeout const&) /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:25:17 (libkea-http.so.24+0x358354)
#20 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:64:34 (libkea-cfgclient.so.23+0xfae47)
#21 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#22 (anonymous namespace)::CmdHttpListenerTest_fourByFour_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:666:5 (run_unittests+0x3cd130)
#23 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#24 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#25 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Thread T14 (tid=104207, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (run_unittests+0x3066b3)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (libkea-cfgclient.so.23+0x101a1e)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/thread:307:16 (libkea-cfgclient.so.23+0xfc0db)
#3 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:71:55 (libkea-cfgclient.so.23+0xfaf3e)
#4 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#5 (anonymous namespace)::CmdHttpListenerTest_fourByFour_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:666:5 (run_unittests+0x3cd130)
#6 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#7 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#8 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
SUMMARY: ThreadSanitizer: data race /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 in boost::asio::detail::posix_mutex::lock()
[ OK ] CmdHttpListenerTest.fourByFour (38 ms) </pre></details>
<details><summary>[ RUN ] CmdHttpListenerTest.fourByEight </summary><pre>
WARNING: ThreadSanitizer: data race (pid=75816)
Read of size 1 at 0x7b1c00009390 by thread T1:
#0 boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:53:13 (run_unittests+0x37def7)
#1 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:445:26 (run_unittests+0x3db303)
#2 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:431:16 (run_unittests+0x3da8da)
#3 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (run_unittests+0x3da39f)
#4 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#5 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#6 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#7 decltype(*(std::__1::forward<boost::shared_ptr<isc::asiolink::IOService>&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&, void>(void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&) /usr/include/c++/v1/type_traits:3840:1 (libkea-cfgclient.so.23+0x102d19)
#8 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (libkea-cfgclient.so.23+0x102c13)
#9 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>::operator()<>() /usr/include/c++/v1/functional:2886:20 (libkea-cfgclient.so.23+0x102b81)
#10 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-cfgclient.so.23+0x102a80)
#11 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (libkea-cfgclient.so.23+0x102908)
#12 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> > >(void*) /usr/include/c++/v1/thread:291:5 (libkea-cfgclient.so.23+0x101ad9)
Previous write of size 8 at 0x7b1c00009390 by main thread (mutexes: write M384630212735796320):
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#13 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:340:32 (run_unittests+0x3c1a64)
#14 (anonymous namespace)::CmdHttpListenerTest_fourByEight_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:673:5 (run_unittests+0x3cd400)
#15 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#16 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#17 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Location is heap block of size 104 at 0x7b1c00009370 allocated by main thread:
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#13 (anonymous namespace)::CmdHttpListenerTest_fourByEight_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:673:5 (run_unittests+0x3cd400)
#14 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#15 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#16 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Mutex M384630212735796320 is already destroyed.
Thread T1 (tid=104211, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (run_unittests+0x3066b3)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (libkea-cfgclient.so.23+0x101a1e)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/thread:307:16 (libkea-cfgclient.so.23+0xfc0db)
#3 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:71:55 (libkea-cfgclient.so.23+0xfaf3e)
#4 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#5 (anonymous namespace)::CmdHttpListenerTest_fourByEight_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:673:5 (run_unittests+0x3cd400)
#6 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#7 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#8 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
SUMMARY: ThreadSanitizer: data race /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:53:13 in boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&)
WARNING: ThreadSanitizer: data race (pid=75816)
Atomic read of size 1 at 0x7b1c00009388 by thread T1:
#0 pthread_mutex_lock /usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:4196:3 (run_unittests+0x31cc94)
#1 boost::asio::detail::posix_mutex::lock() /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 (run_unittests+0x37e188)
#2 boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:55:23 (run_unittests+0x37df21)
#3 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:445:26 (run_unittests+0x3db303)
#4 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:431:16 (run_unittests+0x3da8da)
#5 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (run_unittests+0x3da39f)
#6 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#7 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#8 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#9 decltype(*(std::__1::forward<boost::shared_ptr<isc::asiolink::IOService>&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&, void>(void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&) /usr/include/c++/v1/type_traits:3840:1 (libkea-cfgclient.so.23+0x102d19)
#10 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (libkea-cfgclient.so.23+0x102c13)
#11 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>::operator()<>() /usr/include/c++/v1/functional:2886:20 (libkea-cfgclient.so.23+0x102b81)
#12 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-cfgclient.so.23+0x102a80)
#13 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (libkea-cfgclient.so.23+0x102908)
#14 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> > >(void*) /usr/include/c++/v1/thread:291:5 (libkea-cfgclient.so.23+0x101ad9)
Previous write of size 8 at 0x7b1c00009388 by main thread (mutexes: write M384630212735796320):
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#13 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:340:32 (run_unittests+0x3c1a64)
#14 (anonymous namespace)::CmdHttpListenerTest_fourByEight_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:673:5 (run_unittests+0x3cd400)
#15 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#16 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#17 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Location is heap block of size 104 at 0x7b1c00009370 allocated by main thread:
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#13 (anonymous namespace)::CmdHttpListenerTest_fourByEight_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:673:5 (run_unittests+0x3cd400)
#14 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#15 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#16 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Mutex M384630212735796320 is already destroyed.
Thread T1 (tid=104211, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (run_unittests+0x3066b3)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (libkea-cfgclient.so.23+0x101a1e)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/thread:307:16 (libkea-cfgclient.so.23+0xfc0db)
#3 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:71:55 (libkea-cfgclient.so.23+0xfaf3e)
#4 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#5 (anonymous namespace)::CmdHttpListenerTest_fourByEight_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:673:5 (run_unittests+0x3cd400)
#6 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#7 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#8 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
SUMMARY: ThreadSanitizer: data race /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 in boost::asio::detail::posix_mutex::lock()
[ OK ] CmdHttpListenerTest.fourByEight (61 ms) </pre></details>
<details><summary>[ RUN ] CmdHttpListenerTest.sixByEighteen </summary><pre>
WARNING: ThreadSanitizer: data race (pid=75816)
Read of size 1 at 0x7b1c0001b990 by thread T2:
#0 boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:53:13 (run_unittests+0x37def7)
#1 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:445:26 (run_unittests+0x3db303)
#2 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:431:16 (run_unittests+0x3da8da)
#3 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (run_unittests+0x3da39f)
#4 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#5 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#6 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#7 decltype(*(std::__1::forward<boost::shared_ptr<isc::asiolink::IOService>&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&, void>(void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&) /usr/include/c++/v1/type_traits:3840:1 (libkea-cfgclient.so.23+0x102d19)
#8 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (libkea-cfgclient.so.23+0x102c13)
#9 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>::operator()<>() /usr/include/c++/v1/functional:2886:20 (libkea-cfgclient.so.23+0x102b81)
#10 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-cfgclient.so.23+0x102a80)
#11 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (libkea-cfgclient.so.23+0x102908)
#12 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> > >(void*) /usr/include/c++/v1/thread:291:5 (libkea-cfgclient.so.23+0x101ad9)
Previous write of size 8 at 0x7b1c0001b990 by main thread (mutexes: write M1140672000180618336):
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#13 (anonymous namespace)::CmdHttpListenerTest_sixByEighteen_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:680:5 (run_unittests+0x3cd6d0)
#14 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#15 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#16 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Location is heap block of size 104 at 0x7b1c0001b970 allocated by main thread:
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#13 (anonymous namespace)::CmdHttpListenerTest_sixByEighteen_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:680:5 (run_unittests+0x3cd6d0)
#14 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#15 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#16 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Mutex M1140672000180618336 is already destroyed.
Thread T2 (tid=104215, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (run_unittests+0x3066b3)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (libkea-cfgclient.so.23+0x101a1e)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/thread:307:16 (libkea-cfgclient.so.23+0xfc0db)
#3 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:71:55 (libkea-cfgclient.so.23+0xfaf3e)
#4 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#5 (anonymous namespace)::CmdHttpListenerTest_sixByEighteen_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:680:5 (run_unittests+0x3cd6d0)
#6 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#7 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#8 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
SUMMARY: ThreadSanitizer: data race /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:53:13 in boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&)
WARNING: ThreadSanitizer: data race (pid=75816)
Atomic read of size 1 at 0x7b1c0001b988 by thread T2:
#0 pthread_mutex_lock /usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:4196:3 (run_unittests+0x31cc94)
#1 boost::asio::detail::posix_mutex::lock() /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 (run_unittests+0x37e188)
#2 boost::asio::detail::conditionally_enabled_mutex::scoped_lock::scoped_lock(boost::asio::detail::conditionally_enabled_mutex&) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:55:23 (run_unittests+0x37df21)
#3 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:445:26 (run_unittests+0x3db303)
#4 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:431:16 (run_unittests+0x3da8da)
#5 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (run_unittests+0x3da39f)
#6 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#7 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#8 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#9 decltype(*(std::__1::forward<boost::shared_ptr<isc::asiolink::IOService>&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&, void>(void (isc::asiolink::IOService::*&)(), boost::shared_ptr<isc::asiolink::IOService>&) /usr/include/c++/v1/type_traits:3840:1 (libkea-cfgclient.so.23+0x102d19)
#10 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (libkea-cfgclient.so.23+0x102c13)
#11 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<boost::shared_ptr<isc::asiolink::IOService> >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>::operator()<>() /usr/include/c++/v1/functional:2886:20 (libkea-cfgclient.so.23+0x102b81)
#12 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-cfgclient.so.23+0x102a80)
#13 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (libkea-cfgclient.so.23+0x102908)
#14 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&> > >(void*) /usr/include/c++/v1/thread:291:5 (libkea-cfgclient.so.23+0x101ad9)
Previous write of size 8 at 0x7b1c0001b988 by main thread (mutexes: write M1140672000180618336):
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#13 (anonymous namespace)::CmdHttpListenerTest_sixByEighteen_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:680:5 (run_unittests+0x3cd6d0)
#14 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#15 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#16 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Location is heap block of size 104 at 0x7b1c0001b970 allocated by main thread:
#0 operator new(unsigned long) /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (run_unittests+0x361ba4)
#1 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool_access::create<boost::asio::detail::kqueue_reactor::descriptor_state, bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:41:12 (run_unittests+0x3e55ca)
#2 boost::asio::detail::kqueue_reactor::descriptor_state* boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::alloc<bool>(bool) /usr/local/include/boost/asio/detail/object_pool.hpp:114:11 (run_unittests+0x3e5478)
#3 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:524:34 (run_unittests+0x3e533f)
#4 boost::asio::detail::kqueue_reactor::register_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:141:21 (run_unittests+0x3e4fc0)
#5 boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/reactive_socket_service_base.ipp:186:26 (run_unittests+0x3e49e0)
#6 boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&, boost::asio::ip::tcp const&, boost::system::error_code&) /usr/local/include/boost/asio/detail/reactive_socket_service.hpp:128:10 (run_unittests+0x3e45e8)
#7 boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::executor>::open(boost::asio::ip::tcp const&) /usr/local/include/boost/asio/basic_socket_acceptor.hpp:464:25 (libkea-http.so.24+0x35c910)
#8 void isc::asiolink::IOAcceptor<boost::asio::ip::tcp, std::__1::function<void (boost::system::error_code const&)> >::open<isc::asiolink::TCPEndpoint>(isc::asiolink::TCPEndpoint const&) /usr/home/andrei/work/isc/kea/src/lib/http/../../../src/lib/asiolink/io_acceptor.h:65:20 (libkea-http.so.24+0x35aa40)
#9 isc::http::HttpListenerImpl::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener_impl.cc:73:20 (libkea-http.so.24+0x35990b)
#10 isc::http::HttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/http/listener.cc:47:12 (libkea-http.so.24+0x358620)
#11 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:78:25 (libkea-cfgclient.so.23+0xfb277)
#12 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#13 (anonymous namespace)::CmdHttpListenerTest_sixByEighteen_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:680:5 (run_unittests+0x3cd6d0)
#14 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#15 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#16 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
Mutex M1140672000180618336 is already destroyed.
Thread T2 (tid=104215, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (run_unittests+0x3066b3)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (libkea-cfgclient.so.23+0x101a1e)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), boost::shared_ptr<isc::asiolink::IOService>&>&&) /usr/include/c++/v1/thread:307:16 (libkea-cfgclient.so.23+0xfc0db)
#3 isc::config::CmdHttpListener::start() /usr/home/andrei/work/isc/kea/src/lib/config/cmd_http_listener.cc:71:55 (libkea-cfgclient.so.23+0xfaf3e)
#4 (anonymous namespace)::CmdHttpListenerTest::threadListenAndRespond(unsigned long, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:352:9 (run_unittests+0x3c237e)
#5 (anonymous namespace)::CmdHttpListenerTest_sixByEighteen_Test::TestBody() /usr/home/andrei/work/isc/kea/src/lib/config/tests/cmd_http_listener_unittests.cc:680:5 (run_unittests+0x3cd6d0)
#6 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#7 isc::util::unittests::run_all() /usr/home/andrei/work/isc/kea/src/lib/util/unittests/run_all.cc:59:19 (run_unittests+0x429d5d)
#8 main /usr/home/andrei/work/isc/kea/src/lib/config/tests/run_unittests.cc:17:13 (run_unittests+0x37ee0a)
SUMMARY: ThreadSanitizer: data race /usr/local/include/boost/asio/detail/posix_mutex.hpp:52:11 in boost::asio::detail::posix_mutex::lock()
[ OK ] CmdHttpListenerTest.sixByEighteen (154 ms) </pre></details>
<details><summary>[ RUN ] HAServiceTest.communicationRecovery6FailedPartnerLoadBalancingMultiThreading </summary><pre>
WARNING: ThreadSanitizer: data race (pid=43895)
Write of size 8 at 0x0008050b8f88 by main thread (mutexes: write M521989915471304624):
#0 memset /usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:780:3 (ha_unittests+0x448417)
#1 <null> <null> (libthr.so.3+0x1dc47)
#2 std::__1::mutex::lock() <null> (libc++.so.1+0xb5388)
#3 (anonymous namespace)::Connection::doTransaction(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1025:37 (libkea-http.so.24+0x203f90)
#4 (anonymous namespace)::ConnectionPool::queueRequestInternal(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:638:21 (libkea-http.so.24+0x202a7c)
#5 (anonymous namespace)::ConnectionPool::queueRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:500:21 (libkea-http.so.24+0x1fe9a7)
#6 isc::http::HttpClient::asyncSendRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, isc::http::HttpClient::RequestTimeout const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1746:24 (libkea-http.so.24+0x1fe761)
#7 isc::ha::HAService::asyncSendHAReset(isc::http::HttpClient&, boost::shared_ptr<isc::ha::HAConfig::PeerConfig> const&, std::__1::function<void (bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)>) /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/ha_service.cc:2308:17 (ha_unittests+0x7946aa)
#8 isc::ha::HAService::sendHAReset() /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/ha_service.cc:2347:5 (ha_unittests+0x78ce11)
#9 isc::ha::HAService::communicationRecoveryHandler() /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/ha_service.cc:263:25 (ha_unittests+0x789239)
#10 decltype(*(std::__1::forward<isc::ha::HAService*&>(fp0)).*fp()) std::__1::__invoke<void (isc::ha::HAService::*&)(), isc::ha::HAService*&, void>(void (isc::ha::HAService::*&)(), isc::ha::HAService*&) /usr/include/c++/v1/type_traits:3840:1 (ha_unittests+0x7c9b04)
#11 std::__1::__bind_return<void (isc::ha::HAService::*)(), std::__1::tuple<isc::ha::HAService*>, std::__1::tuple<>, __is_valid_bind_return<void (isc::ha::HAService::*)(), std::__1::tuple<isc::ha::HAService*>, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::ha::HAService::*)(), std::__1::tuple<isc::ha::HAService*>, 0ul, std::__1::tuple<> >(void (isc::ha::HAService::*&)(), std::__1::tuple<isc::ha::HAService*>&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (ha_unittests+0x7c99f3)
#12 std::__1::__bind_return<void (isc::ha::HAService::*)(), std::__1::tuple<isc::ha::HAService*>, std::__1::tuple<>, __is_valid_bind_return<void (isc::ha::HAService::*)(), std::__1::tuple<isc::ha::HAService*>, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*>::operator()<>() /usr/include/c++/v1/functional:2886:20 (ha_unittests+0x7c9961)
#13 decltype(std::__1::forward<std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*>&>(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*>&>(std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*>&) /usr/include/c++/v1/type_traits:3899:1 (ha_unittests+0x7c98b0)
#14 void std::__1::__invoke_void_return_wrapper<void>::__call<std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*>&>(std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*>&) /usr/include/c++/v1/__functional_base:348:9 (ha_unittests+0x7c9810)
#15 std::__1::__function::__alloc_func<std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*>, std::__1::allocator<std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*> >, void ()>::operator()() /usr/include/c++/v1/functional:1557:16 (ha_unittests+0x7c97b0)
#16 std::__1::__function::__func<std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*>, std::__1::allocator<std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*> >, void ()>::operator()() /usr/include/c++/v1/functional:1731:12 (ha_unittests+0x7c7adf)
#17 std::__1::__function::__value_func<void ()>::operator()() const /usr/include/c++/v1/functional:1884:16 (ha_unittests+0x6fddc6)
#18 std::__1::function<void ()>::operator()() const /usr/include/c++/v1/functional:2556:12 (ha_unittests+0x6f05e8)
#19 isc::util::State::run() /usr/home/andrei/work/isc/kea/src/lib/util/state_model.cc:27:5 (libkea-util.so.32+0xd3e0f)
#20 (anonymous namespace)::TestHAService::runModel(unsigned int) /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_service_unittest.cc:153:39 (ha_unittests+0x5a8452)
#21 (anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'()::operator()() const /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_service_unittest.cc:1556:23 (ha_unittests+0x5f32b0)
#22 decltype(std::__1::forward<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'()&>(fp)()) std::__1::__invoke<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'()&>((anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'()&) /usr/include/c++/v1/type_traits:3899:1 (ha_unittests+0x5f31d0)
#23 void std::__1::__invoke_void_return_wrapper<void>::__call<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'()&>((anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'()&) /usr/include/c++/v1/__functional_base:348:9 (ha_unittests+0x5f3130)
#24 std::__1::__function::__alloc_func<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'(), std::__1::allocator<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'()>, void ()>::operator()() /usr/include/c++/v1/functional:1557:16 (ha_unittests+0x5f30d0)
#25 std::__1::__function::__func<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'(), std::__1::allocator<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'()>, void ()>::operator()() /usr/include/c++/v1/functional:1731:12 (ha_unittests+0x5f13ff)
#26 std::__1::__function::__value_func<void ()>::operator()() const /usr/include/c++/v1/functional:1884:16 (ha_unittests+0x6fddc6)
#27 std::__1::function<void ()>::operator()() const /usr/include/c++/v1/functional:2556:12 (ha_unittests+0x6f05e8)
#28 isc::ha::test::HATest::testSynchronousCommands(std::__1::function<void ()>) /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_test.cc:123:5 (ha_unittests+0x6eda75)
#29 (anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool) /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_service_unittest.cc:1555:9 (ha_unittests+0x5ecd29)
#30 (anonymous namespace)::HAServiceTest_communicationRecovery6FailedPartnerLoadBalancingMultiThreading_Test::TestBody() /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_service_unittest.cc:2296:5 (ha_unittests+0x5f390e)
#31 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#32 main /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/run_unittests.cc:16:18 (ha_unittests+0x730c5a)
Previous write of size 8 at 0x0008050b8f88 by thread T12:
#0 memset /usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:780:3 (ha_unittests+0x448417)
#1 <null> <null> (libthr.so.3+0x1dc47)
#2 std::__1::mutex::lock() <null> (libc++.so.1+0xb5388)
#3 isc::util::StateModel::initDictionaries() /usr/home/andrei/work/isc/kea/src/lib/util/state_model.cc:145:33 (libkea-util.so.32+0xd49be)
#4 isc::http::HttpRequestParser::initModel() /usr/home/andrei/work/isc/kea/src/lib/http/request_parser.cc:48:5 (libkea-http.so.24+0x36dc7f)
#5 isc::http::HttpConnection::Transaction::Transaction(boost::shared_ptr<isc::http::HttpResponseCreator> const&, boost::shared_ptr<isc::http::HttpRequest> const&) /usr/home/andrei/work/isc/kea/src/lib/http/connection.cc:38:14 (libkea-http.so.24+0x2a876a)
#6 boost::detail::sp_if_not_array<isc::http::HttpConnection::Transaction>::type boost::make_shared<isc::http::HttpConnection::Transaction, boost::shared_ptr<isc::http::HttpResponseCreator> const&>(boost::shared_ptr<isc::http::HttpResponseCreator> const&) /usr/local/include/boost/smart_ptr/make_shared_object.hpp:256:17 (libkea-http.so.24+0x2ae3e6)
#7 isc::http::HttpConnection::Transaction::create(boost::shared_ptr<isc::http::HttpResponseCreator> const&) /usr/home/andrei/work/isc/kea/src/lib/http/connection.cc:43:13 (libkea-http.so.24+0x2a884e)
#8 isc::http::HttpConnection::doRead(boost::shared_ptr<isc::http::HttpConnection::Transaction>) /usr/home/andrei/work/isc/kea/src/lib/http/connection.cc:217:27 (libkea-http.so.24+0x2aaf59)
#9 isc::http::HttpConnection::doWrite(boost::shared_ptr<isc::http::HttpConnection::Transaction>) /usr/home/andrei/work/isc/kea/src/lib/http/connection.cc:283:17 (libkea-http.so.24+0x2ad05f)
#10 isc::http::HttpConnection::socketWriteCallback(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/connection.cc:482:5 (libkea-http.so.24+0x2ad88d)
#11 decltype(*(std::__1::forward<boost::shared_ptr<isc::http::HttpConnection>&>(fp0)).*fp(std::__1::forward<boost::shared_ptr<isc::http::HttpConnection::Transaction>&>(fp1), std::__1::forward<boost::system::error_code>(fp1), std::__1::forward<unsigned long>(fp1))) std::__1::__invoke<void (isc::http::HttpConnection::*&)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>&, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, boost::system::error_code, unsigned long, void>(void (isc::http::HttpConnection::*&)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>&, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, boost::system::error_code&&, unsigned long&&) /usr/include/c++/v1/type_traits:3840:1 (libkea-http.so.24+0x2ed9f6)
#12 std::__1::__bind_return<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>, std::__1::placeholders::__ph<1>, std::__1::placeholders::__ph<2> >, std::__1::tuple<boost::system::error_code&&, unsigned long&&>, __is_valid_bind_return<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>, std::__1::placeholders::__ph<1>, std::__1::placeholders::__ph<2> >, std::__1::tuple<boost::system::error_code&&, unsigned long&&> >::value>::type std::__1::__apply_functor<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>, std::__1::placeholders::__ph<1>, std::__1::placeholders::__ph<2> >, 0ul, 1ul, 2ul, 3ul, std::__1::tuple<boost::system::error_code&&, unsigned long&&> >(void (isc::http::HttpConnection::*&)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>, std::__1::placeholders::__ph<1>, std::__1::placeholders::__ph<2> >&, std::__1::__tuple_indices<0ul, 1ul, 2ul, 3ul>, std::__1::tuple<boost::system::error_code&&, unsigned long&&>&&) /usr/include/c++/v1/functional:2853:12 (libkea-http.so.24+0x2ed81a)
#13 std::__1::__bind_return<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>, std::__1::placeholders::__ph<1>, std::__1::placeholders::__ph<2> >, std::__1::tuple<boost::system::error_code&&, unsigned long&&>, __is_valid_bind_return<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>, std::__1::placeholders::__ph<1>, std::__1::placeholders::__ph<2> >, std::__1::tuple<boost::system::error_code&&, unsigned long&&> >::value>::type std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>::operator()<boost::system::error_code, unsigned long>(boost::system::error_code&&, unsigned long&&) /usr/include/c++/v1/functional:2886:20 (libkea-http.so.24+0x2ed72e)
#14 decltype(std::__1::forward<std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>&>(fp)(std::__1::forward<boost::system::error_code>(fp0), std::__1::forward<unsigned long>(fp0))) std::__1::__invoke<std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>&, boost::system::error_code, unsigned long>(std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>&, boost::system::error_code&&, unsigned long&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-http.so.24+0x2ed63a)
#15 void std::__1::__invoke_void_return_wrapper<void>::__call<std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>&, boost::system::error_code, unsigned long>(std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>&, boost::system::error_code&&, unsigned long&&) /usr/include/c++/v1/__functional_base:348:9 (libkea-http.so.24+0x2ed56a)
#16 std::__1::__function::__alloc_func<std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>, std::__1::allocator<std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&> >, void (boost::system::error_code, unsigned long)>::operator()(boost::system::error_code&&, unsigned long&&) /usr/include/c++/v1/functional:1557:16 (libkea-http.so.24+0x2ed4da)
#17 std::__1::__function::__func<std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>, std::__1::allocator<std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&> >, void (boost::system::error_code, unsigned long)>::operator()(boost::system::error_code&&, unsigned long&&) /usr/include/c++/v1/functional:1731:12 (libkea-http.so.24+0x2eb6e9)
#18 std::__1::__function::__value_func<void (boost::system::error_code, unsigned long)>::operator()(boost::system::error_code&&, unsigned long&&) const /usr/include/c++/v1/functional:1884:16 (libkea-http.so.24+0x27f9ce)
#19 std::__1::function<void (boost::system::error_code, unsigned long)>::operator()(boost::system::error_code, unsigned long) const /usr/include/c++/v1/functional:2556:12 (libkea-http.so.24+0x27f8e4)
#20 isc::http::HttpConnection::SocketCallback::operator()(boost::system::error_code, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/connection.cc:62:5 (libkea-http.so.24+0x2a8a30)
#21 boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>::operator()() /usr/local/include/boost/asio/detail/bind_handler.hpp:164:5 (libkea-http.so.24+0x2b9de3)
#22 void boost::asio::asio_handler_invoke<boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long> >(boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>&, ...) /usr/local/include/boost/asio/handler_invoke_hook.hpp:69:3 (libkea-http.so.24+0x2b9d48)
#23 void boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>, isc::http::HttpConnection::SocketCallback>(boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>&, isc::http::HttpConnection::SocketCallback&) /usr/local/include/boost/asio/detail/handler_invoke_helpers.hpp:37:3 (libkea-http.so.24+0x2b9cf1)
#24 void boost::asio::detail::asio_handler_invoke<boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>, isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>(boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>&, boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>*) /usr/local/include/boost/asio/detail/bind_handler.hpp:207:3 (libkea-http.so.24+0x2b9c38)
#25 void boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>, boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long> >(boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>&, boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>&) /usr/local/include/boost/asio/detail/handler_invoke_helpers.hpp:37:3 (libkea-http.so.24+0x2b99fb)
#26 void boost::asio::detail::io_object_executor<boost::asio::executor>::dispatch<boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>, std::__1::allocator<void> >(boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>&&, std::__1::allocator<void> const&) const /usr/local/include/boost/asio/detail/io_object_executor.hpp:119:9 (libkea-http.so.24+0x2b995a)
#27 void boost::asio::detail::handler_work<isc::http::HttpConnection::SocketCallback, boost::asio::detail::io_object_executor<boost::asio::executor>, boost::asio::detail::io_object_executor<boost::asio::executor> >::complete<boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long> >(boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>&, isc::http::HttpConnection::SocketCallback&) /usr/local/include/boost/asio/detail/handler_work.hpp:72:15 (libkea-http.so.24+0x2b9768)
#28 boost::asio::detail::reactive_socket_send_op<boost::asio::const_buffers_1, isc::http::HttpConnection::SocketCallback, boost::asio::detail::io_object_executor<boost::asio::executor> >::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) /usr/local/include/boost/asio/detail/reactive_socket_send_op.hpp:122:9 (libkea-http.so.24+0x2b93f6)
#29 boost::asio::detail::scheduler_operation::complete(void*, boost::system::error_code const&, unsigned long) /usr/local/include/boost/asio/detail/scheduler_operation.hpp:40:5 (libkea-dhcp_ddns.so.16+0x8cec7)
#30 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:447:12 (libkea-dhcp_ddns.so.16+0xc39cb)
#31 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (libkea-dhcp_ddns.so.16+0xc357f)
#32 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#33 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#34 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#35 decltype(*(std::__1::forward<isc::asiolink::IOService*&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), isc::asiolink::IOService*&, void>(void (isc::asiolink::IOService::*&)(), isc::asiolink::IOService*&) /usr/include/c++/v1/type_traits:3840:1 (ha_unittests+0x6fd384)
#36 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<isc::asiolink::IOService*>, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<isc::asiolink::IOService*>, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<isc::asiolink::IOService*>, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<isc::asiolink::IOService*>&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (ha_unittests+0x6fd273)
#37 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<isc::asiolink::IOService*>, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<isc::asiolink::IOService*>, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*>::operator()<>() /usr/include/c++/v1/functional:2886:20 (ha_unittests+0x6fd1e1)
#38 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*>&&) /usr/include/c++/v1/type_traits:3899:1 (ha_unittests+0x6fd0e0)
#39 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (ha_unittests+0x6fcf68)
#40 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*> > >(void*) /usr/include/c++/v1/thread:291:5 (ha_unittests+0x6fc389)
Mutex M521989915471304624 is already destroyed.
Thread T12 (tid=106021, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (ha_unittests+0x440773)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (ha_unittests+0x6fc2ce)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*>&&) /usr/include/c++/v1/thread:307:16 (ha_unittests+0x6f0407)
#3 isc::ha::test::HATest::runIOServiceInThread() /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_test.cc:107:16 (ha_unittests+0x6ed7fd)
#4 isc::ha::test::HATest::testSynchronousCommands(std::__1::function<void ()>) /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_test.cc:120:19 (ha_unittests+0x6eda67)
#5 (anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool) /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_service_unittest.cc:1555:9 (ha_unittests+0x5ecd29)
#6 (anonymous namespace)::HAServiceTest_communicationRecovery6FailedPartnerLoadBalancingMultiThreading_Test::TestBody() /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_service_unittest.cc:2296:5 (ha_unittests+0x5f390e)
#7 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#8 main /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/run_unittests.cc:16:18 (ha_unittests+0x730c5a)
SUMMARY: ThreadSanitizer: data race (/lib/libthr.so.3+0x1dc47)
[ OK ] HAServiceTest.communicationRecovery6FailedPartnerLoadBalancingMultiThreading (591 ms) </pre></details>
<details><summary>[ RUN ] HAServiceTest.communicationRecovery6FailedResetFailed </summary><pre>
WARNING: ThreadSanitizer: data race (pid=43895)
Write of size 8 at 0x0008050b8b08 by main thread:
#0 memset /usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:780:3 (ha_unittests+0x448417)
#1 <null> <null> (libthr.so.3+0x1dc47)
#2 boost::asio::detail::posix_mutex::posix_mutex() /usr/local/include/boost/asio/detail/impl/posix_mutex.ipp:34:15 (libkea-dhcp_ddns.so.16+0xc42fc)
#3 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) /usr/local/include/boost/asio/detail/conditionally_enabled_mutex.hpp:108:12 (libkea-dhcp_ddns.so.16+0xc093c)
#4 boost::asio::detail::kqueue_reactor::kqueue_reactor(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/impl/kqueue_reactor.ipp:51:5 (libkea-dhcp_ddns.so.16+0xc0381)
#5 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::kqueue_reactor, boost::asio::execution_context>(void*) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:87:14 (libkea-dhcp_ddns.so.16+0xc0097)
#6 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) /usr/local/include/boost/asio/detail/impl/service_registry.ipp:132:36 (libkea-dhcp_ddns.so.16+0xbf698)
#7 boost::asio::detail::kqueue_reactor& boost::asio::detail::service_registry::use_service<boost::asio::detail::kqueue_reactor>() /usr/local/include/boost/asio/detail/impl/service_registry.hpp:30:33 (libkea-dhcp_ddns.so.16+0xbffd8)
#8 boost::asio::detail::kqueue_reactor& boost::asio::use_service<boost::asio::detail::kqueue_reactor>(boost::asio::execution_context&) /usr/local/include/boost/asio/impl/execution_context.hpp:35:40 (libkea-dhcp_ddns.so.16+0xbfeab)
#9 boost::asio::detail::deadline_timer_service<boost::asio::time_traits<boost::posix_time::ptime> >::deadline_timer_service(boost::asio::execution_context&) /usr/local/include/boost/asio/detail/deadline_timer_service.hpp:70:18 (libkea-http.so.24+0x287ca7)
#10 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::deadline_timer_service<boost::asio::time_traits<boost::posix_time::ptime> >, boost::asio::io_context>(void*) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:87:14 (libkea-asiolink.so.24+0xded27)
#11 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) /usr/local/include/boost/asio/detail/impl/service_registry.ipp:132:36 (libkea-dhcp_ddns.so.16+0xbf698)
#12 boost::asio::detail::deadline_timer_service<boost::asio::time_traits<boost::posix_time::ptime> >& boost::asio::detail::service_registry::use_service<boost::asio::detail::deadline_timer_service<boost::asio::time_traits<boost::posix_time::ptime> > >(boost::asio::io_context&) /usr/local/include/boost/asio/detail/impl/service_registry.hpp:39:33 (libkea-asiolink.so.24+0xdebed)
#13 boost::asio::detail::deadline_timer_service<boost::asio::time_traits<boost::posix_time::ptime> >& boost::asio::use_service<boost::asio::detail::deadline_timer_service<boost::asio::time_traits<boost::posix_time::ptime> > >(boost::asio::io_context&) /usr/local/include/boost/asio/impl/io_context.hpp:42:42 (libkea-asiolink.so.24+0xde83f)
#14 boost::asio::detail::io_object_impl<boost::asio::detail::deadline_timer_service<boost::asio::time_traits<boost::posix_time::ptime> >, boost::asio::executor>::io_object_impl<boost::asio::io_context>(boost::asio::io_context&, std::__1::enable_if<is_convertible<boost::asio::io_context&, boost::asio::execution_context&>::value, void>::type*) /usr/local/include/boost/asio/detail/io_object_impl.hpp:86:17 (libkea-asiolink.so.24+0xde6d5)
#15 boost::asio::basic_deadline_timer<boost::posix_time::ptime, boost::asio::time_traits<boost::posix_time::ptime>, boost::asio::executor>::basic_deadline_timer<boost::asio::io_context>(boost::asio::io_context&, std::__1::enable_if<is_convertible<boost::asio::io_context&, boost::asio::execution_context&>::value, void>::type*) /usr/local/include/boost/asio/basic_deadline_timer.hpp:182:7 (libkea-asiolink.so.24+0xd2fea)
#16 isc::asiolink::IntervalTimerImpl::IntervalTimerImpl(isc::asiolink::IOService&) /usr/home/andrei/work/isc/kea/src/lib/asiolink/interval_timer.cc:104:19 (libkea-asiolink.so.24+0xd2014)
#17 isc::asiolink::IntervalTimer::IntervalTimer(isc::asiolink::IOService&) /usr/home/andrei/work/isc/kea/src/lib/asiolink/interval_timer.cc:176:15 (libkea-asiolink.so.24+0xd2c3e)
#18 (anonymous namespace)::Connection::Connection(isc::asiolink::IOService&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<(anonymous namespace)::ConnectionPool> const&, isc::http::Url const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:970:7 (libkea-http.so.24+0x2037ce)
#19 (anonymous namespace)::ConnectionPool::queueRequestInternal(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:632:34 (libkea-http.so.24+0x20293b)
#20 (anonymous namespace)::ConnectionPool::queueRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:505:21 (libkea-http.so.24+0x1fea11)
#21 isc::http::HttpClient::asyncSendRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, isc::http::HttpClient::RequestTimeout const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1746:24 (libkea-http.so.24+0x1fe761)
#22 isc::ha::HAService::asyncSendHAReset(isc::http::HttpClient&, boost::shared_ptr<isc::ha::HAConfig::PeerConfig> const&, std::__1::function<void (bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)>) /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/ha_service.cc:2308:17 (ha_unittests+0x7946aa)
#23 isc::ha::HAService::sendHAReset() /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/ha_service.cc:2347:5 (ha_unittests+0x78ce11)
#24 isc::ha::HAService::communicationRecoveryHandler() /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/ha_service.cc:263:25 (ha_unittests+0x789239)
#25 decltype(*(std::__1::forward<isc::ha::HAService*&>(fp0)).*fp()) std::__1::__invoke<void (isc::ha::HAService::*&)(), isc::ha::HAService*&, void>(void (isc::ha::HAService::*&)(), isc::ha::HAService*&) /usr/include/c++/v1/type_traits:3840:1 (ha_unittests+0x7c9b04)
#26 std::__1::__bind_return<void (isc::ha::HAService::*)(), std::__1::tuple<isc::ha::HAService*>, std::__1::tuple<>, __is_valid_bind_return<void (isc::ha::HAService::*)(), std::__1::tuple<isc::ha::HAService*>, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::ha::HAService::*)(), std::__1::tuple<isc::ha::HAService*>, 0ul, std::__1::tuple<> >(void (isc::ha::HAService::*&)(), std::__1::tuple<isc::ha::HAService*>&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (ha_unittests+0x7c99f3)
#27 std::__1::__bind_return<void (isc::ha::HAService::*)(), std::__1::tuple<isc::ha::HAService*>, std::__1::tuple<>, __is_valid_bind_return<void (isc::ha::HAService::*)(), std::__1::tuple<isc::ha::HAService*>, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*>::operator()<>() /usr/include/c++/v1/functional:2886:20 (ha_unittests+0x7c9961)
#28 decltype(std::__1::forward<std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*>&>(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*>&>(std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*>&) /usr/include/c++/v1/type_traits:3899:1 (ha_unittests+0x7c98b0)
#29 void std::__1::__invoke_void_return_wrapper<void>::__call<std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*>&>(std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*>&) /usr/include/c++/v1/__functional_base:348:9 (ha_unittests+0x7c9810)
#30 std::__1::__function::__alloc_func<std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*>, std::__1::allocator<std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*> >, void ()>::operator()() /usr/include/c++/v1/functional:1557:16 (ha_unittests+0x7c97b0)
#31 std::__1::__function::__func<std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*>, std::__1::allocator<std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*> >, void ()>::operator()() /usr/include/c++/v1/functional:1731:12 (ha_unittests+0x7c7adf)
#32 std::__1::__function::__value_func<void ()>::operator()() const /usr/include/c++/v1/functional:1884:16 (ha_unittests+0x6fddc6)
#33 std::__1::function<void ()>::operator()() const /usr/include/c++/v1/functional:2556:12 (ha_unittests+0x6f05e8)
#34 isc::util::State::run() /usr/home/andrei/work/isc/kea/src/lib/util/state_model.cc:27:5 (libkea-util.so.32+0xd3e0f)
#35 (anonymous namespace)::TestHAService::runModel(unsigned int) /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_service_unittest.cc:153:39 (ha_unittests+0x5a8452)
#36 (anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'()::operator()() const /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_service_unittest.cc:1556:23 (ha_unittests+0x5f32b0)
#37 decltype(std::__1::forward<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'()&>(fp)()) std::__1::__invoke<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'()&>((anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'()&) /usr/include/c++/v1/type_traits:3899:1 (ha_unittests+0x5f31d0)
#38 void std::__1::__invoke_void_return_wrapper<void>::__call<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'()&>((anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'()&) /usr/include/c++/v1/__functional_base:348:9 (ha_unittests+0x5f3130)
#39 std::__1::__function::__alloc_func<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'(), std::__1::allocator<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'()>, void ()>::operator()() /usr/include/c++/v1/functional:1557:16 (ha_unittests+0x5f30d0)
#40 std::__1::__function::__func<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'(), std::__1::allocator<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'()>, void ()>::operator()() /usr/include/c++/v1/functional:1731:12 (ha_unittests+0x5f13ff)
#41 std::__1::__function::__value_func<void ()>::operator()() const /usr/include/c++/v1/functional:1884:16 (ha_unittests+0x6fddc6)
#42 std::__1::function<void ()>::operator()() const /usr/include/c++/v1/functional:2556:12 (ha_unittests+0x6f05e8)
#43 isc::ha::test::HATest::testSynchronousCommands(std::__1::function<void ()>) /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_test.cc:123:5 (ha_unittests+0x6eda75)
#44 (anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool) /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_service_unittest.cc:1555:9 (ha_unittests+0x5ecd29)
#45 (anonymous namespace)::HAServiceTest_communicationRecovery6FailedResetFailed_Test::TestBody() /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_service_unittest.cc:2305:5 (ha_unittests+0x5f3c38)
#46 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#47 main /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/run_unittests.cc:16:18 (ha_unittests+0x730c5a)
Previous write of size 8 at 0x0008050b8b08 by thread T13:
#0 memset /usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:780:3 (ha_unittests+0x448417)
#1 <null> <null> (libthr.so.3+0x1dc47)
#2 std::__1::mutex::lock() <null> (libc++.so.1+0xb5388)
#3 isc::util::StateModel::initDictionaries() /usr/home/andrei/work/isc/kea/src/lib/util/state_model.cc:145:33 (libkea-util.so.32+0xd49be)
#4 isc::http::HttpRequestParser::initModel() /usr/home/andrei/work/isc/kea/src/lib/http/request_parser.cc:48:5 (libkea-http.so.24+0x36dc7f)
#5 isc::http::HttpConnection::Transaction::Transaction(boost::shared_ptr<isc::http::HttpResponseCreator> const&, boost::shared_ptr<isc::http::HttpRequest> const&) /usr/home/andrei/work/isc/kea/src/lib/http/connection.cc:38:14 (libkea-http.so.24+0x2a876a)
#6 boost::detail::sp_if_not_array<isc::http::HttpConnection::Transaction>::type boost::make_shared<isc::http::HttpConnection::Transaction, boost::shared_ptr<isc::http::HttpResponseCreator> const&>(boost::shared_ptr<isc::http::HttpResponseCreator> const&) /usr/local/include/boost/smart_ptr/make_shared_object.hpp:256:17 (libkea-http.so.24+0x2ae3e6)
#7 isc::http::HttpConnection::Transaction::create(boost::shared_ptr<isc::http::HttpResponseCreator> const&) /usr/home/andrei/work/isc/kea/src/lib/http/connection.cc:43:13 (libkea-http.so.24+0x2a884e)
#8 isc::http::HttpConnection::doRead(boost::shared_ptr<isc::http::HttpConnection::Transaction>) /usr/home/andrei/work/isc/kea/src/lib/http/connection.cc:217:27 (libkea-http.so.24+0x2aaf59)
#9 isc::http::HttpConnection::doWrite(boost::shared_ptr<isc::http::HttpConnection::Transaction>) /usr/home/andrei/work/isc/kea/src/lib/http/connection.cc:283:17 (libkea-http.so.24+0x2ad05f)
#10 isc::http::HttpConnection::socketWriteCallback(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/connection.cc:482:5 (libkea-http.so.24+0x2ad88d)
#11 decltype(*(std::__1::forward<boost::shared_ptr<isc::http::HttpConnection>&>(fp0)).*fp(std::__1::forward<boost::shared_ptr<isc::http::HttpConnection::Transaction>&>(fp1), std::__1::forward<boost::system::error_code>(fp1), std::__1::forward<unsigned long>(fp1))) std::__1::__invoke<void (isc::http::HttpConnection::*&)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>&, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, boost::system::error_code, unsigned long, void>(void (isc::http::HttpConnection::*&)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>&, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, boost::system::error_code&&, unsigned long&&) /usr/include/c++/v1/type_traits:3840:1 (libkea-http.so.24+0x2ed9f6)
#12 std::__1::__bind_return<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>, std::__1::placeholders::__ph<1>, std::__1::placeholders::__ph<2> >, std::__1::tuple<boost::system::error_code&&, unsigned long&&>, __is_valid_bind_return<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>, std::__1::placeholders::__ph<1>, std::__1::placeholders::__ph<2> >, std::__1::tuple<boost::system::error_code&&, unsigned long&&> >::value>::type std::__1::__apply_functor<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>, std::__1::placeholders::__ph<1>, std::__1::placeholders::__ph<2> >, 0ul, 1ul, 2ul, 3ul, std::__1::tuple<boost::system::error_code&&, unsigned long&&> >(void (isc::http::HttpConnection::*&)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>, std::__1::placeholders::__ph<1>, std::__1::placeholders::__ph<2> >&, std::__1::__tuple_indices<0ul, 1ul, 2ul, 3ul>, std::__1::tuple<boost::system::error_code&&, unsigned long&&>&&) /usr/include/c++/v1/functional:2853:12 (libkea-http.so.24+0x2ed81a)
#13 std::__1::__bind_return<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>, std::__1::placeholders::__ph<1>, std::__1::placeholders::__ph<2> >, std::__1::tuple<boost::system::error_code&&, unsigned long&&>, __is_valid_bind_return<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>, std::__1::placeholders::__ph<1>, std::__1::placeholders::__ph<2> >, std::__1::tuple<boost::system::error_code&&, unsigned long&&> >::value>::type std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>::operator()<boost::system::error_code, unsigned long>(boost::system::error_code&&, unsigned long&&) /usr/include/c++/v1/functional:2886:20 (libkea-http.so.24+0x2ed72e)
#14 decltype(std::__1::forward<std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>&>(fp)(std::__1::forward<boost::system::error_code>(fp0), std::__1::forward<unsigned long>(fp0))) std::__1::__invoke<std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>&, boost::system::error_code, unsigned long>(std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>&, boost::system::error_code&&, unsigned long&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-http.so.24+0x2ed63a)
#15 void std::__1::__invoke_void_return_wrapper<void>::__call<std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>&, boost::system::error_code, unsigned long>(std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>&, boost::system::error_code&&, unsigned long&&) /usr/include/c++/v1/__functional_base:348:9 (libkea-http.so.24+0x2ed56a)
#16 std::__1::__function::__alloc_func<std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>, std::__1::allocator<std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&> >, void (boost::system::error_code, unsigned long)>::operator()(boost::system::error_code&&, unsigned long&&) /usr/include/c++/v1/functional:1557:16 (libkea-http.so.24+0x2ed4da)
#17 std::__1::__function::__func<std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>, std::__1::allocator<std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&> >, void (boost::system::error_code, unsigned long)>::operator()(boost::system::error_code&&, unsigned long&&) /usr/include/c++/v1/functional:1731:12 (libkea-http.so.24+0x2eb6e9)
#18 std::__1::__function::__value_func<void (boost::system::error_code, unsigned long)>::operator()(boost::system::error_code&&, unsigned long&&) const /usr/include/c++/v1/functional:1884:16 (libkea-http.so.24+0x27f9ce)
#19 std::__1::function<void (boost::system::error_code, unsigned long)>::operator()(boost::system::error_code, unsigned long) const /usr/include/c++/v1/functional:2556:12 (libkea-http.so.24+0x27f8e4)
#20 isc::http::HttpConnection::SocketCallback::operator()(boost::system::error_code, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/connection.cc:62:5 (libkea-http.so.24+0x2a8a30)
#21 boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>::operator()() /usr/local/include/boost/asio/detail/bind_handler.hpp:164:5 (libkea-http.so.24+0x2b9de3)
#22 void boost::asio::asio_handler_invoke<boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long> >(boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>&, ...) /usr/local/include/boost/asio/handler_invoke_hook.hpp:69:3 (libkea-http.so.24+0x2b9d48)
#23 void boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>, isc::http::HttpConnection::SocketCallback>(boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>&, isc::http::HttpConnection::SocketCallback&) /usr/local/include/boost/asio/detail/handler_invoke_helpers.hpp:37:3 (libkea-http.so.24+0x2b9cf1)
#24 void boost::asio::detail::asio_handler_invoke<boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>, isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>(boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>&, boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>*) /usr/local/include/boost/asio/detail/bind_handler.hpp:207:3 (libkea-http.so.24+0x2b9c38)
#25 void boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>, boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long> >(boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>&, boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>&) /usr/local/include/boost/asio/detail/handler_invoke_helpers.hpp:37:3 (libkea-http.so.24+0x2b99fb)
#26 void boost::asio::detail::io_object_executor<boost::asio::executor>::dispatch<boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>, std::__1::allocator<void> >(boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>&&, std::__1::allocator<void> const&) const /usr/local/include/boost/asio/detail/io_object_executor.hpp:119:9 (libkea-http.so.24+0x2b995a)
#27 void boost::asio::detail::handler_work<isc::http::HttpConnection::SocketCallback, boost::asio::detail::io_object_executor<boost::asio::executor>, boost::asio::detail::io_object_executor<boost::asio::executor> >::complete<boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long> >(boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>&, isc::http::HttpConnection::SocketCallback&) /usr/local/include/boost/asio/detail/handler_work.hpp:72:15 (libkea-http.so.24+0x2b9768)
#28 boost::asio::detail::reactive_socket_send_op<boost::asio::const_buffers_1, isc::http::HttpConnection::SocketCallback, boost::asio::detail::io_object_executor<boost::asio::executor> >::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) /usr/local/include/boost/asio/detail/reactive_socket_send_op.hpp:122:9 (libkea-http.so.24+0x2b93f6)
#29 boost::asio::detail::scheduler_operation::complete(void*, boost::system::error_code const&, unsigned long) /usr/local/include/boost/asio/detail/scheduler_operation.hpp:40:5 (libkea-dhcp_ddns.so.16+0x8cec7)
#30 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:447:12 (libkea-dhcp_ddns.so.16+0xc39cb)
#31 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (libkea-dhcp_ddns.so.16+0xc357f)
#32 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#33 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#34 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#35 decltype(*(std::__1::forward<isc::asiolink::IOService*&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), isc::asiolink::IOService*&, void>(void (isc::asiolink::IOService::*&)(), isc::asiolink::IOService*&) /usr/include/c++/v1/type_traits:3840:1 (ha_unittests+0x6fd384)
#36 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<isc::asiolink::IOService*>, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<isc::asiolink::IOService*>, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<isc::asiolink::IOService*>, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<isc::asiolink::IOService*>&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (ha_unittests+0x6fd273)
#37 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<isc::asiolink::IOService*>, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<isc::asiolink::IOService*>, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*>::operator()<>() /usr/include/c++/v1/functional:2886:20 (ha_unittests+0x6fd1e1)
#38 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*>&&) /usr/include/c++/v1/type_traits:3899:1 (ha_unittests+0x6fd0e0)
#39 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (ha_unittests+0x6fcf68)
#40 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*> > >(void*) /usr/include/c++/v1/thread:291:5 (ha_unittests+0x6fc389)
Thread T13 (tid=106038, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (ha_unittests+0x440773)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (ha_unittests+0x6fc2ce)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*>&&) /usr/include/c++/v1/thread:307:16 (ha_unittests+0x6f0407)
#3 isc::ha::test::HATest::runIOServiceInThread() /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_test.cc:107:16 (ha_unittests+0x6ed7fd)
#4 isc::ha::test::HATest::testSynchronousCommands(std::__1::function<void ()>) /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_test.cc:120:19 (ha_unittests+0x6eda67)
#5 (anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool) /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_service_unittest.cc:1555:9 (ha_unittests+0x5ecd29)
#6 (anonymous namespace)::HAServiceTest_communicationRecovery6FailedResetFailed_Test::TestBody() /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_service_unittest.cc:2305:5 (ha_unittests+0x5f3c38)
#7 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#8 main /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/run_unittests.cc:16:18 (ha_unittests+0x730c5a)
SUMMARY: ThreadSanitizer: data race (/lib/libthr.so.3+0x1dc47)
[ OK ] HAServiceTest.communicationRecovery6FailedResetFailed (178 ms) </pre></details>
<details><summary>[ RUN ] HAServiceTest.communicationRecovery6FailedResetFailedMultiThreading </summary><pre>
WARNING: ThreadSanitizer: data race (pid=43895)
Write of size 8 at 0x0008050b8e88 by main thread (mutexes: write M141998696911931568, write M145377101007143336):
#0 memset /usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:780:3 (ha_unittests+0x448417)
#1 <null> <null> (libthr.so.3+0x1dc47)
#2 std::__1::mutex::lock() <null> (libc++.so.1+0xb5388)
#3 isc::util::StateModel::initDictionaries() /usr/home/andrei/work/isc/kea/src/lib/util/state_model.cc:145:33 (libkea-util.so.32+0xd49be)
#4 isc::http::HttpResponseParser::initModel() /usr/home/andrei/work/isc/kea/src/lib/http/response_parser.cc:49:5 (libkea-http.so.24+0x3a9e0f)
#5 (anonymous namespace)::Connection::doTransactionInternal(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1049:18 (libkea-http.so.24+0x23cccd)
#6 (anonymous namespace)::Connection::doTransaction(boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1026:9 (libkea-http.so.24+0x203fc7)
#7 (anonymous namespace)::ConnectionPool::queueRequestInternal(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:638:21 (libkea-http.so.24+0x202a7c)
#8 (anonymous namespace)::ConnectionPool::queueRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:500:21 (libkea-http.so.24+0x1fe9a7)
#9 isc::http::HttpClient::asyncSendRequest(isc::http::Url const&, boost::shared_ptr<isc::asiolink::TlsContext> const&, boost::shared_ptr<isc::http::HttpRequest> const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptr<isc::http::HttpResponse> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> const&, isc::http::HttpClient::RequestTimeout const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<bool (boost::system::error_code const&, int)> const&, std::__1::function<void (int)> const&) /usr/home/andrei/work/isc/kea/src/lib/http/client.cc:1746:24 (libkea-http.so.24+0x1fe761)
#10 isc::ha::HAService::asyncSendHAReset(isc::http::HttpClient&, boost::shared_ptr<isc::ha::HAConfig::PeerConfig> const&, std::__1::function<void (bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)>) /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/ha_service.cc:2308:17 (ha_unittests+0x7946aa)
#11 isc::ha::HAService::sendHAReset() /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/ha_service.cc:2347:5 (ha_unittests+0x78ce11)
#12 isc::ha::HAService::communicationRecoveryHandler() /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/ha_service.cc:263:25 (ha_unittests+0x789239)
#13 decltype(*(std::__1::forward<isc::ha::HAService*&>(fp0)).*fp()) std::__1::__invoke<void (isc::ha::HAService::*&)(), isc::ha::HAService*&, void>(void (isc::ha::HAService::*&)(), isc::ha::HAService*&) /usr/include/c++/v1/type_traits:3840:1 (ha_unittests+0x7c9b04)
#14 std::__1::__bind_return<void (isc::ha::HAService::*)(), std::__1::tuple<isc::ha::HAService*>, std::__1::tuple<>, __is_valid_bind_return<void (isc::ha::HAService::*)(), std::__1::tuple<isc::ha::HAService*>, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::ha::HAService::*)(), std::__1::tuple<isc::ha::HAService*>, 0ul, std::__1::tuple<> >(void (isc::ha::HAService::*&)(), std::__1::tuple<isc::ha::HAService*>&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (ha_unittests+0x7c99f3)
#15 std::__1::__bind_return<void (isc::ha::HAService::*)(), std::__1::tuple<isc::ha::HAService*>, std::__1::tuple<>, __is_valid_bind_return<void (isc::ha::HAService::*)(), std::__1::tuple<isc::ha::HAService*>, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*>::operator()<>() /usr/include/c++/v1/functional:2886:20 (ha_unittests+0x7c9961)
#16 decltype(std::__1::forward<std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*>&>(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*>&>(std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*>&) /usr/include/c++/v1/type_traits:3899:1 (ha_unittests+0x7c98b0)
#17 void std::__1::__invoke_void_return_wrapper<void>::__call<std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*>&>(std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*>&) /usr/include/c++/v1/__functional_base:348:9 (ha_unittests+0x7c9810)
#18 std::__1::__function::__alloc_func<std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*>, std::__1::allocator<std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*> >, void ()>::operator()() /usr/include/c++/v1/functional:1557:16 (ha_unittests+0x7c97b0)
#19 std::__1::__function::__func<std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*>, std::__1::allocator<std::__1::__bind<void (isc::ha::HAService::*)(), isc::ha::HAService*> >, void ()>::operator()() /usr/include/c++/v1/functional:1731:12 (ha_unittests+0x7c7adf)
#20 std::__1::__function::__value_func<void ()>::operator()() const /usr/include/c++/v1/functional:1884:16 (ha_unittests+0x6fddc6)
#21 std::__1::function<void ()>::operator()() const /usr/include/c++/v1/functional:2556:12 (ha_unittests+0x6f05e8)
#22 isc::util::State::run() /usr/home/andrei/work/isc/kea/src/lib/util/state_model.cc:27:5 (libkea-util.so.32+0xd3e0f)
#23 (anonymous namespace)::TestHAService::runModel(unsigned int) /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_service_unittest.cc:153:39 (ha_unittests+0x5a8452)
#24 (anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'()::operator()() const /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_service_unittest.cc:1556:23 (ha_unittests+0x5f32b0)
#25 decltype(std::__1::forward<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'()&>(fp)()) std::__1::__invoke<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'()&>((anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'()&) /usr/include/c++/v1/type_traits:3899:1 (ha_unittests+0x5f31d0)
#26 void std::__1::__invoke_void_return_wrapper<void>::__call<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'()&>((anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'()&) /usr/include/c++/v1/__functional_base:348:9 (ha_unittests+0x5f3130)
#27 std::__1::__function::__alloc_func<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'(), std::__1::allocator<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'()>, void ()>::operator()() /usr/include/c++/v1/functional:1557:16 (ha_unittests+0x5f30d0)
#28 std::__1::__function::__func<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'(), std::__1::allocator<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool)::'lambda0'()>, void ()>::operator()() /usr/include/c++/v1/functional:1731:12 (ha_unittests+0x5f13ff)
#29 std::__1::__function::__value_func<void ()>::operator()() const /usr/include/c++/v1/functional:1884:16 (ha_unittests+0x6fddc6)
#30 std::__1::function<void ()>::operator()() const /usr/include/c++/v1/functional:2556:12 (ha_unittests+0x6f05e8)
#31 isc::ha::test::HATest::testSynchronousCommands(std::__1::function<void ()>) /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_test.cc:123:5 (ha_unittests+0x6eda75)
#32 (anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool) /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_service_unittest.cc:1555:9 (ha_unittests+0x5ecd29)
#33 (anonymous namespace)::HAServiceTest_communicationRecovery6FailedResetFailedMultiThreading_Test::TestBody() /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_service_unittest.cc:2315:5 (ha_unittests+0x5f3f7e)
#34 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#35 main /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/run_unittests.cc:16:18 (ha_unittests+0x730c5a)
Previous write of size 8 at 0x0008050b8e88 by thread T14:
#0 memset /usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:780:3 (ha_unittests+0x448417)
#1 <null> <null> (libthr.so.3+0x1dc47)
#2 std::__1::mutex::lock() <null> (libc++.so.1+0xb5388)
#3 isc::util::StateModel::initDictionaries() /usr/home/andrei/work/isc/kea/src/lib/util/state_model.cc:145:33 (libkea-util.so.32+0xd49be)
#4 isc::http::HttpRequestParser::initModel() /usr/home/andrei/work/isc/kea/src/lib/http/request_parser.cc:48:5 (libkea-http.so.24+0x36dc7f)
#5 isc::http::HttpConnection::Transaction::Transaction(boost::shared_ptr<isc::http::HttpResponseCreator> const&, boost::shared_ptr<isc::http::HttpRequest> const&) /usr/home/andrei/work/isc/kea/src/lib/http/connection.cc:38:14 (libkea-http.so.24+0x2a876a)
#6 boost::detail::sp_if_not_array<isc::http::HttpConnection::Transaction>::type boost::make_shared<isc::http::HttpConnection::Transaction, boost::shared_ptr<isc::http::HttpResponseCreator> const&>(boost::shared_ptr<isc::http::HttpResponseCreator> const&) /usr/local/include/boost/smart_ptr/make_shared_object.hpp:256:17 (libkea-http.so.24+0x2ae3e6)
#7 isc::http::HttpConnection::Transaction::create(boost::shared_ptr<isc::http::HttpResponseCreator> const&) /usr/home/andrei/work/isc/kea/src/lib/http/connection.cc:43:13 (libkea-http.so.24+0x2a884e)
#8 isc::http::HttpConnection::doRead(boost::shared_ptr<isc::http::HttpConnection::Transaction>) /usr/home/andrei/work/isc/kea/src/lib/http/connection.cc:217:27 (libkea-http.so.24+0x2aaf59)
#9 isc::http::HttpConnection::doWrite(boost::shared_ptr<isc::http::HttpConnection::Transaction>) /usr/home/andrei/work/isc/kea/src/lib/http/connection.cc:283:17 (libkea-http.so.24+0x2ad05f)
#10 isc::http::HttpConnection::socketWriteCallback(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/connection.cc:482:5 (libkea-http.so.24+0x2ad88d)
#11 decltype(*(std::__1::forward<boost::shared_ptr<isc::http::HttpConnection>&>(fp0)).*fp(std::__1::forward<boost::shared_ptr<isc::http::HttpConnection::Transaction>&>(fp1), std::__1::forward<boost::system::error_code>(fp1), std::__1::forward<unsigned long>(fp1))) std::__1::__invoke<void (isc::http::HttpConnection::*&)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>&, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, boost::system::error_code, unsigned long, void>(void (isc::http::HttpConnection::*&)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>&, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, boost::system::error_code&&, unsigned long&&) /usr/include/c++/v1/type_traits:3840:1 (libkea-http.so.24+0x2ed9f6)
#12 std::__1::__bind_return<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>, std::__1::placeholders::__ph<1>, std::__1::placeholders::__ph<2> >, std::__1::tuple<boost::system::error_code&&, unsigned long&&>, __is_valid_bind_return<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>, std::__1::placeholders::__ph<1>, std::__1::placeholders::__ph<2> >, std::__1::tuple<boost::system::error_code&&, unsigned long&&> >::value>::type std::__1::__apply_functor<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>, std::__1::placeholders::__ph<1>, std::__1::placeholders::__ph<2> >, 0ul, 1ul, 2ul, 3ul, std::__1::tuple<boost::system::error_code&&, unsigned long&&> >(void (isc::http::HttpConnection::*&)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>, std::__1::placeholders::__ph<1>, std::__1::placeholders::__ph<2> >&, std::__1::__tuple_indices<0ul, 1ul, 2ul, 3ul>, std::__1::tuple<boost::system::error_code&&, unsigned long&&>&&) /usr/include/c++/v1/functional:2853:12 (libkea-http.so.24+0x2ed81a)
#13 std::__1::__bind_return<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>, std::__1::placeholders::__ph<1>, std::__1::placeholders::__ph<2> >, std::__1::tuple<boost::system::error_code&&, unsigned long&&>, __is_valid_bind_return<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>, std::__1::placeholders::__ph<1>, std::__1::placeholders::__ph<2> >, std::__1::tuple<boost::system::error_code&&, unsigned long&&> >::value>::type std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>::operator()<boost::system::error_code, unsigned long>(boost::system::error_code&&, unsigned long&&) /usr/include/c++/v1/functional:2886:20 (libkea-http.so.24+0x2ed72e)
#14 decltype(std::__1::forward<std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>&>(fp)(std::__1::forward<boost::system::error_code>(fp0), std::__1::forward<unsigned long>(fp0))) std::__1::__invoke<std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>&, boost::system::error_code, unsigned long>(std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>&, boost::system::error_code&&, unsigned long&&) /usr/include/c++/v1/type_traits:3899:1 (libkea-http.so.24+0x2ed63a)
#15 void std::__1::__invoke_void_return_wrapper<void>::__call<std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>&, boost::system::error_code, unsigned long>(std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>&, boost::system::error_code&&, unsigned long&&) /usr/include/c++/v1/__functional_base:348:9 (libkea-http.so.24+0x2ed56a)
#16 std::__1::__function::__alloc_func<std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>, std::__1::allocator<std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&> >, void (boost::system::error_code, unsigned long)>::operator()(boost::system::error_code&&, unsigned long&&) /usr/include/c++/v1/functional:1557:16 (libkea-http.so.24+0x2ed4da)
#17 std::__1::__function::__func<std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>, std::__1::allocator<std::__1::__bind<void (isc::http::HttpConnection::*)(boost::shared_ptr<isc::http::HttpConnection::Transaction>, boost::system::error_code, unsigned long), boost::shared_ptr<isc::http::HttpConnection>, boost::shared_ptr<isc::http::HttpConnection::Transaction>&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&> >, void (boost::system::error_code, unsigned long)>::operator()(boost::system::error_code&&, unsigned long&&) /usr/include/c++/v1/functional:1731:12 (libkea-http.so.24+0x2eb6e9)
#18 std::__1::__function::__value_func<void (boost::system::error_code, unsigned long)>::operator()(boost::system::error_code&&, unsigned long&&) const /usr/include/c++/v1/functional:1884:16 (libkea-http.so.24+0x27f9ce)
#19 std::__1::function<void (boost::system::error_code, unsigned long)>::operator()(boost::system::error_code, unsigned long) const /usr/include/c++/v1/functional:2556:12 (libkea-http.so.24+0x27f8e4)
#20 isc::http::HttpConnection::SocketCallback::operator()(boost::system::error_code, unsigned long) /usr/home/andrei/work/isc/kea/src/lib/http/connection.cc:62:5 (libkea-http.so.24+0x2a8a30)
#21 boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>::operator()() /usr/local/include/boost/asio/detail/bind_handler.hpp:164:5 (libkea-http.so.24+0x2b9de3)
#22 void boost::asio::asio_handler_invoke<boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long> >(boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>&, ...) /usr/local/include/boost/asio/handler_invoke_hook.hpp:69:3 (libkea-http.so.24+0x2b9d48)
#23 void boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>, isc::http::HttpConnection::SocketCallback>(boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>&, isc::http::HttpConnection::SocketCallback&) /usr/local/include/boost/asio/detail/handler_invoke_helpers.hpp:37:3 (libkea-http.so.24+0x2b9cf1)
#24 void boost::asio::detail::asio_handler_invoke<boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>, isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>(boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>&, boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>*) /usr/local/include/boost/asio/detail/bind_handler.hpp:207:3 (libkea-http.so.24+0x2b9c38)
#25 void boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>, boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long> >(boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>&, boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>&) /usr/local/include/boost/asio/detail/handler_invoke_helpers.hpp:37:3 (libkea-http.so.24+0x2b99fb)
#26 void boost::asio::detail::io_object_executor<boost::asio::executor>::dispatch<boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>, std::__1::allocator<void> >(boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>&&, std::__1::allocator<void> const&) const /usr/local/include/boost/asio/detail/io_object_executor.hpp:119:9 (libkea-http.so.24+0x2b995a)
#27 void boost::asio::detail::handler_work<isc::http::HttpConnection::SocketCallback, boost::asio::detail::io_object_executor<boost::asio::executor>, boost::asio::detail::io_object_executor<boost::asio::executor> >::complete<boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long> >(boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>&, isc::http::HttpConnection::SocketCallback&) /usr/local/include/boost/asio/detail/handler_work.hpp:72:15 (libkea-http.so.24+0x2b9768)
#28 boost::asio::detail::reactive_socket_send_op<boost::asio::const_buffers_1, isc::http::HttpConnection::SocketCallback, boost::asio::detail::io_object_executor<boost::asio::executor> >::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) /usr/local/include/boost/asio/detail/reactive_socket_send_op.hpp:122:9 (libkea-http.so.24+0x2b93f6)
#29 boost::asio::detail::scheduler_operation::complete(void*, boost::system::error_code const&, unsigned long) /usr/local/include/boost/asio/detail/scheduler_operation.hpp:40:5 (libkea-dhcp_ddns.so.16+0x8cec7)
#30 boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:447:12 (libkea-dhcp_ddns.so.16+0xc39cb)
#31 boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/local/include/boost/asio/detail/impl/scheduler.ipp:200:10 (libkea-dhcp_ddns.so.16+0xc357f)
#32 boost::asio::io_context::run() /usr/local/include/boost/asio/impl/io_context.ipp:63:24 (libkea-asiolink.so.24+0x1065d8)
#33 isc::asiolink::IOServiceImpl::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:62:21 (libkea-asiolink.so.24+0x102a28)
#34 isc::asiolink::IOService::run() /usr/home/andrei/work/isc/kea/src/lib/asiolink/io_service.cc:121:15 (libkea-asiolink.so.24+0x101330)
#35 decltype(*(std::__1::forward<isc::asiolink::IOService*&>(fp0)).*fp()) std::__1::__invoke<void (isc::asiolink::IOService::*&)(), isc::asiolink::IOService*&, void>(void (isc::asiolink::IOService::*&)(), isc::asiolink::IOService*&) /usr/include/c++/v1/type_traits:3840:1 (ha_unittests+0x6fd384)
#36 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<isc::asiolink::IOService*>, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<isc::asiolink::IOService*>, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::*)(), std::__1::tuple<isc::asiolink::IOService*>, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::*&)(), std::__1::tuple<isc::asiolink::IOService*>&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) /usr/include/c++/v1/functional:2853:12 (ha_unittests+0x6fd273)
#37 std::__1::__bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<isc::asiolink::IOService*>, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::*)(), std::__1::tuple<isc::asiolink::IOService*>, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*>::operator()<>() /usr/include/c++/v1/functional:2886:20 (ha_unittests+0x6fd1e1)
#38 decltype(std::__1::forward<std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*> >(std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*>&&) /usr/include/c++/v1/type_traits:3899:1 (ha_unittests+0x6fd0e0)
#39 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*> >&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (ha_unittests+0x6fcf68)
#40 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*> > >(void*) /usr/include/c++/v1/thread:291:5 (ha_unittests+0x6fc389)
Mutex M141998696911931568 is already destroyed.
Mutex M145377101007143336 is already destroyed.
Thread T14 (tid=106039, running) created by main thread at:
#0 pthread_create /usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (ha_unittests+0x440773)
#1 std::__1::__libcpp_thread_create(pthread**, void* (*)(void*), void*) /usr/include/c++/v1/__threading_support:504:10 (ha_unittests+0x6fc2ce)
#2 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*>, void>(std::__1::__bind<void (isc::asiolink::IOService::*)(), isc::asiolink::IOService*>&&) /usr/include/c++/v1/thread:307:16 (ha_unittests+0x6f0407)
#3 isc::ha::test::HATest::runIOServiceInThread() /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_test.cc:107:16 (ha_unittests+0x6ed7fd)
#4 isc::ha::test::HATest::testSynchronousCommands(std::__1::function<void ()>) /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_test.cc:120:19 (ha_unittests+0x6eda67)
#5 (anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, bool) /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_service_unittest.cc:1555:9 (ha_unittests+0x5ecd29)
#6 (anonymous namespace)::HAServiceTest_communicationRecovery6FailedResetFailedMultiThreading_Test::TestBody() /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/ha_service_unittest.cc:2315:5 (ha_unittests+0x5f3f7e)
#7 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (libgtest.so+0x5a376)
#8 main /usr/home/andrei/work/isc/kea/src/hooks/dhcp/high_availability/tests/run_unittests.cc:16:18 (ha_unittests+0x730c5a)
SUMMARY: ThreadSanitizer: data race (/lib/libthr.so.3+0x1dc47)
[ OK ] HAServiceTest.communicationRecovery6FailedResetFailedMultiThreading (106 ms) </pre></details>
The full output out of which the summary above was extracted: [freebsd-13-gtests.txt](/uploads/4dab491fcd936686f8e3a575c59c4675/freebsd-13-gtests.txt)
kea1.9.9
Andrei Pavel
andrei@isc.org
Andrei Pavel
andrei@isc.org
https://gitlab.isc.org/isc-projects/bind9/-/issues/2560
CID 329157: Dereference before null check in lib/dns/journal.c
2021-03-08T05:12:39Z
Michal Nowak
CID 329157: Dereference before null check in lib/dns/journal.c
Coverity Scan [identified](https://scan8.coverity.com/reports.htm#v38342/p12579/fileInstanceId=40401349&defectInstanceId=11469128&mergedDefectId=329157) a problem on `main` and `v9_16` after isc-projects/bind9!4720 was merged:
```
*** CI...
Coverity Scan [identified](https://scan8.coverity.com/reports.htm#v38342/p12579/fileInstanceId=40401349&defectInstanceId=11469128&mergedDefectId=329157) a problem on `main` and `v9_16` after isc-projects/bind9!4720 was merged:
```
*** CID 329157: Null pointer dereferences (REVERSE_INULL)
/lib/dns/journal.c: 754 in journal_open()
748 j->header.index_size * sizeof(journal_rawpos_t));
749 }
750 if (j->index != NULL) {
751 isc_mem_put(j->mctx, j->index,
752 j->header.index_size * sizeof(journal_pos_t));
753 }
CID 329157: Null pointer dereferences (REVERSE_INULL)
Null-checking "j->filename" suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
754 if (j->filename != NULL) {
755 isc_mem_free(j->mctx, j->filename);
756 }
757 if (j->fp != NULL) {
758 (void)isc_stdio_close(j->fp);
759 }
```
/cc @each @marka
March 2021 (9.11.29, 9.11.29-S1, 9.16.13, 9.16.13-S1, 9.17.11)
https://gitlab.isc.org/isc-projects/kea/-/issues/1818
HA+MT Hook libs need a way to honor or/be notified of CriticalSection entry/exit
2021-08-31T20:56:53Z
Thomas Markwalder
HA+MT Hook libs need a way to honor or/be notified of CriticalSection entry/exit
When Kea core needs to do critical work, it enters a critical section, (see util::MultiThreadingCriticalSection). Currently this causes DHCP threads to be destroyed, thus eliminating contention for critical resources that need to be man...
When Kea core needs to do critical work, it enters a critical section, (see util::MultiThreadingCriticalSection). Currently this causes DHCP threads to be destroyed, thus eliminating contention for critical resources that need to be manipulated, and the threads are recreated upon critical section exit. MT hooks need the opportunity to stop/pause and start/resume in-step with this to avoid train wrecks. One notion that @razvan and I discussed was having a way to register critical section entry/exit callbacks with core. These would be invoked as critical sections are entered and exited.
As @razvan described "...most things are related to having http client/listener threads running while entering CS (mostly while other commands are run: lease updates/config-reload/config-set/config-test)."
I am breaking this down into at least two MRs:
1. Make it possible to pause/resume thread-pools in HttpClient and CmdHttpListener
2. Add Critical section entry/exit callbacks and integrate their use into HA
kea1.9.8
Thomas Markwalder
Thomas Markwalder