Skip to content

Commit 2d39655

Browse files
committed
Add threshold > 0 guard and FSM transition test for FinalizedStateNotAvailable
1 parent b32539f commit 2d39655

2 files changed

Lines changed: 8 additions & 1 deletion

File tree

multinode/node_fsm_test.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,13 @@ func TestUnit_Node_StateTransitions(t *testing.T) {
8686
node.transitionToSyncing(fn.Fn)
8787
})
8888
})
89+
t.Run("transitionToFinalizedStateNotAvailable", func(t *testing.T) {
90+
const destinationState = nodeStateFinalizedStateNotAvailable
91+
allowedStates := []nodeState{nodeStateAlive}
92+
rpc := newMockRPCClient[ID, Head](t)
93+
rpc.On("Close")
94+
testTransition(t, rpc, testNode.transitionToFinalizedStateNotAvailable, destinationState, allowedStates...)
95+
})
8996
}
9097

9198
func testTransition(t *testing.T, rpc *mockRPCClient[ID, Head], transition func(node testNode, fn func()), destinationState nodeState, allowedStates ...nodeState) {

multinode/node_lifecycle.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ func (n *node[CHAIN_ID, HEAD, RPC]) aliveLoop() {
161161
finalizedStateFailures++
162162
}
163163
lggr.Warnw("Finalized state not available", "err", stateErr, "failures", finalizedStateFailures, "threshold", finalizedStateCheckFailureThreshold)
164-
if finalizedStateFailures >= finalizedStateCheckFailureThreshold {
164+
if finalizedStateCheckFailureThreshold > 0 && finalizedStateFailures >= finalizedStateCheckFailureThreshold {
165165
lggr.Errorw("RPC node cannot serve finalized state after consecutive failures", "failures", finalizedStateFailures)
166166
if n.poolInfoProvider != nil {
167167
if l, _ := n.poolInfoProvider.LatestChainInfo(); l < 2 && !n.isLoadBalancedRPC {

0 commit comments

Comments
 (0)