Skip to content

Instantly share code, notes, and snippets.

@lw
Created September 4, 2020 17:59
Show Gist options
  • Save lw/fec763ca140ec9eb42a5991d694f3588 to your computer and use it in GitHub Desktop.
Save lw/fec763ca140ec9eb42a5991d694f3588 to your computer and use it in GitHub Desktop.
WARNING: ThreadSanitizer: data race (pid=4955)
Write of size 8 at 0x7b0400001280 by thread T8:
#0 open64 <null> (libtsan.so.0+0x2e2b1)
#1 uv__open_cloexec <null> (tensorpipe_test+0x2b865c)
#2 uv__stream_init <null> (tensorpipe_test+0x2c5ac8)
#3 uv_tcp_init_ex <null> (tensorpipe_test+0x2cb455)
#4 uv_tcp_init <null> (tensorpipe_test+0x2cb540)
#5 tensorpipe::transport::uv::TCPHandle::initFromLoop() <null> (tensorpipe_test+0x2020f8)
#6 tensorpipe::transport::uv::Listener::Impl::initFromLoop() <null> (tensorpipe_test+0x1eafd0)
#7 tensorpipe::transport::uv::Listener::Impl::init()::{lambda()#1}::operator()() const <null> (tensorpipe_test+0x1ed709)
#8 std::_Function_handler<void (), tensorpipe::transport::uv::Listener::Impl::init()::{lambda()#1}>::_M_invoke(std::_Any_data const&) <null> (tensorpipe_test+0x1ef626)
#9 std::function<void ()>::operator()() const <null> (tensorpipe_test+0x53b88)
#10 tensorpipe::transport::uv::Loop::runFunctionsFromLoop() <null> (tensorpipe_test+0x1fd98a)
#11 tensorpipe::transport::uv::Loop::uv__async_cb(uv_async_s*) <null> (tensorpipe_test+0x1fd8a3)
#12 uv__async_io <null> (tensorpipe_test+0x2b5182)
#13 uv__io_poll <null> (tensorpipe_test+0x2d3a6f)
#14 uv_run <null> (tensorpipe_test+0x2b6296)
#15 tensorpipe::transport::uv::Loop::loop() <null> (tensorpipe_test+0x1fd4d8)
#16 void std::__invoke_impl<void, void (tensorpipe::transport::uv::Loop::*)(), tensorpipe::transport::uv::Loop*>(std::__invoke_memfun_deref, void (tensorpipe::transport::uv::Loop::*&&)(), tensorpipe::transport::uv::Loop*&&) <null> (tensorpipe_test+0x1fee33)
#17 std::__invoke_result<void (tensorpipe::transport::uv::Loop::*)(), tensorpipe::transport::uv::Loop*>::type std::__invoke<void (tensorpipe::transport::uv::Loop::*)(), tensorpipe::transport::uv::Loop*>(void (tensorpipe::transport::uv::Loop::*&&)(), tensorpipe::transport::uv::Loop*&&) <null> (tensorpipe_test+0x1fe336)
#18 decltype (__invoke((_S_declval<0ul>)(), (_S_declval<1ul>)())) std::thread::_Invoker<std::tuple<void (tensorpipe::transport::uv::Loop::*)(), tensorpipe::transport::uv::Loop*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) <null> (tensorpipe_test+0x200b68)
#19 std::thread::_Invoker<std::tuple<void (tensorpipe::transport::uv::Loop::*)(), tensorpipe::transport::uv::Loop*> >::operator()() <null> (tensorpipe_test+0x200ae0)
#20 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (tensorpipe::transport::uv::Loop::*)(), tensorpipe::transport::uv::Loop*> > >::_M_run() <null> (tensorpipe_test+0x200a86)
#21 <null> <null> (libstdc++.so.6+0xbd6de)
Previous write of size 8 at 0x7b0400001280 by thread T6:
#0 epoll_create1 <null> (libtsan.so.0+0x30209)
#1 uv__platform_loop_init <null> (tensorpipe_test+0x2d2870)
#2 uv_loop_init <null> (tensorpipe_test+0x2bcf04)
#3 tensorpipe::transport::uv::Loop::Loop() <null> (tensorpipe_test+0x1fc9c0)
#4 tensorpipe::transport::uv::Context::Impl::Impl() <null> (tensorpipe_test+0x1da0b2)
#5 void __gnu_cxx::new_allocator<tensorpipe::transport::uv::Context::Impl>::construct<tensorpipe::transport::uv::Context::Impl>(tensorpipe::transport::uv::Context::Impl*) <null> (tensorpipe_test+0x1e746d)
#6 void std::allocator_traits<std::allocator<tensorpipe::transport::uv::Context::Impl> >::construct<tensorpipe::transport::uv::Context::Impl>(std::allocator<tensorpipe::transport::uv::Context::Impl>&, tensorpipe::transport::uv::Context::Impl*) <null> (tensorpipe_test+0x1e5f32)
#7 std::_Sp_counted_ptr_inplace<tensorpipe::transport::uv::Context::Impl, std::allocator<tensorpipe::transport::uv::Context::Impl>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<>(std::allocator<tensorpipe::transport::uv::Context::Impl>) <null> (tensorpipe_test+0x1e4000)
#8 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<tensorpipe::transport::uv::Context::Impl, std::allocator<tensorpipe::transport::uv::Context::Impl>>(std::_Sp_make_shared_tag, tensorpipe::transport::uv::Context::Impl*, std::allocator<tensorpipe::transport::uv::Context::Impl> const&) <null> (tensorpipe_test+0x1e28a8)
#9 std::__shared_ptr<tensorpipe::transport::uv::Context::Impl, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<tensorpipe::transport::uv::Context::Impl>>(std::_Sp_make_shared_tag, std::allocator<tensorpipe::transport::uv::Context::Impl> const&) <null> (tensorpipe_test+0x1e1a7e)
#10 std::shared_ptr<tensorpipe::transport::uv::Context::Impl>::shared_ptr<std::allocator<tensorpipe::transport::uv::Context::Impl>>(std::_Sp_make_shared_tag, std::allocator<tensorpipe::transport::uv::Context::Impl> const&) <null> (tensorpipe_test+0x1e0bee)
#11 std::shared_ptr<tensorpipe::transport::uv::Context::Impl> std::allocate_shared<tensorpipe::transport::uv::Context::Impl, std::allocator<tensorpipe::transport::uv::Context::Impl>>(std::allocator<tensorpipe::transport::uv::Context::Impl> const&) <null> (tensorpipe_test+0x1df7cd)
#12 std::shared_ptr<tensorpipe::transport::uv::Context::Impl> std::make_shared<tensorpipe::transport::uv::Context::Impl>() <null> (tensorpipe_test+0x1de2e2)
#13 tensorpipe::transport::uv::Context::Context() <null> (tensorpipe_test+0x1d9ffe)
#14 void __gnu_cxx::new_allocator<tensorpipe::transport::uv::Context>::construct<tensorpipe::transport::uv::Context>(tensorpipe::transport::uv::Context*) <null> (tensorpipe_test+0x59c73)
#15 void std::allocator_traits<std::allocator<tensorpipe::transport::uv::Context> >::construct<tensorpipe::transport::uv::Context>(std::allocator<tensorpipe::transport::uv::Context>&, tensorpipe::transport::uv::Context*) <null> (tensorpipe_test+0x59570)
#16 std::_Sp_counted_ptr_inplace<tensorpipe::transport::uv::Context, std::allocator<tensorpipe::transport::uv::Context>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<>(std::allocator<tensorpipe::transport::uv::Context>) <null> (tensorpipe_test+0x58b76)
#17 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<tensorpipe::transport::uv::Context, std::allocator<tensorpipe::transport::uv::Context>>(std::_Sp_make_shared_tag, tensorpipe::transport::uv::Context*, std::allocator<tensorpipe::transport::uv::Context> const&) <null> (tensorpipe_test+0x57920)
#18 std::__shared_ptr<tensorpipe::transport::uv::Context, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<tensorpipe::transport::uv::Context>>(std::_Sp_make_shared_tag, std::allocator<tensorpipe::transport::uv::Context> const&) <null> (tensorpipe_test+0x56a38)
#19 std::shared_ptr<tensorpipe::transport::uv::Context>::shared_ptr<std::allocator<tensorpipe::transport::uv::Context>>(std::_Sp_make_shared_tag, std::allocator<tensorpipe::transport::uv::Context> const&) <null> (tensorpipe_test+0x55eaa)
#20 std::shared_ptr<tensorpipe::transport::uv::Context> std::allocate_shared<tensorpipe::transport::uv::Context, std::allocator<tensorpipe::transport::uv::Context>>(std::allocator<tensorpipe::transport::uv::Context> const&) <null> (tensorpipe_test+0x54e3d)
#21 std::shared_ptr<tensorpipe::transport::uv::Context> std::make_shared<tensorpipe::transport::uv::Context>() <null> (tensorpipe_test+0x54195)
#22 (anonymous namespace)::MptChannelTestHelper::makeContext(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) <null> (tensorpipe_test+0x9d6f8)
#23 ChannelTest_contextIsNotJoined_Test::TestBody()::{lambda(std::shared_ptr<tensorpipe::transport::Connection>)#1}::operator()(std::shared_ptr<tensorpipe::transport::Connection>) const <null> (tensorpipe_test+0xa767a)
#24 std::_Function_handler<void (std::shared_ptr<tensorpipe::transport::Connection>), ChannelTest_contextIsNotJoined_Test::TestBody()::{lambda(std::shared_ptr<tensorpipe::transport::Connection>)#1}>::_M_invoke(std::_Any_data const&, std::shared_ptr<tensorpipe::transport::Connection>&&) <null> (tensorpipe_test+0xaba69)
#25 std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>::operator()(std::shared_ptr<tensorpipe::transport::Connection>) const <null> (tensorpipe_test+0x43b34)
#26 ChannelTest::testConnection(std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>, std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>)::{lambda()#1}::operator()() const <null> (tensorpipe_test+0xaf3d6)
#27 std::_Function_handler<void (), ChannelTest::testConnection(std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>, std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>)::{lambda()#1}>::_M_invoke(std::_Any_data const&) <null> (tensorpipe_test+0xb40ae)
#28 std::function<void ()>::operator()() const <null> (tensorpipe_test+0x53b88)
#29 void std::__invoke_impl<void, std::function<void ()>>(std::__invoke_other, std::function<void ()>&&) <null> (tensorpipe_test+0x54887)
#30 std::__invoke_result<std::function<void ()>>::type std::__invoke<std::function<void ()>>(std::function<void ()>&&) <null> (tensorpipe_test+0x538e4)
#31 decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<std::function<void ()> > >::_M_invoke<0ul>(std::_Index_tuple<0ul>) <null> (tensorpipe_test+0x5b140)
#32 std::thread::_Invoker<std::tuple<std::function<void ()> > >::operator()() <null> (tensorpipe_test+0x5af30)
#33 std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::function<void ()> > > >::_M_run() <null> (tensorpipe_test+0x5ac4c)
#34 <null> <null> (libstdc++.so.6+0xbd6de)
Thread T8 'TP_UV_loop' (tid=5174, running) created by thread T23 at:
#0 pthread_create <null> (libtsan.so.0+0x2bcee)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xbd994)
#2 tensorpipe::transport::uv::Loop::Loop() <null> (tensorpipe_test+0x1fcc18)
#3 tensorpipe::transport::uv::Context::Impl::Impl() <null> (tensorpipe_test+0x1da0b2)
#4 void __gnu_cxx::new_allocator<tensorpipe::transport::uv::Context::Impl>::construct<tensorpipe::transport::uv::Context::Impl>(tensorpipe::transport::uv::Context::Impl*) <null> (tensorpipe_test+0x1e746d)
#5 void std::allocator_traits<std::allocator<tensorpipe::transport::uv::Context::Impl> >::construct<tensorpipe::transport::uv::Context::Impl>(std::allocator<tensorpipe::transport::uv::Context::Impl>&, tensorpipe::transport::uv::Context::Impl*) <null> (tensorpipe_test+0x1e5f32)
#6 std::_Sp_counted_ptr_inplace<tensorpipe::transport::uv::Context::Impl, std::allocator<tensorpipe::transport::uv::Context::Impl>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<>(std::allocator<tensorpipe::transport::uv::Context::Impl>) <null> (tensorpipe_test+0x1e4000)
#7 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<tensorpipe::transport::uv::Context::Impl, std::allocator<tensorpipe::transport::uv::Context::Impl>>(std::_Sp_make_shared_tag, tensorpipe::transport::uv::Context::Impl*, std::allocator<tensorpipe::transport::uv::Context::Impl> const&) <null> (tensorpipe_test+0x1e28a8)
#8 std::__shared_ptr<tensorpipe::transport::uv::Context::Impl, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<tensorpipe::transport::uv::Context::Impl>>(std::_Sp_make_shared_tag, std::allocator<tensorpipe::transport::uv::Context::Impl> const&) <null> (tensorpipe_test+0x1e1a7e)
#9 std::shared_ptr<tensorpipe::transport::uv::Context::Impl>::shared_ptr<std::allocator<tensorpipe::transport::uv::Context::Impl>>(std::_Sp_make_shared_tag, std::allocator<tensorpipe::transport::uv::Context::Impl> const&) <null> (tensorpipe_test+0x1e0bee)
#10 std::shared_ptr<tensorpipe::transport::uv::Context::Impl> std::allocate_shared<tensorpipe::transport::uv::Context::Impl, std::allocator<tensorpipe::transport::uv::Context::Impl>>(std::allocator<tensorpipe::transport::uv::Context::Impl> const&) <null> (tensorpipe_test+0x1df7cd)
#11 std::shared_ptr<tensorpipe::transport::uv::Context::Impl> std::make_shared<tensorpipe::transport::uv::Context::Impl>() <null> (tensorpipe_test+0x1de2e2)
#12 tensorpipe::transport::uv::Context::Context() <null> (tensorpipe_test+0x1d9ffe)
#13 void __gnu_cxx::new_allocator<tensorpipe::transport::uv::Context>::construct<tensorpipe::transport::uv::Context>(tensorpipe::transport::uv::Context*) <null> (tensorpipe_test+0x59c73)
#14 void std::allocator_traits<std::allocator<tensorpipe::transport::uv::Context> >::construct<tensorpipe::transport::uv::Context>(std::allocator<tensorpipe::transport::uv::Context>&, tensorpipe::transport::uv::Context*) <null> (tensorpipe_test+0x59570)
#15 std::_Sp_counted_ptr_inplace<tensorpipe::transport::uv::Context, std::allocator<tensorpipe::transport::uv::Context>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<>(std::allocator<tensorpipe::transport::uv::Context>) <null> (tensorpipe_test+0x58b76)
#16 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<tensorpipe::transport::uv::Context, std::allocator<tensorpipe::transport::uv::Context>>(std::_Sp_make_shared_tag, tensorpipe::transport::uv::Context*, std::allocator<tensorpipe::transport::uv::Context> const&) <null> (tensorpipe_test+0x57920)
#17 std::__shared_ptr<tensorpipe::transport::uv::Context, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<tensorpipe::transport::uv::Context>>(std::_Sp_make_shared_tag, std::allocator<tensorpipe::transport::uv::Context> const&) <null> (tensorpipe_test+0x56a38)
#18 std::shared_ptr<tensorpipe::transport::uv::Context>::shared_ptr<std::allocator<tensorpipe::transport::uv::Context>>(std::_Sp_make_shared_tag, std::allocator<tensorpipe::transport::uv::Context> const&) <null> (tensorpipe_test+0x55eaa)
#19 std::shared_ptr<tensorpipe::transport::uv::Context> std::allocate_shared<tensorpipe::transport::uv::Context, std::allocator<tensorpipe::transport::uv::Context>>(std::allocator<tensorpipe::transport::uv::Context> const&) <null> (tensorpipe_test+0x54e3d)
#20 std::shared_ptr<tensorpipe::transport::uv::Context> std::make_shared<tensorpipe::transport::uv::Context>() <null> (tensorpipe_test+0x54195)
#21 (anonymous namespace)::MptChannelTestHelper::makeContext(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) <null> (tensorpipe_test+0x9d6f8)
#22 ChannelTest_contextIsNotJoined_Test::TestBody()::{lambda(std::shared_ptr<tensorpipe::transport::Connection>)#2}::operator()(std::shared_ptr<tensorpipe::transport::Connection>) const <null> (tensorpipe_test+0xa78b2)
#23 std::_Function_handler<void (std::shared_ptr<tensorpipe::transport::Connection>), ChannelTest_contextIsNotJoined_Test::TestBody()::{lambda(std::shared_ptr<tensorpipe::transport::Connection>)#2}>::_M_invoke(std::_Any_data const&, std::shared_ptr<tensorpipe::transport::Connection>&&) <null> (tensorpipe_test+0xabcbd)
#24 std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>::operator()(std::shared_ptr<tensorpipe::transport::Connection>) const <null> (tensorpipe_test+0x43b34)
#25 ChannelTest::testConnection(std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>, std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>)::{lambda()#2}::operator()() const <null> (tensorpipe_test+0xaf92c)
#26 std::_Function_handler<void (), ChannelTest::testConnection(std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>, std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>)::{lambda()#2}>::_M_invoke(std::_Any_data const&) <null> (tensorpipe_test+0xb4295)
#27 std::function<void ()>::operator()() const <null> (tensorpipe_test+0x53b88)
#28 void std::__invoke_impl<void, std::function<void ()>>(std::__invoke_other, std::function<void ()>&&) <null> (tensorpipe_test+0x54887)
#29 std::__invoke_result<std::function<void ()>>::type std::__invoke<std::function<void ()>>(std::function<void ()>&&) <null> (tensorpipe_test+0x538e4)
#30 decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<std::function<void ()> > >::_M_invoke<0ul>(std::_Index_tuple<0ul>) <null> (tensorpipe_test+0x5b140)
#31 std::thread::_Invoker<std::tuple<std::function<void ()> > >::operator()() <null> (tensorpipe_test+0x5af30)
#32 std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::function<void ()> > > >::_M_run() <null> (tensorpipe_test+0x5ac4c)
#33 <null> <null> (libstdc++.so.6+0xbd6de)
Thread T6 (tid=5170, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2bcee)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xbd994)
#2 ThreadPeerGroup::spawn(std::function<void ()>, std::function<void ()>) <null> (tensorpipe_test+0x530d9)
#3 ChannelTest::testConnection(std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>, std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>) <null> (tensorpipe_test+0xafb58)
#4 ChannelTest_contextIsNotJoined_Test::TestBody() <null> (tensorpipe_test+0xa7c2a)
#5 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (tensorpipe_test+0x323917)
#6 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (tensorpipe_test+0x31b29b)
#7 testing::Test::Run() <null> (tensorpipe_test+0x2f2915)
#8 testing::TestInfo::Run() <null> (tensorpipe_test+0x2f3500)
#9 testing::TestCase::Run() <null> (tensorpipe_test+0x2f3e79)
#10 testing::internal::UnitTestImpl::RunAllTests() <null> (tensorpipe_test+0x300b7b)
#11 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) <null> (tensorpipe_test+0x3253fa)
#12 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) <null> (tensorpipe_test+0x31c897)
#13 testing::UnitTest::Run() <null> (tensorpipe_test+0x2fef51)
#14 RUN_ALL_TESTS() <null> (tensorpipe_test+0x2e8b51)
#15 main <null> (tensorpipe_test+0x2e8a65)
SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x2e2b1) in open64
WARNING: ThreadSanitizer: data race (pid=4955)
Write of size 8 at 0x7b04000034b0 by thread T14:
#0 socket <null> (libtsan.so.0+0x2ee73)
#1 uv__socket <null> (tensorpipe_test+0x2b63ff)
#2 new_socket <null> (tensorpipe_test+0x2cae92)
#3 maybe_new_socket <null> (tensorpipe_test+0x2cb3b8)
#4 uv__tcp_bind <null> (tensorpipe_test+0x2cb5d8)
#5 uv_tcp_bind <null> (tensorpipe_test+0x2b2b27)
#6 tensorpipe::transport::uv::TCPHandle::bindFromLoop(tensorpipe::transport::uv::Sockaddr const&) <null> (tensorpipe_test+0x20247e)
#7 tensorpipe::transport::uv::Listener::Impl::initFromLoop() <null> (tensorpipe_test+0x1eaffc)
#8 tensorpipe::transport::uv::Listener::Impl::init()::{lambda()#1}::operator()() const <null> (tensorpipe_test+0x1ed709)
#9 std::_Function_handler<void (), tensorpipe::transport::uv::Listener::Impl::init()::{lambda()#1}>::_M_invoke(std::_Any_data const&) <null> (tensorpipe_test+0x1ef626)
#10 std::function<void ()>::operator()() const <null> (tensorpipe_test+0x53b88)
#11 tensorpipe::transport::uv::Loop::runFunctionsFromLoop() <null> (tensorpipe_test+0x1fd98a)
#12 tensorpipe::transport::uv::Loop::uv__async_cb(uv_async_s*) <null> (tensorpipe_test+0x1fd8a3)
#13 uv__async_io <null> (tensorpipe_test+0x2b5182)
#14 uv__io_poll <null> (tensorpipe_test+0x2d3a6f)
#15 uv_run <null> (tensorpipe_test+0x2b6296)
#16 tensorpipe::transport::uv::Loop::loop() <null> (tensorpipe_test+0x1fd4d8)
#17 void std::__invoke_impl<void, void (tensorpipe::transport::uv::Loop::*)(), tensorpipe::transport::uv::Loop*>(std::__invoke_memfun_deref, void (tensorpipe::transport::uv::Loop::*&&)(), tensorpipe::transport::uv::Loop*&&) <null> (tensorpipe_test+0x1fee33)
#18 std::__invoke_result<void (tensorpipe::transport::uv::Loop::*)(), tensorpipe::transport::uv::Loop*>::type std::__invoke<void (tensorpipe::transport::uv::Loop::*)(), tensorpipe::transport::uv::Loop*>(void (tensorpipe::transport::uv::Loop::*&&)(), tensorpipe::transport::uv::Loop*&&) <null> (tensorpipe_test+0x1fe336)
#19 decltype (__invoke((_S_declval<0ul>)(), (_S_declval<1ul>)())) std::thread::_Invoker<std::tuple<void (tensorpipe::transport::uv::Loop::*)(), tensorpipe::transport::uv::Loop*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) <null> (tensorpipe_test+0x200b68)
#20 std::thread::_Invoker<std::tuple<void (tensorpipe::transport::uv::Loop::*)(), tensorpipe::transport::uv::Loop*> >::operator()() <null> (tensorpipe_test+0x200ae0)
#21 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (tensorpipe::transport::uv::Loop::*)(), tensorpipe::transport::uv::Loop*> > >::_M_run() <null> (tensorpipe_test+0x200a86)
#22 <null> <null> (libstdc++.so.6+0xbd6de)
Previous write of size 8 at 0x7b04000034b0 by thread T6:
#0 eventfd <null> (libtsan.so.0+0x2ea2e)
#1 uv__async_start <null> (tensorpipe_test+0x2b5338)
#2 uv_async_init <null> (tensorpipe_test+0x2b481c)
#3 uv_loop_init <null> (tensorpipe_test+0x2bd10c)
#4 tensorpipe::transport::uv::Loop::Loop() <null> (tensorpipe_test+0x1fc9c0)
#5 tensorpipe::transport::uv::Context::Impl::Impl() <null> (tensorpipe_test+0x1da0b2)
#6 void __gnu_cxx::new_allocator<tensorpipe::transport::uv::Context::Impl>::construct<tensorpipe::transport::uv::Context::Impl>(tensorpipe::transport::uv::Context::Impl*) <null> (tensorpipe_test+0x1e746d)
#7 void std::allocator_traits<std::allocator<tensorpipe::transport::uv::Context::Impl> >::construct<tensorpipe::transport::uv::Context::Impl>(std::allocator<tensorpipe::transport::uv::Context::Impl>&, tensorpipe::transport::uv::Context::Impl*) <null> (tensorpipe_test+0x1e5f32)
#8 std::_Sp_counted_ptr_inplace<tensorpipe::transport::uv::Context::Impl, std::allocator<tensorpipe::transport::uv::Context::Impl>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<>(std::allocator<tensorpipe::transport::uv::Context::Impl>) <null> (tensorpipe_test+0x1e4000)
#9 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<tensorpipe::transport::uv::Context::Impl, std::allocator<tensorpipe::transport::uv::Context::Impl>>(std::_Sp_make_shared_tag, tensorpipe::transport::uv::Context::Impl*, std::allocator<tensorpipe::transport::uv::Context::Impl> const&) <null> (tensorpipe_test+0x1e28a8)
#10 std::__shared_ptr<tensorpipe::transport::uv::Context::Impl, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<tensorpipe::transport::uv::Context::Impl>>(std::_Sp_make_shared_tag, std::allocator<tensorpipe::transport::uv::Context::Impl> const&) <null> (tensorpipe_test+0x1e1a7e)
#11 std::shared_ptr<tensorpipe::transport::uv::Context::Impl>::shared_ptr<std::allocator<tensorpipe::transport::uv::Context::Impl>>(std::_Sp_make_shared_tag, std::allocator<tensorpipe::transport::uv::Context::Impl> const&) <null> (tensorpipe_test+0x1e0bee)
#12 std::shared_ptr<tensorpipe::transport::uv::Context::Impl> std::allocate_shared<tensorpipe::transport::uv::Context::Impl, std::allocator<tensorpipe::transport::uv::Context::Impl>>(std::allocator<tensorpipe::transport::uv::Context::Impl> const&) <null> (tensorpipe_test+0x1df7cd)
#13 std::shared_ptr<tensorpipe::transport::uv::Context::Impl> std::make_shared<tensorpipe::transport::uv::Context::Impl>() <null> (tensorpipe_test+0x1de2e2)
#14 tensorpipe::transport::uv::Context::Context() <null> (tensorpipe_test+0x1d9ffe)
#15 void __gnu_cxx::new_allocator<tensorpipe::transport::uv::Context>::construct<tensorpipe::transport::uv::Context>(tensorpipe::transport::uv::Context*) <null> (tensorpipe_test+0x59c73)
#16 void std::allocator_traits<std::allocator<tensorpipe::transport::uv::Context> >::construct<tensorpipe::transport::uv::Context>(std::allocator<tensorpipe::transport::uv::Context>&, tensorpipe::transport::uv::Context*) <null> (tensorpipe_test+0x59570)
#17 std::_Sp_counted_ptr_inplace<tensorpipe::transport::uv::Context, std::allocator<tensorpipe::transport::uv::Context>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<>(std::allocator<tensorpipe::transport::uv::Context>) <null> (tensorpipe_test+0x58b76)
#18 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<tensorpipe::transport::uv::Context, std::allocator<tensorpipe::transport::uv::Context>>(std::_Sp_make_shared_tag, tensorpipe::transport::uv::Context*, std::allocator<tensorpipe::transport::uv::Context> const&) <null> (tensorpipe_test+0x57920)
#19 std::__shared_ptr<tensorpipe::transport::uv::Context, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<tensorpipe::transport::uv::Context>>(std::_Sp_make_shared_tag, std::allocator<tensorpipe::transport::uv::Context> const&) <null> (tensorpipe_test+0x56a38)
#20 std::shared_ptr<tensorpipe::transport::uv::Context>::shared_ptr<std::allocator<tensorpipe::transport::uv::Context>>(std::_Sp_make_shared_tag, std::allocator<tensorpipe::transport::uv::Context> const&) <null> (tensorpipe_test+0x55eaa)
#21 std::shared_ptr<tensorpipe::transport::uv::Context> std::allocate_shared<tensorpipe::transport::uv::Context, std::allocator<tensorpipe::transport::uv::Context>>(std::allocator<tensorpipe::transport::uv::Context> const&) <null> (tensorpipe_test+0x54e3d)
#22 std::shared_ptr<tensorpipe::transport::uv::Context> std::make_shared<tensorpipe::transport::uv::Context>() <null> (tensorpipe_test+0x54195)
#23 (anonymous namespace)::MptChannelTestHelper::makeContext(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) <null> (tensorpipe_test+0x9d6f8)
#24 ChannelTest_contextIsNotJoined_Test::TestBody()::{lambda(std::shared_ptr<tensorpipe::transport::Connection>)#1}::operator()(std::shared_ptr<tensorpipe::transport::Connection>) const <null> (tensorpipe_test+0xa767a)
#25 std::_Function_handler<void (std::shared_ptr<tensorpipe::transport::Connection>), ChannelTest_contextIsNotJoined_Test::TestBody()::{lambda(std::shared_ptr<tensorpipe::transport::Connection>)#1}>::_M_invoke(std::_Any_data const&, std::shared_ptr<tensorpipe::transport::Connection>&&) <null> (tensorpipe_test+0xaba69)
#26 std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>::operator()(std::shared_ptr<tensorpipe::transport::Connection>) const <null> (tensorpipe_test+0x43b34)
#27 ChannelTest::testConnection(std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>, std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>)::{lambda()#1}::operator()() const <null> (tensorpipe_test+0xaf3d6)
#28 std::_Function_handler<void (), ChannelTest::testConnection(std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>, std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>)::{lambda()#1}>::_M_invoke(std::_Any_data const&) <null> (tensorpipe_test+0xb40ae)
#29 std::function<void ()>::operator()() const <null> (tensorpipe_test+0x53b88)
#30 void std::__invoke_impl<void, std::function<void ()>>(std::__invoke_other, std::function<void ()>&&) <null> (tensorpipe_test+0x54887)
#31 std::__invoke_result<std::function<void ()>>::type std::__invoke<std::function<void ()>>(std::function<void ()>&&) <null> (tensorpipe_test+0x538e4)
#32 decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<std::function<void ()> > >::_M_invoke<0ul>(std::_Index_tuple<0ul>) <null> (tensorpipe_test+0x5b140)
#33 std::thread::_Invoker<std::tuple<std::function<void ()> > >::operator()() <null> (tensorpipe_test+0x5af30)
#34 std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::function<void ()> > > >::_M_run() <null> (tensorpipe_test+0x5ac4c)
#35 <null> <null> (libstdc++.so.6+0xbd6de)
Thread T14 'TP_UV_loop' (tid=5179, running) created by thread T23 at:
#0 pthread_create <null> (libtsan.so.0+0x2bcee)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xbd994)
#2 tensorpipe::transport::uv::Loop::Loop() <null> (tensorpipe_test+0x1fcc18)
#3 tensorpipe::transport::uv::Context::Impl::Impl() <null> (tensorpipe_test+0x1da0b2)
#4 void __gnu_cxx::new_allocator<tensorpipe::transport::uv::Context::Impl>::construct<tensorpipe::transport::uv::Context::Impl>(tensorpipe::transport::uv::Context::Impl*) <null> (tensorpipe_test+0x1e746d)
#5 void std::allocator_traits<std::allocator<tensorpipe::transport::uv::Context::Impl> >::construct<tensorpipe::transport::uv::Context::Impl>(std::allocator<tensorpipe::transport::uv::Context::Impl>&, tensorpipe::transport::uv::Context::Impl*) <null> (tensorpipe_test+0x1e5f32)
#6 std::_Sp_counted_ptr_inplace<tensorpipe::transport::uv::Context::Impl, std::allocator<tensorpipe::transport::uv::Context::Impl>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<>(std::allocator<tensorpipe::transport::uv::Context::Impl>) <null> (tensorpipe_test+0x1e4000)
#7 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<tensorpipe::transport::uv::Context::Impl, std::allocator<tensorpipe::transport::uv::Context::Impl>>(std::_Sp_make_shared_tag, tensorpipe::transport::uv::Context::Impl*, std::allocator<tensorpipe::transport::uv::Context::Impl> const&) <null> (tensorpipe_test+0x1e28a8)
#8 std::__shared_ptr<tensorpipe::transport::uv::Context::Impl, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<tensorpipe::transport::uv::Context::Impl>>(std::_Sp_make_shared_tag, std::allocator<tensorpipe::transport::uv::Context::Impl> const&) <null> (tensorpipe_test+0x1e1a7e)
#9 std::shared_ptr<tensorpipe::transport::uv::Context::Impl>::shared_ptr<std::allocator<tensorpipe::transport::uv::Context::Impl>>(std::_Sp_make_shared_tag, std::allocator<tensorpipe::transport::uv::Context::Impl> const&) <null> (tensorpipe_test+0x1e0bee)
#10 std::shared_ptr<tensorpipe::transport::uv::Context::Impl> std::allocate_shared<tensorpipe::transport::uv::Context::Impl, std::allocator<tensorpipe::transport::uv::Context::Impl>>(std::allocator<tensorpipe::transport::uv::Context::Impl> const&) <null> (tensorpipe_test+0x1df7cd)
#11 std::shared_ptr<tensorpipe::transport::uv::Context::Impl> std::make_shared<tensorpipe::transport::uv::Context::Impl>() <null> (tensorpipe_test+0x1de2e2)
#12 tensorpipe::transport::uv::Context::Context() <null> (tensorpipe_test+0x1d9ffe)
#13 void __gnu_cxx::new_allocator<tensorpipe::transport::uv::Context>::construct<tensorpipe::transport::uv::Context>(tensorpipe::transport::uv::Context*) <null> (tensorpipe_test+0x59c73)
#14 void std::allocator_traits<std::allocator<tensorpipe::transport::uv::Context> >::construct<tensorpipe::transport::uv::Context>(std::allocator<tensorpipe::transport::uv::Context>&, tensorpipe::transport::uv::Context*) <null> (tensorpipe_test+0x59570)
#15 std::_Sp_counted_ptr_inplace<tensorpipe::transport::uv::Context, std::allocator<tensorpipe::transport::uv::Context>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<>(std::allocator<tensorpipe::transport::uv::Context>) <null> (tensorpipe_test+0x58b76)
#16 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<tensorpipe::transport::uv::Context, std::allocator<tensorpipe::transport::uv::Context>>(std::_Sp_make_shared_tag, tensorpipe::transport::uv::Context*, std::allocator<tensorpipe::transport::uv::Context> const&) <null> (tensorpipe_test+0x57920)
#17 std::__shared_ptr<tensorpipe::transport::uv::Context, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<tensorpipe::transport::uv::Context>>(std::_Sp_make_shared_tag, std::allocator<tensorpipe::transport::uv::Context> const&) <null> (tensorpipe_test+0x56a38)
#18 std::shared_ptr<tensorpipe::transport::uv::Context>::shared_ptr<std::allocator<tensorpipe::transport::uv::Context>>(std::_Sp_make_shared_tag, std::allocator<tensorpipe::transport::uv::Context> const&) <null> (tensorpipe_test+0x55eaa)
#19 std::shared_ptr<tensorpipe::transport::uv::Context> std::allocate_shared<tensorpipe::transport::uv::Context, std::allocator<tensorpipe::transport::uv::Context>>(std::allocator<tensorpipe::transport::uv::Context> const&) <null> (tensorpipe_test+0x54e3d)
#20 std::shared_ptr<tensorpipe::transport::uv::Context> std::make_shared<tensorpipe::transport::uv::Context>() <null> (tensorpipe_test+0x54195)
#21 (anonymous namespace)::MptChannelTestHelper::makeContext(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) <null> (tensorpipe_test+0x9d74c)
#22 ChannelTest_contextIsNotJoined_Test::TestBody()::{lambda(std::shared_ptr<tensorpipe::transport::Connection>)#2}::operator()(std::shared_ptr<tensorpipe::transport::Connection>) const <null> (tensorpipe_test+0xa78b2)
#23 std::_Function_handler<void (std::shared_ptr<tensorpipe::transport::Connection>), ChannelTest_contextIsNotJoined_Test::TestBody()::{lambda(std::shared_ptr<tensorpipe::transport::Connection>)#2}>::_M_invoke(std::_Any_data const&, std::shared_ptr<tensorpipe::transport::Connection>&&) <null> (tensorpipe_test+0xabcbd)
#24 std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>::operator()(std::shared_ptr<tensorpipe::transport::Connection>) const <null> (tensorpipe_test+0x43b34)
#25 ChannelTest::testConnection(std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>, std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>)::{lambda()#2}::operator()() const <null> (tensorpipe_test+0xaf92c)
#26 std::_Function_handler<void (), ChannelTest::testConnection(std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>, std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>)::{lambda()#2}>::_M_invoke(std::_Any_data const&) <null> (tensorpipe_test+0xb4295)
#27 std::function<void ()>::operator()() const <null> (tensorpipe_test+0x53b88)
#28 void std::__invoke_impl<void, std::function<void ()>>(std::__invoke_other, std::function<void ()>&&) <null> (tensorpipe_test+0x54887)
#29 std::__invoke_result<std::function<void ()>>::type std::__invoke<std::function<void ()>>(std::function<void ()>&&) <null> (tensorpipe_test+0x538e4)
#30 decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<std::function<void ()> > >::_M_invoke<0ul>(std::_Index_tuple<0ul>) <null> (tensorpipe_test+0x5b140)
#31 std::thread::_Invoker<std::tuple<std::function<void ()> > >::operator()() <null> (tensorpipe_test+0x5af30)
#32 std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::function<void ()> > > >::_M_run() <null> (tensorpipe_test+0x5ac4c)
#33 <null> <null> (libstdc++.so.6+0xbd6de)
Thread T6 (tid=5170, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2bcee)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xbd994)
#2 ThreadPeerGroup::spawn(std::function<void ()>, std::function<void ()>) <null> (tensorpipe_test+0x530d9)
#3 ChannelTest::testConnection(std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>, std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>) <null> (tensorpipe_test+0xafb58)
#4 ChannelTest_contextIsNotJoined_Test::TestBody() <null> (tensorpipe_test+0xa7c2a)
#5 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (tensorpipe_test+0x323917)
#6 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (tensorpipe_test+0x31b29b)
#7 testing::Test::Run() <null> (tensorpipe_test+0x2f2915)
#8 testing::TestInfo::Run() <null> (tensorpipe_test+0x2f3500)
#9 testing::TestCase::Run() <null> (tensorpipe_test+0x2f3e79)
#10 testing::internal::UnitTestImpl::RunAllTests() <null> (tensorpipe_test+0x300b7b)
#11 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) <null> (tensorpipe_test+0x3253fa)
#12 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) <null> (tensorpipe_test+0x31c897)
#13 testing::UnitTest::Run() <null> (tensorpipe_test+0x2fef51)
#14 RUN_ALL_TESTS() <null> (tensorpipe_test+0x2e8b51)
#15 main <null> (tensorpipe_test+0x2e8a65)
SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x2ee73) in __interceptor_socket
WARNING: ThreadSanitizer: data race (pid=4955)
Write of size 8 at 0x7b0400000960 by thread T16:
#0 open64 <null> (libtsan.so.0+0x2e2b1)
#1 uv__open_cloexec <null> (tensorpipe_test+0x2b865c)
#2 uv__stream_init <null> (tensorpipe_test+0x2c5ac8)
#3 uv_tcp_init_ex <null> (tensorpipe_test+0x2cb455)
#4 uv_tcp_init <null> (tensorpipe_test+0x2cb540)
#5 tensorpipe::transport::uv::TCPHandle::initFromLoop() <null> (tensorpipe_test+0x2020f8)
#6 tensorpipe::transport::uv::Listener::Impl::initFromLoop() <null> (tensorpipe_test+0x1eafd0)
#7 tensorpipe::transport::uv::Listener::Impl::init()::{lambda()#1}::operator()() const <null> (tensorpipe_test+0x1ed709)
#8 std::_Function_handler<void (), tensorpipe::transport::uv::Listener::Impl::init()::{lambda()#1}>::_M_invoke(std::_Any_data const&) <null> (tensorpipe_test+0x1ef626)
#9 std::function<void ()>::operator()() const <null> (tensorpipe_test+0x53b88)
#10 tensorpipe::transport::uv::Loop::runFunctionsFromLoop() <null> (tensorpipe_test+0x1fd98a)
#11 tensorpipe::transport::uv::Loop::uv__async_cb(uv_async_s*) <null> (tensorpipe_test+0x1fd8a3)
#12 uv__async_io <null> (tensorpipe_test+0x2b5182)
#13 uv__io_poll <null> (tensorpipe_test+0x2d3a6f)
#14 uv_run <null> (tensorpipe_test+0x2b6296)
#15 tensorpipe::transport::uv::Loop::loop() <null> (tensorpipe_test+0x1fd4d8)
#16 void std::__invoke_impl<void, void (tensorpipe::transport::uv::Loop::*)(), tensorpipe::transport::uv::Loop*>(std::__invoke_memfun_deref, void (tensorpipe::transport::uv::Loop::*&&)(), tensorpipe::transport::uv::Loop*&&) <null> (tensorpipe_test+0x1fee33)
#17 std::__invoke_result<void (tensorpipe::transport::uv::Loop::*)(), tensorpipe::transport::uv::Loop*>::type std::__invoke<void (tensorpipe::transport::uv::Loop::*)(), tensorpipe::transport::uv::Loop*>(void (tensorpipe::transport::uv::Loop::*&&)(), tensorpipe::transport::uv::Loop*&&) <null> (tensorpipe_test+0x1fe336)
#18 decltype (__invoke((_S_declval<0ul>)(), (_S_declval<1ul>)())) std::thread::_Invoker<std::tuple<void (tensorpipe::transport::uv::Loop::*)(), tensorpipe::transport::uv::Loop*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) <null> (tensorpipe_test+0x200b68)
#19 std::thread::_Invoker<std::tuple<void (tensorpipe::transport::uv::Loop::*)(), tensorpipe::transport::uv::Loop*> >::operator()() <null> (tensorpipe_test+0x200ae0)
#20 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (tensorpipe::transport::uv::Loop::*)(), tensorpipe::transport::uv::Loop*> > >::_M_run() <null> (tensorpipe_test+0x200a86)
#21 <null> <null> (libstdc++.so.6+0xbd6de)
Previous write of size 8 at 0x7b0400000960 by thread T6:
#0 epoll_create1 <null> (libtsan.so.0+0x30209)
#1 uv__platform_loop_init <null> (tensorpipe_test+0x2d2870)
#2 uv_loop_init <null> (tensorpipe_test+0x2bcf04)
#3 tensorpipe::transport::uv::Loop::Loop() <null> (tensorpipe_test+0x1fc9c0)
#4 tensorpipe::transport::uv::Context::Impl::Impl() <null> (tensorpipe_test+0x1da0b2)
#5 void __gnu_cxx::new_allocator<tensorpipe::transport::uv::Context::Impl>::construct<tensorpipe::transport::uv::Context::Impl>(tensorpipe::transport::uv::Context::Impl*) <null> (tensorpipe_test+0x1e746d)
#6 void std::allocator_traits<std::allocator<tensorpipe::transport::uv::Context::Impl> >::construct<tensorpipe::transport::uv::Context::Impl>(std::allocator<tensorpipe::transport::uv::Context::Impl>&, tensorpipe::transport::uv::Context::Impl*) <null> (tensorpipe_test+0x1e5f32)
#7 std::_Sp_counted_ptr_inplace<tensorpipe::transport::uv::Context::Impl, std::allocator<tensorpipe::transport::uv::Context::Impl>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<>(std::allocator<tensorpipe::transport::uv::Context::Impl>) <null> (tensorpipe_test+0x1e4000)
#8 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<tensorpipe::transport::uv::Context::Impl, std::allocator<tensorpipe::transport::uv::Context::Impl>>(std::_Sp_make_shared_tag, tensorpipe::transport::uv::Context::Impl*, std::allocator<tensorpipe::transport::uv::Context::Impl> const&) <null> (tensorpipe_test+0x1e28a8)
#9 std::__shared_ptr<tensorpipe::transport::uv::Context::Impl, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<tensorpipe::transport::uv::Context::Impl>>(std::_Sp_make_shared_tag, std::allocator<tensorpipe::transport::uv::Context::Impl> const&) <null> (tensorpipe_test+0x1e1a7e)
#10 std::shared_ptr<tensorpipe::transport::uv::Context::Impl>::shared_ptr<std::allocator<tensorpipe::transport::uv::Context::Impl>>(std::_Sp_make_shared_tag, std::allocator<tensorpipe::transport::uv::Context::Impl> const&) <null> (tensorpipe_test+0x1e0bee)
#11 std::shared_ptr<tensorpipe::transport::uv::Context::Impl> std::allocate_shared<tensorpipe::transport::uv::Context::Impl, std::allocator<tensorpipe::transport::uv::Context::Impl>>(std::allocator<tensorpipe::transport::uv::Context::Impl> const&) <null> (tensorpipe_test+0x1df7cd)
#12 std::shared_ptr<tensorpipe::transport::uv::Context::Impl> std::make_shared<tensorpipe::transport::uv::Context::Impl>() <null> (tensorpipe_test+0x1de2e2)
#13 tensorpipe::transport::uv::Context::Context() <null> (tensorpipe_test+0x1d9ffe)
#14 void __gnu_cxx::new_allocator<tensorpipe::transport::uv::Context>::construct<tensorpipe::transport::uv::Context>(tensorpipe::transport::uv::Context*) <null> (tensorpipe_test+0x59c73)
#15 void std::allocator_traits<std::allocator<tensorpipe::transport::uv::Context> >::construct<tensorpipe::transport::uv::Context>(std::allocator<tensorpipe::transport::uv::Context>&, tensorpipe::transport::uv::Context*) <null> (tensorpipe_test+0x59570)
#16 std::_Sp_counted_ptr_inplace<tensorpipe::transport::uv::Context, std::allocator<tensorpipe::transport::uv::Context>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<>(std::allocator<tensorpipe::transport::uv::Context>) <null> (tensorpipe_test+0x58b76)
#17 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<tensorpipe::transport::uv::Context, std::allocator<tensorpipe::transport::uv::Context>>(std::_Sp_make_shared_tag, tensorpipe::transport::uv::Context*, std::allocator<tensorpipe::transport::uv::Context> const&) <null> (tensorpipe_test+0x57920)
#18 std::__shared_ptr<tensorpipe::transport::uv::Context, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<tensorpipe::transport::uv::Context>>(std::_Sp_make_shared_tag, std::allocator<tensorpipe::transport::uv::Context> const&) <null> (tensorpipe_test+0x56a38)
#19 std::shared_ptr<tensorpipe::transport::uv::Context>::shared_ptr<std::allocator<tensorpipe::transport::uv::Context>>(std::_Sp_make_shared_tag, std::allocator<tensorpipe::transport::uv::Context> const&) <null> (tensorpipe_test+0x55eaa)
#20 std::shared_ptr<tensorpipe::transport::uv::Context> std::allocate_shared<tensorpipe::transport::uv::Context, std::allocator<tensorpipe::transport::uv::Context>>(std::allocator<tensorpipe::transport::uv::Context> const&) <null> (tensorpipe_test+0x54e3d)
#21 std::shared_ptr<tensorpipe::transport::uv::Context> std::make_shared<tensorpipe::transport::uv::Context>() <null> (tensorpipe_test+0x54195)
#22 (anonymous namespace)::MptChannelTestHelper::makeContext(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) <null> (tensorpipe_test+0x9d720)
#23 ChannelTest_contextIsNotJoined_Test::TestBody()::{lambda(std::shared_ptr<tensorpipe::transport::Connection>)#1}::operator()(std::shared_ptr<tensorpipe::transport::Connection>) const <null> (tensorpipe_test+0xa767a)
#24 std::_Function_handler<void (std::shared_ptr<tensorpipe::transport::Connection>), ChannelTest_contextIsNotJoined_Test::TestBody()::{lambda(std::shared_ptr<tensorpipe::transport::Connection>)#1}>::_M_invoke(std::_Any_data const&, std::shared_ptr<tensorpipe::transport::Connection>&&) <null> (tensorpipe_test+0xaba69)
#25 std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>::operator()(std::shared_ptr<tensorpipe::transport::Connection>) const <null> (tensorpipe_test+0x43b34)
#26 ChannelTest::testConnection(std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>, std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>)::{lambda()#1}::operator()() const <null> (tensorpipe_test+0xaf3d6)
#27 std::_Function_handler<void (), ChannelTest::testConnection(std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>, std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>)::{lambda()#1}>::_M_invoke(std::_Any_data const&) <null> (tensorpipe_test+0xb40ae)
#28 std::function<void ()>::operator()() const <null> (tensorpipe_test+0x53b88)
#29 void std::__invoke_impl<void, std::function<void ()>>(std::__invoke_other, std::function<void ()>&&) <null> (tensorpipe_test+0x54887)
#30 std::__invoke_result<std::function<void ()>>::type std::__invoke<std::function<void ()>>(std::function<void ()>&&) <null> (tensorpipe_test+0x538e4)
#31 decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<std::function<void ()> > >::_M_invoke<0ul>(std::_Index_tuple<0ul>) <null> (tensorpipe_test+0x5b140)
#32 std::thread::_Invoker<std::tuple<std::function<void ()> > >::operator()() <null> (tensorpipe_test+0x5af30)
#33 std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::function<void ()> > > >::_M_run() <null> (tensorpipe_test+0x5ac4c)
#34 <null> <null> (libstdc++.so.6+0xbd6de)
Thread T16 'TP_UV_loop' (tid=5177, running) created by thread T23 at:
#0 pthread_create <null> (libtsan.so.0+0x2bcee)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xbd994)
#2 tensorpipe::transport::uv::Loop::Loop() <null> (tensorpipe_test+0x1fcc18)
#3 tensorpipe::transport::uv::Context::Impl::Impl() <null> (tensorpipe_test+0x1da0b2)
#4 void __gnu_cxx::new_allocator<tensorpipe::transport::uv::Context::Impl>::construct<tensorpipe::transport::uv::Context::Impl>(tensorpipe::transport::uv::Context::Impl*) <null> (tensorpipe_test+0x1e746d)
#5 void std::allocator_traits<std::allocator<tensorpipe::transport::uv::Context::Impl> >::construct<tensorpipe::transport::uv::Context::Impl>(std::allocator<tensorpipe::transport::uv::Context::Impl>&, tensorpipe::transport::uv::Context::Impl*) <null> (tensorpipe_test+0x1e5f32)
#6 std::_Sp_counted_ptr_inplace<tensorpipe::transport::uv::Context::Impl, std::allocator<tensorpipe::transport::uv::Context::Impl>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<>(std::allocator<tensorpipe::transport::uv::Context::Impl>) <null> (tensorpipe_test+0x1e4000)
#7 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<tensorpipe::transport::uv::Context::Impl, std::allocator<tensorpipe::transport::uv::Context::Impl>>(std::_Sp_make_shared_tag, tensorpipe::transport::uv::Context::Impl*, std::allocator<tensorpipe::transport::uv::Context::Impl> const&) <null> (tensorpipe_test+0x1e28a8)
#8 std::__shared_ptr<tensorpipe::transport::uv::Context::Impl, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<tensorpipe::transport::uv::Context::Impl>>(std::_Sp_make_shared_tag, std::allocator<tensorpipe::transport::uv::Context::Impl> const&) <null> (tensorpipe_test+0x1e1a7e)
#9 std::shared_ptr<tensorpipe::transport::uv::Context::Impl>::shared_ptr<std::allocator<tensorpipe::transport::uv::Context::Impl>>(std::_Sp_make_shared_tag, std::allocator<tensorpipe::transport::uv::Context::Impl> const&) <null> (tensorpipe_test+0x1e0bee)
#10 std::shared_ptr<tensorpipe::transport::uv::Context::Impl> std::allocate_shared<tensorpipe::transport::uv::Context::Impl, std::allocator<tensorpipe::transport::uv::Context::Impl>>(std::allocator<tensorpipe::transport::uv::Context::Impl> const&) <null> (tensorpipe_test+0x1df7cd)
#11 std::shared_ptr<tensorpipe::transport::uv::Context::Impl> std::make_shared<tensorpipe::transport::uv::Context::Impl>() <null> (tensorpipe_test+0x1de2e2)
#12 tensorpipe::transport::uv::Context::Context() <null> (tensorpipe_test+0x1d9ffe)
#13 void __gnu_cxx::new_allocator<tensorpipe::transport::uv::Context>::construct<tensorpipe::transport::uv::Context>(tensorpipe::transport::uv::Context*) <null> (tensorpipe_test+0x59c73)
#14 void std::allocator_traits<std::allocator<tensorpipe::transport::uv::Context> >::construct<tensorpipe::transport::uv::Context>(std::allocator<tensorpipe::transport::uv::Context>&, tensorpipe::transport::uv::Context*) <null> (tensorpipe_test+0x59570)
#15 std::_Sp_counted_ptr_inplace<tensorpipe::transport::uv::Context, std::allocator<tensorpipe::transport::uv::Context>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<>(std::allocator<tensorpipe::transport::uv::Context>) <null> (tensorpipe_test+0x58b76)
#16 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<tensorpipe::transport::uv::Context, std::allocator<tensorpipe::transport::uv::Context>>(std::_Sp_make_shared_tag, tensorpipe::transport::uv::Context*, std::allocator<tensorpipe::transport::uv::Context> const&) <null> (tensorpipe_test+0x57920)
#17 std::__shared_ptr<tensorpipe::transport::uv::Context, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<tensorpipe::transport::uv::Context>>(std::_Sp_make_shared_tag, std::allocator<tensorpipe::transport::uv::Context> const&) <null> (tensorpipe_test+0x56a38)
#18 std::shared_ptr<tensorpipe::transport::uv::Context>::shared_ptr<std::allocator<tensorpipe::transport::uv::Context>>(std::_Sp_make_shared_tag, std::allocator<tensorpipe::transport::uv::Context> const&) <null> (tensorpipe_test+0x55eaa)
#19 std::shared_ptr<tensorpipe::transport::uv::Context> std::allocate_shared<tensorpipe::transport::uv::Context, std::allocator<tensorpipe::transport::uv::Context>>(std::allocator<tensorpipe::transport::uv::Context> const&) <null> (tensorpipe_test+0x54e3d)
#20 std::shared_ptr<tensorpipe::transport::uv::Context> std::make_shared<tensorpipe::transport::uv::Context>() <null> (tensorpipe_test+0x54195)
#21 (anonymous namespace)::MptChannelTestHelper::makeContext(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) <null> (tensorpipe_test+0x9d720)
#22 ChannelTest_contextIsNotJoined_Test::TestBody()::{lambda(std::shared_ptr<tensorpipe::transport::Connection>)#2}::operator()(std::shared_ptr<tensorpipe::transport::Connection>) const <null> (tensorpipe_test+0xa78b2)
#23 std::_Function_handler<void (std::shared_ptr<tensorpipe::transport::Connection>), ChannelTest_contextIsNotJoined_Test::TestBody()::{lambda(std::shared_ptr<tensorpipe::transport::Connection>)#2}>::_M_invoke(std::_Any_data const&, std::shared_ptr<tensorpipe::transport::Connection>&&) <null> (tensorpipe_test+0xabcbd)
#24 std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>::operator()(std::shared_ptr<tensorpipe::transport::Connection>) const <null> (tensorpipe_test+0x43b34)
#25 ChannelTest::testConnection(std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>, std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>)::{lambda()#2}::operator()() const <null> (tensorpipe_test+0xaf92c)
#26 std::_Function_handler<void (), ChannelTest::testConnection(std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>, std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>)::{lambda()#2}>::_M_invoke(std::_Any_data const&) <null> (tensorpipe_test+0xb4295)
#27 std::function<void ()>::operator()() const <null> (tensorpipe_test+0x53b88)
#28 void std::__invoke_impl<void, std::function<void ()>>(std::__invoke_other, std::function<void ()>&&) <null> (tensorpipe_test+0x54887)
#29 std::__invoke_result<std::function<void ()>>::type std::__invoke<std::function<void ()>>(std::function<void ()>&&) <null> (tensorpipe_test+0x538e4)
#30 decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<std::function<void ()> > >::_M_invoke<0ul>(std::_Index_tuple<0ul>) <null> (tensorpipe_test+0x5b140)
#31 std::thread::_Invoker<std::tuple<std::function<void ()> > >::operator()() <null> (tensorpipe_test+0x5af30)
#32 std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::function<void ()> > > >::_M_run() <null> (tensorpipe_test+0x5ac4c)
#33 <null> <null> (libstdc++.so.6+0xbd6de)
Thread T6 (tid=5170, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2bcee)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xbd994)
#2 ThreadPeerGroup::spawn(std::function<void ()>, std::function<void ()>) <null> (tensorpipe_test+0x530d9)
#3 ChannelTest::testConnection(std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>, std::function<void (std::shared_ptr<tensorpipe::transport::Connection>)>) <null> (tensorpipe_test+0xafb58)
#4 ChannelTest_contextIsNotJoined_Test::TestBody() <null> (tensorpipe_test+0xa7c2a)
#5 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (tensorpipe_test+0x323917)
#6 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (tensorpipe_test+0x31b29b)
#7 testing::Test::Run() <null> (tensorpipe_test+0x2f2915)
#8 testing::TestInfo::Run() <null> (tensorpipe_test+0x2f3500)
#9 testing::TestCase::Run() <null> (tensorpipe_test+0x2f3e79)
#10 testing::internal::UnitTestImpl::RunAllTests() <null> (tensorpipe_test+0x300b7b)
#11 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) <null> (tensorpipe_test+0x3253fa)
#12 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) <null> (tensorpipe_test+0x31c897)
#13 testing::UnitTest::Run() <null> (tensorpipe_test+0x2fef51)
#14 RUN_ALL_TESTS() <null> (tensorpipe_test+0x2e8b51)
#15 main <null> (tensorpipe_test+0x2e8a65)
SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x2e2b1) in open64
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment