Skip to content

Commit 00c1554

Browse files
Enhance error handling in coordination procedures
- Updated the coordinationExecutor to return a partial result containing leader and faults information when a follower's routine fails, allowing for better metric recording.
1 parent 4dca652 commit 00c1554

2 files changed

Lines changed: 19 additions & 3 deletions

File tree

pkg/tbtc/coordination.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -454,7 +454,15 @@ func (ce *coordinationExecutor) coordinate(
454454
if ce.metricsRecorder != nil {
455455
ce.metricsRecorder.IncrementCounter(clientinfo.MetricCoordinationLeaderTimeoutTotal, 1)
456456
}
457-
return nil, fmt.Errorf(
457+
// Return a partial result with leader and faults information
458+
partialResult := &coordinationResult{
459+
wallet: ce.coordinatedWallet,
460+
window: window,
461+
leader: leader,
462+
proposal: nil, // no proposal on failure
463+
faults: faults,
464+
}
465+
return partialResult, fmt.Errorf(
458466
"failed to execute follower's routine: [%v]",
459467
err,
460468
)

pkg/tbtc/node.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1150,14 +1150,22 @@ func executeCoordinationProcedure(
11501150
// Record window metrics for failed coordination
11511151
if node.windowMetricsTracker != nil {
11521152
walletPublicKeyHash := bitcoin.PublicKeyHash(walletPublicKey)
1153+
// Extract leader and faults from partial result if available
1154+
// (e.g., when follower routine fails, we know who the leader was)
1155+
leader := chain.Address("")
1156+
var faults []*coordinationFault
1157+
if result != nil {
1158+
leader = result.leader
1159+
faults = result.faults
1160+
}
11531161
node.windowMetricsTracker.recordWalletCoordination(
11541162
window,
11551163
walletPublicKeyHash,
1156-
chain.Address(""), // unknown leader on failure
1164+
leader,
11571165
"",
11581166
false,
11591167
duration,
1160-
nil,
1168+
faults,
11611169
err, // capture the error message
11621170
)
11631171
}

0 commit comments

Comments
 (0)