Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WARNING: ThreadSanitizer: data race #48

Open
decryp2kanon opened this issue Oct 20, 2020 · 2 comments
Open

WARNING: ThreadSanitizer: data race #48

decryp2kanon opened this issue Oct 20, 2020 · 2 comments

Comments

@decryp2kanon
Copy link
Contributor

decryp2kanon commented Oct 20, 2020

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
Copy link
Contributor Author

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
Copy link
Contributor Author

==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)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant