Skip to content

Instantly share code, notes, and snippets.

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
==================
WARNING: ThreadSanitizer: heap-use-after-free (pid=24592)
Read of size 8 at 0x7b18000162c0 by thread T13 (mutexes: write M907):
#0 std::__detail::_Hash_node<std::pair<nano::uint512_union const, std::shared_ptr<nano::state_block> >, true>::_M_next() const /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/hashtable_policy.h:270:47 (core_test+0x1069a22)
#1 std::__detail::_Node_iterator_base<std::pair<nano::uint512_union const, std::shared_ptr<nano::state_block> >, true>::_M_incr() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/hashtable_policy.h:299:26 (core_test+0x1074fde)
#2 std::__detail::_Node_iterator<std::pair<nano::uint512_union const, std::shared_ptr<nano::state_block> >, false, true>::operator++() /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/hashtable_policy.h:354:8 (core_test+0x1066782)
#3 nano::work_watcher::run() /root/nano-node/nano/node/wallet.cpp:1442:17 (core_test+0x10575d1)
#4 nano::work_
@wezrule
wezrule / gist:2e3ee5bf2dcd196a40a94fdc2d18da82
Created June 7, 2019 16:26
node.node_receive_quorum TSAN option Clang/Mac
[ RUN ] node.node_receive_quorum
2019-06-07 13:46:37.565155+0100 atos[2278:33749] examining /Users/USER/Library/raiblocks/*/core_test [2272]
==================
[1m[31mWARNING: ThreadSanitizer: data race (pid=2272)
[1m[0m[1m[34m Write of size 8 at 0x7b8800000230 by main thread:
[1m[0m #0 std::__1::__shared_count::__shared_count(long) memory:3526 (core_test:x86_64+0x101653ca2)
#1 std::__1::__shared_weak_count::__shared_weak_count(long) memory:3560 (core_test:x86_64+0x1016537e2)
#2 std::__1::__shared_ptr_emplace<nano::send_block, boost::fast_pool_allocator<nano::send_block, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> >::__shared_ptr_emplace<bool&, std::__1::basic_streambuf<unsigned char, std::__1::char_traits<unsigned char> >&>(boost::fast_pool_allocator<nano::send_block, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u>, bool&&&, std::__1::basic_streambuf<unsigned char, std::__1::char_traits<unsigned char> >&&&) memory:3667 (core_test:x86_64+0x10165e43b
@wezrule
wezrule / gist:217fbebde0b68394391feb18d35fbd92
Created June 11, 2019 11:58
Valgrind rpc.simultaneous_calls
==7454== Warning: set address range perms: large range [0x59e43000, 0x99e43000) (defined)
/home/wesley/Documents/raiblocks/nano/rpc_test/rpc.cpp:6431: Failure
Value of: system.poll ()
Actual: Deadline expired
Expected:
==7454== Thread 19 I/O:
==7454== Invalid read of size 8
==7454== at 0x95EE68: boost::log::v2s_mt_posix::attribute_value_set::attribute_value_set(boost::log::v2s_mt_posix::attribute_set const&, boost::log::v2s_mt_posix::attribute_set const&, boost::log::v2s_mt_posix::attribute_set const&, unsigned long) (in /home/wesley/Documents/raiblocks/build/rpc_test)
==7454== by 0x963A21: boost::log::v2s_mt_posix::core::open_record(boost::log::v2s_mt_posix::attribute_set const&) (in /home/wesley/Documents/raiblocks/build/rpc_test)
==7454== by 0x3B0E3C: boost::log::v2s_mt_posix::record boost::log::v2s_mt_posix::sources::basic_logger<char, boost::log::v2s_mt_posix::sources::severity_logger_mt<nano::severity_level>, boost::log::v2s_mt_posix::sources::multi_thread_model<boost::log::v2s_mt_posix::aux
WARNING: ThreadSanitizer: data race (pid=5671)
Read of size 8 at 0x7b0c000019d8 by thread T3:
#0 std::__uniq_ptr_impl<boost::system::detail::std_category, std::default_delete<boost::system::detail::std_category> >::_M_ptr() const /usr/bin/../lib/gcc/x86_64-linux-gnu/7.4.0/../../../../include/c++/7.4.0/bits/unique_ptr.h:147 (nano_rpc+0x4cc1b4)
#1 std::unique_ptr<boost::system::detail::std_category, std::default_delete<boost::system::detail::std_category> >::get() const /usr/bin/../lib/gcc/x86_64-linux-gnu/7.4.0/../../../../include/c++/7.4.0/bits/unique_ptr.h:337 (nano_rpc+0x4cc158)
#2 std::unique_ptr<boost::system::detail::std_category, std::default_delete<boost::system::detail::std_category> >::operator*() const /usr/bin/../lib/gcc/x86_64-linux-gnu/7.4.0/../../../../include/c++/7.4.0/bits/unique_ptr.h:323 (nano_rpc+0x4c9ba8)
#3 boost::system::detail::to_std_category(boost::system::error_category const&) /usr/local/include/boost/system/detail/std_interoperability.hpp:73 (nano_rpc+0x4c9535)
WARNING: ThreadSanitizer: data race (pid=7452)
Read of size 1 at 0x000001df846a by thread T4:
#0 std::ctype<char>::narrow(char, char) const /usr/bin/../lib/gcc/x86_64-linux-gnu/7.4.0/../../../../include/c++/7.4.0/bits/locale_facets.h:932 (nano_rpc+0x5294ee)
#1 char boost::io::detail::wrap_narrow<char, std::ctype<char> >(std::ctype<char> const&, char, char) /usr/local/include/boost/format/parsing.hpp:44 (nano_rpc+0x5290ff)
#2 __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > boost::io::detail::str2int<int, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::ctype<char> >(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, int&, std::ctype<
wezrule@ubuntu_server:~/nano/raiblocks$ cppcheck --enable=all nano/
Checking nano/core_test/active_transactions.cpp ...
1/130 files checked 0% done
Checking nano/core_test/block.cpp ...
[nano/core_test/block.cpp:459]: (style) Unused variable: ec
2/130 files checked 1% done
Checking nano/core_test/block_store.cpp ...
Checking nano/core_test/block_store.cpp: NANO_ROCKSDB=0...
3/130 files checked 2% done
Checking nano/core_test/conflicts.cpp ...
WARNING: ThreadSanitizer: data race (pid=22545)
Read of size 1 at 0x7b7800150ff1 by thread T130 (mutexes: write M385193712445065688):
#0 memcmp ??:? (core_test+0x4d481b)
#1 rocksdb::(anonymous namespace)::BytewiseComparatorImpl::Compare(rocksdb::Slice const&, rocksdb::Slice const&) const /home/wezrule/nano/rocksdb/./include/rocksdb/slice.h:240 (core_test+0x1a260f7)
#2 Compare /home/wezrule/nano/rocksdb/util/comparator.cc:28 (core_test+0x1a260f7)
#3 nano::block_store_partial<rocksdb::Slice, nano::rocksdb_store>::get(nano::transaction const&, nano::tables, nano::db_val<rocksdb::Slice> const&, nano::db_val<rocksdb::Slice>&) const /home/wezrule/nano/raiblocks/nano/secure/blockstore_partial.hpp:974 (core_test+0xdddc84)
#4 nano::block_store_partial<rocksdb::Slice, nano::rocksdb_store>::block_raw_get_by_type(nano::transaction const&, nano::block_hash const&, nano::block_type&) const /home/wezrule/nano/raiblocks/nano/secure/blockstore_partial.hpp:916 (core_test+0xdec6ff)
#5 nano::block_store
@wezrule
wezrule / gist:febc782e9d8c1863760be2055b1e728e
Created October 16, 2019 18:09
TSAN error work_block_set
[ RUN ] active_transactions.update_difficulty
==================
WARNING: ThreadSanitizer: data race (pid=25733)
Write of size 8 at 0x7b2c00000998 by main thread:
#0 nano::send_block::block_work_set(unsigned long) /home/wezrule/nano/raiblocks/nano/lib/blocks.cpp:155 (core_test+0x14c2ffd)
#1 nano::node::work_generate_blocking(nano::block&, unsigned long) /home/wezrule/nano/raiblocks/nano/node/node.cpp:989 (core_test+0x119a97f)
#2 active_transactions_update_difficulty_Test::TestBody() /home/wezrule/nano/raiblocks/nano/core_test/active_transactions.cpp:526 (core_test+0x564112)
#3 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /home/wezrule/nano/raiblocks/gtest/googletest/src/gtest.cc:2443 (core_test+0x148cbe6)
#4 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /home/wezrule/nano/raiblocks/gtest/googletest/s
WARNING: ThreadSanitizer: thread leak (pid=5898)
Thread T48 'Pkt processing' (tid=5947, finished) created by main thread at:
#0 pthread_create ??:? (core_test+0x4ab0c6)
#1 boost::thread::start_thread_noexcept(boost::thread_attributes const&) ??:? (core_test+0x18305e5)
#2 thread<(lambda at /home/wezrule/nano/nano-node/nano/node/network.cpp:19:62)> /usr/local/include/boost/thread/detail/thread.hpp:277 (core_test+0x1131240)
#3 network /home/wezrule/nano/nano-node/nano/node/network.cpp:19 (core_test+0x1130f97)
#4 node /home/wezrule/nano/nano-node/nano/node/node.cpp:133 (core_test+0x118d716)
#5 void __gnu_cxx::new_allocator<nano::node>::construct<nano::node, boost::asio::io_context&, boost::filesystem::path, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&>(nano::node*, boost::asio::io_context&, boost::filesystem::path&&, nano::alarm&, nano::node_config const&, nano::work_pool&, nano::node_flags&) /usr/bin/../lib/gcc/x86_64-linux-gnu/7.4.0/../../../../include/c+