Created
June 5, 2019 14:10
-
-
Save wezrule/279062783ed1ed2a2066ba5c79db0b83 to your computer and use it in GitHub Desktop.
stats TSAN error
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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