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
@fanquake fanquake added the P2P label Jan 18, 2019
@DrahtBot
Copy link
Contributor

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

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

@laanwj
Copy link
Member

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

@maflcko maflcko merged commit eea02be into bitcoin:master Feb 8, 2019
maflcko pushed a commit that referenced this pull request 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
@maflcko
Copy link
Member

maflcko 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 pull request 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 pull request 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 April 10, 2021 19:37
LarryRuane pushed a commit to LarryRuane/zcash that referenced this pull request Apr 29, 2021
LarryRuane pushed a commit to LarryRuane/zcash that referenced this pull request Jun 1, 2021
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request 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 pushed a commit to PastaPastaPasta/dash that referenced this pull request 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 pushed a commit to PastaPastaPasta/dash that referenced this pull request 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 pushed a commit to PastaPastaPasta/dash that referenced this pull request 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 pushed a commit to PastaPastaPasta/dash that referenced this pull request 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 pushed a commit to PastaPastaPasta/dash that referenced this pull request 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
gades pushed a commit to cosanta/cosanta-core that referenced this pull request May 18, 2022
…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
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Aug 18, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants