[ RUN ] PingChannelTest.sendReceiveMT
==================
WARNING: ThreadSanitizer: data race (pid=98563)
Read of size 1 at 0x7b2800000cd8 by thread T5:
#0 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) kqueue_reactor.ipp:487 (ping_check_unittests:x86_64+0x10000dc66)
#1 non-virtual thunk to boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) kqueue_reactor.hpp (ping_check_unittests:x86_64+0x10000e2ed)
#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&) scheduler.ipp:477 (libkea-asiolink.67.dylib:x86_64+0x141a8)
#3 boost::asio::detail::scheduler::run(boost::system::error_code&) scheduler.ipp:210 (libkea-asiolink.67.dylib:x86_64+0x13ca4)
#4 boost::asio::io_context::run() io_context.ipp:64 (libkea-asiolink.67.dylib:x86_64+0x1ff0e)
#5 isc::asiolink::IOService::run() io_service.cc:115 (libkea-asiolink.67.dylib:x86_64+0x1de46)
#6 isc::asiolink::IoServiceThreadPool::threadWork() io_service_thread_pool.cc:219 (libkea-asiolink.67.dylib:x86_64+0x29940)
#7 void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, std::__1::__bind<void (isc::asiolink::IoServiceThreadPool::*)(), isc::asiolink::IoServiceThreadPool*>>>(void*) thread:299 (libkea-asiolink.67.dylib:x86_64+0x2a145)
Previous write of size 1 at 0x7b2800000cd8 by main thread (mutexes: write M0, write M1):
#0 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) conditionally_enabled_mutex.hpp:109 (ping_check_unittests:x86_64+0x10001095b)
#1 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() kqueue_reactor.ipp:566 (ping_check_unittests:x86_64+0x10001affd)
#2 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&) reactive_socket_service_base.ipp:188 (ping_check_unittests:x86_64+0x10001ab51)
#3 boost::asio::basic_socket<boost::asio::ip::icmp, boost::asio::any_io_executor>::open(boost::asio::ip::icmp const&) basic_socket.hpp:429 (ping_check_unittests:x86_64+0x10001a15a)
#4 isc::ping_check::ICMPSocket<isc::ping_check::SocketCallback>::open(isc::asiolink::IOEndpoint const*, isc::ping_check::SocketCallback&) icmp_socket.h:214 (ping_check_unittests:x86_64+0x1000d8464)
#5 isc::ping_check::PingChannel::open() ping_channel.cc:76 (ping_check_unittests:x86_64+0x1000d4d6b)
#6 (anonymous namespace)::PingChannelTest::sendReceiveTest(unsigned long, unsigned long, std::__1::function<void ()> const&) ping_channel_unittests.cc:303 (ping_check_unittests:x86_64+0x1000530f4)
#7 (anonymous namespace)::PingChannelTest_sendReceiveMT_Test::TestBody() ping_channel_unittests.cc:513 (ping_check_unittests:x86_64+0x100058c99)
#8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#9 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#10 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#11 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#12 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#13 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#14 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#15 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Location is heap block of size 160 at 0x7b2800000c80 allocated by main thread:
#0 operator new(unsigned long) <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x82c0d)
#1 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() kqueue_reactor.ipp:566 (ping_check_unittests:x86_64+0x10001afe4)
#2 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&) reactive_socket_service_base.ipp:188 (ping_check_unittests:x86_64+0x10001ab51)
#3 boost::asio::basic_socket<boost::asio::ip::icmp, boost::asio::any_io_executor>::open(boost::asio::ip::icmp const&) basic_socket.hpp:429 (ping_check_unittests:x86_64+0x10001a15a)
#4 isc::ping_check::ICMPSocket<isc::ping_check::SocketCallback>::open(isc::asiolink::IOEndpoint const*, isc::ping_check::SocketCallback&) icmp_socket.h:214 (ping_check_unittests:x86_64+0x1000d8464)
#5 isc::ping_check::PingChannel::open() ping_channel.cc:76 (ping_check_unittests:x86_64+0x1000d4d6b)
#6 (anonymous namespace)::PingChannelTest::sendReceiveTest(unsigned long, unsigned long, std::__1::function<void ()> const&) ping_channel_unittests.cc:303 (ping_check_unittests:x86_64+0x1000530f4)
#7 (anonymous namespace)::PingChannelTest_sendReceiveMT_Test::TestBody() ping_channel_unittests.cc:513 (ping_check_unittests:x86_64+0x100058c99)
#8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#9 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#10 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#11 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#12 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#13 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#14 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#15 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Mutex M0 (0x7b100000c740) created at:
#0 pthread_mutex_lock <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x3d2b0)
#1 std::__1::mutex::lock() <null>:156255423 (libc++.1.dylib:x86_64+0x13868)
#2 isc::util::MultiThreadingLock::MultiThreadingLock(std::__1::mutex&) multi_threading_mgr.cc:238 (libkea-util.79.dylib:x86_64+0x17c90)
#3 isc::ping_check::PingChannel::open() ping_channel.cc:60 (ping_check_unittests:x86_64+0x1000d4ad5)
#4 (anonymous namespace)::PingChannelTest::sendReceiveTest(unsigned long, unsigned long, std::__1::function<void ()> const&) ping_channel_unittests.cc:303 (ping_check_unittests:x86_64+0x1000530f4)
#5 (anonymous namespace)::PingChannelTest_sendReceiveMT_Test::TestBody() ping_channel_unittests.cc:513 (ping_check_unittests:x86_64+0x100058c99)
#6 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#7 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#8 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#9 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#10 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#11 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#12 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#13 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Mutex M1 (0x7b4400007270) created at:
#0 pthread_mutex_init <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x321e5)
#1 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) conditionally_enabled_mutex.hpp:108 (ping_check_unittests:x86_64+0x1000108a9)
#2 boost::asio::detail::kqueue_reactor::kqueue_reactor(boost::asio::execution_context&) kqueue_reactor.ipp:55 (ping_check_unittests:x86_64+0x10000cb12)
#3 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::kqueue_reactor, boost::asio::execution_context>(void*) service_registry.hpp:87 (ping_check_unittests:x86_64+0x10000c87a)
#4 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) service_registry.ipp:132 (ping_check_unittests:x86_64+0x10000c650)
#5 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::reactive_socket_service<boost::asio::ip::icmp>, boost::asio::io_context>(void*) service_registry.hpp:87 (ping_check_unittests:x86_64+0x10000c4b5)
#6 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) service_registry.ipp:132 (ping_check_unittests:x86_64+0x10000c650)
#7 isc::ping_check::PingChannel::open() ping_channel.cc:75 (ping_check_unittests:x86_64+0x1000d4c33)
#8 (anonymous namespace)::PingChannelTest::sendReceiveTest(unsigned long, unsigned long, std::__1::function<void ()> const&) ping_channel_unittests.cc:303 (ping_check_unittests:x86_64+0x1000530f4)
#9 (anonymous namespace)::PingChannelTest_sendReceiveMT_Test::TestBody() ping_channel_unittests.cc:513 (ping_check_unittests:x86_64+0x100058c99)
#10 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#11 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#12 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#13 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#14 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#15 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#16 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#17 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Thread T5 (tid=1927107, running) created by main thread at:
#0 pthread_create <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x3155f)
#1 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IoServiceThreadPool::*)(), isc::asiolink::IoServiceThreadPool*>, void>(std::__1::__bind<void (isc::asiolink::IoServiceThreadPool::*)(), isc::asiolink::IoServiceThreadPool*>&&) thread:315 (libkea-asiolink.67.dylib:x86_64+0x2a04e)
#2 isc::asiolink::IoServiceThreadPool::setState(isc::asiolink::IoServiceThreadPool::State) io_service_thread_pool.cc:147 (libkea-asiolink.67.dylib:x86_64+0x28a04)
#3 isc::asiolink::IoServiceThreadPool::IoServiceThreadPool(boost::shared_ptr<isc::asiolink::IOService>, unsigned long, bool) io_service_thread_pool.cc:46 (libkea-asiolink.67.dylib:x86_64+0x28188)
#4 isc::asiolink::IoServiceThreadPool::IoServiceThreadPool(boost::shared_ptr<isc::asiolink::IOService>, unsigned long, bool) io_service_thread_pool.cc:34 (libkea-asiolink.67.dylib:x86_64+0x285be)
#5 (anonymous namespace)::PingChannelTest::initThreadPool(unsigned long, bool) ping_channel_unittests.cc:97 (ping_check_unittests:x86_64+0x10005551d)
#6 (anonymous namespace)::PingChannelTest::sendReceiveTest(unsigned long, unsigned long, std::__1::function<void ()> const&) ping_channel_unittests.cc:273 (ping_check_unittests:x86_64+0x10005289e)
#7 (anonymous namespace)::PingChannelTest_sendReceiveMT_Test::TestBody() ping_channel_unittests.cc:513 (ping_check_unittests:x86_64+0x100058c99)
#8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#9 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#10 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#11 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#12 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#13 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#14 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#15 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
SUMMARY: ThreadSanitizer: data race kqueue_reactor.ipp:487 in boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&)
==================
[ OK ] PingChannelTest.sendReceiveMT (1254 ms)
[ RUN ] PingChannelTest.readExceptionErrorMT
==================
WARNING: ThreadSanitizer: data race (pid=98563)
Read of size 1 at 0x7b2800000cd8 by thread T11:
#0 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) kqueue_reactor.ipp:487 (ping_check_unittests:x86_64+0x10000dc66)
#1 non-virtual thunk to boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) kqueue_reactor.hpp (ping_check_unittests:x86_64+0x10000e2ed)
#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&) scheduler.ipp:477 (libkea-asiolink.67.dylib:x86_64+0x141a8)
#3 boost::asio::detail::scheduler::run(boost::system::error_code&) scheduler.ipp:210 (libkea-asiolink.67.dylib:x86_64+0x13ca4)
#4 boost::asio::io_context::run() io_context.ipp:64 (libkea-asiolink.67.dylib:x86_64+0x1ff0e)
#5 isc::asiolink::IOService::run() io_service.cc:115 (libkea-asiolink.67.dylib:x86_64+0x1de46)
#6 isc::asiolink::IoServiceThreadPool::threadWork() io_service_thread_pool.cc:219 (libkea-asiolink.67.dylib:x86_64+0x29940)
#7 void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, std::__1::__bind<void (isc::asiolink::IoServiceThreadPool::*)(), isc::asiolink::IoServiceThreadPool*>>>(void*) thread:299 (libkea-asiolink.67.dylib:x86_64+0x2a145)
Previous write of size 1 at 0x7b2800000cd8 by main thread (mutexes: write M0, write M1):
#0 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) conditionally_enabled_mutex.hpp:109 (ping_check_unittests:x86_64+0x10001095b)
#1 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() kqueue_reactor.ipp:566 (ping_check_unittests:x86_64+0x10001affd)
#2 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&) reactive_socket_service_base.ipp:188 (ping_check_unittests:x86_64+0x10001ab51)
#3 boost::asio::basic_socket<boost::asio::ip::icmp, boost::asio::any_io_executor>::open(boost::asio::ip::icmp const&) basic_socket.hpp:429 (ping_check_unittests:x86_64+0x10001a15a)
#4 isc::ping_check::ICMPSocket<isc::ping_check::SocketCallback>::open(isc::asiolink::IOEndpoint const*, isc::ping_check::SocketCallback&) icmp_socket.h:214 (ping_check_unittests:x86_64+0x1000d8464)
#5 isc::ping_check::PingChannel::open() ping_channel.cc:76 (ping_check_unittests:x86_64+0x1000d4d6b)
#6 (anonymous namespace)::PingChannelTest::ioErrorTest(std::__1::function<void ()> const&, unsigned long, unsigned long) ping_channel_unittests.cc:387 (ping_check_unittests:x86_64+0x100059bc8)
#7 (anonymous namespace)::PingChannelTest_readExceptionErrorMT_Test::TestBody() ping_channel_unittests.cc:529 (ping_check_unittests:x86_64+0x10005e0ed)
#8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#9 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#10 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#11 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#12 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#13 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#14 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#15 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Location is heap block of size 160 at 0x7b2800000c80 allocated by main thread:
#0 operator new(unsigned long) <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x82c0d)
#1 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() kqueue_reactor.ipp:566 (ping_check_unittests:x86_64+0x10001afe4)
#2 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&) reactive_socket_service_base.ipp:188 (ping_check_unittests:x86_64+0x10001ab51)
#3 boost::asio::basic_socket<boost::asio::ip::icmp, boost::asio::any_io_executor>::open(boost::asio::ip::icmp const&) basic_socket.hpp:429 (ping_check_unittests:x86_64+0x10001a15a)
#4 isc::ping_check::ICMPSocket<isc::ping_check::SocketCallback>::open(isc::asiolink::IOEndpoint const*, isc::ping_check::SocketCallback&) icmp_socket.h:214 (ping_check_unittests:x86_64+0x1000d8464)
#5 isc::ping_check::PingChannel::open() ping_channel.cc:76 (ping_check_unittests:x86_64+0x1000d4d6b)
#6 (anonymous namespace)::PingChannelTest::ioErrorTest(std::__1::function<void ()> const&, unsigned long, unsigned long) ping_channel_unittests.cc:387 (ping_check_unittests:x86_64+0x100059bc8)
#7 (anonymous namespace)::PingChannelTest_readExceptionErrorMT_Test::TestBody() ping_channel_unittests.cc:529 (ping_check_unittests:x86_64+0x10005e0ed)
#8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#9 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#10 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#11 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#12 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#13 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#14 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#15 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Mutex M0 (0x7b100000e580) created at:
#0 pthread_mutex_lock <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x3d2b0)
#1 std::__1::mutex::lock() <null>:156255423 (libc++.1.dylib:x86_64+0x13868)
#2 isc::util::MultiThreadingLock::MultiThreadingLock(std::__1::mutex&) multi_threading_mgr.cc:238 (libkea-util.79.dylib:x86_64+0x17c90)
#3 isc::ping_check::PingChannel::open() ping_channel.cc:60 (ping_check_unittests:x86_64+0x1000d4ad5)
#4 (anonymous namespace)::PingChannelTest::ioErrorTest(std::__1::function<void ()> const&, unsigned long, unsigned long) ping_channel_unittests.cc:387 (ping_check_unittests:x86_64+0x100059bc8)
#5 (anonymous namespace)::PingChannelTest_readExceptionErrorMT_Test::TestBody() ping_channel_unittests.cc:529 (ping_check_unittests:x86_64+0x10005e0ed)
#6 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#7 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#8 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#9 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#10 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#11 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#12 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#13 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Mutex M1 (0x7b4400007270) created at:
#0 pthread_mutex_init <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x321e5)
#1 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) conditionally_enabled_mutex.hpp:108 (ping_check_unittests:x86_64+0x1000108a9)
#2 boost::asio::detail::kqueue_reactor::kqueue_reactor(boost::asio::execution_context&) kqueue_reactor.ipp:55 (ping_check_unittests:x86_64+0x10000cb12)
#3 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::kqueue_reactor, boost::asio::execution_context>(void*) service_registry.hpp:87 (ping_check_unittests:x86_64+0x10000c87a)
#4 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) service_registry.ipp:132 (ping_check_unittests:x86_64+0x10000c650)
#5 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::reactive_socket_service<boost::asio::ip::icmp>, boost::asio::io_context>(void*) service_registry.hpp:87 (ping_check_unittests:x86_64+0x10000c4b5)
#6 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) service_registry.ipp:132 (ping_check_unittests:x86_64+0x10000c650)
#7 isc::ping_check::PingChannel::open() ping_channel.cc:75 (ping_check_unittests:x86_64+0x1000d4c33)
#8 (anonymous namespace)::PingChannelTest::ioErrorTest(std::__1::function<void ()> const&, unsigned long, unsigned long) ping_channel_unittests.cc:387 (ping_check_unittests:x86_64+0x100059bc8)
#9 (anonymous namespace)::PingChannelTest_readExceptionErrorMT_Test::TestBody() ping_channel_unittests.cc:529 (ping_check_unittests:x86_64+0x10005e0ed)
#10 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#11 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#12 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#13 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#14 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#15 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#16 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#17 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Thread T11 (tid=1927166, running) created by main thread at:
#0 pthread_create <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x3155f)
#1 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IoServiceThreadPool::*)(), isc::asiolink::IoServiceThreadPool*>, void>(std::__1::__bind<void (isc::asiolink::IoServiceThreadPool::*)(), isc::asiolink::IoServiceThreadPool*>&&) thread:315 (libkea-asiolink.67.dylib:x86_64+0x2a04e)
#2 isc::asiolink::IoServiceThreadPool::setState(isc::asiolink::IoServiceThreadPool::State) io_service_thread_pool.cc:147 (libkea-asiolink.67.dylib:x86_64+0x28a04)
#3 isc::asiolink::IoServiceThreadPool::IoServiceThreadPool(boost::shared_ptr<isc::asiolink::IOService>, unsigned long, bool) io_service_thread_pool.cc:46 (libkea-asiolink.67.dylib:x86_64+0x28188)
#4 isc::asiolink::IoServiceThreadPool::IoServiceThreadPool(boost::shared_ptr<isc::asiolink::IOService>, unsigned long, bool) io_service_thread_pool.cc:34 (libkea-asiolink.67.dylib:x86_64+0x285be)
#5 (anonymous namespace)::PingChannelTest::initThreadPool(unsigned long, bool) ping_channel_unittests.cc:97 (ping_check_unittests:x86_64+0x10005551d)
#6 (anonymous namespace)::PingChannelTest::ioErrorTest(std::__1::function<void ()> const&, unsigned long, unsigned long) ping_channel_unittests.cc:348 (ping_check_unittests:x86_64+0x1000591ca)
#7 (anonymous namespace)::PingChannelTest_readExceptionErrorMT_Test::TestBody() ping_channel_unittests.cc:529 (ping_check_unittests:x86_64+0x10005e0ed)
#8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#9 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#10 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#11 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#12 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#13 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#14 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#15 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
SUMMARY: ThreadSanitizer: data race kqueue_reactor.ipp:487 in boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&)
==================
[ OK ] PingChannelTest.readExceptionErrorMT (136 ms)
[ RUN ] PingChannelTest.readFatalErrorMT
==================
WARNING: ThreadSanitizer: data race (pid=98563)
Read of size 1 at 0x7b2800000a58 by thread T15:
#0 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) kqueue_reactor.ipp:487 (ping_check_unittests:x86_64+0x10000dc66)
#1 non-virtual thunk to boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) kqueue_reactor.hpp (ping_check_unittests:x86_64+0x10000e2ed)
#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&) scheduler.ipp:477 (libkea-asiolink.67.dylib:x86_64+0x141a8)
#3 boost::asio::detail::scheduler::run(boost::system::error_code&) scheduler.ipp:210 (libkea-asiolink.67.dylib:x86_64+0x13ca4)
#4 boost::asio::io_context::run() io_context.ipp:64 (libkea-asiolink.67.dylib:x86_64+0x1ff0e)
#5 isc::asiolink::IOService::run() io_service.cc:115 (libkea-asiolink.67.dylib:x86_64+0x1de46)
#6 isc::asiolink::IoServiceThreadPool::threadWork() io_service_thread_pool.cc:219 (libkea-asiolink.67.dylib:x86_64+0x29940)
#7 void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, std::__1::__bind<void (isc::asiolink::IoServiceThreadPool::*)(), isc::asiolink::IoServiceThreadPool*>>>(void*) thread:299 (libkea-asiolink.67.dylib:x86_64+0x2a145)
Previous write of size 1 at 0x7b2800000a58 by main thread (mutexes: write M0, write M1):
#0 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) conditionally_enabled_mutex.hpp:109 (ping_check_unittests:x86_64+0x10001095b)
#1 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() kqueue_reactor.ipp:566 (ping_check_unittests:x86_64+0x10001affd)
#2 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&) reactive_socket_service_base.ipp:188 (ping_check_unittests:x86_64+0x10001ab51)
#3 boost::asio::basic_socket<boost::asio::ip::icmp, boost::asio::any_io_executor>::open(boost::asio::ip::icmp const&) basic_socket.hpp:429 (ping_check_unittests:x86_64+0x10001a15a)
#4 isc::ping_check::ICMPSocket<isc::ping_check::SocketCallback>::open(isc::asiolink::IOEndpoint const*, isc::ping_check::SocketCallback&) icmp_socket.h:214 (ping_check_unittests:x86_64+0x1000d8464)
#5 isc::ping_check::PingChannel::open() ping_channel.cc:76 (ping_check_unittests:x86_64+0x1000d4d6b)
#6 (anonymous namespace)::PingChannelTest::ioErrorTest(std::__1::function<void ()> const&, unsigned long, unsigned long) ping_channel_unittests.cc:387 (ping_check_unittests:x86_64+0x100059bc8)
#7 (anonymous namespace)::PingChannelTest_readFatalErrorMT_Test::TestBody() ping_channel_unittests.cc:549 (ping_check_unittests:x86_64+0x10005ea63)
#8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#9 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#10 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#11 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#12 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#13 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#14 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#15 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Location is heap block of size 160 at 0x7b2800000a00 allocated by main thread:
#0 operator new(unsigned long) <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x82c0d)
#1 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() kqueue_reactor.ipp:566 (ping_check_unittests:x86_64+0x10001afe4)
#2 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&) reactive_socket_service_base.ipp:188 (ping_check_unittests:x86_64+0x10001ab51)
#3 boost::asio::basic_socket<boost::asio::ip::icmp, boost::asio::any_io_executor>::open(boost::asio::ip::icmp const&) basic_socket.hpp:429 (ping_check_unittests:x86_64+0x10001a15a)
#4 isc::ping_check::ICMPSocket<isc::ping_check::SocketCallback>::open(isc::asiolink::IOEndpoint const*, isc::ping_check::SocketCallback&) icmp_socket.h:214 (ping_check_unittests:x86_64+0x1000d8464)
#5 isc::ping_check::PingChannel::open() ping_channel.cc:76 (ping_check_unittests:x86_64+0x1000d4d6b)
#6 (anonymous namespace)::PingChannelTest::ioErrorTest(std::__1::function<void ()> const&, unsigned long, unsigned long) ping_channel_unittests.cc:387 (ping_check_unittests:x86_64+0x100059bc8)
#7 (anonymous namespace)::PingChannelTest_readFatalErrorMT_Test::TestBody() ping_channel_unittests.cc:549 (ping_check_unittests:x86_64+0x10005ea63)
#8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#9 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#10 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#11 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#12 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#13 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#14 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#15 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Mutex M0 (0x7b1000012a00) created at:
#0 pthread_mutex_lock <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x3d2b0)
#1 std::__1::mutex::lock() <null>:156255423 (libc++.1.dylib:x86_64+0x13868)
#2 isc::util::MultiThreadingLock::MultiThreadingLock(std::__1::mutex&) multi_threading_mgr.cc:238 (libkea-util.79.dylib:x86_64+0x17c90)
#3 isc::ping_check::PingChannel::open() ping_channel.cc:60 (ping_check_unittests:x86_64+0x1000d4ad5)
#4 (anonymous namespace)::PingChannelTest::ioErrorTest(std::__1::function<void ()> const&, unsigned long, unsigned long) ping_channel_unittests.cc:387 (ping_check_unittests:x86_64+0x100059bc8)
#5 (anonymous namespace)::PingChannelTest_readFatalErrorMT_Test::TestBody() ping_channel_unittests.cc:549 (ping_check_unittests:x86_64+0x10005ea63)
#6 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#7 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#8 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#9 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#10 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#11 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#12 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#13 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Mutex M1 (0x7b4400007270) created at:
#0 pthread_mutex_init <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x321e5)
#1 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) conditionally_enabled_mutex.hpp:108 (ping_check_unittests:x86_64+0x1000108a9)
#2 boost::asio::detail::kqueue_reactor::kqueue_reactor(boost::asio::execution_context&) kqueue_reactor.ipp:55 (ping_check_unittests:x86_64+0x10000cb12)
#3 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::kqueue_reactor, boost::asio::execution_context>(void*) service_registry.hpp:87 (ping_check_unittests:x86_64+0x10000c87a)
#4 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) service_registry.ipp:132 (ping_check_unittests:x86_64+0x10000c650)
#5 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::reactive_socket_service<boost::asio::ip::icmp>, boost::asio::io_context>(void*) service_registry.hpp:87 (ping_check_unittests:x86_64+0x10000c4b5)
#6 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) service_registry.ipp:132 (ping_check_unittests:x86_64+0x10000c650)
#7 isc::ping_check::PingChannel::open() ping_channel.cc:75 (ping_check_unittests:x86_64+0x1000d4c33)
#8 (anonymous namespace)::PingChannelTest::ioErrorTest(std::__1::function<void ()> const&, unsigned long, unsigned long) ping_channel_unittests.cc:387 (ping_check_unittests:x86_64+0x100059bc8)
#9 (anonymous namespace)::PingChannelTest_readFatalErrorMT_Test::TestBody() ping_channel_unittests.cc:549 (ping_check_unittests:x86_64+0x10005ea63)
#10 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#11 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#12 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#13 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#14 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#15 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#16 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#17 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Thread T15 (tid=1927170, running) created by main thread at:
#0 pthread_create <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x3155f)
#1 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IoServiceThreadPool::*)(), isc::asiolink::IoServiceThreadPool*>, void>(std::__1::__bind<void (isc::asiolink::IoServiceThreadPool::*)(), isc::asiolink::IoServiceThreadPool*>&&) thread:315 (libkea-asiolink.67.dylib:x86_64+0x2a04e)
#2 isc::asiolink::IoServiceThreadPool::setState(isc::asiolink::IoServiceThreadPool::State) io_service_thread_pool.cc:147 (libkea-asiolink.67.dylib:x86_64+0x28a04)
#3 isc::asiolink::IoServiceThreadPool::IoServiceThreadPool(boost::shared_ptr<isc::asiolink::IOService>, unsigned long, bool) io_service_thread_pool.cc:46 (libkea-asiolink.67.dylib:x86_64+0x28188)
#4 isc::asiolink::IoServiceThreadPool::IoServiceThreadPool(boost::shared_ptr<isc::asiolink::IOService>, unsigned long, bool) io_service_thread_pool.cc:34 (libkea-asiolink.67.dylib:x86_64+0x285be)
#5 (anonymous namespace)::PingChannelTest::initThreadPool(unsigned long, bool) ping_channel_unittests.cc:97 (ping_check_unittests:x86_64+0x10005551d)
#6 (anonymous namespace)::PingChannelTest::ioErrorTest(std::__1::function<void ()> const&, unsigned long, unsigned long) ping_channel_unittests.cc:348 (ping_check_unittests:x86_64+0x1000591ca)
#7 (anonymous namespace)::PingChannelTest_readFatalErrorMT_Test::TestBody() ping_channel_unittests.cc:549 (ping_check_unittests:x86_64+0x10005ea63)
#8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#9 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#10 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#11 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#12 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#13 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#14 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#15 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
SUMMARY: ThreadSanitizer: data race kqueue_reactor.ipp:487 in boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&)
==================
[ OK ] PingChannelTest.readFatalErrorMT (68 ms)
[ RUN ] PingChannelTest.readAgainErrorMT
==================
WARNING: ThreadSanitizer: data race (pid=98563)
Read of size 1 at 0x7b2800000cd8 by thread T16:
#0 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) kqueue_reactor.ipp:487 (ping_check_unittests:x86_64+0x10000dc66)
#1 non-virtual thunk to boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) kqueue_reactor.hpp (ping_check_unittests:x86_64+0x10000e2ed)
#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&) scheduler.ipp:477 (libkea-asiolink.67.dylib:x86_64+0x141a8)
#3 boost::asio::detail::scheduler::run(boost::system::error_code&) scheduler.ipp:210 (libkea-asiolink.67.dylib:x86_64+0x13ca4)
#4 boost::asio::io_context::run() io_context.ipp:64 (libkea-asiolink.67.dylib:x86_64+0x1ff0e)
#5 isc::asiolink::IOService::run() io_service.cc:115 (libkea-asiolink.67.dylib:x86_64+0x1de46)
#6 isc::asiolink::IoServiceThreadPool::threadWork() io_service_thread_pool.cc:219 (libkea-asiolink.67.dylib:x86_64+0x29940)
#7 void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, std::__1::__bind<void (isc::asiolink::IoServiceThreadPool::*)(), isc::asiolink::IoServiceThreadPool*>>>(void*) thread:299 (libkea-asiolink.67.dylib:x86_64+0x2a145)
Previous write of size 1 at 0x7b2800000cd8 by main thread (mutexes: write M0, write M1):
#0 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) conditionally_enabled_mutex.hpp:109 (ping_check_unittests:x86_64+0x10001095b)
#1 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() kqueue_reactor.ipp:566 (ping_check_unittests:x86_64+0x10001affd)
#2 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&) reactive_socket_service_base.ipp:188 (ping_check_unittests:x86_64+0x10001ab51)
#3 boost::asio::basic_socket<boost::asio::ip::icmp, boost::asio::any_io_executor>::open(boost::asio::ip::icmp const&) basic_socket.hpp:429 (ping_check_unittests:x86_64+0x10001a15a)
#4 isc::ping_check::ICMPSocket<isc::ping_check::SocketCallback>::open(isc::asiolink::IOEndpoint const*, isc::ping_check::SocketCallback&) icmp_socket.h:214 (ping_check_unittests:x86_64+0x1000d8464)
#5 isc::ping_check::PingChannel::open() ping_channel.cc:76 (ping_check_unittests:x86_64+0x1000d4d6b)
#6 (anonymous namespace)::PingChannelTest::sendReceiveTest(unsigned long, unsigned long, std::__1::function<void ()> const&) ping_channel_unittests.cc:303 (ping_check_unittests:x86_64+0x1000530f4)
#7 (anonymous namespace)::PingChannelTest_readAgainErrorMT_Test::TestBody() ping_channel_unittests.cc:571 (ping_check_unittests:x86_64+0x10005f49d)
#8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#9 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#10 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#11 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#12 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#13 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#14 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#15 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Location is heap block of size 160 at 0x7b2800000c80 allocated by main thread:
#0 operator new(unsigned long) <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x82c0d)
#1 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() kqueue_reactor.ipp:566 (ping_check_unittests:x86_64+0x10001afe4)
#2 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&) reactive_socket_service_base.ipp:188 (ping_check_unittests:x86_64+0x10001ab51)
#3 boost::asio::basic_socket<boost::asio::ip::icmp, boost::asio::any_io_executor>::open(boost::asio::ip::icmp const&) basic_socket.hpp:429 (ping_check_unittests:x86_64+0x10001a15a)
#4 isc::ping_check::ICMPSocket<isc::ping_check::SocketCallback>::open(isc::asiolink::IOEndpoint const*, isc::ping_check::SocketCallback&) icmp_socket.h:214 (ping_check_unittests:x86_64+0x1000d8464)
#5 isc::ping_check::PingChannel::open() ping_channel.cc:76 (ping_check_unittests:x86_64+0x1000d4d6b)
#6 (anonymous namespace)::PingChannelTest::sendReceiveTest(unsigned long, unsigned long, std::__1::function<void ()> const&) ping_channel_unittests.cc:303 (ping_check_unittests:x86_64+0x1000530f4)
#7 (anonymous namespace)::PingChannelTest_readAgainErrorMT_Test::TestBody() ping_channel_unittests.cc:571 (ping_check_unittests:x86_64+0x10005f49d)
#8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#9 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#10 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#11 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#12 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#13 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#14 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#15 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Mutex M0 (0x7b1000014dc0) created at:
#0 pthread_mutex_lock <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x3d2b0)
#1 std::__1::mutex::lock() <null>:156255423 (libc++.1.dylib:x86_64+0x13868)
#2 isc::util::MultiThreadingLock::MultiThreadingLock(std::__1::mutex&) multi_threading_mgr.cc:238 (libkea-util.79.dylib:x86_64+0x17c90)
#3 isc::ping_check::PingChannel::open() ping_channel.cc:60 (ping_check_unittests:x86_64+0x1000d4ad5)
#4 (anonymous namespace)::PingChannelTest::sendReceiveTest(unsigned long, unsigned long, std::__1::function<void ()> const&) ping_channel_unittests.cc:303 (ping_check_unittests:x86_64+0x1000530f4)
#5 (anonymous namespace)::PingChannelTest_readAgainErrorMT_Test::TestBody() ping_channel_unittests.cc:571 (ping_check_unittests:x86_64+0x10005f49d)
#6 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#7 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#8 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#9 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#10 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#11 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#12 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#13 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Mutex M1 (0x7b4400007270) created at:
#0 pthread_mutex_init <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x321e5)
#1 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) conditionally_enabled_mutex.hpp:108 (ping_check_unittests:x86_64+0x1000108a9)
#2 boost::asio::detail::kqueue_reactor::kqueue_reactor(boost::asio::execution_context&) kqueue_reactor.ipp:55 (ping_check_unittests:x86_64+0x10000cb12)
#3 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::kqueue_reactor, boost::asio::execution_context>(void*) service_registry.hpp:87 (ping_check_unittests:x86_64+0x10000c87a)
#4 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) service_registry.ipp:132 (ping_check_unittests:x86_64+0x10000c650)
#5 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::reactive_socket_service<boost::asio::ip::icmp>, boost::asio::io_context>(void*) service_registry.hpp:87 (ping_check_unittests:x86_64+0x10000c4b5)
#6 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) service_registry.ipp:132 (ping_check_unittests:x86_64+0x10000c650)
#7 isc::ping_check::PingChannel::open() ping_channel.cc:75 (ping_check_unittests:x86_64+0x1000d4c33)
#8 (anonymous namespace)::PingChannelTest::sendReceiveTest(unsigned long, unsigned long, std::__1::function<void ()> const&) ping_channel_unittests.cc:303 (ping_check_unittests:x86_64+0x1000530f4)
#9 (anonymous namespace)::PingChannelTest_readAgainErrorMT_Test::TestBody() ping_channel_unittests.cc:571 (ping_check_unittests:x86_64+0x10005f49d)
#10 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#11 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#12 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#13 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#14 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#15 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#16 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#17 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Thread T16 (tid=1927171, running) created by main thread at:
#0 pthread_create <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x3155f)
#1 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IoServiceThreadPool::*)(), isc::asiolink::IoServiceThreadPool*>, void>(std::__1::__bind<void (isc::asiolink::IoServiceThreadPool::*)(), isc::asiolink::IoServiceThreadPool*>&&) thread:315 (libkea-asiolink.67.dylib:x86_64+0x2a04e)
#2 isc::asiolink::IoServiceThreadPool::setState(isc::asiolink::IoServiceThreadPool::State) io_service_thread_pool.cc:147 (libkea-asiolink.67.dylib:x86_64+0x28a04)
#3 isc::asiolink::IoServiceThreadPool::IoServiceThreadPool(boost::shared_ptr<isc::asiolink::IOService>, unsigned long, bool) io_service_thread_pool.cc:46 (libkea-asiolink.67.dylib:x86_64+0x28188)
#4 isc::asiolink::IoServiceThreadPool::IoServiceThreadPool(boost::shared_ptr<isc::asiolink::IOService>, unsigned long, bool) io_service_thread_pool.cc:34 (libkea-asiolink.67.dylib:x86_64+0x285be)
#5 (anonymous namespace)::PingChannelTest::initThreadPool(unsigned long, bool) ping_channel_unittests.cc:97 (ping_check_unittests:x86_64+0x10005551d)
#6 (anonymous namespace)::PingChannelTest::sendReceiveTest(unsigned long, unsigned long, std::__1::function<void ()> const&) ping_channel_unittests.cc:273 (ping_check_unittests:x86_64+0x10005289e)
#7 (anonymous namespace)::PingChannelTest_readAgainErrorMT_Test::TestBody() ping_channel_unittests.cc:571 (ping_check_unittests:x86_64+0x10005f49d)
#8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#9 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#10 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#11 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#12 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#13 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#14 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#15 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
SUMMARY: ThreadSanitizer: data race kqueue_reactor.ipp:487 in boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&)
==================
[ OK ] PingChannelTest.readAgainErrorMT (66 ms)
[ RUN ] PingChannelTest.writeExceptionErrorMT
==================
WARNING: ThreadSanitizer: data race (pid=98563)
Read of size 1 at 0x7b2800000cd8 by thread T20:
#0 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) kqueue_reactor.ipp:487 (ping_check_unittests:x86_64+0x10000dc66)
#1 non-virtual thunk to boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) kqueue_reactor.hpp (ping_check_unittests:x86_64+0x10000e2ed)
#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&) scheduler.ipp:477 (libkea-asiolink.67.dylib:x86_64+0x141a8)
#3 boost::asio::detail::scheduler::run(boost::system::error_code&) scheduler.ipp:210 (libkea-asiolink.67.dylib:x86_64+0x13ca4)
#4 boost::asio::io_context::run() io_context.ipp:64 (libkea-asiolink.67.dylib:x86_64+0x1ff0e)
#5 isc::asiolink::IOService::run() io_service.cc:115 (libkea-asiolink.67.dylib:x86_64+0x1de46)
#6 isc::asiolink::IoServiceThreadPool::threadWork() io_service_thread_pool.cc:219 (libkea-asiolink.67.dylib:x86_64+0x29940)
#7 void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, std::__1::__bind<void (isc::asiolink::IoServiceThreadPool::*)(), isc::asiolink::IoServiceThreadPool*>>>(void*) thread:299 (libkea-asiolink.67.dylib:x86_64+0x2a145)
Previous write of size 1 at 0x7b2800000cd8 by main thread (mutexes: write M0, write M1):
#0 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) conditionally_enabled_mutex.hpp:109 (ping_check_unittests:x86_64+0x10001095b)
#1 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() kqueue_reactor.ipp:566 (ping_check_unittests:x86_64+0x10001affd)
#2 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&) reactive_socket_service_base.ipp:188 (ping_check_unittests:x86_64+0x10001ab51)
#3 boost::asio::basic_socket<boost::asio::ip::icmp, boost::asio::any_io_executor>::open(boost::asio::ip::icmp const&) basic_socket.hpp:429 (ping_check_unittests:x86_64+0x10001a15a)
#4 isc::ping_check::ICMPSocket<isc::ping_check::SocketCallback>::open(isc::asiolink::IOEndpoint const*, isc::ping_check::SocketCallback&) icmp_socket.h:214 (ping_check_unittests:x86_64+0x1000d8464)
#5 isc::ping_check::PingChannel::open() ping_channel.cc:76 (ping_check_unittests:x86_64+0x1000d4d6b)
#6 (anonymous namespace)::PingChannelTest::ioErrorTest(std::__1::function<void ()> const&, unsigned long, unsigned long) ping_channel_unittests.cc:387 (ping_check_unittests:x86_64+0x100059bc8)
#7 (anonymous namespace)::PingChannelTest_writeExceptionErrorMT_Test::TestBody() ping_channel_unittests.cc:592 (ping_check_unittests:x86_64+0x10005fe0d)
#8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#9 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#10 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#11 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#12 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#13 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#14 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#15 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Location is heap block of size 160 at 0x7b2800000c80 allocated by main thread:
#0 operator new(unsigned long) <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x82c0d)
#1 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() kqueue_reactor.ipp:566 (ping_check_unittests:x86_64+0x10001afe4)
#2 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&) reactive_socket_service_base.ipp:188 (ping_check_unittests:x86_64+0x10001ab51)
#3 boost::asio::basic_socket<boost::asio::ip::icmp, boost::asio::any_io_executor>::open(boost::asio::ip::icmp const&) basic_socket.hpp:429 (ping_check_unittests:x86_64+0x10001a15a)
#4 isc::ping_check::ICMPSocket<isc::ping_check::SocketCallback>::open(isc::asiolink::IOEndpoint const*, isc::ping_check::SocketCallback&) icmp_socket.h:214 (ping_check_unittests:x86_64+0x1000d8464)
#5 isc::ping_check::PingChannel::open() ping_channel.cc:76 (ping_check_unittests:x86_64+0x1000d4d6b)
#6 (anonymous namespace)::PingChannelTest::ioErrorTest(std::__1::function<void ()> const&, unsigned long, unsigned long) ping_channel_unittests.cc:387 (ping_check_unittests:x86_64+0x100059bc8)
#7 (anonymous namespace)::PingChannelTest_writeExceptionErrorMT_Test::TestBody() ping_channel_unittests.cc:592 (ping_check_unittests:x86_64+0x10005fe0d)
#8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#9 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#10 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#11 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#12 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#13 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#14 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#15 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Mutex M0 (0x7b1000012f80) created at:
#0 pthread_mutex_lock <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x3d2b0)
#1 std::__1::mutex::lock() <null>:156255423 (libc++.1.dylib:x86_64+0x13868)
#2 isc::util::MultiThreadingLock::MultiThreadingLock(std::__1::mutex&) multi_threading_mgr.cc:238 (libkea-util.79.dylib:x86_64+0x17c90)
#3 isc::ping_check::PingChannel::open() ping_channel.cc:60 (ping_check_unittests:x86_64+0x1000d4ad5)
#4 (anonymous namespace)::PingChannelTest::ioErrorTest(std::__1::function<void ()> const&, unsigned long, unsigned long) ping_channel_unittests.cc:387 (ping_check_unittests:x86_64+0x100059bc8)
#5 (anonymous namespace)::PingChannelTest_writeExceptionErrorMT_Test::TestBody() ping_channel_unittests.cc:592 (ping_check_unittests:x86_64+0x10005fe0d)
#6 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#7 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#8 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#9 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#10 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#11 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#12 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#13 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Mutex M1 (0x7b4400007270) created at:
#0 pthread_mutex_init <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x321e5)
#1 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) conditionally_enabled_mutex.hpp:108 (ping_check_unittests:x86_64+0x1000108a9)
#2 boost::asio::detail::kqueue_reactor::kqueue_reactor(boost::asio::execution_context&) kqueue_reactor.ipp:55 (ping_check_unittests:x86_64+0x10000cb12)
#3 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::kqueue_reactor, boost::asio::execution_context>(void*) service_registry.hpp:87 (ping_check_unittests:x86_64+0x10000c87a)
#4 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) service_registry.ipp:132 (ping_check_unittests:x86_64+0x10000c650)
#5 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::reactive_socket_service<boost::asio::ip::icmp>, boost::asio::io_context>(void*) service_registry.hpp:87 (ping_check_unittests:x86_64+0x10000c4b5)
#6 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) service_registry.ipp:132 (ping_check_unittests:x86_64+0x10000c650)
#7 isc::ping_check::PingChannel::open() ping_channel.cc:75 (ping_check_unittests:x86_64+0x1000d4c33)
#8 (anonymous namespace)::PingChannelTest::ioErrorTest(std::__1::function<void ()> const&, unsigned long, unsigned long) ping_channel_unittests.cc:387 (ping_check_unittests:x86_64+0x100059bc8)
#9 (anonymous namespace)::PingChannelTest_writeExceptionErrorMT_Test::TestBody() ping_channel_unittests.cc:592 (ping_check_unittests:x86_64+0x10005fe0d)
#10 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#11 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#12 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#13 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#14 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#15 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#16 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#17 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Thread T20 (tid=1927176, running) created by main thread at:
#0 pthread_create <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x3155f)
#1 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IoServiceThreadPool::*)(), isc::asiolink::IoServiceThreadPool*>, void>(std::__1::__bind<void (isc::asiolink::IoServiceThreadPool::*)(), isc::asiolink::IoServiceThreadPool*>&&) thread:315 (libkea-asiolink.67.dylib:x86_64+0x2a04e)
#2 isc::asiolink::IoServiceThreadPool::setState(isc::asiolink::IoServiceThreadPool::State) io_service_thread_pool.cc:147 (libkea-asiolink.67.dylib:x86_64+0x28a04)
#3 isc::asiolink::IoServiceThreadPool::IoServiceThreadPool(boost::shared_ptr<isc::asiolink::IOService>, unsigned long, bool) io_service_thread_pool.cc:46 (libkea-asiolink.67.dylib:x86_64+0x28188)
#4 isc::asiolink::IoServiceThreadPool::IoServiceThreadPool(boost::shared_ptr<isc::asiolink::IOService>, unsigned long, bool) io_service_thread_pool.cc:34 (libkea-asiolink.67.dylib:x86_64+0x285be)
#5 (anonymous namespace)::PingChannelTest::initThreadPool(unsigned long, bool) ping_channel_unittests.cc:97 (ping_check_unittests:x86_64+0x10005551d)
#6 (anonymous namespace)::PingChannelTest::ioErrorTest(std::__1::function<void ()> const&, unsigned long, unsigned long) ping_channel_unittests.cc:348 (ping_check_unittests:x86_64+0x1000591ca)
#7 (anonymous namespace)::PingChannelTest_writeExceptionErrorMT_Test::TestBody() ping_channel_unittests.cc:592 (ping_check_unittests:x86_64+0x10005fe0d)
#8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#9 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#10 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#11 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#12 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#13 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#14 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#15 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
SUMMARY: ThreadSanitizer: data race kqueue_reactor.ipp:487 in boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&)
==================
[ OK ] PingChannelTest.writeExceptionErrorMT (66 ms)
[ RUN ] PingChannelTest.writeFatalErrorMT
==================
WARNING: ThreadSanitizer: data race (pid=98563)
Read of size 1 at 0x7b2800000a58 by thread T26:
#0 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) kqueue_reactor.ipp:487 (ping_check_unittests:x86_64+0x10000dc66)
#1 non-virtual thunk to boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) kqueue_reactor.hpp (ping_check_unittests:x86_64+0x10000e2ed)
#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&) scheduler.ipp:477 (libkea-asiolink.67.dylib:x86_64+0x141a8)
#3 boost::asio::detail::scheduler::run(boost::system::error_code&) scheduler.ipp:210 (libkea-asiolink.67.dylib:x86_64+0x13ca4)
#4 boost::asio::io_context::run() io_context.ipp:64 (libkea-asiolink.67.dylib:x86_64+0x1ff0e)
#5 isc::asiolink::IOService::run() io_service.cc:115 (libkea-asiolink.67.dylib:x86_64+0x1de46)
#6 isc::asiolink::IoServiceThreadPool::threadWork() io_service_thread_pool.cc:219 (libkea-asiolink.67.dylib:x86_64+0x29940)
#7 void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, std::__1::__bind<void (isc::asiolink::IoServiceThreadPool::*)(), isc::asiolink::IoServiceThreadPool*>>>(void*) thread:299 (libkea-asiolink.67.dylib:x86_64+0x2a145)
Previous write of size 1 at 0x7b2800000a58 by main thread (mutexes: write M0, write M1):
#0 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) conditionally_enabled_mutex.hpp:109 (ping_check_unittests:x86_64+0x10001095b)
#1 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() kqueue_reactor.ipp:566 (ping_check_unittests:x86_64+0x10001affd)
#2 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&) reactive_socket_service_base.ipp:188 (ping_check_unittests:x86_64+0x10001ab51)
#3 boost::asio::basic_socket<boost::asio::ip::icmp, boost::asio::any_io_executor>::open(boost::asio::ip::icmp const&) basic_socket.hpp:429 (ping_check_unittests:x86_64+0x10001a15a)
#4 isc::ping_check::ICMPSocket<isc::ping_check::SocketCallback>::open(isc::asiolink::IOEndpoint const*, isc::ping_check::SocketCallback&) icmp_socket.h:214 (ping_check_unittests:x86_64+0x1000d8464)
#5 isc::ping_check::PingChannel::open() ping_channel.cc:76 (ping_check_unittests:x86_64+0x1000d4d6b)
#6 (anonymous namespace)::PingChannelTest::ioErrorTest(std::__1::function<void ()> const&, unsigned long, unsigned long) ping_channel_unittests.cc:387 (ping_check_unittests:x86_64+0x100059bc8)
#7 (anonymous namespace)::PingChannelTest_writeFatalErrorMT_Test::TestBody() ping_channel_unittests.cc:612 (ping_check_unittests:x86_64+0x100060783)
#8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#9 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#10 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#11 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#12 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#13 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#14 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#15 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Location is heap block of size 160 at 0x7b2800000a00 allocated by main thread:
#0 operator new(unsigned long) <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x82c0d)
#1 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() kqueue_reactor.ipp:566 (ping_check_unittests:x86_64+0x10001afe4)
#2 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&) reactive_socket_service_base.ipp:188 (ping_check_unittests:x86_64+0x10001ab51)
#3 boost::asio::basic_socket<boost::asio::ip::icmp, boost::asio::any_io_executor>::open(boost::asio::ip::icmp const&) basic_socket.hpp:429 (ping_check_unittests:x86_64+0x10001a15a)
#4 isc::ping_check::ICMPSocket<isc::ping_check::SocketCallback>::open(isc::asiolink::IOEndpoint const*, isc::ping_check::SocketCallback&) icmp_socket.h:214 (ping_check_unittests:x86_64+0x1000d8464)
#5 isc::ping_check::PingChannel::open() ping_channel.cc:76 (ping_check_unittests:x86_64+0x1000d4d6b)
#6 (anonymous namespace)::PingChannelTest::ioErrorTest(std::__1::function<void ()> const&, unsigned long, unsigned long) ping_channel_unittests.cc:387 (ping_check_unittests:x86_64+0x100059bc8)
#7 (anonymous namespace)::PingChannelTest_writeFatalErrorMT_Test::TestBody() ping_channel_unittests.cc:612 (ping_check_unittests:x86_64+0x100060783)
#8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#9 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#10 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#11 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#12 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#13 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#14 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#15 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Mutex M0 (0x7b1000013180) created at:
#0 pthread_mutex_lock <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x3d2b0)
#1 std::__1::mutex::lock() <null>:156255423 (libc++.1.dylib:x86_64+0x13868)
#2 isc::util::MultiThreadingLock::MultiThreadingLock(std::__1::mutex&) multi_threading_mgr.cc:238 (libkea-util.79.dylib:x86_64+0x17c90)
#3 isc::ping_check::PingChannel::open() ping_channel.cc:60 (ping_check_unittests:x86_64+0x1000d4ad5)
#4 (anonymous namespace)::PingChannelTest::ioErrorTest(std::__1::function<void ()> const&, unsigned long, unsigned long) ping_channel_unittests.cc:387 (ping_check_unittests:x86_64+0x100059bc8)
#5 (anonymous namespace)::PingChannelTest_writeFatalErrorMT_Test::TestBody() ping_channel_unittests.cc:612 (ping_check_unittests:x86_64+0x100060783)
#6 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#7 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#8 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#9 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#10 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#11 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#12 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#13 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Mutex M1 (0x7b4400007270) created at:
#0 pthread_mutex_init <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x321e5)
#1 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) conditionally_enabled_mutex.hpp:108 (ping_check_unittests:x86_64+0x1000108a9)
#2 boost::asio::detail::kqueue_reactor::kqueue_reactor(boost::asio::execution_context&) kqueue_reactor.ipp:55 (ping_check_unittests:x86_64+0x10000cb12)
#3 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::kqueue_reactor, boost::asio::execution_context>(void*) service_registry.hpp:87 (ping_check_unittests:x86_64+0x10000c87a)
#4 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) service_registry.ipp:132 (ping_check_unittests:x86_64+0x10000c650)
#5 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::reactive_socket_service<boost::asio::ip::icmp>, boost::asio::io_context>(void*) service_registry.hpp:87 (ping_check_unittests:x86_64+0x10000c4b5)
#6 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) service_registry.ipp:132 (ping_check_unittests:x86_64+0x10000c650)
#7 isc::ping_check::PingChannel::open() ping_channel.cc:75 (ping_check_unittests:x86_64+0x1000d4c33)
#8 (anonymous namespace)::PingChannelTest::ioErrorTest(std::__1::function<void ()> const&, unsigned long, unsigned long) ping_channel_unittests.cc:387 (ping_check_unittests:x86_64+0x100059bc8)
#9 (anonymous namespace)::PingChannelTest_writeFatalErrorMT_Test::TestBody() ping_channel_unittests.cc:612 (ping_check_unittests:x86_64+0x100060783)
#10 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#11 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#12 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#13 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#14 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#15 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#16 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#17 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Thread T26 (tid=1927182, running) created by main thread at:
#0 pthread_create <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x3155f)
#1 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IoServiceThreadPool::*)(), isc::asiolink::IoServiceThreadPool*>, void>(std::__1::__bind<void (isc::asiolink::IoServiceThreadPool::*)(), isc::asiolink::IoServiceThreadPool*>&&) thread:315 (libkea-asiolink.67.dylib:x86_64+0x2a04e)
#2 isc::asiolink::IoServiceThreadPool::setState(isc::asiolink::IoServiceThreadPool::State) io_service_thread_pool.cc:147 (libkea-asiolink.67.dylib:x86_64+0x28a04)
#3 isc::asiolink::IoServiceThreadPool::IoServiceThreadPool(boost::shared_ptr<isc::asiolink::IOService>, unsigned long, bool) io_service_thread_pool.cc:46 (libkea-asiolink.67.dylib:x86_64+0x28188)
#4 isc::asiolink::IoServiceThreadPool::IoServiceThreadPool(boost::shared_ptr<isc::asiolink::IOService>, unsigned long, bool) io_service_thread_pool.cc:34 (libkea-asiolink.67.dylib:x86_64+0x285be)
#5 (anonymous namespace)::PingChannelTest::initThreadPool(unsigned long, bool) ping_channel_unittests.cc:97 (ping_check_unittests:x86_64+0x10005551d)
#6 (anonymous namespace)::PingChannelTest::ioErrorTest(std::__1::function<void ()> const&, unsigned long, unsigned long) ping_channel_unittests.cc:348 (ping_check_unittests:x86_64+0x1000591ca)
#7 (anonymous namespace)::PingChannelTest_writeFatalErrorMT_Test::TestBody() ping_channel_unittests.cc:612 (ping_check_unittests:x86_64+0x100060783)
#8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#9 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#10 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#11 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#12 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#13 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#14 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#15 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
SUMMARY: ThreadSanitizer: data race kqueue_reactor.ipp:487 in boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&)
==================
[ OK ] PingChannelTest.writeFatalErrorMT (78 ms)
[ RUN ] PingChannelTest.writeAgainErrorMT
==================
WARNING: ThreadSanitizer: data race (pid=98563)
Read of size 1 at 0x7b2800000cd8 by thread T27:
#0 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) kqueue_reactor.ipp:487 (ping_check_unittests:x86_64+0x10000dc66)
#1 non-virtual thunk to boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) kqueue_reactor.hpp (ping_check_unittests:x86_64+0x10000e2ed)
#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&) scheduler.ipp:477 (libkea-asiolink.67.dylib:x86_64+0x141a8)
#3 boost::asio::detail::scheduler::run(boost::system::error_code&) scheduler.ipp:210 (libkea-asiolink.67.dylib:x86_64+0x13ca4)
#4 boost::asio::io_context::run() io_context.ipp:64 (libkea-asiolink.67.dylib:x86_64+0x1ff0e)
#5 isc::asiolink::IOService::run() io_service.cc:115 (libkea-asiolink.67.dylib:x86_64+0x1de46)
#6 isc::asiolink::IoServiceThreadPool::threadWork() io_service_thread_pool.cc:219 (libkea-asiolink.67.dylib:x86_64+0x29940)
#7 void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, std::__1::__bind<void (isc::asiolink::IoServiceThreadPool::*)(), isc::asiolink::IoServiceThreadPool*>>>(void*) thread:299 (libkea-asiolink.67.dylib:x86_64+0x2a145)
Previous write of size 1 at 0x7b2800000cd8 by main thread (mutexes: write M0, write M1):
#0 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) conditionally_enabled_mutex.hpp:109 (ping_check_unittests:x86_64+0x10001095b)
#1 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() kqueue_reactor.ipp:566 (ping_check_unittests:x86_64+0x10001affd)
#2 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&) reactive_socket_service_base.ipp:188 (ping_check_unittests:x86_64+0x10001ab51)
#3 boost::asio::basic_socket<boost::asio::ip::icmp, boost::asio::any_io_executor>::open(boost::asio::ip::icmp const&) basic_socket.hpp:429 (ping_check_unittests:x86_64+0x10001a15a)
#4 isc::ping_check::ICMPSocket<isc::ping_check::SocketCallback>::open(isc::asiolink::IOEndpoint const*, isc::ping_check::SocketCallback&) icmp_socket.h:214 (ping_check_unittests:x86_64+0x1000d8464)
#5 isc::ping_check::PingChannel::open() ping_channel.cc:76 (ping_check_unittests:x86_64+0x1000d4d6b)
#6 (anonymous namespace)::PingChannelTest::sendReceiveTest(unsigned long, unsigned long, std::__1::function<void ()> const&) ping_channel_unittests.cc:303 (ping_check_unittests:x86_64+0x1000530f4)
#7 (anonymous namespace)::PingChannelTest_writeAgainErrorMT_Test::TestBody() ping_channel_unittests.cc:634 (ping_check_unittests:x86_64+0x1000611bd)
#8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#9 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#10 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#11 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#12 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#13 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#14 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#15 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Location is heap block of size 160 at 0x7b2800000c80 allocated by main thread:
#0 operator new(unsigned long) <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x82c0d)
#1 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() kqueue_reactor.ipp:566 (ping_check_unittests:x86_64+0x10001afe4)
#2 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&) reactive_socket_service_base.ipp:188 (ping_check_unittests:x86_64+0x10001ab51)
#3 boost::asio::basic_socket<boost::asio::ip::icmp, boost::asio::any_io_executor>::open(boost::asio::ip::icmp const&) basic_socket.hpp:429 (ping_check_unittests:x86_64+0x10001a15a)
#4 isc::ping_check::ICMPSocket<isc::ping_check::SocketCallback>::open(isc::asiolink::IOEndpoint const*, isc::ping_check::SocketCallback&) icmp_socket.h:214 (ping_check_unittests:x86_64+0x1000d8464)
#5 isc::ping_check::PingChannel::open() ping_channel.cc:76 (ping_check_unittests:x86_64+0x1000d4d6b)
#6 (anonymous namespace)::PingChannelTest::sendReceiveTest(unsigned long, unsigned long, std::__1::function<void ()> const&) ping_channel_unittests.cc:303 (ping_check_unittests:x86_64+0x1000530f4)
#7 (anonymous namespace)::PingChannelTest_writeAgainErrorMT_Test::TestBody() ping_channel_unittests.cc:634 (ping_check_unittests:x86_64+0x1000611bd)
#8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#9 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#10 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#11 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#12 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#13 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#14 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#15 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Mutex M0 (0x7b100000f200) created at:
#0 pthread_mutex_lock <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x3d2b0)
#1 std::__1::mutex::lock() <null>:156255423 (libc++.1.dylib:x86_64+0x13868)
#2 isc::util::MultiThreadingLock::MultiThreadingLock(std::__1::mutex&) multi_threading_mgr.cc:238 (libkea-util.79.dylib:x86_64+0x17c90)
#3 isc::ping_check::PingChannel::open() ping_channel.cc:60 (ping_check_unittests:x86_64+0x1000d4ad5)
#4 (anonymous namespace)::PingChannelTest::sendReceiveTest(unsigned long, unsigned long, std::__1::function<void ()> const&) ping_channel_unittests.cc:303 (ping_check_unittests:x86_64+0x1000530f4)
#5 (anonymous namespace)::PingChannelTest_writeAgainErrorMT_Test::TestBody() ping_channel_unittests.cc:634 (ping_check_unittests:x86_64+0x1000611bd)
#6 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#7 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#8 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#9 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#10 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#11 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#12 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#13 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Mutex M1 (0x7b4400007270) created at:
#0 pthread_mutex_init <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x321e5)
#1 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) conditionally_enabled_mutex.hpp:108 (ping_check_unittests:x86_64+0x1000108a9)
#2 boost::asio::detail::kqueue_reactor::kqueue_reactor(boost::asio::execution_context&) kqueue_reactor.ipp:55 (ping_check_unittests:x86_64+0x10000cb12)
#3 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::kqueue_reactor, boost::asio::execution_context>(void*) service_registry.hpp:87 (ping_check_unittests:x86_64+0x10000c87a)
#4 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) service_registry.ipp:132 (ping_check_unittests:x86_64+0x10000c650)
#5 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::reactive_socket_service<boost::asio::ip::icmp>, boost::asio::io_context>(void*) service_registry.hpp:87 (ping_check_unittests:x86_64+0x10000c4b5)
#6 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) service_registry.ipp:132 (ping_check_unittests:x86_64+0x10000c650)
#7 isc::ping_check::PingChannel::open() ping_channel.cc:75 (ping_check_unittests:x86_64+0x1000d4c33)
#8 (anonymous namespace)::PingChannelTest::sendReceiveTest(unsigned long, unsigned long, std::__1::function<void ()> const&) ping_channel_unittests.cc:303 (ping_check_unittests:x86_64+0x1000530f4)
#9 (anonymous namespace)::PingChannelTest_writeAgainErrorMT_Test::TestBody() ping_channel_unittests.cc:634 (ping_check_unittests:x86_64+0x1000611bd)
#10 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#11 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#12 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#13 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#14 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#15 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#16 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#17 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Thread T27 (tid=1927183, running) created by main thread at:
#0 pthread_create <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x3155f)
#1 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IoServiceThreadPool::*)(), isc::asiolink::IoServiceThreadPool*>, void>(std::__1::__bind<void (isc::asiolink::IoServiceThreadPool::*)(), isc::asiolink::IoServiceThreadPool*>&&) thread:315 (libkea-asiolink.67.dylib:x86_64+0x2a04e)
#2 isc::asiolink::IoServiceThreadPool::setState(isc::asiolink::IoServiceThreadPool::State) io_service_thread_pool.cc:147 (libkea-asiolink.67.dylib:x86_64+0x28a04)
#3 isc::asiolink::IoServiceThreadPool::IoServiceThreadPool(boost::shared_ptr<isc::asiolink::IOService>, unsigned long, bool) io_service_thread_pool.cc:46 (libkea-asiolink.67.dylib:x86_64+0x28188)
#4 isc::asiolink::IoServiceThreadPool::IoServiceThreadPool(boost::shared_ptr<isc::asiolink::IOService>, unsigned long, bool) io_service_thread_pool.cc:34 (libkea-asiolink.67.dylib:x86_64+0x285be)
#5 (anonymous namespace)::PingChannelTest::initThreadPool(unsigned long, bool) ping_channel_unittests.cc:97 (ping_check_unittests:x86_64+0x10005551d)
#6 (anonymous namespace)::PingChannelTest::sendReceiveTest(unsigned long, unsigned long, std::__1::function<void ()> const&) ping_channel_unittests.cc:273 (ping_check_unittests:x86_64+0x10005289e)
#7 (anonymous namespace)::PingChannelTest_writeAgainErrorMT_Test::TestBody() ping_channel_unittests.cc:634 (ping_check_unittests:x86_64+0x1000611bd)
#8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#9 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#10 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#11 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#12 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#13 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#14 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#15 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
SUMMARY: ThreadSanitizer: data race kqueue_reactor.ipp:487 in boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&)
==================
[ OK ] PingChannelTest.writeAgainErrorMT (66 ms)
[ RUN ] PingChannelTest.writeSendFailedErrorMT
==================
WARNING: ThreadSanitizer: data race (pid=98563)
Read of size 1 at 0x7b2800000a58 by thread T30:
#0 boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) kqueue_reactor.ipp:487 (ping_check_unittests:x86_64+0x10000dc66)
#1 non-virtual thunk to boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) kqueue_reactor.hpp (ping_check_unittests:x86_64+0x10000e2ed)
#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&) scheduler.ipp:477 (libkea-asiolink.67.dylib:x86_64+0x141a8)
#3 boost::asio::detail::scheduler::run(boost::system::error_code&) scheduler.ipp:210 (libkea-asiolink.67.dylib:x86_64+0x13ca4)
#4 boost::asio::io_context::run() io_context.ipp:64 (libkea-asiolink.67.dylib:x86_64+0x1ff0e)
#5 isc::asiolink::IOService::run() io_service.cc:115 (libkea-asiolink.67.dylib:x86_64+0x1de46)
#6 isc::asiolink::IoServiceThreadPool::threadWork() io_service_thread_pool.cc:219 (libkea-asiolink.67.dylib:x86_64+0x29940)
#7 void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, std::__1::__bind<void (isc::asiolink::IoServiceThreadPool::*)(), isc::asiolink::IoServiceThreadPool*>>>(void*) thread:299 (libkea-asiolink.67.dylib:x86_64+0x2a145)
Previous write of size 1 at 0x7b2800000a58 by main thread (mutexes: write M0, write M1):
#0 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) conditionally_enabled_mutex.hpp:109 (ping_check_unittests:x86_64+0x10001095b)
#1 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() kqueue_reactor.ipp:566 (ping_check_unittests:x86_64+0x10001affd)
#2 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&) reactive_socket_service_base.ipp:188 (ping_check_unittests:x86_64+0x10001ab51)
#3 boost::asio::basic_socket<boost::asio::ip::icmp, boost::asio::any_io_executor>::open(boost::asio::ip::icmp const&) basic_socket.hpp:429 (ping_check_unittests:x86_64+0x10001a15a)
#4 isc::ping_check::ICMPSocket<isc::ping_check::SocketCallback>::open(isc::asiolink::IOEndpoint const*, isc::ping_check::SocketCallback&) icmp_socket.h:214 (ping_check_unittests:x86_64+0x1000d8464)
#5 isc::ping_check::PingChannel::open() ping_channel.cc:76 (ping_check_unittests:x86_64+0x1000d4d6b)
#6 (anonymous namespace)::PingChannelTest::sendReceiveTest(unsigned long, unsigned long, std::__1::function<void ()> const&) ping_channel_unittests.cc:303 (ping_check_unittests:x86_64+0x1000530f4)
#7 (anonymous namespace)::PingChannelTest_writeSendFailedErrorMT_Test::TestBody() ping_channel_unittests.cc:682 (ping_check_unittests:x86_64+0x100062819)
#8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#9 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#10 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#11 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#12 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#13 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#14 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#15 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Location is heap block of size 160 at 0x7b2800000a00 allocated by main thread:
#0 operator new(unsigned long) <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x82c0d)
#1 boost::asio::detail::kqueue_reactor::allocate_descriptor_state() kqueue_reactor.ipp:566 (ping_check_unittests:x86_64+0x10001afe4)
#2 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&) reactive_socket_service_base.ipp:188 (ping_check_unittests:x86_64+0x10001ab51)
#3 boost::asio::basic_socket<boost::asio::ip::icmp, boost::asio::any_io_executor>::open(boost::asio::ip::icmp const&) basic_socket.hpp:429 (ping_check_unittests:x86_64+0x10001a15a)
#4 isc::ping_check::ICMPSocket<isc::ping_check::SocketCallback>::open(isc::asiolink::IOEndpoint const*, isc::ping_check::SocketCallback&) icmp_socket.h:214 (ping_check_unittests:x86_64+0x1000d8464)
#5 isc::ping_check::PingChannel::open() ping_channel.cc:76 (ping_check_unittests:x86_64+0x1000d4d6b)
#6 (anonymous namespace)::PingChannelTest::sendReceiveTest(unsigned long, unsigned long, std::__1::function<void ()> const&) ping_channel_unittests.cc:303 (ping_check_unittests:x86_64+0x1000530f4)
#7 (anonymous namespace)::PingChannelTest_writeSendFailedErrorMT_Test::TestBody() ping_channel_unittests.cc:682 (ping_check_unittests:x86_64+0x100062819)
#8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#9 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#10 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#11 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#12 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#13 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#14 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#15 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Mutex M0 (0x7b10000133c0) created at:
#0 pthread_mutex_lock <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x3d2b0)
#1 std::__1::mutex::lock() <null>:156255423 (libc++.1.dylib:x86_64+0x13868)
#2 isc::util::MultiThreadingLock::MultiThreadingLock(std::__1::mutex&) multi_threading_mgr.cc:238 (libkea-util.79.dylib:x86_64+0x17c90)
#3 isc::ping_check::PingChannel::open() ping_channel.cc:60 (ping_check_unittests:x86_64+0x1000d4ad5)
#4 (anonymous namespace)::PingChannelTest::sendReceiveTest(unsigned long, unsigned long, std::__1::function<void ()> const&) ping_channel_unittests.cc:303 (ping_check_unittests:x86_64+0x1000530f4)
#5 (anonymous namespace)::PingChannelTest_writeSendFailedErrorMT_Test::TestBody() ping_channel_unittests.cc:682 (ping_check_unittests:x86_64+0x100062819)
#6 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#7 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#8 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#9 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#10 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#11 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#12 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#13 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Mutex M1 (0x7b4400007270) created at:
#0 pthread_mutex_init <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x321e5)
#1 boost::asio::detail::conditionally_enabled_mutex::conditionally_enabled_mutex(bool) conditionally_enabled_mutex.hpp:108 (ping_check_unittests:x86_64+0x1000108a9)
#2 boost::asio::detail::kqueue_reactor::kqueue_reactor(boost::asio::execution_context&) kqueue_reactor.ipp:55 (ping_check_unittests:x86_64+0x10000cb12)
#3 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::kqueue_reactor, boost::asio::execution_context>(void*) service_registry.hpp:87 (ping_check_unittests:x86_64+0x10000c87a)
#4 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) service_registry.ipp:132 (ping_check_unittests:x86_64+0x10000c650)
#5 boost::asio::execution_context::service* boost::asio::detail::service_registry::create<boost::asio::detail::reactive_socket_service<boost::asio::ip::icmp>, boost::asio::io_context>(void*) service_registry.hpp:87 (ping_check_unittests:x86_64+0x10000c4b5)
#6 boost::asio::detail::service_registry::do_use_service(boost::asio::execution_context::service::key const&, boost::asio::execution_context::service* (*)(void*), void*) service_registry.ipp:132 (ping_check_unittests:x86_64+0x10000c650)
#7 isc::ping_check::PingChannel::open() ping_channel.cc:75 (ping_check_unittests:x86_64+0x1000d4c33)
#8 (anonymous namespace)::PingChannelTest::sendReceiveTest(unsigned long, unsigned long, std::__1::function<void ()> const&) ping_channel_unittests.cc:303 (ping_check_unittests:x86_64+0x1000530f4)
#9 (anonymous namespace)::PingChannelTest_writeSendFailedErrorMT_Test::TestBody() ping_channel_unittests.cc:682 (ping_check_unittests:x86_64+0x100062819)
#10 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#11 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#12 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#13 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#14 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#15 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#16 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#17 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
Thread T30 (tid=1927187, running) created by main thread at:
#0 pthread_create <null>:156255423 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x3155f)
#1 std::__1::thread::thread<std::__1::__bind<void (isc::asiolink::IoServiceThreadPool::*)(), isc::asiolink::IoServiceThreadPool*>, void>(std::__1::__bind<void (isc::asiolink::IoServiceThreadPool::*)(), isc::asiolink::IoServiceThreadPool*>&&) thread:315 (libkea-asiolink.67.dylib:x86_64+0x2a04e)
#2 isc::asiolink::IoServiceThreadPool::setState(isc::asiolink::IoServiceThreadPool::State) io_service_thread_pool.cc:147 (libkea-asiolink.67.dylib:x86_64+0x28a04)
#3 isc::asiolink::IoServiceThreadPool::IoServiceThreadPool(boost::shared_ptr<isc::asiolink::IOService>, unsigned long, bool) io_service_thread_pool.cc:46 (libkea-asiolink.67.dylib:x86_64+0x28188)
#4 isc::asiolink::IoServiceThreadPool::IoServiceThreadPool(boost::shared_ptr<isc::asiolink::IOService>, unsigned long, bool) io_service_thread_pool.cc:34 (libkea-asiolink.67.dylib:x86_64+0x285be)
#5 (anonymous namespace)::PingChannelTest::initThreadPool(unsigned long, bool) ping_channel_unittests.cc:97 (ping_check_unittests:x86_64+0x10005551d)
#6 (anonymous namespace)::PingChannelTest::sendReceiveTest(unsigned long, unsigned long, std::__1::function<void ()> const&) ping_channel_unittests.cc:273 (ping_check_unittests:x86_64+0x10005289e)
#7 (anonymous namespace)::PingChannelTest_writeSendFailedErrorMT_Test::TestBody() ping_channel_unittests.cc:682 (ping_check_unittests:x86_64+0x100062819)
#8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100101435)
#9 testing::Test::Run() gtest.cc:2512 (ping_check_unittests:x86_64+0x100101333)
#10 testing::TestInfo::Run() gtest.cc:2688 (ping_check_unittests:x86_64+0x1001030c7)
#11 testing::TestSuite::Run() gtest.cc:2818 (ping_check_unittests:x86_64+0x1001044a6)
#12 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5276 (ping_check_unittests:x86_64+0x100117106)
#13 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2473 (ping_check_unittests:x86_64+0x100116605)
#14 testing::UnitTest::Run() gtest.cc:4864 (ping_check_unittests:x86_64+0x100116555)
#15 main run_unittests.cc:16 (ping_check_unittests:x86_64+0x10000262f)
SUMMARY: ThreadSanitizer: data race kqueue_reactor.ipp:487 in boost::asio::detail::kqueue_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&)
==================
[ OK ] PingChannelTest.writeSendFailedErrorMT (308 ms)