Skip to content

Commit 593b909

Browse files
achamayouCopilotCopilot
authored
Resolve simultaneous node-to-node connects deterministically (#8233)
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: achamayou <4016369+achamayou@users.noreply.github.com>
1 parent 000de88 commit 593b909

4 files changed

Lines changed: 727 additions & 44 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
3232

3333
- Corrected the OpenAPI schema name for `ccf::ds::SizeString` from `TimeString` to `SizeString`. (#8261)
3434

35+
### Fixed
36+
37+
- Nodes which open node-to-node connections to each other at the same moment now agree on which of the two connections to keep, instead of each discarding the one the other is using. Previously both could be left holding a connection whose far end no longer existed, and if the resulting disconnection was not observed - for example because a network partition dropped it - the two nodes would silently stop exchanging consensus messages, stalling elections until one of them restarted (#8233).
38+
3539
## [7.0.13]
3640

3741
[7.0.13]: https://github.com/microsoft/CCF/releases/tag/ccf-7.0.13

CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -713,6 +713,12 @@ if(BUILD_TESTS)
713713
)
714714
target_link_libraries(rpc_connections_test PRIVATE uv)
715715

716+
add_unit_test(
717+
node_connections_test
718+
${CMAKE_CURRENT_SOURCE_DIR}/src/host/test/node_connections.cpp
719+
)
720+
target_link_libraries(node_connections_test PRIVATE uv)
721+
716722
add_unit_test(
717723
raft_test
718724
${CMAKE_CURRENT_SOURCE_DIR}/src/consensus/aft/test/main.cpp

0 commit comments

Comments
 (0)