File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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 )
Original file line number Diff line number Diff 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 }
You can’t perform that action at this time.
0 commit comments