Page MenuHomePhabricator

[avalanche] Reset the proof tracking state on peer disconnection
ClosedPublic

Authored by Fabien on May 28 2021, 13:12.

Details

Reviewers
deadalnix
Group Reviewers
Restricted Project
Maniphest Tasks
Restricted Maniphest Task
Commits
rABCd596bf6c8e22: [avalanche] Reset the proof tracking state on peer disconnection
Summary

This makes it possible to select another peer for requesting a proof if
the one currently selected get disconnected.

This introduces a lock order inversion found by TSAN for which I added
an exception: during shutdown the cs_main locks is hold before calling
CConnman::StopNodes(). This lock is held (as well as cs_orphans) for
the sake of fixing a potential lock order invertion already that could
only occur during shutdown.

Depends on D9599.

Test Plan
ninja all check

With and without TSAN:

./test/functional/test_runner.py p2p_inv_download

Diff Detail

Repository
rABC Bitcoin ABC
Branch
avalanche_proof_disconnect_fallback
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 15843
Build 31586: Build Difflint-circular-dependencies · build-without-wallet · build-diff · build-debug · build-clang · build-clang-tidy
Build 31585: arc lint + arc unit