thread sanitizer warnings on HTTP client multithreaded tests
[ RUN ] MtHttpClientTest.oneByThreeByOne
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_queueboost::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_ptrisc::asiolink::IOService&>(fp0)).fp()) std::__1::__invoke<void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::asiolink::IOService&, void>(void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tuple<boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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) (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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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) (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_ptrisc::asiolink::IOService&>, void>(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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) (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_queueboost::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_ptrisc::asiolink::IOService&>(fp0)).fp()) std::__1::__invoke<void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::asiolink::IOService&, void>(void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tuple<boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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) (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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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) (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_ptrisc::asiolink::IOService&>, void>(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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) (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)
[ RUN ] MtHttpClientTest.threeByThreeByOne
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_queueboost::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_ptrisc::asiolink::IOService&>(fp0)).fp()) std::__1::__invoke<void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::asiolink::IOService&, void>(void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tuple<boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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) (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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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) (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_ptrisc::asiolink::IOService&>, void>(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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) (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_queueboost::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_ptrisc::asiolink::IOService&>(fp0)).fp()) std::__1::__invoke<void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::asiolink::IOService&, void>(void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tuple<boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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) (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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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) (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_ptrisc::asiolink::IOService&>, void>(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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) (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)
[ RUN ] MtHttpClientTest.threeByNineByOne
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_queueboost::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_ptrisc::asiolink::IOService&>(fp0)).fp()) std::__1::__invoke<void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::asiolink::IOService&, void>(void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tuple<boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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) (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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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) (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_ptrisc::asiolink::IOService&>, void>(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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) (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_queueboost::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_ptrisc::asiolink::IOService&>(fp0)).fp()) std::__1::__invoke<void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::asiolink::IOService&, void>(void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tuple<boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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) (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_ptrisc::asiolink::IOService&>, void>(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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) (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_queueboost::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_ptrisc::asiolink::IOService&>(fp0)).fp()) std::__1::__invoke<void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::asiolink::IOService&, void>(void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tuple<boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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) (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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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) (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_ptrisc::asiolink::IOService&>, void>(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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) (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)
[ RUN ] MtHttpClientTest.twoByFourByTwo
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_queueboost::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_ptrisc::asiolink::IOService&>(fp0)).fp()) std::__1::__invoke<void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::asiolink::IOService&, void>(void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tuple<boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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) (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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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) (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_ptrisc::asiolink::IOService&>, void>(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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) (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_queueboost::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_ptrisc::asiolink::IOService&>(fp0)).fp()) std::__1::__invoke<void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::asiolink::IOService&, void>(void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tuple<boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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) (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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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) (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_ptrisc::asiolink::IOService&>, void>(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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) (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)
[ RUN ] MtHttpClientTest.fourByFourByTwo
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_queueboost::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_ptrisc::asiolink::IOService&>(fp0)).fp()) std::__1::__invoke<void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::asiolink::IOService&, void>(void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tuple<boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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) (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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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) (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_ptrisc::asiolink::IOService&>, void>(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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) (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_queueboost::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_ptrisc::asiolink::IOService&>(fp0)).fp()) std::__1::__invoke<void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::asiolink::IOService&, void>(void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tuple<boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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) (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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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) (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_ptrisc::asiolink::IOService&>, void>(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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) (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)
[ RUN ] CmdHttpListenerTest.basicListenAndRespond
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_queueboost::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_ptrisc::asiolink::IOService&>(fp0)).fp()) std::__1::__invoke<void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::asiolink::IOService&, void>(void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tuple<boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_serviceboost::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_serviceboost::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_serviceboost::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_serviceboost::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_serviceboost::asio::ip::tcp& boost::asio::detail::service_registry::use_service<boost::asio::detail::reactive_socket_serviceboost::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_serviceboost::asio::ip::tcp& boost::asio::use_service<boost::asio::detail::reactive_socket_serviceboost::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_serviceboost::asio::ip::tcp, boost::asio::executor>::io_object_implboost::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_acceptorboost::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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::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) (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_ptrisc::asiolink::IOService&>, void>(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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) (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_queueboost::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_ptrisc::asiolink::IOService&>(fp0)).fp()) std::__1::__invoke<void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::asiolink::IOService&, void>(void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tuple<boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_serviceboost::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_serviceboost::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_serviceboost::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_serviceboost::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_serviceboost::asio::ip::tcp& boost::asio::detail::service_registry::use_service<boost::asio::detail::reactive_socket_serviceboost::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_serviceboost::asio::ip::tcp& boost::asio::use_service<boost::asio::detail::reactive_socket_serviceboost::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_serviceboost::asio::ip::tcp, boost::asio::executor>::io_object_implboost::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_acceptorboost::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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::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) (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_ptrisc::asiolink::IOService&>, void>(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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) (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)
[ RUN ] CmdHttpListenerTest.oneByOne
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_queueboost::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_ptrisc::asiolink::IOService&>(fp0)).fp()) std::__1::__invoke<void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::asiolink::IOService&, void>(void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tuple<boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_serviceboost::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_serviceboost::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_serviceboost::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_serviceboost::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_serviceboost::asio::ip::tcp& boost::asio::detail::service_registry::use_service<boost::asio::detail::reactive_socket_serviceboost::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_serviceboost::asio::ip::tcp& boost::asio::use_service<boost::asio::detail::reactive_socket_serviceboost::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_serviceboost::asio::ip::tcp, boost::asio::executor>::io_object_implboost::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_acceptorboost::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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::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) (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_ptrisc::asiolink::IOService&>, void>(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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) (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_queueboost::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_ptrisc::asiolink::IOService&>(fp0)).fp()) std::__1::__invoke<void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::asiolink::IOService&, void>(void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tuple<boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_serviceboost::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_serviceboost::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_serviceboost::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_serviceboost::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_serviceboost::asio::ip::tcp& boost::asio::detail::service_registry::use_service<boost::asio::detail::reactive_socket_serviceboost::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_serviceboost::asio::ip::tcp& boost::asio::use_service<boost::asio::detail::reactive_socket_serviceboost::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_serviceboost::asio::ip::tcp, boost::asio::executor>::io_object_implboost::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_acceptorboost::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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::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) (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_ptrisc::asiolink::IOService&>, void>(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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) (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)
[ RUN ] CmdHttpListenerTest.oneByFour
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_queueboost::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_ptrisc::asiolink::IOService&>(fp0)).fp()) std::__1::__invoke<void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::asiolink::IOService&, void>(void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tuple<boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_serviceboost::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_serviceboost::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_serviceboost::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_serviceboost::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_serviceboost::asio::ip::tcp& boost::asio::detail::service_registry::use_service<boost::asio::detail::reactive_socket_serviceboost::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_serviceboost::asio::ip::tcp& boost::asio::use_service<boost::asio::detail::reactive_socket_serviceboost::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_serviceboost::asio::ip::tcp, boost::asio::executor>::io_object_implboost::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_acceptorboost::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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::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) (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_ptrisc::asiolink::IOService&>, void>(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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) (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_queueboost::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_ptrisc::asiolink::IOService&>(fp0)).fp()) std::__1::__invoke<void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::asiolink::IOService&, void>(void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tuple<boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_serviceboost::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_serviceboost::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_serviceboost::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_serviceboost::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_serviceboost::asio::ip::tcp& boost::asio::detail::service_registry::use_service<boost::asio::detail::reactive_socket_serviceboost::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_serviceboost::asio::ip::tcp& boost::asio::use_service<boost::asio::detail::reactive_socket_serviceboost::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_serviceboost::asio::ip::tcp, boost::asio::executor>::io_object_implboost::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_acceptorboost::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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::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) (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_ptrisc::asiolink::IOService&>, void>(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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) (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)
[ RUN ] CmdHttpListenerTest.fourByOne
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_queueboost::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_ptrisc::asiolink::IOService&>(fp0)).fp()) std::__1::__invoke<void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::asiolink::IOService&, void>(void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tuple<boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_serviceboost::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_serviceboost::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_serviceboost::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_serviceboost::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_serviceboost::asio::ip::tcp& boost::asio::detail::service_registry::use_service<boost::asio::detail::reactive_socket_serviceboost::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_serviceboost::asio::ip::tcp& boost::asio::use_service<boost::asio::detail::reactive_socket_serviceboost::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_serviceboost::asio::ip::tcp, boost::asio::executor>::io_object_implboost::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_acceptorboost::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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::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) (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_ptrisc::asiolink::IOService&>, void>(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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) (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_queueboost::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_ptrisc::asiolink::IOService&>(fp0)).fp()) std::__1::__invoke<void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::asiolink::IOService&, void>(void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tuple<boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_serviceboost::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_serviceboost::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_serviceboost::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_serviceboost::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_serviceboost::asio::ip::tcp& boost::asio::detail::service_registry::use_service<boost::asio::detail::reactive_socket_serviceboost::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_serviceboost::asio::ip::tcp& boost::asio::use_service<boost::asio::detail::reactive_socket_serviceboost::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_serviceboost::asio::ip::tcp, boost::asio::executor>::io_object_implboost::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_acceptorboost::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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::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) (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_ptrisc::asiolink::IOService&>, void>(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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) (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)
[ RUN ] CmdHttpListenerTest.fourByFour
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_queueboost::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_ptrisc::asiolink::IOService&>(fp0)).fp()) std::__1::__invoke<void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::asiolink::IOService&, void>(void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tuple<boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_serviceboost::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_serviceboost::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_serviceboost::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_serviceboost::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_serviceboost::asio::ip::tcp& boost::asio::detail::service_registry::use_service<boost::asio::detail::reactive_socket_serviceboost::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_serviceboost::asio::ip::tcp& boost::asio::use_service<boost::asio::detail::reactive_socket_serviceboost::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_serviceboost::asio::ip::tcp, boost::asio::executor>::io_object_implboost::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_acceptorboost::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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::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) (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_ptrisc::asiolink::IOService&>, void>(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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) (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_queueboost::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_ptrisc::asiolink::IOService&>(fp0)).fp()) std::__1::__invoke<void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::asiolink::IOService&, void>(void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tuple<boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_serviceboost::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_serviceboost::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_serviceboost::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_serviceboost::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_serviceboost::asio::ip::tcp& boost::asio::detail::service_registry::use_service<boost::asio::detail::reactive_socket_serviceboost::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_serviceboost::asio::ip::tcp& boost::asio::use_service<boost::asio::detail::reactive_socket_serviceboost::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_serviceboost::asio::ip::tcp, boost::asio::executor>::io_object_implboost::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_acceptorboost::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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::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) (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_ptrisc::asiolink::IOService&>, void>(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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) (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)
[ RUN ] CmdHttpListenerTest.fourByEight
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_queueboost::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_ptrisc::asiolink::IOService&>(fp0)).fp()) std::__1::__invoke<void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::asiolink::IOService&, void>(void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tuple<boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_ptrisc::asiolink::IOService&>, void>(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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) (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_queueboost::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_ptrisc::asiolink::IOService&>(fp0)).fp()) std::__1::__invoke<void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::asiolink::IOService&, void>(void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tuple<boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_ptrisc::asiolink::IOService&>, void>(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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) (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)
[ RUN ] CmdHttpListenerTest.sixByEighteen
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_queueboost::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_ptrisc::asiolink::IOService&>(fp0)).fp()) std::__1::__invoke<void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::asiolink::IOService&, void>(void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tuple<boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_ptrisc::asiolink::IOService&>, void>(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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) (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_queueboost::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_ptrisc::asiolink::IOService&>(fp0)).fp()) std::__1::__invoke<void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::asiolink::IOService&, void>(void (isc::asiolink::IOService::&)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tuple<boost::shared_ptrisc::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_ptrisc::asiolink::IOService >, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tuple<boost::shared_ptrisc::asiolink::IOService >, std::__1::tuple<> >::value>::type std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_ptrisc::asiolink::IOService&> >(fp)()) std::__1::__invoke<std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::asiolink::IOService&> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_deletestd::__1::__thread_struct >, std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_poolboost::asio::detail::kqueue_reactor::descriptor_state::alloc(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_serviceboost::asio::ip::tcp::open(boost::asio::detail::reactive_socket_serviceboost::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&)> >::openisc::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) (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_ptrisc::asiolink::IOService&>, void>(std::__1::__bind<void (isc::asiolink::IOService::)(), boost::shared_ptrisc::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) (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)
[ RUN ] HAServiceTest.communicationRecovery6FailedPartnerLoadBalancingMultiThreading
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 (libthr.so.3+0x1dc47) #2 std::__1::mutex::lock() (libc++.so.1+0xb5388) #3 (anonymous namespace)::Connection::doTransaction(boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::ha::HAConfig::PeerConfig const&, std::__1::function<void (bool, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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::forwardisc::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::tupleisc::ha::HAService*, std::__1::tuple<>, __is_valid_bind_return<void (isc::ha::HAService::)(), std::__1::tupleisc::ha::HAService*, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::ha::HAService::)(), std::__1::tupleisc::ha::HAService*, 0ul, std::__1::tuple<> >(void (isc::ha::HAService::&)(), std::__1::tupleisc::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::tupleisc::ha::HAService*, std::__1::tuple<>, __is_valid_bind_return<void (isc::ha::HAService::)(), std::__1::tupleisc::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::__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, std::__1::allocator > 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, std::__1::allocator > const&, int, int, bool)::'lambda0'()&>(fp)()) std::__1::__invoke<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, int, int, bool)::'lambda0'()&>((anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, int, int, bool)::'lambda0'()&) /usr/include/c++/v1/type_traits:3899:1 (ha_unittests+0x5f31d0) #23 void std::__1::__invoke_void_return_wrapper::__call<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, int, int, bool)::'lambda0'()&>((anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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, std::__1::allocator > const&, int, int, bool)::'lambda0'(), std::__1::allocator<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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, std::__1::allocator > const&, int, int, bool)::'lambda0'(), std::__1::allocator<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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, std::__1::allocator > 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) (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 (libthr.so.3+0x1dc47) #2 std::__1::mutex::lock() (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_ptrisc::http::HttpResponseCreator const&, boost::shared_ptrisc::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_arrayisc::http::HttpConnection::Transaction::type boost::make_shared<isc::http::HttpConnection::Transaction, boost::shared_ptrisc::http::HttpResponseCreator const&>(boost::shared_ptrisc::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_ptrisc::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_ptrisc::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_ptrisc::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_ptrisc::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_ptrisc::http::HttpConnection&>(fp0)).fp(std::__1::forward<boost::shared_ptrisc::http::HttpConnection::Transaction&>(fp1), std::__1::forwardboost::system::error_code(fp1), std::__1::forward(fp1))) std::__1::__invoke<void (isc::http::HttpConnection::&)(boost::shared_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection&, boost::shared_ptrisc::http::HttpConnection::Transaction&, boost::system::error_code, unsigned long, void>(void (isc::http::HttpConnection::&)(boost::shared_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection&, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::http::HttpConnection::Transaction&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>&>(fp)(std::__1::forwardboost::system::error_code(fp0), std::__1::forward(fp0))) std::__1::__invoke<std::__1::__bind<void (isc::http::HttpConnection::)(boost::shared_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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::__call<std::__1::__bind<void (isc::http::HttpConnection::)(boost::shared_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_executorboost::asio::executor::dispatch<boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>, std::__1::allocator >(boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>&&, std::__1::allocator 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_executorboost::asio::executor, boost::asio::detail::io_object_executorboost::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_executorboost::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::forwardisc::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::tupleisc::asiolink::IOService*, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tupleisc::asiolink::IOService*, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tupleisc::asiolink::IOService*, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tupleisc::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::tupleisc::asiolink::IOService*, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tupleisc::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_deletestd::__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_deletestd::__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_deletestd::__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, std::__1::allocator > 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) (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)
[ RUN ] HAServiceTest.communicationRecovery6FailedResetFailed
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 (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_serviceboost::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_serviceboost::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_traitsboost::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_traitsboost::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_traitsboost::posix_time::ptime >& boost::asio::detail::service_registry::use_service<boost::asio::detail::deadline_timer_service<boost::asio::time_traitsboost::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_traitsboost::posix_time::ptime >& boost::asio::use_service<boost::asio::detail::deadline_timer_service<boost::asio::time_traitsboost::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_traitsboost::posix_time::ptime >, boost::asio::executor>::io_object_implboost::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_traitsboost::posix_time::ptime, boost::asio::executor>::basic_deadline_timerboost::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_ptrisc::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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::ha::HAConfig::PeerConfig const&, std::__1::function<void (bool, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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::forwardisc::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::tupleisc::ha::HAService*, std::__1::tuple<>, __is_valid_bind_return<void (isc::ha::HAService::)(), std::__1::tupleisc::ha::HAService*, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::ha::HAService::)(), std::__1::tupleisc::ha::HAService*, 0ul, std::__1::tuple<> >(void (isc::ha::HAService::&)(), std::__1::tupleisc::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::tupleisc::ha::HAService*, std::__1::tuple<>, __is_valid_bind_return<void (isc::ha::HAService::)(), std::__1::tupleisc::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::__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, std::__1::allocator > 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, std::__1::allocator > const&, int, int, bool)::'lambda0'()&>(fp)()) std::__1::__invoke<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, int, int, bool)::'lambda0'()&>((anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, int, int, bool)::'lambda0'()&) /usr/include/c++/v1/type_traits:3899:1 (ha_unittests+0x5f31d0) #38 void std::__1::__invoke_void_return_wrapper::__call<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, int, int, bool)::'lambda0'()&>((anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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, std::__1::allocator > const&, int, int, bool)::'lambda0'(), std::__1::allocator<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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, std::__1::allocator > const&, int, int, bool)::'lambda0'(), std::__1::allocator<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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, std::__1::allocator > 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) (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 (libthr.so.3+0x1dc47) #2 std::__1::mutex::lock() (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_ptrisc::http::HttpResponseCreator const&, boost::shared_ptrisc::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_arrayisc::http::HttpConnection::Transaction::type boost::make_shared<isc::http::HttpConnection::Transaction, boost::shared_ptrisc::http::HttpResponseCreator const&>(boost::shared_ptrisc::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_ptrisc::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_ptrisc::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_ptrisc::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_ptrisc::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_ptrisc::http::HttpConnection&>(fp0)).fp(std::__1::forward<boost::shared_ptrisc::http::HttpConnection::Transaction&>(fp1), std::__1::forwardboost::system::error_code(fp1), std::__1::forward(fp1))) std::__1::__invoke<void (isc::http::HttpConnection::&)(boost::shared_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection&, boost::shared_ptrisc::http::HttpConnection::Transaction&, boost::system::error_code, unsigned long, void>(void (isc::http::HttpConnection::&)(boost::shared_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection&, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::http::HttpConnection::Transaction&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>&>(fp)(std::__1::forwardboost::system::error_code(fp0), std::__1::forward(fp0))) std::__1::__invoke<std::__1::__bind<void (isc::http::HttpConnection::)(boost::shared_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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::__call<std::__1::__bind<void (isc::http::HttpConnection::)(boost::shared_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_executorboost::asio::executor::dispatch<boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>, std::__1::allocator >(boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>&&, std::__1::allocator 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_executorboost::asio::executor, boost::asio::detail::io_object_executorboost::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_executorboost::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::forwardisc::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::tupleisc::asiolink::IOService*, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tupleisc::asiolink::IOService*, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tupleisc::asiolink::IOService*, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tupleisc::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::tupleisc::asiolink::IOService*, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tupleisc::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_deletestd::__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_deletestd::__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_deletestd::__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, std::__1::allocator > 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) (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)
[ RUN ] HAServiceTest.communicationRecovery6FailedResetFailedMultiThreading
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 (libthr.so.3+0x1dc47) #2 std::__1::mutex::lock() (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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, long, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::asiolink::TlsContext const&, boost::shared_ptrisc::http::HttpRequest const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::function<void (boost::system::error_code const&, boost::shared_ptrisc::http::HttpResponse const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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_ptrisc::ha::HAConfig::PeerConfig const&, std::__1::function<void (bool, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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::forwardisc::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::tupleisc::ha::HAService*, std::__1::tuple<>, __is_valid_bind_return<void (isc::ha::HAService::)(), std::__1::tupleisc::ha::HAService*, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::ha::HAService::)(), std::__1::tupleisc::ha::HAService*, 0ul, std::__1::tuple<> >(void (isc::ha::HAService::&)(), std::__1::tupleisc::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::tupleisc::ha::HAService*, std::__1::tuple<>, __is_valid_bind_return<void (isc::ha::HAService::)(), std::__1::tupleisc::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::__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, std::__1::allocator > 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, std::__1::allocator > const&, int, int, bool)::'lambda0'()&>(fp)()) std::__1::__invoke<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, int, int, bool)::'lambda0'()&>((anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, int, int, bool)::'lambda0'()&) /usr/include/c++/v1/type_traits:3899:1 (ha_unittests+0x5f31d0) #26 void std::__1::__invoke_void_return_wrapper::__call<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, int, int, bool)::'lambda0'()&>((anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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, std::__1::allocator > const&, int, int, bool)::'lambda0'(), std::__1::allocator<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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, std::__1::allocator > const&, int, int, bool)::'lambda0'(), std::__1::allocator<(anonymous namespace)::HAServiceTest::testSendUpdatesCommunicationRecovery6Failed(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > 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, std::__1::allocator > 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) (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 (libthr.so.3+0x1dc47) #2 std::__1::mutex::lock() (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_ptrisc::http::HttpResponseCreator const&, boost::shared_ptrisc::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_arrayisc::http::HttpConnection::Transaction::type boost::make_shared<isc::http::HttpConnection::Transaction, boost::shared_ptrisc::http::HttpResponseCreator const&>(boost::shared_ptrisc::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_ptrisc::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_ptrisc::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_ptrisc::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_ptrisc::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_ptrisc::http::HttpConnection&>(fp0)).fp(std::__1::forward<boost::shared_ptrisc::http::HttpConnection::Transaction&>(fp1), std::__1::forwardboost::system::error_code(fp1), std::__1::forward(fp1))) std::__1::__invoke<void (isc::http::HttpConnection::&)(boost::shared_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection&, boost::shared_ptrisc::http::HttpConnection::Transaction&, boost::system::error_code, unsigned long, void>(void (isc::http::HttpConnection::&)(boost::shared_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection&, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), std::__1::tuple<boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::http::HttpConnection::Transaction&, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>&>(fp)(std::__1::forwardboost::system::error_code(fp0), std::__1::forward(fp0))) std::__1::__invoke<std::__1::__bind<void (isc::http::HttpConnection::)(boost::shared_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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::__call<std::__1::__bind<void (isc::http::HttpConnection::)(boost::shared_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_ptrisc::http::HttpConnection::Transaction, boost::system::error_code, unsigned long), boost::shared_ptrisc::http::HttpConnection, boost::shared_ptrisc::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_executorboost::asio::executor::dispatch<boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>, std::__1::allocator >(boost::asio::detail::binder2<isc::http::HttpConnection::SocketCallback, boost::system::error_code, unsigned long>&&, std::__1::allocator 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_executorboost::asio::executor, boost::asio::detail::io_object_executorboost::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_executorboost::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::forwardisc::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::tupleisc::asiolink::IOService*, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tupleisc::asiolink::IOService*, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (isc::asiolink::IOService::)(), std::__1::tupleisc::asiolink::IOService*, 0ul, std::__1::tuple<> >(void (isc::asiolink::IOService::&)(), std::__1::tupleisc::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::tupleisc::asiolink::IOService*, std::__1::tuple<>, __is_valid_bind_return<void (isc::asiolink::IOService::)(), std::__1::tupleisc::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_deletestd::__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_deletestd::__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_deletestd::__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, std::__1::allocator > 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) (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)
The full output out of which the summary above was extracted: freebsd-13-gtests.txt