From 053a195ac2812b2b3d6c1c865cf564c027a30f9e Mon Sep 17 00:00:00 2001 From: Evgenii Stratonikov Date: Wed, 7 Feb 2024 19:44:28 +0300 Subject: [PATCH] [#968] adm: Allow concurrent epoch ticks Previous fix was incomplete, there are two possible places for this error to occur. Refs #592 Signed-off-by: Evgenii Stratonikov --- cmd/frostfs-adm/internal/modules/morph/epoch.go | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/cmd/frostfs-adm/internal/modules/morph/epoch.go b/cmd/frostfs-adm/internal/modules/morph/epoch.go index 39dbb0ca..e491e8b8 100644 --- a/cmd/frostfs-adm/internal/modules/morph/epoch.go +++ b/cmd/frostfs-adm/internal/modules/morph/epoch.go @@ -37,18 +37,14 @@ func forceNewEpochCmd(cmd *cobra.Command, _ []string) error { return err } - if err := wCtx.sendConsensusTx(bw.Bytes()); err != nil { - return err + if err = wCtx.sendConsensusTx(bw.Bytes()); err == nil { + err = wCtx.awaitTx() } - - if err := wCtx.awaitTx(); err != nil { - if strings.Contains(err.Error(), "invalid epoch") { - cmd.Println("Epoch has already ticked.") - return nil - } - return err + if err != nil && strings.Contains(err.Error(), "invalid epoch") { + cmd.Println("Epoch has already ticked.") + return nil } - return nil + return err } func emitNewEpochCall(bw *io.BufBinWriter, wCtx *initializeContext, nmHash util.Uint160) error {