From bb9a3ae32d4d40d8cffd35f232f28d2f2eab1b8f Mon Sep 17 00:00:00 2001 From: "Andres G. Aragoneses" Date: Thu, 4 Jul 2024 12:42:04 +0800 Subject: [PATCH] Backend: give failed servers info in exception Otherwise it's not clear enough to see the big picture when it comes to server reliability. --- src/GWallet.Backend/FaultTolerantParallelClient.fs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/GWallet.Backend/FaultTolerantParallelClient.fs b/src/GWallet.Backend/FaultTolerantParallelClient.fs index aa5bba8aa..1a71f0a28 100644 --- a/src/GWallet.Backend/FaultTolerantParallelClient.fs +++ b/src/GWallet.Backend/FaultTolerantParallelClient.fs @@ -43,11 +43,13 @@ type NotEnoughAvailableException = numberOfConsistentResultsRequired) } -type ResultInconsistencyException (totalNumberOfSuccesfulResultsObtained: uint32, +type ResultInconsistencyException (totalNumberOfFailedServers: uint32, + totalNumberOfSuccesfulResultsObtained: uint32, maxNumberOfConsistentResultsObtained: int, numberOfConsistentResultsRequired: uint32) = inherit Exception ("Results obtained were not enough to be considered consistent" + - SPrintF3 " (received: %i, consistent: %i, required: %i)" + SPrintF4 " (unavailable: %i, received: %i, consistent: %i, required: %i)" + totalNumberOfFailedServers totalNumberOfSuccesfulResultsObtained maxNumberOfConsistentResultsObtained numberOfConsistentResultsRequired) @@ -629,7 +631,8 @@ type FaultTolerantParallelClient<'K,'E when 'K: equality and 'K :> ICommunicatio | (_,maxNumberOfConsistentResultsObtained)::_ -> if (retriesForInconsistency = settings.NumberOfRetriesForInconsistency) then if totalNumberOfSuccesfulResultsObtained >= numberOfConsistentResponsesRequired then - return raise (ResultInconsistencyException(totalNumberOfSuccesfulResultsObtained, + return raise (ResultInconsistencyException(uint32 failedFuncs.Length, + totalNumberOfSuccesfulResultsObtained, maxNumberOfConsistentResultsObtained, numberOfConsistentResponsesRequired)) else