Skip to content

Instantly share code, notes, and snippets.

@wezrule
Created June 5, 2019 14:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wezrule/279062783ed1ed2a2066ba5c79db0b83 to your computer and use it in GitHub Desktop.
Save wezrule/279062783ed1ed2a2066ba5c79db0b83 to your computer and use it in GitHub Desktop.
stats TSAN error
root@ubuntu-s-1vcpu-1gb-lon1-01:~/nano-node/build# ./core_test --gtest_filter=network.send_node_id_handshake
Running main() from core_test_main.cc
Note: Google Test filter = network.send_node_id_handshake
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from network
[ RUN ] network.send_node_id_handshake
/root/nano-node/nano/core_test/network.cpp:88: Failure
Expected equality of these values:
0
system.nodes[0]->network.size ()
Which is: 1
==================
WARNING: ThreadSanitizer: data race (pid=12931)
Write of size 8 at 0x7b1000002350 by main thread:
#0 operator delete(void*) <null> (core_test+0x50957d)
#1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::deallocate(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:128:2 (core_test+0x60b0b0)
#2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > > >::deallocate(std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >&, std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:470:13 (core_test+0x60b058)
#3 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_put_node(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:584:9 (core_test+0x60ad95)
#4 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_drop_node(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:651:2 (core_test+0x60acc9)
#5 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_erase(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:1911:4 (core_test+0x60aae5)
#6 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_erase(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:1909:4 (core_test+0x60aac3)
#7 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::~_Rb_tree() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:978:2 (core_test+0x60aa38)
#8 std::map<unsigned int, std::shared_ptr<nano::stat_entry>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::~map() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_map.h:300:22 (core_test+0x60a9e8)
#9 nano::stat::~stat() /root/nano-node/nano/lib/stats.hpp:215:7 (core_test+0x5fe9c9)
#10 nano::node::~node() /root/nano-node/nano/node/node.cpp:491:1 (core_test+0xe9affc)
#11 void __gnu_cxx::new_allocator<nano::node>::destroy<nano::node>(nano::node*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:153:10 (core_test+0x865484)
#12 void std::allocator_traits<std::allocator<nano::node> >::destroy<nano::node>(std::allocator<nano::node>&, nano::node*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:497:8 (core_test+0x8653e8)
#13 std::_Sp_counted_ptr_inplace<nano::node, std::allocator<nano::node>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:557:2 (core_test+0x86503f)
#14 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:155:6 (core_test+0x525545)
#15 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:730:11 (core_test+0x5254c8)
#16 std::__shared_ptr<nano::node, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:1169:31 (core_test+0x52545c)
#17 std::shared_ptr<nano::node>::~shared_ptr() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:103:11 (core_test+0x51ef58)
#18 nano::node::start()::$_16::~$_16() /root/nano-node/nano/node/node.cpp:796:76 (core_test+0xea2808)
#19 std::_Function_base::_Base_manager<nano::node::start()::$_16>::_M_destroy(std::_Any_data&, std::integral_constant<bool, false>) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:191:4 (core_test+0xf0f0a2)
#20 std::_Function_base::_Base_manager<nano::node::start()::$_16>::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:215:8 (core_test+0xf0ecf1)
#21 std::_Function_base::~_Function_base() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:260:2 (core_test+0x527952)
#22 std::function<void ()>::~function() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:128:11 (core_test+0x9d1598)
#23 nano::operation::~operation() /root/nano-node/nano/node/node.hpp:43:7 (core_test+0xf152cc)
#24 void std::_Destroy<nano::operation>(nano::operation*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:98:19 (core_test+0xf19c98)
#25 void std::_Destroy_aux<false>::__destroy<nano::operation*>(nano::operation*, nano::operation*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:108:6 (core_test+0xf19c4a)
#26 void std::_Destroy<nano::operation*>(nano::operation*, nano::operation*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:136:7 (core_test+0xf19bd8)
#27 void std::_Destroy<nano::operation*, nano::operation>(nano::operation*, nano::operation*, std::allocator<nano::operation>&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:206:7 (core_test+0xf19a74)
#28 std::vector<nano::operation, std::allocator<nano::operation> >::~vector() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_vector.h:677:2 (core_test+0xf199e7)
#29 std::priority_queue<nano::operation, std::vector<nano::operation, std::allocator<nano::operation> >, std::greater<nano::operation> >::~priority_queue() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_queue.h:443:11 (core_test+0xf14eb8)
#30 nano::alarm::~alarm() /root/nano-node/nano/node/node.cpp:82:1 (core_test+0xe96587)
#31 nano::system::~system() /root/nano-node/nano/node/testing.cpp:141:1 (core_test+0xf8b1fa)
#32 network_send_node_id_handshake_Test::TestBody() /root/nano-node/nano/core_test/network.cpp:102:1 (core_test+0x7c292d)
#33 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11a7f16)
#34 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1183d7e)
#35 testing::Test::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2517:5 (core_test+0x1156ede)
#36 testing::TestInfo::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2693:11 (core_test+0x1158146)
#37 testing::TestCase::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2811:28 (core_test+0x1158b87)
#38 testing::internal::UnitTestImpl::RunAllTests() /root/nano-node/gtest/googletest/src/gtest.cc:5177:43 (core_test+0x1169e54)
#39 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11acad6)
#40 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1187bbe)
#41 testing::UnitTest::Run() /root/nano-node/gtest/googletest/src/gtest.cc:4786:10 (core_test+0x11698cb)
#42 RUN_ALL_TESTS() /root/nano-node/gtest/googletest/include/gtest/gtest.h:2341:46 (core_test+0x50baa7)
#43 main /root/nano-node/nano/core_test/core_test_main.cc:17:13 (core_test+0x50ae36)
Previous read of size 8 at 0x7b1000002350 by thread T4 (mutexes: write M937):
#0 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_S_left(std::_Rb_tree_node_base*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:772:45 (core_test+0x60ac56)
#1 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_lower_bound(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*, std::_Rb_tree_node_base*, unsigned int const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:1926:21 (core_test+0x1240860)
#2 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::find(unsigned int const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:2553:22 (core_test+0x12406dc)
#3 std::map<unsigned int, std::shared_ptr<nano::stat_entry>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::find(unsigned int const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_map.h:1169:21 (core_test+0x123d768)
#4 nano::stat::get_entry_impl(unsigned int, unsigned long, unsigned long) /root/nano-node/nano/lib/stats.cpp:164:23 (core_test+0x123adc6)
#5 nano::stat::update(unsigned int, unsigned long) /root/nano-node/nano/lib/stats.cpp:263:14 (core_test+0x123cad7)
#6 nano::stat::add(nano::stat::type, nano::stat::detail, nano::stat::dir, unsigned long, bool) /root/nano-node/nano/lib/stats.hpp:396:4 (core_test+0x957604)
#7 nano::stat::inc(nano::stat::type, nano::stat::detail, nano::stat::dir) /root/nano-node/nano/lib/stats.hpp:367:3 (core_test+0x93f3c6)
#8 (anonymous namespace)::network_message_visitor::node_id_handshake(nano::node_id_handshake const&) /root/nano-node/nano/node/network.cpp:520:14 (core_test+0xe5b8d9)
#9 nano::node_id_handshake::visit(nano::message_visitor&) const /root/nano-node/nano/node/common.cpp:1037:12 (core_test+0xcad0ff)
#10 nano::network::process_message(nano::message const&, std::shared_ptr<nano::transport::channel>) /root/nano-node/nano/node/network.cpp:530:12 (core_test+0xe55b62)
#11 (anonymous namespace)::udp_message_visitor::message(nano::message const&) /root/nano-node/nano/node/transport/udp.cpp:466:17 (core_test+0xfcc47b)
#12 (anonymous namespace)::udp_message_visitor::node_id_handshake(nano::node_id_handshake const&) /root/nano-node/nano/node/transport/udp.cpp:456:3 (core_test+0xfcc215)
#13 nano::message_parser::deserialize_node_id_handshake(std::basic_streambuf<unsigned char, std::char_traits<unsigned char> >&, nano::message_header const&) /root/nano-node/nano/node/common.cpp:424:11 (core_test+0xca8d81)
#14 nano::message_parser::deserialize_buffer(unsigned char const*, unsigned long) /root/nano-node/nano/node/common.cpp:315:7 (core_test+0xca8161)
#15 nano::transport::udp_channels::receive_action(nano::message_buffer*) /root/nano-node/nano/node/transport/udp.cpp:493:10 (core_test+0xfc8d11)
#16 nano::transport::udp_channels::process_packets() /root/nano-node/nano/node/transport/udp.cpp:564:3 (core_test+0xfc9444)
#17 nano::network::network(nano::node&, unsigned short)::$_1::operator()() const /root/nano-node/nano/node/network.cpp:23:18 (core_test+0xe5c3e9)
#18 boost::detail::thread_data<nano::network::network(nano::node&, unsigned short)::$_1>::run() /usr/include/boost/thread/detail/thread.hpp:117:17 (core_test+0xe5c34f)
#19 thread_proxy <null> (core_test+0x1540074)
Mutex M937 (0x7ba0000072b0) created at:
#0 pthread_mutex_lock <null> (core_test+0x49ba9e)
#1 __gthread_mutex_lock(pthread_mutex_t*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9/bits/gthr-default.h:749:12 (core_test+0x51e1a6)
#2 std::mutex::lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_mutex.h:100:17 (core_test+0x527d58)
#3 std::unique_lock<std::mutex>::lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_lock.h:141:17 (core_test+0x66b851)
#4 std::unique_lock<std::mutex>::unique_lock(std::mutex&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_lock.h:71:2 (core_test+0x66b323)
#5 nano::stat::update(unsigned int, unsigned long) /root/nano-node/nano/lib/stats.cpp:262:31 (core_test+0x123ca71)
#6 nano::stat::add(nano::stat::type, nano::stat::detail, nano::stat::dir, unsigned long, bool) /root/nano-node/nano/lib/stats.hpp:391:3 (core_test+0x9575cd)
#7 nano::stat::inc(nano::stat::type, nano::stat::detail, nano::stat::dir) /root/nano-node/nano/lib/stats.hpp:367:3 (core_test+0x93f3c6)
#8 nano::bootstrap_initiator::bootstrap() /root/nano-node/nano/node/bootstrap.cpp:1656:14 (core_test+0xc2acdc)
#9 nano::node::ongoing_bootstrap() /root/nano-node/nano/node/node.cpp:910:22 (core_test+0xea134b)
#10 nano::node::start() /root/nano-node/nano/node/node.cpp:772:3 (core_test+0xea0964)
#11 nano::system::add_node(nano::node_config const&, bool, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:31:8 (core_test+0xf89fb4)
#12 nano::system::system(unsigned short, unsigned short, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:118:17 (core_test+0xf8afe9)
#13 network_send_node_id_handshake_Test::TestBody() /root/nano-node/nano/core_test/network.cpp:71:15 (core_test+0x7c0103)
#14 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11a7f16)
#15 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1183d7e)
#16 testing::Test::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2517:5 (core_test+0x1156ede)
#17 testing::TestInfo::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2693:11 (core_test+0x1158146)
#18 testing::TestCase::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2811:28 (core_test+0x1158b87)
#19 testing::internal::UnitTestImpl::RunAllTests() /root/nano-node/gtest/googletest/src/gtest.cc:5177:43 (core_test+0x1169e54)
#20 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11acad6)
#21 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1187bbe)
#22 testing::UnitTest::Run() /root/nano-node/gtest/googletest/src/gtest.cc:4786:10 (core_test+0x11698cb)
#23 RUN_ALL_TESTS() /root/nano-node/gtest/googletest/include/gtest/gtest.h:2341:46 (core_test+0x50baa7)
#24 main /root/nano-node/nano/core_test/core_test_main.cc:17:13 (core_test+0x50ae36)
Thread T4 'Pkt processing' (tid=12936, finished) created by main thread at:
#0 pthread_create <null> (core_test+0x47f8d5)
#1 boost::thread::start_thread_noexcept(boost::thread_attributes const&) <null> (core_test+0x153e859)
#2 boost::thread::thread<nano::network::network(nano::node&, unsigned short)::$_1>(boost::thread_attributes const&, nano::network::network(nano::node&, unsigned short)::$_1&&) /usr/include/boost/thread/detail/thread.hpp:274:13 (core_test+0xe50d50)
#3 nano::network::network(nano::node&, unsigned short) /root/nano-node/nano/node/network.cpp:19:40 (core_test+0xe50aa1)
#4 nano::node::node(nano::node_init&, boost::asio::io_context&, boost::filesystem::path const&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool) /root/nano-node/nano/node/node.cpp:211:1 (core_test+0xe98048)
#5 void __gnu_cxx::new_allocator<nano::node>::construct<nano::node, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(nano::node*, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:147:23 (core_test+0xf96418)
#6 void std::allocator_traits<std::allocator<nano::node> >::construct<nano::node, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::allocator<nano::node>&, nano::node*, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:484:8 (core_test+0xf96225)
#7 std::_Sp_counted_ptr_inplace<nano::node, std::allocator<nano::node>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:548:4 (core_test+0xf96059)
#8 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<nano::node, std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(nano::node*&, std::_Sp_alloc_shared_tag<std::allocator<nano::node> >, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:680:6 (core_test+0xf95d49)
#9 std::__shared_ptr<nano::node, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::_Sp_alloc_shared_tag<std::allocator<nano::node> >, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:1344:14 (core_test+0xf95adf)
#10 std::shared_ptr<nano::node>::shared_ptr<std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::_Sp_alloc_shared_tag<std::allocator<nano::node> >, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:359:4 (core_test+0xf958f6)
#11 std::shared_ptr<nano::node> std::allocate_shared<nano::node, std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::allocator<nano::node> const&, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:701:14 (core_test+0xf956ab)
#12 std::shared_ptr<nano::node> std::make_shared<nano::node, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:717:14 (core_test+0xf9381f)
#13 nano::system::add_node(nano::node_config const&, bool, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:29:13 (core_test+0xf89f20)
#14 nano::system::system(unsigned short, unsigned short, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:118:17 (core_test+0xf8afe9)
#15 network_send_node_id_handshake_Test::TestBody() /root/nano-node/nano/core_test/network.cpp:71:15 (core_test+0x7c0103)
#16 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11a7f16)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1183d7e)
#18 testing::Test::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2517:5 (core_test+0x1156ede)
#19 testing::TestInfo::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2693:11 (core_test+0x1158146)
#20 testing::TestCase::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2811:28 (core_test+0x1158b87)
#21 testing::internal::UnitTestImpl::RunAllTests() /root/nano-node/gtest/googletest/src/gtest.cc:5177:43 (core_test+0x1169e54)
#22 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11acad6)
#23 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1187bbe)
#24 testing::UnitTest::Run() /root/nano-node/gtest/googletest/src/gtest.cc:4786:10 (core_test+0x11698cb)
#25 RUN_ALL_TESTS() /root/nano-node/gtest/googletest/include/gtest/gtest.h:2341:46 (core_test+0x50baa7)
#26 main /root/nano-node/nano/core_test/core_test_main.cc:17:13 (core_test+0x50ae36)
SUMMARY: ThreadSanitizer: data race (/root/nano-node/build/core_test+0x50957d) in operator delete(void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=12931)
Write of size 8 at 0x7b1000002360 by main thread:
#0 operator delete(void*) <null> (core_test+0x50957d)
#1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::deallocate(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:128:2 (core_test+0x60b0b0)
#2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > > >::deallocate(std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >&, std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:470:13 (core_test+0x60b058)
#3 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_put_node(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:584:9 (core_test+0x60ad95)
#4 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_drop_node(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:651:2 (core_test+0x60acc9)
#5 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_erase(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:1911:4 (core_test+0x60aae5)
#6 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_erase(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:1909:4 (core_test+0x60aac3)
#7 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::~_Rb_tree() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:978:2 (core_test+0x60aa38)
#8 std::map<unsigned int, std::shared_ptr<nano::stat_entry>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::~map() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_map.h:300:22 (core_test+0x60a9e8)
#9 nano::stat::~stat() /root/nano-node/nano/lib/stats.hpp:215:7 (core_test+0x5fe9c9)
#10 nano::node::~node() /root/nano-node/nano/node/node.cpp:491:1 (core_test+0xe9affc)
#11 void __gnu_cxx::new_allocator<nano::node>::destroy<nano::node>(nano::node*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:153:10 (core_test+0x865484)
#12 void std::allocator_traits<std::allocator<nano::node> >::destroy<nano::node>(std::allocator<nano::node>&, nano::node*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:497:8 (core_test+0x8653e8)
#13 std::_Sp_counted_ptr_inplace<nano::node, std::allocator<nano::node>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:557:2 (core_test+0x86503f)
#14 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:155:6 (core_test+0x525545)
#15 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:730:11 (core_test+0x5254c8)
#16 std::__shared_ptr<nano::node, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:1169:31 (core_test+0x52545c)
#17 std::shared_ptr<nano::node>::~shared_ptr() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:103:11 (core_test+0x51ef58)
#18 nano::node::start()::$_16::~$_16() /root/nano-node/nano/node/node.cpp:796:76 (core_test+0xea2808)
#19 std::_Function_base::_Base_manager<nano::node::start()::$_16>::_M_destroy(std::_Any_data&, std::integral_constant<bool, false>) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:191:4 (core_test+0xf0f0a2)
#20 std::_Function_base::_Base_manager<nano::node::start()::$_16>::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:215:8 (core_test+0xf0ecf1)
#21 std::_Function_base::~_Function_base() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:260:2 (core_test+0x527952)
#22 std::function<void ()>::~function() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:128:11 (core_test+0x9d1598)
#23 nano::operation::~operation() /root/nano-node/nano/node/node.hpp:43:7 (core_test+0xf152cc)
#24 void std::_Destroy<nano::operation>(nano::operation*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:98:19 (core_test+0xf19c98)
#25 void std::_Destroy_aux<false>::__destroy<nano::operation*>(nano::operation*, nano::operation*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:108:6 (core_test+0xf19c4a)
#26 void std::_Destroy<nano::operation*>(nano::operation*, nano::operation*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:136:7 (core_test+0xf19bd8)
#27 void std::_Destroy<nano::operation*, nano::operation>(nano::operation*, nano::operation*, std::allocator<nano::operation>&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:206:7 (core_test+0xf19a74)
#28 std::vector<nano::operation, std::allocator<nano::operation> >::~vector() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_vector.h:677:2 (core_test+0xf199e7)
#29 std::priority_queue<nano::operation, std::vector<nano::operation, std::allocator<nano::operation> >, std::greater<nano::operation> >::~priority_queue() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_queue.h:443:11 (core_test+0xf14eb8)
#30 nano::alarm::~alarm() /root/nano-node/nano/node/node.cpp:82:1 (core_test+0xe96587)
#31 nano::system::~system() /root/nano-node/nano/node/testing.cpp:141:1 (core_test+0xf8b1fa)
#32 network_send_node_id_handshake_Test::TestBody() /root/nano-node/nano/core_test/network.cpp:102:1 (core_test+0x7c292d)
#33 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11a7f16)
#34 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1183d7e)
#35 testing::Test::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2517:5 (core_test+0x1156ede)
#36 testing::TestInfo::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2693:11 (core_test+0x1158146)
#37 testing::TestCase::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2811:28 (core_test+0x1158b87)
#38 testing::internal::UnitTestImpl::RunAllTests() /root/nano-node/gtest/googletest/src/gtest.cc:5177:43 (core_test+0x1169e54)
#39 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11acad6)
#40 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1187bbe)
#41 testing::UnitTest::Run() /root/nano-node/gtest/googletest/src/gtest.cc:4786:10 (core_test+0x11698cb)
#42 RUN_ALL_TESTS() /root/nano-node/gtest/googletest/include/gtest/gtest.h:2341:46 (core_test+0x50baa7)
#43 main /root/nano-node/nano/core_test/core_test_main.cc:17:13 (core_test+0x50ae36)
Previous read of size 4 at 0x7b1000002360 by thread T4 (mutexes: write M937):
#0 std::less<unsigned int>::operator()(unsigned int const&, unsigned int const&) const /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_function.h:386:16 (core_test+0x12409aa)
#1 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_lower_bound(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*, std::_Rb_tree_node_base*, unsigned int const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:1925:7 (core_test+0x1240844)
#2 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::find(unsigned int const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:2553:22 (core_test+0x12406dc)
#3 std::map<unsigned int, std::shared_ptr<nano::stat_entry>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::find(unsigned int const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_map.h:1169:21 (core_test+0x123d768)
#4 nano::stat::get_entry_impl(unsigned int, unsigned long, unsigned long) /root/nano-node/nano/lib/stats.cpp:164:23 (core_test+0x123adc6)
#5 nano::stat::update(unsigned int, unsigned long) /root/nano-node/nano/lib/stats.cpp:263:14 (core_test+0x123cad7)
#6 nano::stat::add(nano::stat::type, nano::stat::detail, nano::stat::dir, unsigned long, bool) /root/nano-node/nano/lib/stats.hpp:396:4 (core_test+0x957604)
#7 nano::stat::inc(nano::stat::type, nano::stat::detail, nano::stat::dir) /root/nano-node/nano/lib/stats.hpp:367:3 (core_test+0x93f3c6)
#8 (anonymous namespace)::network_message_visitor::node_id_handshake(nano::node_id_handshake const&) /root/nano-node/nano/node/network.cpp:520:14 (core_test+0xe5b8d9)
#9 nano::node_id_handshake::visit(nano::message_visitor&) const /root/nano-node/nano/node/common.cpp:1037:12 (core_test+0xcad0ff)
#10 nano::network::process_message(nano::message const&, std::shared_ptr<nano::transport::channel>) /root/nano-node/nano/node/network.cpp:530:12 (core_test+0xe55b62)
#11 (anonymous namespace)::udp_message_visitor::message(nano::message const&) /root/nano-node/nano/node/transport/udp.cpp:466:17 (core_test+0xfcc47b)
#12 (anonymous namespace)::udp_message_visitor::node_id_handshake(nano::node_id_handshake const&) /root/nano-node/nano/node/transport/udp.cpp:456:3 (core_test+0xfcc215)
#13 nano::message_parser::deserialize_node_id_handshake(std::basic_streambuf<unsigned char, std::char_traits<unsigned char> >&, nano::message_header const&) /root/nano-node/nano/node/common.cpp:424:11 (core_test+0xca8d81)
#14 nano::message_parser::deserialize_buffer(unsigned char const*, unsigned long) /root/nano-node/nano/node/common.cpp:315:7 (core_test+0xca8161)
#15 nano::transport::udp_channels::receive_action(nano::message_buffer*) /root/nano-node/nano/node/transport/udp.cpp:493:10 (core_test+0xfc8d11)
#16 nano::transport::udp_channels::process_packets() /root/nano-node/nano/node/transport/udp.cpp:564:3 (core_test+0xfc9444)
#17 nano::network::network(nano::node&, unsigned short)::$_1::operator()() const /root/nano-node/nano/node/network.cpp:23:18 (core_test+0xe5c3e9)
#18 boost::detail::thread_data<nano::network::network(nano::node&, unsigned short)::$_1>::run() /usr/include/boost/thread/detail/thread.hpp:117:17 (core_test+0xe5c34f)
#19 thread_proxy <null> (core_test+0x1540074)
Mutex M937 (0x7ba0000072b0) created at:
#0 pthread_mutex_lock <null> (core_test+0x49ba9e)
#1 __gthread_mutex_lock(pthread_mutex_t*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9/bits/gthr-default.h:749:12 (core_test+0x51e1a6)
#2 std::mutex::lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_mutex.h:100:17 (core_test+0x527d58)
#3 std::unique_lock<std::mutex>::lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_lock.h:141:17 (core_test+0x66b851)
#4 std::unique_lock<std::mutex>::unique_lock(std::mutex&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_lock.h:71:2 (core_test+0x66b323)
#5 nano::stat::update(unsigned int, unsigned long) /root/nano-node/nano/lib/stats.cpp:262:31 (core_test+0x123ca71)
#6 nano::stat::add(nano::stat::type, nano::stat::detail, nano::stat::dir, unsigned long, bool) /root/nano-node/nano/lib/stats.hpp:391:3 (core_test+0x9575cd)
#7 nano::stat::inc(nano::stat::type, nano::stat::detail, nano::stat::dir) /root/nano-node/nano/lib/stats.hpp:367:3 (core_test+0x93f3c6)
#8 nano::bootstrap_initiator::bootstrap() /root/nano-node/nano/node/bootstrap.cpp:1656:14 (core_test+0xc2acdc)
#9 nano::node::ongoing_bootstrap() /root/nano-node/nano/node/node.cpp:910:22 (core_test+0xea134b)
#10 nano::node::start() /root/nano-node/nano/node/node.cpp:772:3 (core_test+0xea0964)
#11 nano::system::add_node(nano::node_config const&, bool, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:31:8 (core_test+0xf89fb4)
#12 nano::system::system(unsigned short, unsigned short, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:118:17 (core_test+0xf8afe9)
#13 network_send_node_id_handshake_Test::TestBody() /root/nano-node/nano/core_test/network.cpp:71:15 (core_test+0x7c0103)
#14 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11a7f16)
#15 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1183d7e)
#16 testing::Test::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2517:5 (core_test+0x1156ede)
#17 testing::TestInfo::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2693:11 (core_test+0x1158146)
#18 testing::TestCase::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2811:28 (core_test+0x1158b87)
#19 testing::internal::UnitTestImpl::RunAllTests() /root/nano-node/gtest/googletest/src/gtest.cc:5177:43 (core_test+0x1169e54)
#20 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11acad6)
#21 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1187bbe)
#22 testing::UnitTest::Run() /root/nano-node/gtest/googletest/src/gtest.cc:4786:10 (core_test+0x11698cb)
#23 RUN_ALL_TESTS() /root/nano-node/gtest/googletest/include/gtest/gtest.h:2341:46 (core_test+0x50baa7)
#24 main /root/nano-node/nano/core_test/core_test_main.cc:17:13 (core_test+0x50ae36)
Thread T4 'Pkt processing' (tid=12936, finished) created by main thread at:
#0 pthread_create <null> (core_test+0x47f8d5)
#1 boost::thread::start_thread_noexcept(boost::thread_attributes const&) <null> (core_test+0x153e859)
#2 boost::thread::thread<nano::network::network(nano::node&, unsigned short)::$_1>(boost::thread_attributes const&, nano::network::network(nano::node&, unsigned short)::$_1&&) /usr/include/boost/thread/detail/thread.hpp:274:13 (core_test+0xe50d50)
#3 nano::network::network(nano::node&, unsigned short) /root/nano-node/nano/node/network.cpp:19:40 (core_test+0xe50aa1)
#4 nano::node::node(nano::node_init&, boost::asio::io_context&, boost::filesystem::path const&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool) /root/nano-node/nano/node/node.cpp:211:1 (core_test+0xe98048)
#5 void __gnu_cxx::new_allocator<nano::node>::construct<nano::node, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(nano::node*, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:147:23 (core_test+0xf96418)
#6 void std::allocator_traits<std::allocator<nano::node> >::construct<nano::node, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::allocator<nano::node>&, nano::node*, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:484:8 (core_test+0xf96225)
#7 std::_Sp_counted_ptr_inplace<nano::node, std::allocator<nano::node>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:548:4 (core_test+0xf96059)
#8 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<nano::node, std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(nano::node*&, std::_Sp_alloc_shared_tag<std::allocator<nano::node> >, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:680:6 (core_test+0xf95d49)
#9 std::__shared_ptr<nano::node, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::_Sp_alloc_shared_tag<std::allocator<nano::node> >, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:1344:14 (core_test+0xf95adf)
#10 std::shared_ptr<nano::node>::shared_ptr<std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::_Sp_alloc_shared_tag<std::allocator<nano::node> >, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:359:4 (core_test+0xf958f6)
#11 std::shared_ptr<nano::node> std::allocate_shared<nano::node, std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::allocator<nano::node> const&, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:701:14 (core_test+0xf956ab)
#12 std::shared_ptr<nano::node> std::make_shared<nano::node, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:717:14 (core_test+0xf9381f)
#13 nano::system::add_node(nano::node_config const&, bool, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:29:13 (core_test+0xf89f20)
#14 nano::system::system(unsigned short, unsigned short, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:118:17 (core_test+0xf8afe9)
#15 network_send_node_id_handshake_Test::TestBody() /root/nano-node/nano/core_test/network.cpp:71:15 (core_test+0x7c0103)
#16 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11a7f16)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1183d7e)
#18 testing::Test::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2517:5 (core_test+0x1156ede)
#19 testing::TestInfo::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2693:11 (core_test+0x1158146)
#20 testing::TestCase::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2811:28 (core_test+0x1158b87)
#21 testing::internal::UnitTestImpl::RunAllTests() /root/nano-node/gtest/googletest/src/gtest.cc:5177:43 (core_test+0x1169e54)
#22 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11acad6)
#23 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1187bbe)
#24 testing::UnitTest::Run() /root/nano-node/gtest/googletest/src/gtest.cc:4786:10 (core_test+0x11698cb)
#25 RUN_ALL_TESTS() /root/nano-node/gtest/googletest/include/gtest/gtest.h:2341:46 (core_test+0x50baa7)
#26 main /root/nano-node/nano/core_test/core_test_main.cc:17:13 (core_test+0x50ae36)
SUMMARY: ThreadSanitizer: data race (/root/nano-node/build/core_test+0x50957d) in operator delete(void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=12931)
Write of size 8 at 0x7b1000002b10 by main thread:
#0 operator delete(void*) <null> (core_test+0x50957d)
#1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::deallocate(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:128:2 (core_test+0x60b0b0)
#2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > > >::deallocate(std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >&, std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:470:13 (core_test+0x60b058)
#3 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_put_node(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:584:9 (core_test+0x60ad95)
#4 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_drop_node(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:651:2 (core_test+0x60acc9)
#5 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_erase(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:1911:4 (core_test+0x60aae5)
#6 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::~_Rb_tree() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:978:2 (core_test+0x60aa38)
#7 std::map<unsigned int, std::shared_ptr<nano::stat_entry>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::~map() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_map.h:300:22 (core_test+0x60a9e8)
#8 nano::stat::~stat() /root/nano-node/nano/lib/stats.hpp:215:7 (core_test+0x5fe9c9)
#9 nano::node::~node() /root/nano-node/nano/node/node.cpp:491:1 (core_test+0xe9affc)
#10 void __gnu_cxx::new_allocator<nano::node>::destroy<nano::node>(nano::node*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:153:10 (core_test+0x865484)
#11 void std::allocator_traits<std::allocator<nano::node> >::destroy<nano::node>(std::allocator<nano::node>&, nano::node*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:497:8 (core_test+0x8653e8)
#12 std::_Sp_counted_ptr_inplace<nano::node, std::allocator<nano::node>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:557:2 (core_test+0x86503f)
#13 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:155:6 (core_test+0x525545)
#14 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:730:11 (core_test+0x5254c8)
#15 std::__shared_ptr<nano::node, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:1169:31 (core_test+0x52545c)
#16 std::shared_ptr<nano::node>::~shared_ptr() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:103:11 (core_test+0x51ef58)
#17 nano::node::start()::$_16::~$_16() /root/nano-node/nano/node/node.cpp:796:76 (core_test+0xea2808)
#18 std::_Function_base::_Base_manager<nano::node::start()::$_16>::_M_destroy(std::_Any_data&, std::integral_constant<bool, false>) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:191:4 (core_test+0xf0f0a2)
#19 std::_Function_base::_Base_manager<nano::node::start()::$_16>::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:215:8 (core_test+0xf0ecf1)
#20 std::_Function_base::~_Function_base() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:260:2 (core_test+0x527952)
#21 std::function<void ()>::~function() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:128:11 (core_test+0x9d1598)
#22 nano::operation::~operation() /root/nano-node/nano/node/node.hpp:43:7 (core_test+0xf152cc)
#23 void std::_Destroy<nano::operation>(nano::operation*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:98:19 (core_test+0xf19c98)
#24 void std::_Destroy_aux<false>::__destroy<nano::operation*>(nano::operation*, nano::operation*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:108:6 (core_test+0xf19c4a)
#25 void std::_Destroy<nano::operation*>(nano::operation*, nano::operation*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:136:7 (core_test+0xf19bd8)
#26 void std::_Destroy<nano::operation*, nano::operation>(nano::operation*, nano::operation*, std::allocator<nano::operation>&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:206:7 (core_test+0xf19a74)
#27 std::vector<nano::operation, std::allocator<nano::operation> >::~vector() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_vector.h:677:2 (core_test+0xf199e7)
#28 std::priority_queue<nano::operation, std::vector<nano::operation, std::allocator<nano::operation> >, std::greater<nano::operation> >::~priority_queue() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_queue.h:443:11 (core_test+0xf14eb8)
#29 nano::alarm::~alarm() /root/nano-node/nano/node/node.cpp:82:1 (core_test+0xe96587)
#30 nano::system::~system() /root/nano-node/nano/node/testing.cpp:141:1 (core_test+0xf8b1fa)
#31 network_send_node_id_handshake_Test::TestBody() /root/nano-node/nano/core_test/network.cpp:102:1 (core_test+0x7c292d)
#32 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11a7f16)
#33 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1183d7e)
#34 testing::Test::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2517:5 (core_test+0x1156ede)
#35 testing::TestInfo::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2693:11 (core_test+0x1158146)
#36 testing::TestCase::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2811:28 (core_test+0x1158b87)
#37 testing::internal::UnitTestImpl::RunAllTests() /root/nano-node/gtest/googletest/src/gtest.cc:5177:43 (core_test+0x1169e54)
#38 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11acad6)
#39 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1187bbe)
#40 testing::UnitTest::Run() /root/nano-node/gtest/googletest/src/gtest.cc:4786:10 (core_test+0x11698cb)
#41 RUN_ALL_TESTS() /root/nano-node/gtest/googletest/include/gtest/gtest.h:2341:46 (core_test+0x50baa7)
#42 main /root/nano-node/nano/core_test/core_test_main.cc:17:13 (core_test+0x50ae36)
Previous read of size 8 at 0x7b1000002b10 by thread T4 (mutexes: write M937):
#0 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_S_left(std::_Rb_tree_node_base*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:772:45 (core_test+0x60ac56)
#1 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_lower_bound(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*, std::_Rb_tree_node_base*, unsigned int const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:1926:21 (core_test+0x1240860)
#2 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::find(unsigned int const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:2553:22 (core_test+0x12406dc)
#3 std::map<unsigned int, std::shared_ptr<nano::stat_entry>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::find(unsigned int const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_map.h:1169:21 (core_test+0x123d768)
#4 nano::stat::get_entry_impl(unsigned int, unsigned long, unsigned long) /root/nano-node/nano/lib/stats.cpp:164:23 (core_test+0x123adc6)
#5 nano::stat::update(unsigned int, unsigned long) /root/nano-node/nano/lib/stats.cpp:263:14 (core_test+0x123cad7)
#6 nano::stat::add(nano::stat::type, nano::stat::detail, nano::stat::dir, unsigned long, bool) /root/nano-node/nano/lib/stats.hpp:391:3 (core_test+0x9575cd)
#7 nano::stat::add(nano::stat::type, nano::stat::dir, unsigned long) /root/nano-node/nano/lib/stats.hpp:373:3 (core_test+0x93f2ad)
#8 nano::transport::udp_channels::receive_action(nano::message_buffer*) /root/nano-node/nano/node/transport/udp.cpp:541:15 (core_test+0xfc909f)
#9 nano::transport::udp_channels::process_packets() /root/nano-node/nano/node/transport/udp.cpp:564:3 (core_test+0xfc9444)
#10 nano::network::network(nano::node&, unsigned short)::$_1::operator()() const /root/nano-node/nano/node/network.cpp:23:18 (core_test+0xe5c3e9)
#11 boost::detail::thread_data<nano::network::network(nano::node&, unsigned short)::$_1>::run() /usr/include/boost/thread/detail/thread.hpp:117:17 (core_test+0xe5c34f)
#12 thread_proxy <null> (core_test+0x1540074)
Mutex M937 (0x7ba0000072b0) created at:
#0 pthread_mutex_lock <null> (core_test+0x49ba9e)
#1 __gthread_mutex_lock(pthread_mutex_t*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9/bits/gthr-default.h:749:12 (core_test+0x51e1a6)
#2 std::mutex::lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_mutex.h:100:17 (core_test+0x527d58)
#3 std::unique_lock<std::mutex>::lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_lock.h:141:17 (core_test+0x66b851)
#4 std::unique_lock<std::mutex>::unique_lock(std::mutex&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_lock.h:71:2 (core_test+0x66b323)
#5 nano::stat::update(unsigned int, unsigned long) /root/nano-node/nano/lib/stats.cpp:262:31 (core_test+0x123ca71)
#6 nano::stat::add(nano::stat::type, nano::stat::detail, nano::stat::dir, unsigned long, bool) /root/nano-node/nano/lib/stats.hpp:391:3 (core_test+0x9575cd)
#7 nano::stat::inc(nano::stat::type, nano::stat::detail, nano::stat::dir) /root/nano-node/nano/lib/stats.hpp:367:3 (core_test+0x93f3c6)
#8 nano::bootstrap_initiator::bootstrap() /root/nano-node/nano/node/bootstrap.cpp:1656:14 (core_test+0xc2acdc)
#9 nano::node::ongoing_bootstrap() /root/nano-node/nano/node/node.cpp:910:22 (core_test+0xea134b)
#10 nano::node::start() /root/nano-node/nano/node/node.cpp:772:3 (core_test+0xea0964)
#11 nano::system::add_node(nano::node_config const&, bool, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:31:8 (core_test+0xf89fb4)
#12 nano::system::system(unsigned short, unsigned short, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:118:17 (core_test+0xf8afe9)
#13 network_send_node_id_handshake_Test::TestBody() /root/nano-node/nano/core_test/network.cpp:71:15 (core_test+0x7c0103)
#14 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11a7f16)
#15 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1183d7e)
#16 testing::Test::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2517:5 (core_test+0x1156ede)
#17 testing::TestInfo::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2693:11 (core_test+0x1158146)
#18 testing::TestCase::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2811:28 (core_test+0x1158b87)
#19 testing::internal::UnitTestImpl::RunAllTests() /root/nano-node/gtest/googletest/src/gtest.cc:5177:43 (core_test+0x1169e54)
#20 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11acad6)
#21 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1187bbe)
#22 testing::UnitTest::Run() /root/nano-node/gtest/googletest/src/gtest.cc:4786:10 (core_test+0x11698cb)
#23 RUN_ALL_TESTS() /root/nano-node/gtest/googletest/include/gtest/gtest.h:2341:46 (core_test+0x50baa7)
#24 main /root/nano-node/nano/core_test/core_test_main.cc:17:13 (core_test+0x50ae36)
Thread T4 'Pkt processing' (tid=12936, finished) created by main thread at:
#0 pthread_create <null> (core_test+0x47f8d5)
#1 boost::thread::start_thread_noexcept(boost::thread_attributes const&) <null> (core_test+0x153e859)
#2 boost::thread::thread<nano::network::network(nano::node&, unsigned short)::$_1>(boost::thread_attributes const&, nano::network::network(nano::node&, unsigned short)::$_1&&) /usr/include/boost/thread/detail/thread.hpp:274:13 (core_test+0xe50d50)
#3 nano::network::network(nano::node&, unsigned short) /root/nano-node/nano/node/network.cpp:19:40 (core_test+0xe50aa1)
#4 nano::node::node(nano::node_init&, boost::asio::io_context&, boost::filesystem::path const&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool) /root/nano-node/nano/node/node.cpp:211:1 (core_test+0xe98048)
#5 void __gnu_cxx::new_allocator<nano::node>::construct<nano::node, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(nano::node*, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:147:23 (core_test+0xf96418)
#6 void std::allocator_traits<std::allocator<nano::node> >::construct<nano::node, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::allocator<nano::node>&, nano::node*, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:484:8 (core_test+0xf96225)
#7 std::_Sp_counted_ptr_inplace<nano::node, std::allocator<nano::node>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:548:4 (core_test+0xf96059)
#8 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<nano::node, std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(nano::node*&, std::_Sp_alloc_shared_tag<std::allocator<nano::node> >, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:680:6 (core_test+0xf95d49)
#9 std::__shared_ptr<nano::node, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::_Sp_alloc_shared_tag<std::allocator<nano::node> >, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:1344:14 (core_test+0xf95adf)
#10 std::shared_ptr<nano::node>::shared_ptr<std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::_Sp_alloc_shared_tag<std::allocator<nano::node> >, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:359:4 (core_test+0xf958f6)
#11 std::shared_ptr<nano::node> std::allocate_shared<nano::node, std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::allocator<nano::node> const&, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:701:14 (core_test+0xf956ab)
#12 std::shared_ptr<nano::node> std::make_shared<nano::node, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:717:14 (core_test+0xf9381f)
#13 nano::system::add_node(nano::node_config const&, bool, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:29:13 (core_test+0xf89f20)
#14 nano::system::system(unsigned short, unsigned short, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:118:17 (core_test+0xf8afe9)
#15 network_send_node_id_handshake_Test::TestBody() /root/nano-node/nano/core_test/network.cpp:71:15 (core_test+0x7c0103)
#16 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11a7f16)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1183d7e)
#18 testing::Test::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2517:5 (core_test+0x1156ede)
#19 testing::TestInfo::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2693:11 (core_test+0x1158146)
#20 testing::TestCase::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2811:28 (core_test+0x1158b87)
#21 testing::internal::UnitTestImpl::RunAllTests() /root/nano-node/gtest/googletest/src/gtest.cc:5177:43 (core_test+0x1169e54)
#22 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11acad6)
#23 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1187bbe)
#24 testing::UnitTest::Run() /root/nano-node/gtest/googletest/src/gtest.cc:4786:10 (core_test+0x11698cb)
#25 RUN_ALL_TESTS() /root/nano-node/gtest/googletest/include/gtest/gtest.h:2341:46 (core_test+0x50baa7)
#26 main /root/nano-node/nano/core_test/core_test_main.cc:17:13 (core_test+0x50ae36)
SUMMARY: ThreadSanitizer: data race (/root/nano-node/build/core_test+0x50957d) in operator delete(void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=12931)
Write of size 8 at 0x7b1000002b20 by main thread:
#0 operator delete(void*) <null> (core_test+0x50957d)
#1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::deallocate(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:128:2 (core_test+0x60b0b0)
#2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > > >::deallocate(std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >&, std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:470:13 (core_test+0x60b058)
#3 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_put_node(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:584:9 (core_test+0x60ad95)
#4 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_drop_node(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:651:2 (core_test+0x60acc9)
#5 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_erase(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:1911:4 (core_test+0x60aae5)
#6 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::~_Rb_tree() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:978:2 (core_test+0x60aa38)
#7 std::map<unsigned int, std::shared_ptr<nano::stat_entry>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::~map() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_map.h:300:22 (core_test+0x60a9e8)
#8 nano::stat::~stat() /root/nano-node/nano/lib/stats.hpp:215:7 (core_test+0x5fe9c9)
#9 nano::node::~node() /root/nano-node/nano/node/node.cpp:491:1 (core_test+0xe9affc)
#10 void __gnu_cxx::new_allocator<nano::node>::destroy<nano::node>(nano::node*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:153:10 (core_test+0x865484)
#11 void std::allocator_traits<std::allocator<nano::node> >::destroy<nano::node>(std::allocator<nano::node>&, nano::node*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:497:8 (core_test+0x8653e8)
#12 std::_Sp_counted_ptr_inplace<nano::node, std::allocator<nano::node>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:557:2 (core_test+0x86503f)
#13 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:155:6 (core_test+0x525545)
#14 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:730:11 (core_test+0x5254c8)
#15 std::__shared_ptr<nano::node, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:1169:31 (core_test+0x52545c)
#16 std::shared_ptr<nano::node>::~shared_ptr() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:103:11 (core_test+0x51ef58)
#17 nano::node::start()::$_16::~$_16() /root/nano-node/nano/node/node.cpp:796:76 (core_test+0xea2808)
#18 std::_Function_base::_Base_manager<nano::node::start()::$_16>::_M_destroy(std::_Any_data&, std::integral_constant<bool, false>) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:191:4 (core_test+0xf0f0a2)
#19 std::_Function_base::_Base_manager<nano::node::start()::$_16>::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:215:8 (core_test+0xf0ecf1)
#20 std::_Function_base::~_Function_base() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:260:2 (core_test+0x527952)
#21 std::function<void ()>::~function() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:128:11 (core_test+0x9d1598)
#22 nano::operation::~operation() /root/nano-node/nano/node/node.hpp:43:7 (core_test+0xf152cc)
#23 void std::_Destroy<nano::operation>(nano::operation*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:98:19 (core_test+0xf19c98)
#24 void std::_Destroy_aux<false>::__destroy<nano::operation*>(nano::operation*, nano::operation*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:108:6 (core_test+0xf19c4a)
#25 void std::_Destroy<nano::operation*>(nano::operation*, nano::operation*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:136:7 (core_test+0xf19bd8)
#26 void std::_Destroy<nano::operation*, nano::operation>(nano::operation*, nano::operation*, std::allocator<nano::operation>&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:206:7 (core_test+0xf19a74)
#27 std::vector<nano::operation, std::allocator<nano::operation> >::~vector() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_vector.h:677:2 (core_test+0xf199e7)
#28 std::priority_queue<nano::operation, std::vector<nano::operation, std::allocator<nano::operation> >, std::greater<nano::operation> >::~priority_queue() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_queue.h:443:11 (core_test+0xf14eb8)
#29 nano::alarm::~alarm() /root/nano-node/nano/node/node.cpp:82:1 (core_test+0xe96587)
#30 nano::system::~system() /root/nano-node/nano/node/testing.cpp:141:1 (core_test+0xf8b1fa)
#31 network_send_node_id_handshake_Test::TestBody() /root/nano-node/nano/core_test/network.cpp:102:1 (core_test+0x7c292d)
#32 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11a7f16)
#33 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1183d7e)
#34 testing::Test::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2517:5 (core_test+0x1156ede)
#35 testing::TestInfo::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2693:11 (core_test+0x1158146)
#36 testing::TestCase::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2811:28 (core_test+0x1158b87)
#37 testing::internal::UnitTestImpl::RunAllTests() /root/nano-node/gtest/googletest/src/gtest.cc:5177:43 (core_test+0x1169e54)
#38 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11acad6)
#39 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1187bbe)
#40 testing::UnitTest::Run() /root/nano-node/gtest/googletest/src/gtest.cc:4786:10 (core_test+0x11698cb)
#41 RUN_ALL_TESTS() /root/nano-node/gtest/googletest/include/gtest/gtest.h:2341:46 (core_test+0x50baa7)
#42 main /root/nano-node/nano/core_test/core_test_main.cc:17:13 (core_test+0x50ae36)
Previous read of size 4 at 0x7b1000002b20 by thread T4 (mutexes: write M937):
#0 std::less<unsigned int>::operator()(unsigned int const&, unsigned int const&) const /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_function.h:386:16 (core_test+0x12409aa)
#1 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_lower_bound(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*, std::_Rb_tree_node_base*, unsigned int const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:1925:7 (core_test+0x1240844)
#2 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::find(unsigned int const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:2553:22 (core_test+0x12406dc)
#3 std::map<unsigned int, std::shared_ptr<nano::stat_entry>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::find(unsigned int const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_map.h:1169:21 (core_test+0x123d768)
#4 nano::stat::get_entry_impl(unsigned int, unsigned long, unsigned long) /root/nano-node/nano/lib/stats.cpp:164:23 (core_test+0x123adc6)
#5 nano::stat::update(unsigned int, unsigned long) /root/nano-node/nano/lib/stats.cpp:263:14 (core_test+0x123cad7)
#6 nano::stat::add(nano::stat::type, nano::stat::detail, nano::stat::dir, unsigned long, bool) /root/nano-node/nano/lib/stats.hpp:391:3 (core_test+0x9575cd)
#7 nano::stat::add(nano::stat::type, nano::stat::dir, unsigned long) /root/nano-node/nano/lib/stats.hpp:373:3 (core_test+0x93f2ad)
#8 nano::transport::udp_channels::receive_action(nano::message_buffer*) /root/nano-node/nano/node/transport/udp.cpp:541:15 (core_test+0xfc909f)
#9 nano::transport::udp_channels::process_packets() /root/nano-node/nano/node/transport/udp.cpp:564:3 (core_test+0xfc9444)
#10 nano::network::network(nano::node&, unsigned short)::$_1::operator()() const /root/nano-node/nano/node/network.cpp:23:18 (core_test+0xe5c3e9)
#11 boost::detail::thread_data<nano::network::network(nano::node&, unsigned short)::$_1>::run() /usr/include/boost/thread/detail/thread.hpp:117:17 (core_test+0xe5c34f)
#12 thread_proxy <null> (core_test+0x1540074)
Mutex M937 (0x7ba0000072b0) created at:
#0 pthread_mutex_lock <null> (core_test+0x49ba9e)
#1 __gthread_mutex_lock(pthread_mutex_t*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9/bits/gthr-default.h:749:12 (core_test+0x51e1a6)
#2 std::mutex::lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_mutex.h:100:17 (core_test+0x527d58)
#3 std::unique_lock<std::mutex>::lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_lock.h:141:17 (core_test+0x66b851)
#4 std::unique_lock<std::mutex>::unique_lock(std::mutex&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_lock.h:71:2 (core_test+0x66b323)
#5 nano::stat::update(unsigned int, unsigned long) /root/nano-node/nano/lib/stats.cpp:262:31 (core_test+0x123ca71)
#6 nano::stat::add(nano::stat::type, nano::stat::detail, nano::stat::dir, unsigned long, bool) /root/nano-node/nano/lib/stats.hpp:391:3 (core_test+0x9575cd)
#7 nano::stat::inc(nano::stat::type, nano::stat::detail, nano::stat::dir) /root/nano-node/nano/lib/stats.hpp:367:3 (core_test+0x93f3c6)
#8 nano::bootstrap_initiator::bootstrap() /root/nano-node/nano/node/bootstrap.cpp:1656:14 (core_test+0xc2acdc)
#9 nano::node::ongoing_bootstrap() /root/nano-node/nano/node/node.cpp:910:22 (core_test+0xea134b)
#10 nano::node::start() /root/nano-node/nano/node/node.cpp:772:3 (core_test+0xea0964)
#11 nano::system::add_node(nano::node_config const&, bool, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:31:8 (core_test+0xf89fb4)
#12 nano::system::system(unsigned short, unsigned short, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:118:17 (core_test+0xf8afe9)
#13 network_send_node_id_handshake_Test::TestBody() /root/nano-node/nano/core_test/network.cpp:71:15 (core_test+0x7c0103)
#14 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11a7f16)
#15 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1183d7e)
#16 testing::Test::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2517:5 (core_test+0x1156ede)
#17 testing::TestInfo::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2693:11 (core_test+0x1158146)
#18 testing::TestCase::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2811:28 (core_test+0x1158b87)
#19 testing::internal::UnitTestImpl::RunAllTests() /root/nano-node/gtest/googletest/src/gtest.cc:5177:43 (core_test+0x1169e54)
#20 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11acad6)
#21 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1187bbe)
#22 testing::UnitTest::Run() /root/nano-node/gtest/googletest/src/gtest.cc:4786:10 (core_test+0x11698cb)
#23 RUN_ALL_TESTS() /root/nano-node/gtest/googletest/include/gtest/gtest.h:2341:46 (core_test+0x50baa7)
#24 main /root/nano-node/nano/core_test/core_test_main.cc:17:13 (core_test+0x50ae36)
Thread T4 'Pkt processing' (tid=12936, finished) created by main thread at:
#0 pthread_create <null> (core_test+0x47f8d5)
#1 boost::thread::start_thread_noexcept(boost::thread_attributes const&) <null> (core_test+0x153e859)
#2 boost::thread::thread<nano::network::network(nano::node&, unsigned short)::$_1>(boost::thread_attributes const&, nano::network::network(nano::node&, unsigned short)::$_1&&) /usr/include/boost/thread/detail/thread.hpp:274:13 (core_test+0xe50d50)
#3 nano::network::network(nano::node&, unsigned short) /root/nano-node/nano/node/network.cpp:19:40 (core_test+0xe50aa1)
#4 nano::node::node(nano::node_init&, boost::asio::io_context&, boost::filesystem::path const&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool) /root/nano-node/nano/node/node.cpp:211:1 (core_test+0xe98048)
#5 void __gnu_cxx::new_allocator<nano::node>::construct<nano::node, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(nano::node*, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:147:23 (core_test+0xf96418)
#6 void std::allocator_traits<std::allocator<nano::node> >::construct<nano::node, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::allocator<nano::node>&, nano::node*, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:484:8 (core_test+0xf96225)
#7 std::_Sp_counted_ptr_inplace<nano::node, std::allocator<nano::node>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:548:4 (core_test+0xf96059)
#8 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<nano::node, std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(nano::node*&, std::_Sp_alloc_shared_tag<std::allocator<nano::node> >, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:680:6 (core_test+0xf95d49)
#9 std::__shared_ptr<nano::node, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::_Sp_alloc_shared_tag<std::allocator<nano::node> >, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:1344:14 (core_test+0xf95adf)
#10 std::shared_ptr<nano::node>::shared_ptr<std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::_Sp_alloc_shared_tag<std::allocator<nano::node> >, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:359:4 (core_test+0xf958f6)
#11 std::shared_ptr<nano::node> std::allocate_shared<nano::node, std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::allocator<nano::node> const&, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:701:14 (core_test+0xf956ab)
#12 std::shared_ptr<nano::node> std::make_shared<nano::node, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:717:14 (core_test+0xf9381f)
#13 nano::system::add_node(nano::node_config const&, bool, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:29:13 (core_test+0xf89f20)
#14 nano::system::system(unsigned short, unsigned short, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:118:17 (core_test+0xf8afe9)
#15 network_send_node_id_handshake_Test::TestBody() /root/nano-node/nano/core_test/network.cpp:71:15 (core_test+0x7c0103)
#16 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11a7f16)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1183d7e)
#18 testing::Test::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2517:5 (core_test+0x1156ede)
#19 testing::TestInfo::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2693:11 (core_test+0x1158146)
#20 testing::TestCase::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2811:28 (core_test+0x1158b87)
#21 testing::internal::UnitTestImpl::RunAllTests() /root/nano-node/gtest/googletest/src/gtest.cc:5177:43 (core_test+0x1169e54)
#22 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11acad6)
#23 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1187bbe)
#24 testing::UnitTest::Run() /root/nano-node/gtest/googletest/src/gtest.cc:4786:10 (core_test+0x11698cb)
#25 RUN_ALL_TESTS() /root/nano-node/gtest/googletest/include/gtest/gtest.h:2341:46 (core_test+0x50baa7)
#26 main /root/nano-node/nano/core_test/core_test_main.cc:17:13 (core_test+0x50ae36)
SUMMARY: ThreadSanitizer: data race (/root/nano-node/build/core_test+0x50957d) in operator delete(void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=12931)
Read of size 8 at 0x7b1000014098 by main thread:
#0 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_S_right(std::_Rb_tree_node_base*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:780:45 (core_test+0x60abf6)
#1 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_erase(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:1909:13 (core_test+0x60aab7)
#2 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_erase(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:1909:4 (core_test+0x60aac3)
#3 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::~_Rb_tree() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:978:2 (core_test+0x60aa38)
#4 std::map<unsigned int, std::shared_ptr<nano::stat_entry>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::~map() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_map.h:300:22 (core_test+0x60a9e8)
#5 nano::stat::~stat() /root/nano-node/nano/lib/stats.hpp:215:7 (core_test+0x5fe9c9)
#6 nano::node::~node() /root/nano-node/nano/node/node.cpp:491:1 (core_test+0xe9affc)
#7 void __gnu_cxx::new_allocator<nano::node>::destroy<nano::node>(nano::node*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:153:10 (core_test+0x865484)
#8 void std::allocator_traits<std::allocator<nano::node> >::destroy<nano::node>(std::allocator<nano::node>&, nano::node*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:497:8 (core_test+0x8653e8)
#9 std::_Sp_counted_ptr_inplace<nano::node, std::allocator<nano::node>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:557:2 (core_test+0x86503f)
#10 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:155:6 (core_test+0x525545)
#11 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:730:11 (core_test+0x5254c8)
#12 std::__shared_ptr<nano::node, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:1169:31 (core_test+0x52545c)
#13 std::shared_ptr<nano::node>::~shared_ptr() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:103:11 (core_test+0x51ef58)
#14 nano::node::start()::$_16::~$_16() /root/nano-node/nano/node/node.cpp:796:76 (core_test+0xea2808)
#15 std::_Function_base::_Base_manager<nano::node::start()::$_16>::_M_destroy(std::_Any_data&, std::integral_constant<bool, false>) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:191:4 (core_test+0xf0f0a2)
#16 std::_Function_base::_Base_manager<nano::node::start()::$_16>::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:215:8 (core_test+0xf0ecf1)
#17 std::_Function_base::~_Function_base() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:260:2 (core_test+0x527952)
#18 std::function<void ()>::~function() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:128:11 (core_test+0x9d1598)
#19 nano::operation::~operation() /root/nano-node/nano/node/node.hpp:43:7 (core_test+0xf152cc)
#20 void std::_Destroy<nano::operation>(nano::operation*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:98:19 (core_test+0xf19c98)
#21 void std::_Destroy_aux<false>::__destroy<nano::operation*>(nano::operation*, nano::operation*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:108:6 (core_test+0xf19c4a)
#22 void std::_Destroy<nano::operation*>(nano::operation*, nano::operation*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:136:7 (core_test+0xf19bd8)
#23 void std::_Destroy<nano::operation*, nano::operation>(nano::operation*, nano::operation*, std::allocator<nano::operation>&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:206:7 (core_test+0xf19a74)
#24 std::vector<nano::operation, std::allocator<nano::operation> >::~vector() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_vector.h:677:2 (core_test+0xf199e7)
#25 std::priority_queue<nano::operation, std::vector<nano::operation, std::allocator<nano::operation> >, std::greater<nano::operation> >::~priority_queue() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_queue.h:443:11 (core_test+0xf14eb8)
#26 nano::alarm::~alarm() /root/nano-node/nano/node/node.cpp:82:1 (core_test+0xe96587)
#27 nano::system::~system() /root/nano-node/nano/node/testing.cpp:141:1 (core_test+0xf8b1fa)
#28 network_send_node_id_handshake_Test::TestBody() /root/nano-node/nano/core_test/network.cpp:102:1 (core_test+0x7c292d)
#29 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11a7f16)
#30 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1183d7e)
#31 testing::Test::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2517:5 (core_test+0x1156ede)
#32 testing::TestInfo::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2693:11 (core_test+0x1158146)
#33 testing::TestCase::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2811:28 (core_test+0x1158b87)
#34 testing::internal::UnitTestImpl::RunAllTests() /root/nano-node/gtest/googletest/src/gtest.cc:5177:43 (core_test+0x1169e54)
#35 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11acad6)
#36 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1187bbe)
#37 testing::UnitTest::Run() /root/nano-node/gtest/googletest/src/gtest.cc:4786:10 (core_test+0x11698cb)
#38 RUN_ALL_TESTS() /root/nano-node/gtest/googletest/include/gtest/gtest.h:2341:46 (core_test+0x50baa7)
#39 main /root/nano-node/nano/core_test/core_test_main.cc:17:13 (core_test+0x50ae36)
Previous write of size 8 at 0x7b1000014098 by thread T4 (mutexes: write M937):
#0 operator new(unsigned long) <null> (core_test+0x508f4d)
#1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::allocate(unsigned long, void const*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:114:27 (core_test+0x124434c)
#2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >&, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:444:20 (core_test+0x12442ac)
#3 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_get_node() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:580:16 (core_test+0x1244135)
#4 std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >* std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_create_node<std::pair<unsigned int, std::shared_ptr<nano::stat_entry> > >(std::pair<unsigned int, std::shared_ptr<nano::stat_entry> >&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:630:23 (core_test+0x1243b78)
#5 std::pair<std::_Rb_tree_iterator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, bool> std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_emplace_unique<std::pair<unsigned int, std::shared_ptr<nano::stat_entry> > >(std::pair<unsigned int, std::shared_ptr<nano::stat_entry> >&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:2404:19 (core_test+0x12438ee)
#6 std::enable_if<is_constructible<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::pair<unsigned int, std::shared_ptr<nano::stat_entry> > >::value, std::pair<std::_Rb_tree_iterator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, bool> >::type std::map<unsigned int, std::shared_ptr<nano::stat_entry>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::insert<std::pair<unsigned int, std::shared_ptr<nano::stat_entry> > >(std::pair<unsigned int, std::shared_ptr<nano::stat_entry> >&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_map.h:815:16 (core_test+0x123d8cb)
#7 nano::stat::get_entry_impl(unsigned int, unsigned long, unsigned long) /root/nano-node/nano/lib/stats.cpp:167:17 (core_test+0x123ae5f)
#8 nano::stat::update(unsigned int, unsigned long) /root/nano-node/nano/lib/stats.cpp:263:14 (core_test+0x123cad7)
#9 nano::stat::add(nano::stat::type, nano::stat::detail, nano::stat::dir, unsigned long, bool) /root/nano-node/nano/lib/stats.hpp:396:4 (core_test+0x957604)
#10 nano::stat::inc(nano::stat::type, nano::stat::detail, nano::stat::dir) /root/nano-node/nano/lib/stats.hpp:367:3 (core_test+0x93f3c6)
#11 (anonymous namespace)::network_message_visitor::node_id_handshake(nano::node_id_handshake const&) /root/nano-node/nano/node/network.cpp:520:14 (core_test+0xe5b8d9)
#12 nano::node_id_handshake::visit(nano::message_visitor&) const /root/nano-node/nano/node/common.cpp:1037:12 (core_test+0xcad0ff)
#13 nano::network::process_message(nano::message const&, std::shared_ptr<nano::transport::channel>) /root/nano-node/nano/node/network.cpp:530:12 (core_test+0xe55b62)
#14 (anonymous namespace)::udp_message_visitor::message(nano::message const&) /root/nano-node/nano/node/transport/udp.cpp:466:17 (core_test+0xfcc47b)
#15 (anonymous namespace)::udp_message_visitor::node_id_handshake(nano::node_id_handshake const&) /root/nano-node/nano/node/transport/udp.cpp:456:3 (core_test+0xfcc215)
#16 nano::message_parser::deserialize_node_id_handshake(std::basic_streambuf<unsigned char, std::char_traits<unsigned char> >&, nano::message_header const&) /root/nano-node/nano/node/common.cpp:424:11 (core_test+0xca8d81)
#17 nano::message_parser::deserialize_buffer(unsigned char const*, unsigned long) /root/nano-node/nano/node/common.cpp:315:7 (core_test+0xca8161)
#18 nano::transport::udp_channels::receive_action(nano::message_buffer*) /root/nano-node/nano/node/transport/udp.cpp:493:10 (core_test+0xfc8d11)
#19 nano::transport::udp_channels::process_packets() /root/nano-node/nano/node/transport/udp.cpp:564:3 (core_test+0xfc9444)
#20 nano::network::network(nano::node&, unsigned short)::$_1::operator()() const /root/nano-node/nano/node/network.cpp:23:18 (core_test+0xe5c3e9)
#21 boost::detail::thread_data<nano::network::network(nano::node&, unsigned short)::$_1>::run() /usr/include/boost/thread/detail/thread.hpp:117:17 (core_test+0xe5c34f)
#22 thread_proxy <null> (core_test+0x1540074)
Location is heap block of size 56 at 0x7b1000014080 allocated by thread T4:
#0 operator new(unsigned long) <null> (core_test+0x508f4d)
#1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::allocate(unsigned long, void const*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:114:27 (core_test+0x124434c)
#2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >&, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:444:20 (core_test+0x12442ac)
#3 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_get_node() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:580:16 (core_test+0x1244135)
#4 std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >* std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_create_node<std::pair<unsigned int, std::shared_ptr<nano::stat_entry> > >(std::pair<unsigned int, std::shared_ptr<nano::stat_entry> >&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:630:23 (core_test+0x1243b78)
#5 std::pair<std::_Rb_tree_iterator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, bool> std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_emplace_unique<std::pair<unsigned int, std::shared_ptr<nano::stat_entry> > >(std::pair<unsigned int, std::shared_ptr<nano::stat_entry> >&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:2404:19 (core_test+0x12438ee)
#6 std::enable_if<is_constructible<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::pair<unsigned int, std::shared_ptr<nano::stat_entry> > >::value, std::pair<std::_Rb_tree_iterator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, bool> >::type std::map<unsigned int, std::shared_ptr<nano::stat_entry>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::insert<std::pair<unsigned int, std::shared_ptr<nano::stat_entry> > >(std::pair<unsigned int, std::shared_ptr<nano::stat_entry> >&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_map.h:815:16 (core_test+0x123d8cb)
#7 nano::stat::get_entry_impl(unsigned int, unsigned long, unsigned long) /root/nano-node/nano/lib/stats.cpp:167:17 (core_test+0x123ae5f)
#8 nano::stat::update(unsigned int, unsigned long) /root/nano-node/nano/lib/stats.cpp:263:14 (core_test+0x123cad7)
#9 nano::stat::add(nano::stat::type, nano::stat::detail, nano::stat::dir, unsigned long, bool) /root/nano-node/nano/lib/stats.hpp:396:4 (core_test+0x957604)
#10 nano::stat::inc(nano::stat::type, nano::stat::detail, nano::stat::dir) /root/nano-node/nano/lib/stats.hpp:367:3 (core_test+0x93f3c6)
#11 (anonymous namespace)::network_message_visitor::node_id_handshake(nano::node_id_handshake const&) /root/nano-node/nano/node/network.cpp:520:14 (core_test+0xe5b8d9)
#12 nano::node_id_handshake::visit(nano::message_visitor&) const /root/nano-node/nano/node/common.cpp:1037:12 (core_test+0xcad0ff)
#13 nano::network::process_message(nano::message const&, std::shared_ptr<nano::transport::channel>) /root/nano-node/nano/node/network.cpp:530:12 (core_test+0xe55b62)
#14 (anonymous namespace)::udp_message_visitor::message(nano::message const&) /root/nano-node/nano/node/transport/udp.cpp:466:17 (core_test+0xfcc47b)
#15 (anonymous namespace)::udp_message_visitor::node_id_handshake(nano::node_id_handshake const&) /root/nano-node/nano/node/transport/udp.cpp:456:3 (core_test+0xfcc215)
#16 nano::message_parser::deserialize_node_id_handshake(std::basic_streambuf<unsigned char, std::char_traits<unsigned char> >&, nano::message_header const&) /root/nano-node/nano/node/common.cpp:424:11 (core_test+0xca8d81)
#17 nano::message_parser::deserialize_buffer(unsigned char const*, unsigned long) /root/nano-node/nano/node/common.cpp:315:7 (core_test+0xca8161)
#18 nano::transport::udp_channels::receive_action(nano::message_buffer*) /root/nano-node/nano/node/transport/udp.cpp:493:10 (core_test+0xfc8d11)
#19 nano::transport::udp_channels::process_packets() /root/nano-node/nano/node/transport/udp.cpp:564:3 (core_test+0xfc9444)
#20 nano::network::network(nano::node&, unsigned short)::$_1::operator()() const /root/nano-node/nano/node/network.cpp:23:18 (core_test+0xe5c3e9)
#21 boost::detail::thread_data<nano::network::network(nano::node&, unsigned short)::$_1>::run() /usr/include/boost/thread/detail/thread.hpp:117:17 (core_test+0xe5c34f)
#22 thread_proxy <null> (core_test+0x1540074)
Mutex M937 (0x7ba0000072b0) created at:
#0 pthread_mutex_lock <null> (core_test+0x49ba9e)
#1 __gthread_mutex_lock(pthread_mutex_t*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9/bits/gthr-default.h:749:12 (core_test+0x51e1a6)
#2 std::mutex::lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_mutex.h:100:17 (core_test+0x527d58)
#3 std::unique_lock<std::mutex>::lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_lock.h:141:17 (core_test+0x66b851)
#4 std::unique_lock<std::mutex>::unique_lock(std::mutex&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_lock.h:71:2 (core_test+0x66b323)
#5 nano::stat::update(unsigned int, unsigned long) /root/nano-node/nano/lib/stats.cpp:262:31 (core_test+0x123ca71)
#6 nano::stat::add(nano::stat::type, nano::stat::detail, nano::stat::dir, unsigned long, bool) /root/nano-node/nano/lib/stats.hpp:391:3 (core_test+0x9575cd)
#7 nano::stat::inc(nano::stat::type, nano::stat::detail, nano::stat::dir) /root/nano-node/nano/lib/stats.hpp:367:3 (core_test+0x93f3c6)
#8 nano::bootstrap_initiator::bootstrap() /root/nano-node/nano/node/bootstrap.cpp:1656:14 (core_test+0xc2acdc)
#9 nano::node::ongoing_bootstrap() /root/nano-node/nano/node/node.cpp:910:22 (core_test+0xea134b)
#10 nano::node::start() /root/nano-node/nano/node/node.cpp:772:3 (core_test+0xea0964)
#11 nano::system::add_node(nano::node_config const&, bool, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:31:8 (core_test+0xf89fb4)
#12 nano::system::system(unsigned short, unsigned short, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:118:17 (core_test+0xf8afe9)
#13 network_send_node_id_handshake_Test::TestBody() /root/nano-node/nano/core_test/network.cpp:71:15 (core_test+0x7c0103)
#14 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11a7f16)
#15 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1183d7e)
#16 testing::Test::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2517:5 (core_test+0x1156ede)
#17 testing::TestInfo::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2693:11 (core_test+0x1158146)
#18 testing::TestCase::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2811:28 (core_test+0x1158b87)
#19 testing::internal::UnitTestImpl::RunAllTests() /root/nano-node/gtest/googletest/src/gtest.cc:5177:43 (core_test+0x1169e54)
#20 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11acad6)
#21 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1187bbe)
#22 testing::UnitTest::Run() /root/nano-node/gtest/googletest/src/gtest.cc:4786:10 (core_test+0x11698cb)
#23 RUN_ALL_TESTS() /root/nano-node/gtest/googletest/include/gtest/gtest.h:2341:46 (core_test+0x50baa7)
#24 main /root/nano-node/nano/core_test/core_test_main.cc:17:13 (core_test+0x50ae36)
Thread T4 'Pkt processing' (tid=12936, finished) created by main thread at:
#0 pthread_create <null> (core_test+0x47f8d5)
#1 boost::thread::start_thread_noexcept(boost::thread_attributes const&) <null> (core_test+0x153e859)
#2 boost::thread::thread<nano::network::network(nano::node&, unsigned short)::$_1>(boost::thread_attributes const&, nano::network::network(nano::node&, unsigned short)::$_1&&) /usr/include/boost/thread/detail/thread.hpp:274:13 (core_test+0xe50d50)
#3 nano::network::network(nano::node&, unsigned short) /root/nano-node/nano/node/network.cpp:19:40 (core_test+0xe50aa1)
#4 nano::node::node(nano::node_init&, boost::asio::io_context&, boost::filesystem::path const&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool) /root/nano-node/nano/node/node.cpp:211:1 (core_test+0xe98048)
#5 void __gnu_cxx::new_allocator<nano::node>::construct<nano::node, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(nano::node*, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:147:23 (core_test+0xf96418)
#6 void std::allocator_traits<std::allocator<nano::node> >::construct<nano::node, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::allocator<nano::node>&, nano::node*, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:484:8 (core_test+0xf96225)
#7 std::_Sp_counted_ptr_inplace<nano::node, std::allocator<nano::node>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:548:4 (core_test+0xf96059)
#8 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<nano::node, std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(nano::node*&, std::_Sp_alloc_shared_tag<std::allocator<nano::node> >, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:680:6 (core_test+0xf95d49)
#9 std::__shared_ptr<nano::node, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::_Sp_alloc_shared_tag<std::allocator<nano::node> >, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:1344:14 (core_test+0xf95adf)
#10 std::shared_ptr<nano::node>::shared_ptr<std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::_Sp_alloc_shared_tag<std::allocator<nano::node> >, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:359:4 (core_test+0xf958f6)
#11 std::shared_ptr<nano::node> std::allocate_shared<nano::node, std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::allocator<nano::node> const&, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:701:14 (core_test+0xf956ab)
#12 std::shared_ptr<nano::node> std::make_shared<nano::node, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:717:14 (core_test+0xf9381f)
#13 nano::system::add_node(nano::node_config const&, bool, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:29:13 (core_test+0xf89f20)
#14 nano::system::system(unsigned short, unsigned short, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:118:17 (core_test+0xf8afe9)
#15 network_send_node_id_handshake_Test::TestBody() /root/nano-node/nano/core_test/network.cpp:71:15 (core_test+0x7c0103)
#16 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11a7f16)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1183d7e)
#18 testing::Test::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2517:5 (core_test+0x1156ede)
#19 testing::TestInfo::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2693:11 (core_test+0x1158146)
#20 testing::TestCase::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2811:28 (core_test+0x1158b87)
#21 testing::internal::UnitTestImpl::RunAllTests() /root/nano-node/gtest/googletest/src/gtest.cc:5177:43 (core_test+0x1169e54)
#22 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11acad6)
#23 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1187bbe)
#24 testing::UnitTest::Run() /root/nano-node/gtest/googletest/src/gtest.cc:4786:10 (core_test+0x11698cb)
#25 RUN_ALL_TESTS() /root/nano-node/gtest/googletest/include/gtest/gtest.h:2341:46 (core_test+0x50baa7)
#26 main /root/nano-node/nano/core_test/core_test_main.cc:17:13 (core_test+0x50ae36)
SUMMARY: ThreadSanitizer: data race /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:780:45 in std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_S_right(std::_Rb_tree_node_base*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=12931)
Read of size 8 at 0x7b1000014090 by main thread:
#0 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_S_left(std::_Rb_tree_node_base*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:772:45 (core_test+0x60ac56)
#1 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_erase(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:1910:21 (core_test+0x60aad4)
#2 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_erase(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:1909:4 (core_test+0x60aac3)
#3 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::~_Rb_tree() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:978:2 (core_test+0x60aa38)
#4 std::map<unsigned int, std::shared_ptr<nano::stat_entry>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::~map() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_map.h:300:22 (core_test+0x60a9e8)
#5 nano::stat::~stat() /root/nano-node/nano/lib/stats.hpp:215:7 (core_test+0x5fe9c9)
#6 nano::node::~node() /root/nano-node/nano/node/node.cpp:491:1 (core_test+0xe9affc)
#7 void __gnu_cxx::new_allocator<nano::node>::destroy<nano::node>(nano::node*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:153:10 (core_test+0x865484)
#8 void std::allocator_traits<std::allocator<nano::node> >::destroy<nano::node>(std::allocator<nano::node>&, nano::node*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:497:8 (core_test+0x8653e8)
#9 std::_Sp_counted_ptr_inplace<nano::node, std::allocator<nano::node>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:557:2 (core_test+0x86503f)
#10 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:155:6 (core_test+0x525545)
#11 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:730:11 (core_test+0x5254c8)
#12 std::__shared_ptr<nano::node, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:1169:31 (core_test+0x52545c)
#13 std::shared_ptr<nano::node>::~shared_ptr() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:103:11 (core_test+0x51ef58)
#14 nano::node::start()::$_16::~$_16() /root/nano-node/nano/node/node.cpp:796:76 (core_test+0xea2808)
#15 std::_Function_base::_Base_manager<nano::node::start()::$_16>::_M_destroy(std::_Any_data&, std::integral_constant<bool, false>) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:191:4 (core_test+0xf0f0a2)
#16 std::_Function_base::_Base_manager<nano::node::start()::$_16>::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:215:8 (core_test+0xf0ecf1)
#17 std::_Function_base::~_Function_base() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:260:2 (core_test+0x527952)
#18 std::function<void ()>::~function() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:128:11 (core_test+0x9d1598)
#19 nano::operation::~operation() /root/nano-node/nano/node/node.hpp:43:7 (core_test+0xf152cc)
#20 void std::_Destroy<nano::operation>(nano::operation*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:98:19 (core_test+0xf19c98)
#21 void std::_Destroy_aux<false>::__destroy<nano::operation*>(nano::operation*, nano::operation*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:108:6 (core_test+0xf19c4a)
#22 void std::_Destroy<nano::operation*>(nano::operation*, nano::operation*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:136:7 (core_test+0xf19bd8)
#23 void std::_Destroy<nano::operation*, nano::operation>(nano::operation*, nano::operation*, std::allocator<nano::operation>&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:206:7 (core_test+0xf19a74)
#24 std::vector<nano::operation, std::allocator<nano::operation> >::~vector() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_vector.h:677:2 (core_test+0xf199e7)
#25 std::priority_queue<nano::operation, std::vector<nano::operation, std::allocator<nano::operation> >, std::greater<nano::operation> >::~priority_queue() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_queue.h:443:11 (core_test+0xf14eb8)
#26 nano::alarm::~alarm() /root/nano-node/nano/node/node.cpp:82:1 (core_test+0xe96587)
#27 nano::system::~system() /root/nano-node/nano/node/testing.cpp:141:1 (core_test+0xf8b1fa)
#28 network_send_node_id_handshake_Test::TestBody() /root/nano-node/nano/core_test/network.cpp:102:1 (core_test+0x7c292d)
#29 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11a7f16)
#30 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1183d7e)
#31 testing::Test::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2517:5 (core_test+0x1156ede)
#32 testing::TestInfo::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2693:11 (core_test+0x1158146)
#33 testing::TestCase::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2811:28 (core_test+0x1158b87)
#34 testing::internal::UnitTestImpl::RunAllTests() /root/nano-node/gtest/googletest/src/gtest.cc:5177:43 (core_test+0x1169e54)
#35 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11acad6)
#36 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1187bbe)
#37 testing::UnitTest::Run() /root/nano-node/gtest/googletest/src/gtest.cc:4786:10 (core_test+0x11698cb)
#38 RUN_ALL_TESTS() /root/nano-node/gtest/googletest/include/gtest/gtest.h:2341:46 (core_test+0x50baa7)
#39 main /root/nano-node/nano/core_test/core_test_main.cc:17:13 (core_test+0x50ae36)
Previous write of size 8 at 0x7b1000014090 by thread T4 (mutexes: write M937):
#0 operator new(unsigned long) <null> (core_test+0x508f4d)
#1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::allocate(unsigned long, void const*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:114:27 (core_test+0x124434c)
#2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >&, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:444:20 (core_test+0x12442ac)
#3 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_get_node() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:580:16 (core_test+0x1244135)
#4 std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >* std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_create_node<std::pair<unsigned int, std::shared_ptr<nano::stat_entry> > >(std::pair<unsigned int, std::shared_ptr<nano::stat_entry> >&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:630:23 (core_test+0x1243b78)
#5 std::pair<std::_Rb_tree_iterator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, bool> std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_emplace_unique<std::pair<unsigned int, std::shared_ptr<nano::stat_entry> > >(std::pair<unsigned int, std::shared_ptr<nano::stat_entry> >&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:2404:19 (core_test+0x12438ee)
#6 std::enable_if<is_constructible<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::pair<unsigned int, std::shared_ptr<nano::stat_entry> > >::value, std::pair<std::_Rb_tree_iterator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, bool> >::type std::map<unsigned int, std::shared_ptr<nano::stat_entry>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::insert<std::pair<unsigned int, std::shared_ptr<nano::stat_entry> > >(std::pair<unsigned int, std::shared_ptr<nano::stat_entry> >&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_map.h:815:16 (core_test+0x123d8cb)
#7 nano::stat::get_entry_impl(unsigned int, unsigned long, unsigned long) /root/nano-node/nano/lib/stats.cpp:167:17 (core_test+0x123ae5f)
#8 nano::stat::update(unsigned int, unsigned long) /root/nano-node/nano/lib/stats.cpp:263:14 (core_test+0x123cad7)
#9 nano::stat::add(nano::stat::type, nano::stat::detail, nano::stat::dir, unsigned long, bool) /root/nano-node/nano/lib/stats.hpp:396:4 (core_test+0x957604)
#10 nano::stat::inc(nano::stat::type, nano::stat::detail, nano::stat::dir) /root/nano-node/nano/lib/stats.hpp:367:3 (core_test+0x93f3c6)
#11 (anonymous namespace)::network_message_visitor::node_id_handshake(nano::node_id_handshake const&) /root/nano-node/nano/node/network.cpp:520:14 (core_test+0xe5b8d9)
#12 nano::node_id_handshake::visit(nano::message_visitor&) const /root/nano-node/nano/node/common.cpp:1037:12 (core_test+0xcad0ff)
#13 nano::network::process_message(nano::message const&, std::shared_ptr<nano::transport::channel>) /root/nano-node/nano/node/network.cpp:530:12 (core_test+0xe55b62)
#14 (anonymous namespace)::udp_message_visitor::message(nano::message const&) /root/nano-node/nano/node/transport/udp.cpp:466:17 (core_test+0xfcc47b)
#15 (anonymous namespace)::udp_message_visitor::node_id_handshake(nano::node_id_handshake const&) /root/nano-node/nano/node/transport/udp.cpp:456:3 (core_test+0xfcc215)
#16 nano::message_parser::deserialize_node_id_handshake(std::basic_streambuf<unsigned char, std::char_traits<unsigned char> >&, nano::message_header const&) /root/nano-node/nano/node/common.cpp:424:11 (core_test+0xca8d81)
#17 nano::message_parser::deserialize_buffer(unsigned char const*, unsigned long) /root/nano-node/nano/node/common.cpp:315:7 (core_test+0xca8161)
#18 nano::transport::udp_channels::receive_action(nano::message_buffer*) /root/nano-node/nano/node/transport/udp.cpp:493:10 (core_test+0xfc8d11)
#19 nano::transport::udp_channels::process_packets() /root/nano-node/nano/node/transport/udp.cpp:564:3 (core_test+0xfc9444)
#20 nano::network::network(nano::node&, unsigned short)::$_1::operator()() const /root/nano-node/nano/node/network.cpp:23:18 (core_test+0xe5c3e9)
#21 boost::detail::thread_data<nano::network::network(nano::node&, unsigned short)::$_1>::run() /usr/include/boost/thread/detail/thread.hpp:117:17 (core_test+0xe5c34f)
#22 thread_proxy <null> (core_test+0x1540074)
Location is heap block of size 56 at 0x7b1000014080 allocated by thread T4:
#0 operator new(unsigned long) <null> (core_test+0x508f4d)
#1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::allocate(unsigned long, void const*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:114:27 (core_test+0x124434c)
#2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >&, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:444:20 (core_test+0x12442ac)
#3 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_get_node() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:580:16 (core_test+0x1244135)
#4 std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >* std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_create_node<std::pair<unsigned int, std::shared_ptr<nano::stat_entry> > >(std::pair<unsigned int, std::shared_ptr<nano::stat_entry> >&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:630:23 (core_test+0x1243b78)
#5 std::pair<std::_Rb_tree_iterator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, bool> std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_emplace_unique<std::pair<unsigned int, std::shared_ptr<nano::stat_entry> > >(std::pair<unsigned int, std::shared_ptr<nano::stat_entry> >&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:2404:19 (core_test+0x12438ee)
#6 std::enable_if<is_constructible<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::pair<unsigned int, std::shared_ptr<nano::stat_entry> > >::value, std::pair<std::_Rb_tree_iterator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, bool> >::type std::map<unsigned int, std::shared_ptr<nano::stat_entry>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::insert<std::pair<unsigned int, std::shared_ptr<nano::stat_entry> > >(std::pair<unsigned int, std::shared_ptr<nano::stat_entry> >&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_map.h:815:16 (core_test+0x123d8cb)
#7 nano::stat::get_entry_impl(unsigned int, unsigned long, unsigned long) /root/nano-node/nano/lib/stats.cpp:167:17 (core_test+0x123ae5f)
#8 nano::stat::update(unsigned int, unsigned long) /root/nano-node/nano/lib/stats.cpp:263:14 (core_test+0x123cad7)
#9 nano::stat::add(nano::stat::type, nano::stat::detail, nano::stat::dir, unsigned long, bool) /root/nano-node/nano/lib/stats.hpp:396:4 (core_test+0x957604)
#10 nano::stat::inc(nano::stat::type, nano::stat::detail, nano::stat::dir) /root/nano-node/nano/lib/stats.hpp:367:3 (core_test+0x93f3c6)
#11 (anonymous namespace)::network_message_visitor::node_id_handshake(nano::node_id_handshake const&) /root/nano-node/nano/node/network.cpp:520:14 (core_test+0xe5b8d9)
#12 nano::node_id_handshake::visit(nano::message_visitor&) const /root/nano-node/nano/node/common.cpp:1037:12 (core_test+0xcad0ff)
#13 nano::network::process_message(nano::message const&, std::shared_ptr<nano::transport::channel>) /root/nano-node/nano/node/network.cpp:530:12 (core_test+0xe55b62)
#14 (anonymous namespace)::udp_message_visitor::message(nano::message const&) /root/nano-node/nano/node/transport/udp.cpp:466:17 (core_test+0xfcc47b)
#15 (anonymous namespace)::udp_message_visitor::node_id_handshake(nano::node_id_handshake const&) /root/nano-node/nano/node/transport/udp.cpp:456:3 (core_test+0xfcc215)
#16 nano::message_parser::deserialize_node_id_handshake(std::basic_streambuf<unsigned char, std::char_traits<unsigned char> >&, nano::message_header const&) /root/nano-node/nano/node/common.cpp:424:11 (core_test+0xca8d81)
#17 nano::message_parser::deserialize_buffer(unsigned char const*, unsigned long) /root/nano-node/nano/node/common.cpp:315:7 (core_test+0xca8161)
#18 nano::transport::udp_channels::receive_action(nano::message_buffer*) /root/nano-node/nano/node/transport/udp.cpp:493:10 (core_test+0xfc8d11)
#19 nano::transport::udp_channels::process_packets() /root/nano-node/nano/node/transport/udp.cpp:564:3 (core_test+0xfc9444)
#20 nano::network::network(nano::node&, unsigned short)::$_1::operator()() const /root/nano-node/nano/node/network.cpp:23:18 (core_test+0xe5c3e9)
#21 boost::detail::thread_data<nano::network::network(nano::node&, unsigned short)::$_1>::run() /usr/include/boost/thread/detail/thread.hpp:117:17 (core_test+0xe5c34f)
#22 thread_proxy <null> (core_test+0x1540074)
Mutex M937 (0x7ba0000072b0) created at:
#0 pthread_mutex_lock <null> (core_test+0x49ba9e)
#1 __gthread_mutex_lock(pthread_mutex_t*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9/bits/gthr-default.h:749:12 (core_test+0x51e1a6)
#2 std::mutex::lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_mutex.h:100:17 (core_test+0x527d58)
#3 std::unique_lock<std::mutex>::lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_lock.h:141:17 (core_test+0x66b851)
#4 std::unique_lock<std::mutex>::unique_lock(std::mutex&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_lock.h:71:2 (core_test+0x66b323)
#5 nano::stat::update(unsigned int, unsigned long) /root/nano-node/nano/lib/stats.cpp:262:31 (core_test+0x123ca71)
#6 nano::stat::add(nano::stat::type, nano::stat::detail, nano::stat::dir, unsigned long, bool) /root/nano-node/nano/lib/stats.hpp:391:3 (core_test+0x9575cd)
#7 nano::stat::inc(nano::stat::type, nano::stat::detail, nano::stat::dir) /root/nano-node/nano/lib/stats.hpp:367:3 (core_test+0x93f3c6)
#8 nano::bootstrap_initiator::bootstrap() /root/nano-node/nano/node/bootstrap.cpp:1656:14 (core_test+0xc2acdc)
#9 nano::node::ongoing_bootstrap() /root/nano-node/nano/node/node.cpp:910:22 (core_test+0xea134b)
#10 nano::node::start() /root/nano-node/nano/node/node.cpp:772:3 (core_test+0xea0964)
#11 nano::system::add_node(nano::node_config const&, bool, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:31:8 (core_test+0xf89fb4)
#12 nano::system::system(unsigned short, unsigned short, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:118:17 (core_test+0xf8afe9)
#13 network_send_node_id_handshake_Test::TestBody() /root/nano-node/nano/core_test/network.cpp:71:15 (core_test+0x7c0103)
#14 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11a7f16)
#15 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1183d7e)
#16 testing::Test::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2517:5 (core_test+0x1156ede)
#17 testing::TestInfo::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2693:11 (core_test+0x1158146)
#18 testing::TestCase::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2811:28 (core_test+0x1158b87)
#19 testing::internal::UnitTestImpl::RunAllTests() /root/nano-node/gtest/googletest/src/gtest.cc:5177:43 (core_test+0x1169e54)
#20 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11acad6)
#21 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1187bbe)
#22 testing::UnitTest::Run() /root/nano-node/gtest/googletest/src/gtest.cc:4786:10 (core_test+0x11698cb)
#23 RUN_ALL_TESTS() /root/nano-node/gtest/googletest/include/gtest/gtest.h:2341:46 (core_test+0x50baa7)
#24 main /root/nano-node/nano/core_test/core_test_main.cc:17:13 (core_test+0x50ae36)
Thread T4 'Pkt processing' (tid=12936, finished) created by main thread at:
#0 pthread_create <null> (core_test+0x47f8d5)
#1 boost::thread::start_thread_noexcept(boost::thread_attributes const&) <null> (core_test+0x153e859)
#2 boost::thread::thread<nano::network::network(nano::node&, unsigned short)::$_1>(boost::thread_attributes const&, nano::network::network(nano::node&, unsigned short)::$_1&&) /usr/include/boost/thread/detail/thread.hpp:274:13 (core_test+0xe50d50)
#3 nano::network::network(nano::node&, unsigned short) /root/nano-node/nano/node/network.cpp:19:40 (core_test+0xe50aa1)
#4 nano::node::node(nano::node_init&, boost::asio::io_context&, boost::filesystem::path const&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool) /root/nano-node/nano/node/node.cpp:211:1 (core_test+0xe98048)
#5 void __gnu_cxx::new_allocator<nano::node>::construct<nano::node, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(nano::node*, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:147:23 (core_test+0xf96418)
#6 void std::allocator_traits<std::allocator<nano::node> >::construct<nano::node, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::allocator<nano::node>&, nano::node*, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:484:8 (core_test+0xf96225)
#7 std::_Sp_counted_ptr_inplace<nano::node, std::allocator<nano::node>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:548:4 (core_test+0xf96059)
#8 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<nano::node, std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(nano::node*&, std::_Sp_alloc_shared_tag<std::allocator<nano::node> >, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:680:6 (core_test+0xf95d49)
#9 std::__shared_ptr<nano::node, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::_Sp_alloc_shared_tag<std::allocator<nano::node> >, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:1344:14 (core_test+0xf95adf)
#10 std::shared_ptr<nano::node>::shared_ptr<std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::_Sp_alloc_shared_tag<std::allocator<nano::node> >, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:359:4 (core_test+0xf958f6)
#11 std::shared_ptr<nano::node> std::allocate_shared<nano::node, std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::allocator<nano::node> const&, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:701:14 (core_test+0xf956ab)
#12 std::shared_ptr<nano::node> std::make_shared<nano::node, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:717:14 (core_test+0xf9381f)
#13 nano::system::add_node(nano::node_config const&, bool, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:29:13 (core_test+0xf89f20)
#14 nano::system::system(unsigned short, unsigned short, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:118:17 (core_test+0xf8afe9)
#15 network_send_node_id_handshake_Test::TestBody() /root/nano-node/nano/core_test/network.cpp:71:15 (core_test+0x7c0103)
#16 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11a7f16)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1183d7e)
#18 testing::Test::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2517:5 (core_test+0x1156ede)
#19 testing::TestInfo::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2693:11 (core_test+0x1158146)
#20 testing::TestCase::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2811:28 (core_test+0x1158b87)
#21 testing::internal::UnitTestImpl::RunAllTests() /root/nano-node/gtest/googletest/src/gtest.cc:5177:43 (core_test+0x1169e54)
#22 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11acad6)
#23 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1187bbe)
#24 testing::UnitTest::Run() /root/nano-node/gtest/googletest/src/gtest.cc:4786:10 (core_test+0x11698cb)
#25 RUN_ALL_TESTS() /root/nano-node/gtest/googletest/include/gtest/gtest.h:2341:46 (core_test+0x50baa7)
#26 main /root/nano-node/nano/core_test/core_test_main.cc:17:13 (core_test+0x50ae36)
SUMMARY: ThreadSanitizer: data race /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:772:45 in std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_S_left(std::_Rb_tree_node_base*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=12931)
Read of size 8 at 0x7b10000140b0 by main thread:
#0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:729:6 (core_test+0x5254a2)
#1 std::__shared_ptr<nano::stat_entry, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:1169:31 (core_test+0x60af7c)
#2 std::shared_ptr<nano::stat_entry>::~shared_ptr() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:103:11 (core_test+0x60af38)
#3 std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >::~pair() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_pair.h:208:12 (core_test+0x60aefc)
#4 void __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::destroy<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >(std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:153:10 (core_test+0x60aec4)
#5 void std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > > >::destroy<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >(std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >&, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:497:8 (core_test+0x60adf8)
#6 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_destroy_node(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:642:2 (core_test+0x60ad37)
#7 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_drop_node(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:650:2 (core_test+0x60acbc)
#8 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_erase(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:1911:4 (core_test+0x60aae5)
#9 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_erase(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:1909:4 (core_test+0x60aac3)
#10 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::~_Rb_tree() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:978:2 (core_test+0x60aa38)
#11 std::map<unsigned int, std::shared_ptr<nano::stat_entry>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::~map() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_map.h:300:22 (core_test+0x60a9e8)
#12 nano::stat::~stat() /root/nano-node/nano/lib/stats.hpp:215:7 (core_test+0x5fe9c9)
#13 nano::node::~node() /root/nano-node/nano/node/node.cpp:491:1 (core_test+0xe9affc)
#14 void __gnu_cxx::new_allocator<nano::node>::destroy<nano::node>(nano::node*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:153:10 (core_test+0x865484)
#15 void std::allocator_traits<std::allocator<nano::node> >::destroy<nano::node>(std::allocator<nano::node>&, nano::node*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:497:8 (core_test+0x8653e8)
#16 std::_Sp_counted_ptr_inplace<nano::node, std::allocator<nano::node>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:557:2 (core_test+0x86503f)
#17 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:155:6 (core_test+0x525545)
#18 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:730:11 (core_test+0x5254c8)
#19 std::__shared_ptr<nano::node, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:1169:31 (core_test+0x52545c)
#20 std::shared_ptr<nano::node>::~shared_ptr() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:103:11 (core_test+0x51ef58)
#21 nano::node::start()::$_16::~$_16() /root/nano-node/nano/node/node.cpp:796:76 (core_test+0xea2808)
#22 std::_Function_base::_Base_manager<nano::node::start()::$_16>::_M_destroy(std::_Any_data&, std::integral_constant<bool, false>) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:191:4 (core_test+0xf0f0a2)
#23 std::_Function_base::_Base_manager<nano::node::start()::$_16>::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:215:8 (core_test+0xf0ecf1)
#24 std::_Function_base::~_Function_base() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:260:2 (core_test+0x527952)
#25 std::function<void ()>::~function() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:128:11 (core_test+0x9d1598)
#26 nano::operation::~operation() /root/nano-node/nano/node/node.hpp:43:7 (core_test+0xf152cc)
#27 void std::_Destroy<nano::operation>(nano::operation*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:98:19 (core_test+0xf19c98)
#28 void std::_Destroy_aux<false>::__destroy<nano::operation*>(nano::operation*, nano::operation*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:108:6 (core_test+0xf19c4a)
#29 void std::_Destroy<nano::operation*>(nano::operation*, nano::operation*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:136:7 (core_test+0xf19bd8)
#30 void std::_Destroy<nano::operation*, nano::operation>(nano::operation*, nano::operation*, std::allocator<nano::operation>&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:206:7 (core_test+0xf19a74)
#31 std::vector<nano::operation, std::allocator<nano::operation> >::~vector() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_vector.h:677:2 (core_test+0xf199e7)
#32 std::priority_queue<nano::operation, std::vector<nano::operation, std::allocator<nano::operation> >, std::greater<nano::operation> >::~priority_queue() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_queue.h:443:11 (core_test+0xf14eb8)
#33 nano::alarm::~alarm() /root/nano-node/nano/node/node.cpp:82:1 (core_test+0xe96587)
#34 nano::system::~system() /root/nano-node/nano/node/testing.cpp:141:1 (core_test+0xf8b1fa)
#35 network_send_node_id_handshake_Test::TestBody() /root/nano-node/nano/core_test/network.cpp:102:1 (core_test+0x7c292d)
#36 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11a7f16)
#37 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1183d7e)
#38 testing::Test::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2517:5 (core_test+0x1156ede)
#39 testing::TestInfo::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2693:11 (core_test+0x1158146)
#40 testing::TestCase::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2811:28 (core_test+0x1158b87)
#41 testing::internal::UnitTestImpl::RunAllTests() /root/nano-node/gtest/googletest/src/gtest.cc:5177:43 (core_test+0x1169e54)
#42 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11acad6)
#43 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1187bbe)
#44 testing::UnitTest::Run() /root/nano-node/gtest/googletest/src/gtest.cc:4786:10 (core_test+0x11698cb)
#45 RUN_ALL_TESTS() /root/nano-node/gtest/googletest/include/gtest/gtest.h:2341:46 (core_test+0x50baa7)
#46 main /root/nano-node/nano/core_test/core_test_main.cc:17:13 (core_test+0x50ae36)
Previous write of size 8 at 0x7b10000140b0 by thread T4 (mutexes: write M937):
#0 operator new(unsigned long) <null> (core_test+0x508f4d)
#1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::allocate(unsigned long, void const*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:114:27 (core_test+0x124434c)
#2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >&, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:444:20 (core_test+0x12442ac)
#3 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_get_node() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:580:16 (core_test+0x1244135)
#4 std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >* std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_create_node<std::pair<unsigned int, std::shared_ptr<nano::stat_entry> > >(std::pair<unsigned int, std::shared_ptr<nano::stat_entry> >&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:630:23 (core_test+0x1243b78)
#5 std::pair<std::_Rb_tree_iterator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, bool> std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_emplace_unique<std::pair<unsigned int, std::shared_ptr<nano::stat_entry> > >(std::pair<unsigned int, std::shared_ptr<nano::stat_entry> >&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:2404:19 (core_test+0x12438ee)
#6 std::enable_if<is_constructible<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::pair<unsigned int, std::shared_ptr<nano::stat_entry> > >::value, std::pair<std::_Rb_tree_iterator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, bool> >::type std::map<unsigned int, std::shared_ptr<nano::stat_entry>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::insert<std::pair<unsigned int, std::shared_ptr<nano::stat_entry> > >(std::pair<unsigned int, std::shared_ptr<nano::stat_entry> >&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_map.h:815:16 (core_test+0x123d8cb)
#7 nano::stat::get_entry_impl(unsigned int, unsigned long, unsigned long) /root/nano-node/nano/lib/stats.cpp:167:17 (core_test+0x123ae5f)
#8 nano::stat::update(unsigned int, unsigned long) /root/nano-node/nano/lib/stats.cpp:263:14 (core_test+0x123cad7)
#9 nano::stat::add(nano::stat::type, nano::stat::detail, nano::stat::dir, unsigned long, bool) /root/nano-node/nano/lib/stats.hpp:396:4 (core_test+0x957604)
#10 nano::stat::inc(nano::stat::type, nano::stat::detail, nano::stat::dir) /root/nano-node/nano/lib/stats.hpp:367:3 (core_test+0x93f3c6)
#11 (anonymous namespace)::network_message_visitor::node_id_handshake(nano::node_id_handshake const&) /root/nano-node/nano/node/network.cpp:520:14 (core_test+0xe5b8d9)
#12 nano::node_id_handshake::visit(nano::message_visitor&) const /root/nano-node/nano/node/common.cpp:1037:12 (core_test+0xcad0ff)
#13 nano::network::process_message(nano::message const&, std::shared_ptr<nano::transport::channel>) /root/nano-node/nano/node/network.cpp:530:12 (core_test+0xe55b62)
#14 (anonymous namespace)::udp_message_visitor::message(nano::message const&) /root/nano-node/nano/node/transport/udp.cpp:466:17 (core_test+0xfcc47b)
#15 (anonymous namespace)::udp_message_visitor::node_id_handshake(nano::node_id_handshake const&) /root/nano-node/nano/node/transport/udp.cpp:456:3 (core_test+0xfcc215)
#16 nano::message_parser::deserialize_node_id_handshake(std::basic_streambuf<unsigned char, std::char_traits<unsigned char> >&, nano::message_header const&) /root/nano-node/nano/node/common.cpp:424:11 (core_test+0xca8d81)
#17 nano::message_parser::deserialize_buffer(unsigned char const*, unsigned long) /root/nano-node/nano/node/common.cpp:315:7 (core_test+0xca8161)
#18 nano::transport::udp_channels::receive_action(nano::message_buffer*) /root/nano-node/nano/node/transport/udp.cpp:493:10 (core_test+0xfc8d11)
#19 nano::transport::udp_channels::process_packets() /root/nano-node/nano/node/transport/udp.cpp:564:3 (core_test+0xfc9444)
#20 nano::network::network(nano::node&, unsigned short)::$_1::operator()() const /root/nano-node/nano/node/network.cpp:23:18 (core_test+0xe5c3e9)
#21 boost::detail::thread_data<nano::network::network(nano::node&, unsigned short)::$_1>::run() /usr/include/boost/thread/detail/thread.hpp:117:17 (core_test+0xe5c34f)
#22 thread_proxy <null> (core_test+0x1540074)
Location is heap block of size 56 at 0x7b1000014080 allocated by thread T4:
#0 operator new(unsigned long) <null> (core_test+0x508f4d)
#1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::allocate(unsigned long, void const*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:114:27 (core_test+0x124434c)
#2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >&, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:444:20 (core_test+0x12442ac)
#3 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_get_node() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:580:16 (core_test+0x1244135)
#4 std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >* std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_create_node<std::pair<unsigned int, std::shared_ptr<nano::stat_entry> > >(std::pair<unsigned int, std::shared_ptr<nano::stat_entry> >&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:630:23 (core_test+0x1243b78)
#5 std::pair<std::_Rb_tree_iterator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, bool> std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_emplace_unique<std::pair<unsigned int, std::shared_ptr<nano::stat_entry> > >(std::pair<unsigned int, std::shared_ptr<nano::stat_entry> >&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:2404:19 (core_test+0x12438ee)
#6 std::enable_if<is_constructible<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::pair<unsigned int, std::shared_ptr<nano::stat_entry> > >::value, std::pair<std::_Rb_tree_iterator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, bool> >::type std::map<unsigned int, std::shared_ptr<nano::stat_entry>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::insert<std::pair<unsigned int, std::shared_ptr<nano::stat_entry> > >(std::pair<unsigned int, std::shared_ptr<nano::stat_entry> >&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_map.h:815:16 (core_test+0x123d8cb)
#7 nano::stat::get_entry_impl(unsigned int, unsigned long, unsigned long) /root/nano-node/nano/lib/stats.cpp:167:17 (core_test+0x123ae5f)
#8 nano::stat::update(unsigned int, unsigned long) /root/nano-node/nano/lib/stats.cpp:263:14 (core_test+0x123cad7)
#9 nano::stat::add(nano::stat::type, nano::stat::detail, nano::stat::dir, unsigned long, bool) /root/nano-node/nano/lib/stats.hpp:396:4 (core_test+0x957604)
#10 nano::stat::inc(nano::stat::type, nano::stat::detail, nano::stat::dir) /root/nano-node/nano/lib/stats.hpp:367:3 (core_test+0x93f3c6)
#11 (anonymous namespace)::network_message_visitor::node_id_handshake(nano::node_id_handshake const&) /root/nano-node/nano/node/network.cpp:520:14 (core_test+0xe5b8d9)
#12 nano::node_id_handshake::visit(nano::message_visitor&) const /root/nano-node/nano/node/common.cpp:1037:12 (core_test+0xcad0ff)
#13 nano::network::process_message(nano::message const&, std::shared_ptr<nano::transport::channel>) /root/nano-node/nano/node/network.cpp:530:12 (core_test+0xe55b62)
#14 (anonymous namespace)::udp_message_visitor::message(nano::message const&) /root/nano-node/nano/node/transport/udp.cpp:466:17 (core_test+0xfcc47b)
#15 (anonymous namespace)::udp_message_visitor::node_id_handshake(nano::node_id_handshake const&) /root/nano-node/nano/node/transport/udp.cpp:456:3 (core_test+0xfcc215)
#16 nano::message_parser::deserialize_node_id_handshake(std::basic_streambuf<unsigned char, std::char_traits<unsigned char> >&, nano::message_header const&) /root/nano-node/nano/node/common.cpp:424:11 (core_test+0xca8d81)
#17 nano::message_parser::deserialize_buffer(unsigned char const*, unsigned long) /root/nano-node/nano/node/common.cpp:315:7 (core_test+0xca8161)
#18 nano::transport::udp_channels::receive_action(nano::message_buffer*) /root/nano-node/nano/node/transport/udp.cpp:493:10 (core_test+0xfc8d11)
#19 nano::transport::udp_channels::process_packets() /root/nano-node/nano/node/transport/udp.cpp:564:3 (core_test+0xfc9444)
#20 nano::network::network(nano::node&, unsigned short)::$_1::operator()() const /root/nano-node/nano/node/network.cpp:23:18 (core_test+0xe5c3e9)
#21 boost::detail::thread_data<nano::network::network(nano::node&, unsigned short)::$_1>::run() /usr/include/boost/thread/detail/thread.hpp:117:17 (core_test+0xe5c34f)
#22 thread_proxy <null> (core_test+0x1540074)
Mutex M937 (0x7ba0000072b0) created at:
#0 pthread_mutex_lock <null> (core_test+0x49ba9e)
#1 __gthread_mutex_lock(pthread_mutex_t*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9/bits/gthr-default.h:749:12 (core_test+0x51e1a6)
#2 std::mutex::lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_mutex.h:100:17 (core_test+0x527d58)
#3 std::unique_lock<std::mutex>::lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_lock.h:141:17 (core_test+0x66b851)
#4 std::unique_lock<std::mutex>::unique_lock(std::mutex&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_lock.h:71:2 (core_test+0x66b323)
#5 nano::stat::update(unsigned int, unsigned long) /root/nano-node/nano/lib/stats.cpp:262:31 (core_test+0x123ca71)
#6 nano::stat::add(nano::stat::type, nano::stat::detail, nano::stat::dir, unsigned long, bool) /root/nano-node/nano/lib/stats.hpp:391:3 (core_test+0x9575cd)
#7 nano::stat::inc(nano::stat::type, nano::stat::detail, nano::stat::dir) /root/nano-node/nano/lib/stats.hpp:367:3 (core_test+0x93f3c6)
#8 nano::bootstrap_initiator::bootstrap() /root/nano-node/nano/node/bootstrap.cpp:1656:14 (core_test+0xc2acdc)
#9 nano::node::ongoing_bootstrap() /root/nano-node/nano/node/node.cpp:910:22 (core_test+0xea134b)
#10 nano::node::start() /root/nano-node/nano/node/node.cpp:772:3 (core_test+0xea0964)
#11 nano::system::add_node(nano::node_config const&, bool, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:31:8 (core_test+0xf89fb4)
#12 nano::system::system(unsigned short, unsigned short, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:118:17 (core_test+0xf8afe9)
#13 network_send_node_id_handshake_Test::TestBody() /root/nano-node/nano/core_test/network.cpp:71:15 (core_test+0x7c0103)
#14 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11a7f16)
#15 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1183d7e)
#16 testing::Test::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2517:5 (core_test+0x1156ede)
#17 testing::TestInfo::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2693:11 (core_test+0x1158146)
#18 testing::TestCase::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2811:28 (core_test+0x1158b87)
#19 testing::internal::UnitTestImpl::RunAllTests() /root/nano-node/gtest/googletest/src/gtest.cc:5177:43 (core_test+0x1169e54)
#20 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11acad6)
#21 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1187bbe)
#22 testing::UnitTest::Run() /root/nano-node/gtest/googletest/src/gtest.cc:4786:10 (core_test+0x11698cb)
#23 RUN_ALL_TESTS() /root/nano-node/gtest/googletest/include/gtest/gtest.h:2341:46 (core_test+0x50baa7)
#24 main /root/nano-node/nano/core_test/core_test_main.cc:17:13 (core_test+0x50ae36)
Thread T4 'Pkt processing' (tid=12936, finished) created by main thread at:
#0 pthread_create <null> (core_test+0x47f8d5)
#1 boost::thread::start_thread_noexcept(boost::thread_attributes const&) <null> (core_test+0x153e859)
#2 boost::thread::thread<nano::network::network(nano::node&, unsigned short)::$_1>(boost::thread_attributes const&, nano::network::network(nano::node&, unsigned short)::$_1&&) /usr/include/boost/thread/detail/thread.hpp:274:13 (core_test+0xe50d50)
#3 nano::network::network(nano::node&, unsigned short) /root/nano-node/nano/node/network.cpp:19:40 (core_test+0xe50aa1)
#4 nano::node::node(nano::node_init&, boost::asio::io_context&, boost::filesystem::path const&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool) /root/nano-node/nano/node/node.cpp:211:1 (core_test+0xe98048)
#5 void __gnu_cxx::new_allocator<nano::node>::construct<nano::node, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(nano::node*, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:147:23 (core_test+0xf96418)
#6 void std::allocator_traits<std::allocator<nano::node> >::construct<nano::node, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::allocator<nano::node>&, nano::node*, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:484:8 (core_test+0xf96225)
#7 std::_Sp_counted_ptr_inplace<nano::node, std::allocator<nano::node>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:548:4 (core_test+0xf96059)
#8 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<nano::node, std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(nano::node*&, std::_Sp_alloc_shared_tag<std::allocator<nano::node> >, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:680:6 (core_test+0xf95d49)
#9 std::__shared_ptr<nano::node, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::_Sp_alloc_shared_tag<std::allocator<nano::node> >, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:1344:14 (core_test+0xf95adf)
#10 std::shared_ptr<nano::node>::shared_ptr<std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::_Sp_alloc_shared_tag<std::allocator<nano::node> >, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:359:4 (core_test+0xf958f6)
#11 std::shared_ptr<nano::node> std::allocate_shared<nano::node, std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::allocator<nano::node> const&, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:701:14 (core_test+0xf956ab)
#12 std::shared_ptr<nano::node> std::make_shared<nano::node, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:717:14 (core_test+0xf9381f)
#13 nano::system::add_node(nano::node_config const&, bool, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:29:13 (core_test+0xf89f20)
#14 nano::system::system(unsigned short, unsigned short, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:118:17 (core_test+0xf8afe9)
#15 network_send_node_id_handshake_Test::TestBody() /root/nano-node/nano/core_test/network.cpp:71:15 (core_test+0x7c0103)
#16 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11a7f16)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1183d7e)
#18 testing::Test::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2517:5 (core_test+0x1156ede)
#19 testing::TestInfo::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2693:11 (core_test+0x1158146)
#20 testing::TestCase::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2811:28 (core_test+0x1158b87)
#21 testing::internal::UnitTestImpl::RunAllTests() /root/nano-node/gtest/googletest/src/gtest.cc:5177:43 (core_test+0x1169e54)
#22 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11acad6)
#23 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1187bbe)
#24 testing::UnitTest::Run() /root/nano-node/gtest/googletest/src/gtest.cc:4786:10 (core_test+0x11698cb)
#25 RUN_ALL_TESTS() /root/nano-node/gtest/googletest/include/gtest/gtest.h:2341:46 (core_test+0x50baa7)
#26 main /root/nano-node/nano/core_test/core_test_main.cc:17:13 (core_test+0x50ae36)
SUMMARY: ThreadSanitizer: data race /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:729:6 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count()
==================
==================
WARNING: ThreadSanitizer: data race (pid=12931)
Atomic write of size 4 at 0x7b4400060408 by main thread:
#0 __tsan_atomic32_fetch_add <null> (core_test+0x4c9624)
#1 __gnu_cxx::__exchange_and_add(int volatile*, int) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/atomicity.h:49:12 (core_test+0x51dfbf)
#2 __gnu_cxx::__exchange_and_add_dispatch(int*, int) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/atomicity.h:82:14 (core_test+0x51df32)
#3 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:152:6 (core_test+0x52551b)
#4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:730:11 (core_test+0x5254c8)
#5 std::__shared_ptr<nano::stat_entry, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:1169:31 (core_test+0x60af7c)
#6 std::shared_ptr<nano::stat_entry>::~shared_ptr() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:103:11 (core_test+0x60af38)
#7 std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >::~pair() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_pair.h:208:12 (core_test+0x60aefc)
#8 void __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::destroy<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >(std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:153:10 (core_test+0x60aec4)
#9 void std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > > >::destroy<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >(std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >&, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:497:8 (core_test+0x60adf8)
#10 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_destroy_node(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:642:2 (core_test+0x60ad37)
#11 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_drop_node(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:650:2 (core_test+0x60acbc)
#12 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_erase(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:1911:4 (core_test+0x60aae5)
#13 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::_M_erase(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:1909:4 (core_test+0x60aac3)
#14 std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::~_Rb_tree() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h:978:2 (core_test+0x60aa38)
#15 std::map<unsigned int, std::shared_ptr<nano::stat_entry>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<nano::stat_entry> > > >::~map() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_map.h:300:22 (core_test+0x60a9e8)
#16 nano::stat::~stat() /root/nano-node/nano/lib/stats.hpp:215:7 (core_test+0x5fe9c9)
#17 nano::node::~node() /root/nano-node/nano/node/node.cpp:491:1 (core_test+0xe9affc)
#18 void __gnu_cxx::new_allocator<nano::node>::destroy<nano::node>(nano::node*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:153:10 (core_test+0x865484)
#19 void std::allocator_traits<std::allocator<nano::node> >::destroy<nano::node>(std::allocator<nano::node>&, nano::node*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:497:8 (core_test+0x8653e8)
#20 std::_Sp_counted_ptr_inplace<nano::node, std::allocator<nano::node>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:557:2 (core_test+0x86503f)
#21 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:155:6 (core_test+0x525545)
#22 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:730:11 (core_test+0x5254c8)
#23 std::__shared_ptr<nano::node, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:1169:31 (core_test+0x52545c)
#24 std::shared_ptr<nano::node>::~shared_ptr() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:103:11 (core_test+0x51ef58)
#25 nano::node::start()::$_16::~$_16() /root/nano-node/nano/node/node.cpp:796:76 (core_test+0xea2808)
#26 std::_Function_base::_Base_manager<nano::node::start()::$_16>::_M_destroy(std::_Any_data&, std::integral_constant<bool, false>) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:191:4 (core_test+0xf0f0a2)
#27 std::_Function_base::_Base_manager<nano::node::start()::$_16>::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:215:8 (core_test+0xf0ecf1)
#28 std::_Function_base::~_Function_base() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:260:2 (core_test+0x527952)
#29 std::function<void ()>::~function() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:128:11 (core_test+0x9d1598)
#30 nano::operation::~operation() /root/nano-node/nano/node/node.hpp:43:7 (core_test+0xf152cc)
#31 void std::_Destroy<nano::operation>(nano::operation*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:98:19 (core_test+0xf19c98)
#32 void std::_Destroy_aux<false>::__destroy<nano::operation*>(nano::operation*, nano::operation*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:108:6 (core_test+0xf19c4a)
#33 void std::_Destroy<nano::operation*>(nano::operation*, nano::operation*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:136:7 (core_test+0xf19bd8)
#34 void std::_Destroy<nano::operation*, nano::operation>(nano::operation*, nano::operation*, std::allocator<nano::operation>&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h:206:7 (core_test+0xf19a74)
#35 std::vector<nano::operation, std::allocator<nano::operation> >::~vector() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_vector.h:677:2 (core_test+0xf199e7)
#36 std::priority_queue<nano::operation, std::vector<nano::operation, std::allocator<nano::operation> >, std::greater<nano::operation> >::~priority_queue() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_queue.h:443:11 (core_test+0xf14eb8)
#37 nano::alarm::~alarm() /root/nano-node/nano/node/node.cpp:82:1 (core_test+0xe96587)
#38 nano::system::~system() /root/nano-node/nano/node/testing.cpp:141:1 (core_test+0xf8b1fa)
#39 network_send_node_id_handshake_Test::TestBody() /root/nano-node/nano/core_test/network.cpp:102:1 (core_test+0x7c292d)
#40 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11a7f16)
#41 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1183d7e)
#42 testing::Test::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2517:5 (core_test+0x1156ede)
#43 testing::TestInfo::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2693:11 (core_test+0x1158146)
#44 testing::TestCase::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2811:28 (core_test+0x1158b87)
#45 testing::internal::UnitTestImpl::RunAllTests() /root/nano-node/gtest/googletest/src/gtest.cc:5177:43 (core_test+0x1169e54)
#46 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11acad6)
#47 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1187bbe)
#48 testing::UnitTest::Run() /root/nano-node/gtest/googletest/src/gtest.cc:4786:10 (core_test+0x11698cb)
#49 RUN_ALL_TESTS() /root/nano-node/gtest/googletest/include/gtest/gtest.h:2341:46 (core_test+0x50baa7)
#50 main /root/nano-node/nano/core_test/core_test_main.cc:17:13 (core_test+0x50ae36)
Previous write of size 8 at 0x7b4400060408 by thread T4 (mutexes: write M937):
#0 operator new(unsigned long) <null> (core_test+0x508f4d)
#1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<nano::stat_entry, std::allocator<nano::stat_entry>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:114:27 (core_test+0x12417c0)
#2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<nano::stat_entry, std::allocator<nano::stat_entry>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<nano::stat_entry, std::allocator<nano::stat_entry>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:444:20 (core_test+0x124167c)
#3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<nano::stat_entry, std::allocator<nano::stat_entry>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<nano::stat_entry, std::allocator<nano::stat_entry>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<nano::stat_entry, std::allocator<nano::stat_entry>, (__gnu_cxx::_Lock_policy)2> >&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/allocated_ptr.h:97:21 (core_test+0x124125f)
#4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<nano::stat_entry, std::allocator<nano::stat_entry>, unsigned long&, unsigned long&>(nano::stat_entry*&, std::_Sp_alloc_shared_tag<std::allocator<nano::stat_entry> >, unsigned long&, unsigned long&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:677:19 (core_test+0x1241010)
#5 std::__shared_ptr<nano::stat_entry, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<nano::stat_entry>, unsigned long&, unsigned long&>(std::_Sp_alloc_shared_tag<std::allocator<nano::stat_entry> >, unsigned long&, unsigned long&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:1344:14 (core_test+0x1240f3a)
#6 std::shared_ptr<nano::stat_entry>::shared_ptr<std::allocator<nano::stat_entry>, unsigned long&, unsigned long&>(std::_Sp_alloc_shared_tag<std::allocator<nano::stat_entry> >, unsigned long&, unsigned long&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:359:4 (core_test+0x1240e5e)
#7 std::shared_ptr<nano::stat_entry> std::allocate_shared<nano::stat_entry, std::allocator<nano::stat_entry>, unsigned long&, unsigned long&>(std::allocator<nano::stat_entry> const&, unsigned long&, unsigned long&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:701:14 (core_test+0x1240d24)
#8 std::shared_ptr<nano::stat_entry> std::make_shared<nano::stat_entry, unsigned long&, unsigned long&>(unsigned long&, unsigned long&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:717:14 (core_test+0x123da00)
#9 nano::stat::get_entry_impl(unsigned int, unsigned long, unsigned long) /root/nano-node/nano/lib/stats.cpp:167:46 (core_test+0x123ae34)
#10 nano::stat::update(unsigned int, unsigned long) /root/nano-node/nano/lib/stats.cpp:263:14 (core_test+0x123cad7)
#11 nano::stat::add(nano::stat::type, nano::stat::detail, nano::stat::dir, unsigned long, bool) /root/nano-node/nano/lib/stats.hpp:396:4 (core_test+0x957604)
#12 nano::stat::inc(nano::stat::type, nano::stat::detail, nano::stat::dir) /root/nano-node/nano/lib/stats.hpp:367:3 (core_test+0x93f3c6)
#13 (anonymous namespace)::network_message_visitor::node_id_handshake(nano::node_id_handshake const&) /root/nano-node/nano/node/network.cpp:520:14 (core_test+0xe5b8d9)
#14 nano::node_id_handshake::visit(nano::message_visitor&) const /root/nano-node/nano/node/common.cpp:1037:12 (core_test+0xcad0ff)
#15 nano::network::process_message(nano::message const&, std::shared_ptr<nano::transport::channel>) /root/nano-node/nano/node/network.cpp:530:12 (core_test+0xe55b62)
#16 (anonymous namespace)::udp_message_visitor::message(nano::message const&) /root/nano-node/nano/node/transport/udp.cpp:466:17 (core_test+0xfcc47b)
#17 (anonymous namespace)::udp_message_visitor::node_id_handshake(nano::node_id_handshake const&) /root/nano-node/nano/node/transport/udp.cpp:456:3 (core_test+0xfcc215)
#18 nano::message_parser::deserialize_node_id_handshake(std::basic_streambuf<unsigned char, std::char_traits<unsigned char> >&, nano::message_header const&) /root/nano-node/nano/node/common.cpp:424:11 (core_test+0xca8d81)
#19 nano::message_parser::deserialize_buffer(unsigned char const*, unsigned long) /root/nano-node/nano/node/common.cpp:315:7 (core_test+0xca8161)
#20 nano::transport::udp_channels::receive_action(nano::message_buffer*) /root/nano-node/nano/node/transport/udp.cpp:493:10 (core_test+0xfc8d11)
#21 nano::transport::udp_channels::process_packets() /root/nano-node/nano/node/transport/udp.cpp:564:3 (core_test+0xfc9444)
#22 nano::network::network(nano::node&, unsigned short)::$_1::operator()() const /root/nano-node/nano/node/network.cpp:23:18 (core_test+0xe5c3e9)
#23 boost::detail::thread_data<nano::network::network(nano::node&, unsigned short)::$_1>::run() /usr/include/boost/thread/detail/thread.hpp:117:17 (core_test+0xe5c34f)
#24 thread_proxy <null> (core_test+0x1540074)
Location is heap block of size 320 at 0x7b4400060400 allocated by thread T4:
#0 operator new(unsigned long) <null> (core_test+0x508f4d)
#1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<nano::stat_entry, std::allocator<nano::stat_entry>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:114:27 (core_test+0x12417c0)
#2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<nano::stat_entry, std::allocator<nano::stat_entry>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<nano::stat_entry, std::allocator<nano::stat_entry>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:444:20 (core_test+0x124167c)
#3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<nano::stat_entry, std::allocator<nano::stat_entry>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<nano::stat_entry, std::allocator<nano::stat_entry>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<nano::stat_entry, std::allocator<nano::stat_entry>, (__gnu_cxx::_Lock_policy)2> >&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/allocated_ptr.h:97:21 (core_test+0x124125f)
#4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<nano::stat_entry, std::allocator<nano::stat_entry>, unsigned long&, unsigned long&>(nano::stat_entry*&, std::_Sp_alloc_shared_tag<std::allocator<nano::stat_entry> >, unsigned long&, unsigned long&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:677:19 (core_test+0x1241010)
#5 std::__shared_ptr<nano::stat_entry, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<nano::stat_entry>, unsigned long&, unsigned long&>(std::_Sp_alloc_shared_tag<std::allocator<nano::stat_entry> >, unsigned long&, unsigned long&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:1344:14 (core_test+0x1240f3a)
#6 std::shared_ptr<nano::stat_entry>::shared_ptr<std::allocator<nano::stat_entry>, unsigned long&, unsigned long&>(std::_Sp_alloc_shared_tag<std::allocator<nano::stat_entry> >, unsigned long&, unsigned long&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:359:4 (core_test+0x1240e5e)
#7 std::shared_ptr<nano::stat_entry> std::allocate_shared<nano::stat_entry, std::allocator<nano::stat_entry>, unsigned long&, unsigned long&>(std::allocator<nano::stat_entry> const&, unsigned long&, unsigned long&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:701:14 (core_test+0x1240d24)
#8 std::shared_ptr<nano::stat_entry> std::make_shared<nano::stat_entry, unsigned long&, unsigned long&>(unsigned long&, unsigned long&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:717:14 (core_test+0x123da00)
#9 nano::stat::get_entry_impl(unsigned int, unsigned long, unsigned long) /root/nano-node/nano/lib/stats.cpp:167:46 (core_test+0x123ae34)
#10 nano::stat::update(unsigned int, unsigned long) /root/nano-node/nano/lib/stats.cpp:263:14 (core_test+0x123cad7)
#11 nano::stat::add(nano::stat::type, nano::stat::detail, nano::stat::dir, unsigned long, bool) /root/nano-node/nano/lib/stats.hpp:396:4 (core_test+0x957604)
#12 nano::stat::inc(nano::stat::type, nano::stat::detail, nano::stat::dir) /root/nano-node/nano/lib/stats.hpp:367:3 (core_test+0x93f3c6)
#13 (anonymous namespace)::network_message_visitor::node_id_handshake(nano::node_id_handshake const&) /root/nano-node/nano/node/network.cpp:520:14 (core_test+0xe5b8d9)
#14 nano::node_id_handshake::visit(nano::message_visitor&) const /root/nano-node/nano/node/common.cpp:1037:12 (core_test+0xcad0ff)
#15 nano::network::process_message(nano::message const&, std::shared_ptr<nano::transport::channel>) /root/nano-node/nano/node/network.cpp:530:12 (core_test+0xe55b62)
#16 (anonymous namespace)::udp_message_visitor::message(nano::message const&) /root/nano-node/nano/node/transport/udp.cpp:466:17 (core_test+0xfcc47b)
#17 (anonymous namespace)::udp_message_visitor::node_id_handshake(nano::node_id_handshake const&) /root/nano-node/nano/node/transport/udp.cpp:456:3 (core_test+0xfcc215)
#18 nano::message_parser::deserialize_node_id_handshake(std::basic_streambuf<unsigned char, std::char_traits<unsigned char> >&, nano::message_header const&) /root/nano-node/nano/node/common.cpp:424:11 (core_test+0xca8d81)
#19 nano::message_parser::deserialize_buffer(unsigned char const*, unsigned long) /root/nano-node/nano/node/common.cpp:315:7 (core_test+0xca8161)
#20 nano::transport::udp_channels::receive_action(nano::message_buffer*) /root/nano-node/nano/node/transport/udp.cpp:493:10 (core_test+0xfc8d11)
#21 nano::transport::udp_channels::process_packets() /root/nano-node/nano/node/transport/udp.cpp:564:3 (core_test+0xfc9444)
#22 nano::network::network(nano::node&, unsigned short)::$_1::operator()() const /root/nano-node/nano/node/network.cpp:23:18 (core_test+0xe5c3e9)
#23 boost::detail::thread_data<nano::network::network(nano::node&, unsigned short)::$_1>::run() /usr/include/boost/thread/detail/thread.hpp:117:17 (core_test+0xe5c34f)
#24 thread_proxy <null> (core_test+0x1540074)
Mutex M937 (0x7ba0000072b0) created at:
#0 pthread_mutex_lock <null> (core_test+0x49ba9e)
#1 __gthread_mutex_lock(pthread_mutex_t*) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9/bits/gthr-default.h:749:12 (core_test+0x51e1a6)
#2 std::mutex::lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_mutex.h:100:17 (core_test+0x527d58)
#3 std::unique_lock<std::mutex>::lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_lock.h:141:17 (core_test+0x66b851)
#4 std::unique_lock<std::mutex>::unique_lock(std::mutex&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_lock.h:71:2 (core_test+0x66b323)
#5 nano::stat::update(unsigned int, unsigned long) /root/nano-node/nano/lib/stats.cpp:262:31 (core_test+0x123ca71)
#6 nano::stat::add(nano::stat::type, nano::stat::detail, nano::stat::dir, unsigned long, bool) /root/nano-node/nano/lib/stats.hpp:391:3 (core_test+0x9575cd)
#7 nano::stat::inc(nano::stat::type, nano::stat::detail, nano::stat::dir) /root/nano-node/nano/lib/stats.hpp:367:3 (core_test+0x93f3c6)
#8 nano::bootstrap_initiator::bootstrap() /root/nano-node/nano/node/bootstrap.cpp:1656:14 (core_test+0xc2acdc)
#9 nano::node::ongoing_bootstrap() /root/nano-node/nano/node/node.cpp:910:22 (core_test+0xea134b)
#10 nano::node::start() /root/nano-node/nano/node/node.cpp:772:3 (core_test+0xea0964)
#11 nano::system::add_node(nano::node_config const&, bool, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:31:8 (core_test+0xf89fb4)
#12 nano::system::system(unsigned short, unsigned short, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:118:17 (core_test+0xf8afe9)
#13 network_send_node_id_handshake_Test::TestBody() /root/nano-node/nano/core_test/network.cpp:71:15 (core_test+0x7c0103)
#14 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11a7f16)
#15 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1183d7e)
#16 testing::Test::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2517:5 (core_test+0x1156ede)
#17 testing::TestInfo::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2693:11 (core_test+0x1158146)
#18 testing::TestCase::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2811:28 (core_test+0x1158b87)
#19 testing::internal::UnitTestImpl::RunAllTests() /root/nano-node/gtest/googletest/src/gtest.cc:5177:43 (core_test+0x1169e54)
#20 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11acad6)
#21 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1187bbe)
#22 testing::UnitTest::Run() /root/nano-node/gtest/googletest/src/gtest.cc:4786:10 (core_test+0x11698cb)
#23 RUN_ALL_TESTS() /root/nano-node/gtest/googletest/include/gtest/gtest.h:2341:46 (core_test+0x50baa7)
#24 main /root/nano-node/nano/core_test/core_test_main.cc:17:13 (core_test+0x50ae36)
Thread T4 'Pkt processing' (tid=12936, finished) created by main thread at:
#0 pthread_create <null> (core_test+0x47f8d5)
#1 boost::thread::start_thread_noexcept(boost::thread_attributes const&) <null> (core_test+0x153e859)
#2 boost::thread::thread<nano::network::network(nano::node&, unsigned short)::$_1>(boost::thread_attributes const&, nano::network::network(nano::node&, unsigned short)::$_1&&) /usr/include/boost/thread/detail/thread.hpp:274:13 (core_test+0xe50d50)
#3 nano::network::network(nano::node&, unsigned short) /root/nano-node/nano/node/network.cpp:19:40 (core_test+0xe50aa1)
#4 nano::node::node(nano::node_init&, boost::asio::io_context&, boost::filesystem::path const&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool) /root/nano-node/nano/node/node.cpp:211:1 (core_test+0xe98048)
#5 void __gnu_cxx::new_allocator<nano::node>::construct<nano::node, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(nano::node*, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h:147:23 (core_test+0xf96418)
#6 void std::allocator_traits<std::allocator<nano::node> >::construct<nano::node, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::allocator<nano::node>&, nano::node*, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h:484:8 (core_test+0xf96225)
#7 std::_Sp_counted_ptr_inplace<nano::node, std::allocator<nano::node>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:548:4 (core_test+0xf96059)
#8 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<nano::node, std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(nano::node*&, std::_Sp_alloc_shared_tag<std::allocator<nano::node> >, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:680:6 (core_test+0xf95d49)
#9 std::__shared_ptr<nano::node, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::_Sp_alloc_shared_tag<std::allocator<nano::node> >, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:1344:14 (core_test+0xf95adf)
#10 std::shared_ptr<nano::node>::shared_ptr<std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::_Sp_alloc_shared_tag<std::allocator<nano::node> >, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:359:4 (core_test+0xf958f6)
#11 std::shared_ptr<nano::node> std::allocate_shared<nano::node, std::allocator<nano::node>, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(std::allocator<nano::node> const&, nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:701:14 (core_test+0xf956ab)
#12 std::shared_ptr<nano::node> std::make_shared<nano::node, nano::node_init&, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags, bool&>(nano::node_init&, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&&, bool&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:717:14 (core_test+0xf9381f)
#13 nano::system::add_node(nano::node_config const&, bool, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:29:13 (core_test+0xf89f20)
#14 nano::system::system(unsigned short, unsigned short, nano::transport::transport_type) /root/nano-node/nano/node/testing.cpp:118:17 (core_test+0xf8afe9)
#15 network_send_node_id_handshake_Test::TestBody() /root/nano-node/nano/core_test/network.cpp:71:15 (core_test+0x7c0103)
#16 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11a7f16)
#17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1183d7e)
#18 testing::Test::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2517:5 (core_test+0x1156ede)
#19 testing::TestInfo::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2693:11 (core_test+0x1158146)
#20 testing::TestCase::Run() /root/nano-node/gtest/googletest/src/gtest.cc:2811:28 (core_test+0x1158b87)
#21 testing::internal::UnitTestImpl::RunAllTests() /root/nano-node/gtest/googletest/src/gtest.cc:5177:43 (core_test+0x1169e54)
#22 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2443:10 (core_test+0x11acad6)
#23 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /root/nano-node/gtest/googletest/src/gtest.cc:2479:14 (core_test+0x1187bbe)
#24 testing::UnitTest::Run() /root/nano-node/gtest/googletest/src/gtest.cc:4786:10 (core_test+0x11698cb)
#25 RUN_ALL_TESTS() /root/nano-node/gtest/googletest/include/gtest/gtest.h:2341:46 (core_test+0x50baa7)
#26 main /root/nano-node/nano/core_test/core_test_main.cc:17:13 (core_test+0x50ae36)
SUMMARY: ThreadSanitizer: data race (/root/nano-node/build/core_test+0x4c9624) in __tsan_atomic32_fetch_add
==================
[ FAILED ] network.send_node_id_handshake (1009 ms)
[----------] 1 test from network (1009 ms total)
[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (1012 ms total)
[ PASSED ] 0 tests.
[ FAILED ] 1 test, listed below:
[ FAILED ] network.send_node_id_handshake
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment