sugarchain-project / yumekawa

[TEST] Yumekawa 2.0 Taproot
MIT License
6 stars 5 forks source link

WARNING: ThreadSanitizer: data race #48

Open decryp2kanon opened 3 years ago

decryp2kanon commented 3 years ago

https://cirrus-ci.com/task/6475577077006336?command=ci#L5232

WARNING: ThreadSanitizer: data race (pid=112226)
  Write of size 4 at 0x7fa34807936c by main thread:
    #0 CConnman::Init(CConnman::Options const&) /tmp/cirrus-ci-build/ci/scratch/build/sugarchain-x86_64-pc-linux-gnu/src/./net.h:229:35 (sugarchaind+0x19881b)
    #1 CConnman::Start(CScheduler&, CConnman::Options const&) /tmp/cirrus-ci-build/ci/scratch/build/sugarchain-x86_64-pc-linux-gnu/src/net.cpp:2423:5 (sugarchaind+0x18c5ac)
    #2 AppInitMain(util::Ref const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*) /tmp/cirrus-ci-build/ci/scratch/build/sugarchain-x86_64-pc-linux-gnu/src/init.cpp:2004:24 (sugarchaind+0x13a1ab)
    #3 AppInit(int, char**) /tmp/cirrus-ci-build/ci/scratch/build/sugarchain-x86_64-pc-linux-gnu/src/bitcoind.cpp:142:43 (sugarchaind+0x118428)
    #4 main /tmp/cirrus-ci-build/ci/scratch/build/sugarchain-x86_64-pc-linux-gnu/src/bitcoind.cpp:172:13 (sugarchaind+0x118428)
  Previous read of size 4 at 0x7fa34807936c by thread T4 (mutexes: write M141):
    #0 CConnman::GetExtraOutboundCount() /tmp/cirrus-ci-build/ci/scratch/build/sugarchain-x86_64-pc-linux-gnu/src/net.cpp:1849:33 (sugarchaind+0x1838f6)
    #1 PeerManager::EvictExtraOutboundPeers(long) /tmp/cirrus-ci-build/ci/scratch/build/sugarchain-x86_64-pc-linux-gnu/src/net_processing.cpp:3886:33 (sugarchaind+0x1db6ed)
    #2 PeerManager::CheckForStaleTipAndEvictPeers() /tmp/cirrus-ci-build/ci/scratch/build/sugarchain-x86_64-pc-linux-gnu/src/net_processing.cpp:3948:5 (sugarchaind+0x1db93c)
    #3 PeerManager::PeerManager(CChainParams const&, CConnman&, BanMan*, CScheduler&, ChainstateManager&, CTxMemPool&)::$_3::operator()() const /tmp/cirrus-ci-build/ci/scratch/build/sugarchain-x86_64-pc-linux-gnu/src/net_processing.cpp:1179:44 (sugarchaind+0x1eae75)
    #4 decltype(std::__1::forward<PeerManager::PeerManager(CChainParams const&, CConnman&, BanMan*, CScheduler&, ChainstateManager&, CTxMemPool&)::$_3&>(fp)()) std::__1::__invoke<PeerManager::PeerManager(CChainParams const&, CConnman&, BanMan*, CScheduler&, ChainstateManager&, CTxMemPool&)::$_3&>(PeerManager::PeerManager(CChainParams const&, CConnman&, BanMan*, CScheduler&, ChainstateManager&, CTxMemPool&)::$_3&) /usr/lib/llvm-10/bin/../include/c++/v1/type_traits:3539:1 (sugarchaind+0x1eae75)
    #5 void std::__1::__invoke_void_return_wrapper<void>::__call<PeerManager::PeerManager(CChainParams const&, CConnman&, BanMan*, CScheduler&, ChainstateManager&, CTxMemPool&)::$_3&>(PeerManager::PeerManager(CChainParams const&, CConnman&, BanMan*, CScheduler&, ChainstateManager&, CTxMemPool&)::$_3&) /usr/lib/llvm-10/bin/../include/c++/v1/__functional_base:348:9 (sugarchaind+0x1eae75)
    #6 std::__1::__function::__alloc_func<PeerManager::PeerManager(CChainParams const&, CConnman&, BanMan*, CScheduler&, ChainstateManager&, CTxMemPool&)::$_3, std::__1::allocator<PeerManager::PeerManager(CChainParams const&, CConnman&, BanMan*, CScheduler&, ChainstateManager&, CTxMemPool&)::$_3>, void ()>::operator()() /usr/lib/llvm-10/bin/../include/c++/v1/functional:1540:16 (sugarchaind+0x1eae75)
    #7 std::__1::__function::__func<PeerManager::PeerManager(CChainParams const&, CConnman&, BanMan*, CScheduler&, ChainstateManager&, CTxMemPool&)::$_3, std::__1::allocator<PeerManager::PeerManager(CChainParams const&, CConnman&, BanMan*, CScheduler&, ChainstateManager&, CTxMemPool&)::$_3>, void ()>::operator()() /usr/lib/llvm-10/bin/../include/c++/v1/functional:1714:12 (sugarchaind+0x1eae75)
    #8 std::__1::__function::__value_func<void ()>::operator()() const /usr/lib/llvm-10/bin/../include/c++/v1/functional:1867:16 (sugarchaind+0x6f44b1)
    #9 std::__1::function<void ()>::operator()() const /usr/lib/llvm-10/bin/../include/c++/v1/functional:2473:12 (sugarchaind+0x6f44b1)
    #10 Repeat(CScheduler&, std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >) /tmp/cirrus-ci-build/ci/scratch/build/sugarchain-x86_64-pc-linux-gnu/src/scheduler.cpp:104:5 (sugarchaind+0x6f44b1)
    #11 CScheduler::scheduleEvery(std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >)::$_0::operator()() const /tmp/cirrus-ci-build/ci/scratch/build/sugarchain-x86_64-pc-linux-gnu/src/scheduler.cpp:110:27 (sugarchaind+0x6f42fb)
    #12 decltype(std::__1::forward<CScheduler::scheduleEvery(std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >)::$_0&>(fp)()) std::__1::__invoke<CScheduler::scheduleEvery(std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >)::$_0&>(CScheduler::scheduleEvery(std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >)::$_0&) /usr/lib/llvm-10/bin/../include/c++/v1/type_traits:3539:1 (sugarchaind+0x6f42fb)
    #13 void std::__1::__invoke_void_return_wrapper<void>::__call<CScheduler::scheduleEvery(std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >)::$_0&>(CScheduler::scheduleEvery(std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >)::$_0&) /usr/lib/llvm-10/bin/../include/c++/v1/__functional_base:348:9 (sugarchaind+0x6f42fb)
    #14 std::__1::__function::__alloc_func<CScheduler::scheduleEvery(std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >)::$_0, std::__1::allocator<CScheduler::scheduleEvery(std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >)::$_0>, void ()>::operator()() /usr/lib/llvm-10/bin/../include/c++/v1/functional:1540:16 (sugarchaind+0x6f42fb)
    #15 std::__1::__function::__func<CScheduler::scheduleEvery(std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >)::$_0, std::__1::allocator<CScheduler::scheduleEvery(std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >)::$_0>, void ()>::operator()() /usr/lib/llvm-10/bin/../include/c++/v1/functional:1714:12 (sugarchaind+0x6f42fb)
    #16 std::__1::__function::__value_func<void ()>::operator()() const /usr/lib/llvm-10/bin/../include/c++/v1/functional:1867:16 (sugarchaind+0x6f26f5)
    #17 std::__1::function<void ()>::operator()() const /usr/lib/llvm-10/bin/../include/c++/v1/functional:2473:12 (sugarchaind+0x6f26f5)
    #18 CScheduler::serviceQueue() /tmp/cirrus-ci-build/ci/scratch/build/sugarchain-x86_64-pc-linux-gnu/src/scheduler.cpp:60:17 (sugarchaind+0x6f26f5)
    #19 AppInitMain(util::Ref const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6::operator()() const::'lambda'()::operator()() const /tmp/cirrus-ci-build/ci/scratch/build/sugarchain-x86_64-pc-linux-gnu/src/init.cpp:1343:84 (sugarchaind+0x13f4e1)
    #20 void TraceThread<AppInitMain(util::Ref const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6::operator()() const::'lambda'()>(char const*, AppInitMain(util::Ref const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6::operator()() const::'lambda'()) /tmp/cirrus-ci-build/ci/scratch/build/sugarchain-x86_64-pc-linux-gnu/src/./util/system.h:438:9 (sugarchaind+0x13f4e1)
    #21 AppInitMain(util::Ref const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6::operator()() const /tmp/cirrus-ci-build/ci/scratch/build/sugarchain-x86_64-pc-linux-gnu/src/init.cpp:1343:37 (sugarchaind+0x13f4e1)
    #22 boost::detail::thread_data<AppInitMain(util::Ref const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6>::run() /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/share/../include/boost/thread/detail/thread.hpp:120:17 (sugarchaind+0x13f4e1)
    #23 boost::(anonymous namespace)::thread_proxy(void*) <null> (sugarchaind+0x8849ce)
  Location is heap block of size 328928 at 0x7fa348029000 allocated by main thread:
    #0 operator new(unsigned long) <null> (sugarchaind+0x11548b)
    #1 std::__1::unique_ptr<CConnman, std::__1::default_delete<CConnman> > MakeUnique<CConnman, unsigned long, unsigned long, bool>(unsigned long&&, unsigned long&&, bool&&) /tmp/cirrus-ci-build/ci/scratch/build/sugarchain-x86_64-pc-linux-gnu/src/./util/memory.h:16:31 (sugarchaind+0x130ec2)
    #2 AppInitMain(util::Ref const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*) /tmp/cirrus-ci-build/ci/scratch/build/sugarchain-x86_64-pc-linux-gnu/src/init.cpp:1390:20 (sugarchaind+0x130ec2)
    #3 AppInit(int, char**) /tmp/cirrus-ci-build/ci/scratch/build/sugarchain-x86_64-pc-linux-gnu/src/bitcoind.cpp:142:43 (sugarchaind+0x118428)
    #4 main /tmp/cirrus-ci-build/ci/scratch/build/sugarchain-x86_64-pc-linux-gnu/src/bitcoind.cpp:172:13 (sugarchaind+0x118428)
  Mutex M141 (0x55bf154b33b8) created at:
    #0 pthread_mutex_init <null> (sugarchaind+0x89afd)
    #1 std::__1::recursive_mutex::recursive_mutex() <null> (libc++.so.1+0x83583)
    #2 __libc_csu_init <null> (sugarchaind+0xb78b2c)
  Thread T4 'b-scheduler' (tid=112240, running) created by main thread at:
    #0 pthread_create <null> (sugarchaind+0x8857b)
    #1 boost::thread::start_thread_noexcept() <null> (sugarchaind+0x8848cd)
    #2 boost::thread::thread<AppInitMain(util::Ref const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6&>(AppInitMain(util::Ref const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6&) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/share/../include/boost/thread/detail/thread.hpp:269:13 (sugarchaind+0x130652)
    #3 boost::thread* boost::thread_group::create_thread<AppInitMain(util::Ref const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6>(AppInitMain(util::Ref const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/share/../include/boost/thread/detail/thread_group.hpp:79:60 (sugarchaind+0x130652)
    #4 AppInitMain(util::Ref const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*) /tmp/cirrus-ci-build/ci/scratch/build/sugarchain-x86_64-pc-linux-gnu/src/init.cpp:1343:17 (sugarchaind+0x130652)
    #5 AppInit(int, char**) /tmp/cirrus-ci-build/ci/scratch/build/sugarchain-x86_64-pc-linux-gnu/src/bitcoind.cpp:142:43 (sugarchaind+0x118428)
    #6 main /tmp/cirrus-ci-build/ci/scratch/build/sugarchain-x86_64-pc-linux-gnu/src/bitcoind.cpp:172:13 (sugarchaind+0x118428)
SUMMARY: ThreadSanitizer: data race /tmp/cirrus-ci-build/ci/scratch/build/sugarchain-x86_64-pc-linux-gnu/src/./net.h:229:35 in CConnman::Init(CConnman::Options const&)
==================
decryp2kanon commented 3 years ago

https://github.com/sugarchain-project/yumekawa/runs/1282964284 SUMMARY: ThreadSanitizer: data race /tmp/cirrus-ci-build/ci/scratch/build/sugarchain-x86_64-pc-linux-gnu/src/net.cpp:1849:33 in CConnman::GetExtraOutboundCount()

decryp2kanon commented 3 years ago
==22427==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 216 byte(s) in 1 object(s) allocated from:
    #0 0x560c25d2c6e3 in __interceptor_malloc (/home/ak/git/SUGAR/SUGARCHAIN/yumekawa/src/qt/test/test_sugarchain-qt+0x26456e3)
    #1 0x560c277b3354 in __os_malloc (/home/ak/git/SUGAR/SUGARCHAIN/yumekawa/src/qt/test/test_sugarchain-qt+0x40cc354)
    #2 0x6120001582bf  (<unknown module>)

Direct leak of 216 byte(s) in 1 object(s) allocated from:
    #0 0x560c25d2c6e3 in __interceptor_malloc (/home/ak/git/SUGAR/SUGARCHAIN/yumekawa/src/qt/test/test_sugarchain-qt+0x26456e3)
    #1 0x560c277b3354 in __os_malloc (/home/ak/git/SUGAR/SUGARCHAIN/yumekawa/src/qt/test/test_sugarchain-qt+0x40cc354)
    #2 0x61200012093f  (<unknown module>)

Direct leak of 176 byte(s) in 2 object(s) allocated from:
    #0 0x560c25d5b922 in operator new(unsigned long) (/home/ak/git/SUGAR/SUGARCHAIN/yumekawa/src/qt/test/test_sugarchain-qt+0x2674922)
    #1 0x7fe77d0a8c31 in QLayoutPrivate::createWidgetItem(QLayout const*, QWidget*) (/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x17ac31)

Indirect leak of 192 byte(s) in 1 object(s) allocated from:
    #0 0x560c25d5b922 in operator new(unsigned long) (/home/ak/git/SUGAR/SUGARCHAIN/yumekawa/src/qt/test/test_sugarchain-qt+0x2674922)
    #1 0x7fe77d6c7473 in QScreen::QScreen(QPlatformScreen*) (/lib/x86_64-linux-gnu/libQt5Gui.so.5+0x142473)

Indirect leak of 61 byte(s) in 3 object(s) allocated from:
    #0 0x560c25d2c6e3 in __interceptor_malloc (/home/ak/git/SUGAR/SUGARCHAIN/yumekawa/src/qt/test/test_sugarchain-qt+0x26456e3)
    #1 0x560c277b3354 in __os_malloc (/home/ak/git/SUGAR/SUGARCHAIN/yumekawa/src/qt/test/test_sugarchain-qt+0x40cc354)
    #2 0x61200012093f  (<unknown module>)

Indirect leak of 61 byte(s) in 3 object(s) allocated from:
    #0 0x560c25d2c6e3 in __interceptor_malloc (/home/ak/git/SUGAR/SUGARCHAIN/yumekawa/src/qt/test/test_sugarchain-qt+0x26456e3)
    #1 0x560c277b3354 in __os_malloc (/home/ak/git/SUGAR/SUGARCHAIN/yumekawa/src/qt/test/test_sugarchain-qt+0x40cc354)
    #2 0x6120001582bf  (<unknown module>)

Indirect leak of 48 byte(s) in 1 object(s) allocated from:
    #0 0x560c25d5b922 in operator new(unsigned long) (/home/ak/git/SUGAR/SUGARCHAIN/yumekawa/src/qt/test/test_sugarchain-qt+0x2674922)
    #1 0x7fe775ec96f1  (/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqminimal.so+0xc6f1)
    #2 0x60400000c18f  (<unknown module>)

Indirect leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x560c25d5b922 in operator new(unsigned long) (/home/ak/git/SUGAR/SUGARCHAIN/yumekawa/src/qt/test/test_sugarchain-qt+0x2674922)
    #1 0x7fe77dc8d44e in QtSharedPointer::ExternalRefCountData::getAndRef(QObject const*) (/lib/x86_64-linux-gnu/libQt5Core.so.5+0x12e44e)

Indirect leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x560c25d5b922 in operator new(unsigned long) (/home/ak/git/SUGAR/SUGARCHAIN/yumekawa/src/qt/test/test_sugarchain-qt+0x2674922)
    #1 0x7fe77d689012 in QPlatformIntegration::screenAdded(QPlatformScreen*, bool) (/lib/x86_64-linux-gnu/libQt5Gui.so.5+0x104012)

Indirect leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x560c25d5b922 in operator new(unsigned long) (/home/ak/git/SUGAR/SUGARCHAIN/yumekawa/src/qt/test/test_sugarchain-qt+0x2674922)
    #1 0x7fe77d689bcb in QPlatformScreen::QPlatformScreen() (/lib/x86_64-linux-gnu/libQt5Gui.so.5+0x104bcb)

SUMMARY: AddressSanitizer: 1018 byte(s) leaked in 15 allocation(s).
FAIL qt/test/test_sugarchain-qt (exit status: 1)