feat_: Flush hystrix on going back online

When going offline, all the rpc calls fail making hystrix open all the
circuits.
This commit changes the behavior so that when we go back online, we
close all the circuits.
We should also avoid making rpc requests while offline, but this should
work for release.
This commit is contained in:
Andrea Maria Piana 2024-08-16 13:43:54 +01:00
parent a6645bd209
commit 97f4c6e3df
1 changed files with 7 additions and 0 deletions

View File

@ -15,6 +15,7 @@ import (
"go.uber.org/zap"
"github.com/afex/hystrix-go/hystrix"
"github.com/pkg/errors"
"github.com/imdario/mergo"
@ -2434,6 +2435,12 @@ func (b *GethStatusBackend) ConnectionChange(typ string, expensive bool) {
b.log.Info("Network state change", "old", b.connectionState, "new", state)
if b.connectionState.Offline && !state.Offline {
// flush hystrix if we are going again online, since it doesn't behave
// well when offline
hystrix.Flush()
}
b.connectionState = state
b.statusNode.ConnectionChanged(state)