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

net: Add missing locking annotation for vNodes. vNodes is guarded by cs_vNodes. #15201

Merged
merged 1 commit into from Feb 8, 2019

Conversation

@practicalswift
Copy link
Contributor

@practicalswift practicalswift commented Jan 18, 2019

Add locking annotation for vNodes. vNodes is guarded by cs_vNodes.

@practicalswift practicalswift changed the title net: Add missing cs_vNodes lock in CConnman::Stop(). Add missing locking annotation. net: Add missing cs_vNodes lock in CConnman::Stop(). Add missing locking annotation. [wip] Jan 18, 2019
@practicalswift practicalswift force-pushed the cs_vNodes branch 2 times, most recently from 87c01e4 to 3ff29b5 Jan 18, 2019
@fanquake fanquake added the P2P label Jan 18, 2019
@DrahtBot
Copy link
Contributor

@DrahtBot DrahtBot commented Jan 19, 2019

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Conflicts

No conflicts as of last run.

@practicalswift practicalswift changed the title net: Add missing cs_vNodes lock in CConnman::Stop(). Add missing locking annotation. [wip] net: Add missing locking annotation for vNodes. vNodes is guarded by cs_vNodes. Jan 19, 2019
src/net.cpp Outdated Show resolved Hide resolved
@practicalswift practicalswift force-pushed the cs_vNodes branch 3 times, most recently from 618dcfd to 23ed24b Jan 19, 2019
@practicalswift
Copy link
Contributor Author

@practicalswift practicalswift commented Feb 7, 2019

@laanwj Feedback addressed! Please re-review :-)

@laanwj
Copy link
Member

@laanwj laanwj commented Feb 8, 2019

Thanks! I am still somewhat skeptical about adding a lock annotation then working around it, but all in all I think the annotation has value because it still allows checking the other uses of the lock. It's also good to document the hairy situation with a comment.

utACK eea02be

@MarcoFalke MarcoFalke merged commit eea02be into bitcoin:master Feb 8, 2019
2 checks passed
MarcoFalke added a commit that referenced this issue Feb 8, 2019
…is guarded by cs_vNodes.

eea02be Add locking annotation for vNodes. vNodes is guarded by cs_vNodes. (practicalswift)

Pull request description:

  Add locking annotation for `vNodes`. `vNodes` is guarded by `cs_vNodes`.

Tree-SHA512: b1e18be22ba5b9dd153536380321b09b30a75a20575f975af9af94164f51982b32267ba0994e77c801513b59da05d923a974a9d2dfebdac48024c4bda98b53af
@MarcoFalke
Copy link
Member

@MarcoFalke MarcoFalke commented Apr 11, 2019

Adding the to-be-fixed data race for future reference:

Line numbers as of bb68abe

WARNING: ThreadSanitizer: data race (pid=28633)
  Write of size 8 at 0x7f94042f9328 by main thread (mutexes: write M132887):
    #0 std::vector<CNode*, std::allocator<CNode*> >::_M_erase_at_end(CNode**) /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/stl_vector.h:1439 (bitcoind+0x0000005216ff)
    #1 std::vector<CNode*, std::allocator<CNode*> >::clear() /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/stl_vector.h:1212 (bitcoind+0x0000005216ff)
    #2 CConnman::Stop() /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/net.cpp:2351 (bitcoind+0x0000005216ff)
    #3 Shutdown(InitInterfaces&) /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/init.cpp:223 (bitcoind+0x0000004c27e2)
    #4 AppInit(int, char**) /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/bitcoind.cpp:185 (bitcoind+0x0000004bd41a)
    #5 main /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/bitcoind.cpp:201 (bitcoind+0x0000004bd41a)
  Previous read of size 8 at 0x7f94042f9328 by thread T2 (mutexes: write M131465, write M131617):
    #0 __normal_iterator /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/stl_iterator.h:741 (bitcoind+0x00000051b128)
    #1 std::vector<CNode*, std::allocator<CNode*> >::end() /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/stl_vector.h:566 (bitcoind+0x00000051b128)
    #2 CConnman::GetExtraOutboundCount() /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/net.cpp:1648 (bitcoind+0x00000051b128)
    #3 PeerLogicValidation::EvictExtraOutboundPeers(long) /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/net_processing.cpp:3346 (bitcoind+0x00000055af44)
    #4 PeerLogicValidation::CheckForStaleTipAndEvictPeers(Consensus::Params const&) /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/net_processing.cpp:3408 (bitcoind+0x00000053cb1c)
    #5 void std::_Mem_fn_base<void (PeerLogicValidation::*)(Consensus::Params const&), true>::operator()<Consensus::Params&, void>(PeerLogicValidation*, Consensus::Params&) const /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/functional:600 (bitcoind+0x00000058b607)
    #6 void std::_Bind<std::_Mem_fn<void (PeerLogicValidation::*)(Consensus::Params const&)> (PeerLogicValidation*, Consensus::Params)>::__call<void, , 0ul, 1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/functional:1073 (bitcoind+0x00000058b607)
    #7 void std::_Bind<std::_Mem_fn<void (PeerLogicValidation::*)(Consensus::Params const&)> (PeerLogicValidation*, Consensus::Params)>::operator()<, void>() /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/functional:1131 (bitcoind+0x00000058b607)
    #8 std::_Function_handler<void (), std::_Bind<std::_Mem_fn<void (PeerLogicValidation::*)(Consensus::Params const&)> (PeerLogicValidation*, Consensus::Params)> >::_M_invoke(std::_Any_data const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/functional:1871 (bitcoind+0x00000058b607)
    #9 std::function<void ()>::operator()() const /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/functional:2267 (bitcoind+0x0000008070ff)
    #10 Repeat(CScheduler*, std::function<void ()>, long) /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/scheduler.cpp:121 (bitcoind+0x0000008070ff)
    #11 void std::_Bind<void (*(CScheduler*, std::function<void ()>, long))(CScheduler*, std::function<void ()>, long)>::__call<void, , 0ul, 1ul, 2ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul, 2ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/functional:1073 (bitcoind+0x000000808406)
    #12 void std::_Bind<void (*(CScheduler*, std::function<void ()>, long))(CScheduler*, std::function<void ()>, long)>::operator()<, void>() /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/functional:1131 (bitcoind+0x000000808196)
    #13 std::_Function_handler<void (), std::_Bind<void (*(CScheduler*, std::function<void ()>, long))(CScheduler*, std::function<void ()>, long)> >::_M_invoke(std::_Any_data const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/functional:1871 (bitcoind+0x000000808196)
    #14 std::function<void ()>::operator()() const /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/functional:2267 (bitcoind+0x0000008066c5)
    #15 CScheduler::serviceQueue() /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/scheduler.cpp:82 (bitcoind+0x0000008066c5)
    #16 void std::_Mem_fn_base<void (CScheduler::*)(), true>::operator()<, void>(CScheduler*) const /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/functional:600 (bitcoind+0x000000500e77)
    #17 void std::_Bind<std::_Mem_fn<void (CScheduler::*)()> (CScheduler*)>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/functional:1073 (bitcoind+0x000000500e77)
    #18 void std::_Bind<std::_Mem_fn<void (CScheduler::*)()> (CScheduler*)>::operator()<, void>() /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/functional:1131 (bitcoind+0x000000500e77)
    #19 std::_Function_handler<void (), std::_Bind<std::_Mem_fn<void (CScheduler::*)()> (CScheduler*)> >::_M_invoke(std::_Any_data const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/functional:1871 (bitcoind+0x000000500e77)
    #20 std::function<void ()>::operator()() const /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/functional:2267 (bitcoind+0x0000004eae97)
    #21 void TraceThread<std::function<void ()> >(char const*, std::function<void ()>) /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/./util/system.h:340 (bitcoind+0x0000004eae97)
    #22 void std::_Bind<void (*(char const*, std::function<void ()>))(char const*, std::function<void ()>)>::__call<void, , 0ul, 1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/functional:1073 (bitcoind+0x00000050139c)
    #23 void std::_Bind<void (*(char const*, std::function<void ()>))(char const*, std::function<void ()>)>::operator()<, void>() /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/functional:1131 (bitcoind+0x000000501305)
    #24 boost::detail::thread_data<std::_Bind<void (*(char const*, std::function<void ()>))(char const*, std::function<void ()>)> >::run() /usr/include/boost/thread/detail/thread.hpp:116 (bitcoind+0x000000501305)
    #25 boost::this_thread::interruption_point() <null> (libboost_thread.so.1.58.0+0x0000000115d4)
  Location is heap block of size 328928 at 0x7f94042a9000 allocated by main thread:
    #0 operator new(unsigned long) <null> (bitcoind+0x0000004ba2f3)
    #1 AppInitMain(InitInterfaces&) /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/init.cpp:1335 (bitcoind+0x0000004da9a3)
    #2 AppInit(int, char**) /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/bitcoind.cpp:171 (bitcoind+0x0000004bcc96)
    #3 main /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/bitcoind.cpp:201 (bitcoind+0x0000004bcc96)
  Mutex M132887 (0x000000cd6550) created at:
    #0 pthread_mutex_trylock <null> (bitcoind+0x0000004501e0)
    #1 __gthread_mutex_trylock(pthread_mutex_t*) /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/x86_64-linux-gnu/c++/5.4.0/bits/gthr-default.h:757 (bitcoind+0x0000004c17c2)
    #2 __gthread_recursive_mutex_trylock(pthread_mutex_t*) /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/x86_64-linux-gnu/c++/5.4.0/bits/gthr-default.h:816 (bitcoind+0x0000004c17c2)
    #3 std::recursive_mutex::try_lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/mutex:187 (bitcoind+0x0000004c17c2)
    #4 std::unique_lock<std::recursive_mutex>::try_lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/mutex:499 (bitcoind+0x0000004c17c2)
    #5 UniqueLock<AnnotatedMixin<std::recursive_mutex>, std::unique_lock<std::recursive_mutex> >::TryEnter(char const*, char const*, int) /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/./sync.h:138 (bitcoind+0x0000004c17c2)
    #6 UniqueLock /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/./sync.h:148 (bitcoind+0x0000004c17c2)
    #7 Shutdown(InitInterfaces&) /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/init.cpp:200 (bitcoind+0x0000004c2711)
    #8 AppInit(int, char**) /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/bitcoind.cpp:185 (bitcoind+0x0000004bd41a)
    #9 main /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/bitcoind.cpp:201 (bitcoind+0x0000004bd41a)
  Mutex M131465 (0x000000cd6660) created at:
    #0 pthread_mutex_lock <null> (bitcoind+0x0000004516e0)
    #1 __gthread_mutex_lock(pthread_mutex_t*) /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/x86_64-linux-gnu/c++/5.4.0/bits/gthr-default.h:748 (bitcoind+0x0000004dd10c)
    #2 __gthread_recursive_mutex_lock(pthread_mutex_t*) /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/x86_64-linux-gnu/c++/5.4.0/bits/gthr-default.h:810 (bitcoind+0x0000004dd10c)
    #3 std::recursive_mutex::lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/mutex:176 (bitcoind+0x0000004dd10c)
    #4 std::unique_lock<std::recursive_mutex>::lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/mutex:485 (bitcoind+0x0000004dd10c)
    #5 UniqueLock<AnnotatedMixin<std::recursive_mutex>, std::unique_lock<std::recursive_mutex> >::Enter(char const*, char const*, int) /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/./sync.h:129 (bitcoind+0x0000004dd10c)
    #6 UniqueLock /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/./sync.h:150 (bitcoind+0x0000004dd10c)
    #7 AppInitMain(InitInterfaces&) /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/init.cpp:1477 (bitcoind+0x0000004dd10c)
    #8 AppInit(int, char**) /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/bitcoind.cpp:171 (bitcoind+0x0000004bcc96)
    #9 main /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/bitcoind.cpp:201 (bitcoind+0x0000004bcc96)
  Mutex M131617 (0x7f94042f9350) created at:
    #0 pthread_mutex_lock <null> (bitcoind+0x0000004516e0)
    #1 __gthread_mutex_lock(pthread_mutex_t*) /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/x86_64-linux-gnu/c++/5.4.0/bits/gthr-default.h:748 (bitcoind+0x000000514ac3)
    #2 __gthread_recursive_mutex_lock(pthread_mutex_t*) /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/x86_64-linux-gnu/c++/5.4.0/bits/gthr-default.h:810 (bitcoind+0x000000514ac3)
    #3 std::recursive_mutex::lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/mutex:176 (bitcoind+0x000000514ac3)
    #4 std::unique_lock<std::recursive_mutex>::lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/mutex:485 (bitcoind+0x000000514ac3)
    #5 UniqueLock<AnnotatedMixin<std::recursive_mutex>, std::unique_lock<std::recursive_mutex> >::Enter(char const*, char const*, int) /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/./sync.h:129 (bitcoind+0x000000514ac3)
    #6 UniqueLock /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/./sync.h:150 (bitcoind+0x000000514ac3)
    #7 CConnman::DisconnectNodes() /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/net.cpp:978 (bitcoind+0x000000514ac3)
    #8 CConnman::ThreadSocketHandler() /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/net.cpp:1375 (bitcoind+0x000000518d67)
    #9 void std::_Mem_fn_base<void (CConnman::*)(), true>::operator()<, void>(CConnman*) const /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/functional:600 (bitcoind+0x0000005349a7)
    #10 void std::_Bind<std::_Mem_fn<void (CConnman::*)()> (CConnman*)>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/functional:1073 (bitcoind+0x0000005349a7)
    #11 void std::_Bind<std::_Mem_fn<void (CConnman::*)()> (CConnman*)>::operator()<, void>() /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/functional:1131 (bitcoind+0x0000005349a7)
    #12 std::_Function_handler<void (), std::_Bind<std::_Mem_fn<void (CConnman::*)()> (CConnman*)> >::_M_invoke(std::_Any_data const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/functional:1871 (bitcoind+0x0000005349a7)
    #13 std::function<void ()>::operator()() const /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/functional:2267 (bitcoind+0x0000004eae97)
    #14 void TraceThread<std::function<void ()> >(char const*, std::function<void ()>) /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/./util/system.h:340 (bitcoind+0x0000004eae97)
    #15 void std::_Bind_simple<void (*(char const*, std::function<void ()>))(char const*, std::function<void ()>)>::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/functional:1530 (bitcoind+0x000000534e82)
    #16 std::_Bind_simple<void (*(char const*, std::function<void ()>))(char const*, std::function<void ()>)>::operator()() /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/functional:1520 (bitcoind+0x000000534e82)
    #17 std::thread::_Impl<std::_Bind_simple<void (*(char const*, std::function<void ()>))(char const*, std::function<void ()>)> >::_M_run() /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/thread:115 (bitcoind+0x000000534e82)
    #18 std::this_thread::__sleep_for(std::chrono::duration<long, std::ratio<1l, 1l> >, std::chrono::duration<long, std::ratio<1l, 1000000000l> >) <null> (libstdc++.so.6+0x0000000b8c7f)
  Thread T2 'bitcoin-schedul' (tid=28636, running) created by main thread at:
    #0 pthread_create <null> (bitcoind+0x00000043a5a6)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.58.0+0x0000000102e8)
    #2 thread<std::_Bind<void (*(const char *, std::function<void ()>))(const char *, std::function<void ()>)> &> /usr/include/boost/thread/detail/thread.hpp:266 (bitcoind+0x000000501102)
    #3 boost::thread* boost::thread_group::create_thread<std::_Bind<void (*(char const*, std::function<void ()>))(char const*, std::function<void ()>)> >(std::_Bind<void (*(char const*, std::function<void ()>))(char const*, std::function<void ()>)>) /usr/include/boost/thread/detail/thread_group.hpp:78 (bitcoind+0x0000004ead7c)
    #4 AppInitMain(InitInterfaces&) /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/init.cpp:1284 (bitcoind+0x0000004da47e)
    #5 AppInit(int, char**) /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/bitcoind.cpp:171 (bitcoind+0x0000004bcc96)
    #6 main /home/travis/build/bitcoin/bitcoin/build/bitcoin-x86_64-unknown-linux-gnu/src/bitcoind.cpp:201 (bitcoind+0x0000004bcc96)
SUMMARY: ThreadSanitizer: data race /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/stl_vector.h:1439 in std::vector<CNode*, std::allocator<CNode*> >::_M_erase_at_end(CNode**)
==================
ThreadSanitizer: reported 1 warnings

deadalnix pushed a commit to Bitcoin-ABC/bitcoin-abc that referenced this issue Apr 10, 2020
…is guarded by cs_vNodes.

Summary:
eea02be70e Add locking annotation for vNodes. vNodes is guarded by cs_vNodes. (practicalswift)

Pull request description:

  Add locking annotation for `vNodes`. `vNodes` is guarded by `cs_vNodes`.

Tree-SHA512: b1e18be22ba5b9dd153536380321b09b30a75a20575f975af9af94164f51982b32267ba0994e77c801513b59da05d923a974a9d2dfebdac48024c4bda98b53af

Backport of Core [[bitcoin/bitcoin#15201 | PR15201 ]]

Test Plan:
```
cmake -GNinja -DENABLE_WERROR=ON -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ..
ninja check check-functional
```
abc-p2p-avalanche is still failing for now, while the investigation continues

Reviewers: #bitcoin_abc, deadalnix

Reviewed By: #bitcoin_abc, deadalnix

Subscribers: deadalnix

Differential Revision: https://reviews.bitcoinabc.org/D5690
ftrader pushed a commit to bitcoin-cash-node/bitcoin-cash-node that referenced this issue Aug 17, 2020
…is guarded by cs_vNodes.

Summary:
eea02be70e Add locking annotation for vNodes. vNodes is guarded by cs_vNodes. (practicalswift)

Pull request description:

  Add locking annotation for `vNodes`. `vNodes` is guarded by `cs_vNodes`.

Tree-SHA512: b1e18be22ba5b9dd153536380321b09b30a75a20575f975af9af94164f51982b32267ba0994e77c801513b59da05d923a974a9d2dfebdac48024c4bda98b53af

Backport of Core [[bitcoin/bitcoin#15201 | PR15201 ]]

Test Plan:
```
cmake -GNinja -DENABLE_WERROR=ON -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ..
ninja check check-functional
```
abc-p2p-avalanche is still failing for now, while the investigation continues

Reviewers: #bitcoin_abc, deadalnix

Reviewed By: #bitcoin_abc, deadalnix

Subscribers: deadalnix

Differential Revision: https://reviews.bitcoinabc.org/D5690
@practicalswift practicalswift deleted the cs_vNodes branch Apr 10, 2021
LarryRuane added a commit to LarryRuane/zcash that referenced this issue Apr 29, 2021
LarryRuane added a commit to LarryRuane/zcash that referenced this issue Jun 1, 2021
PastaPastaPasta added a commit to PastaPastaPasta/dash that referenced this issue Jul 18, 2021
…vNodes is guarded by cs_vNodes.

eea02be Add locking annotation for vNodes. vNodes is guarded by cs_vNodes. (practicalswift)

Pull request description:

  Add locking annotation for `vNodes`. `vNodes` is guarded by `cs_vNodes`.

Tree-SHA512: b1e18be22ba5b9dd153536380321b09b30a75a20575f975af9af94164f51982b32267ba0994e77c801513b59da05d923a974a9d2dfebdac48024c4bda98b53af
PastaPastaPasta added a commit to PastaPastaPasta/dash that referenced this issue Jul 18, 2021
…vNodes is guarded by cs_vNodes.

eea02be Add locking annotation for vNodes. vNodes is guarded by cs_vNodes. (practicalswift)

Pull request description:

  Add locking annotation for `vNodes`. `vNodes` is guarded by `cs_vNodes`.

Tree-SHA512: b1e18be22ba5b9dd153536380321b09b30a75a20575f975af9af94164f51982b32267ba0994e77c801513b59da05d923a974a9d2dfebdac48024c4bda98b53af
PastaPastaPasta added a commit to PastaPastaPasta/dash that referenced this issue Jul 19, 2021
…vNodes is guarded by cs_vNodes.

eea02be Add locking annotation for vNodes. vNodes is guarded by cs_vNodes. (practicalswift)

Pull request description:

  Add locking annotation for `vNodes`. `vNodes` is guarded by `cs_vNodes`.

Tree-SHA512: b1e18be22ba5b9dd153536380321b09b30a75a20575f975af9af94164f51982b32267ba0994e77c801513b59da05d923a974a9d2dfebdac48024c4bda98b53af
PastaPastaPasta added a commit to PastaPastaPasta/dash that referenced this issue Jul 19, 2021
…vNodes is guarded by cs_vNodes.

eea02be Add locking annotation for vNodes. vNodes is guarded by cs_vNodes. (practicalswift)

Pull request description:

  Add locking annotation for `vNodes`. `vNodes` is guarded by `cs_vNodes`.

Tree-SHA512: b1e18be22ba5b9dd153536380321b09b30a75a20575f975af9af94164f51982b32267ba0994e77c801513b59da05d923a974a9d2dfebdac48024c4bda98b53af
PastaPastaPasta added a commit to PastaPastaPasta/dash that referenced this issue Jul 20, 2021
…vNodes is guarded by cs_vNodes.

eea02be Add locking annotation for vNodes. vNodes is guarded by cs_vNodes. (practicalswift)

Pull request description:

  Add locking annotation for `vNodes`. `vNodes` is guarded by `cs_vNodes`.

Tree-SHA512: b1e18be22ba5b9dd153536380321b09b30a75a20575f975af9af94164f51982b32267ba0994e77c801513b59da05d923a974a9d2dfebdac48024c4bda98b53af
PastaPastaPasta added a commit to PastaPastaPasta/dash that referenced this issue Jul 20, 2021
…vNodes is guarded by cs_vNodes.

eea02be Add locking annotation for vNodes. vNodes is guarded by cs_vNodes. (practicalswift)

Pull request description:

  Add locking annotation for `vNodes`. `vNodes` is guarded by `cs_vNodes`.

Tree-SHA512: b1e18be22ba5b9dd153536380321b09b30a75a20575f975af9af94164f51982b32267ba0994e77c801513b59da05d923a974a9d2dfebdac48024c4bda98b53af
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

5 participants