[VOL-5429] - fix grpc client disconnect issue
Change-Id: Ia7f3514c24e895fe907bac92041b2fb9a4384e19
Signed-off-by: Sridhar Ravindra <sridhar.ravindra@radisys.com>
diff --git a/pkg/grpc/client.go b/pkg/grpc/client.go
index effe0b3..e8a0832 100644
--- a/pkg/grpc/client.go
+++ b/pkg/grpc/client.go
@@ -262,6 +262,9 @@
c.stateLock.Lock()
if !c.done && (c.state == stateConnected || c.state == stateValidatingConnection) {
// Handle only connected state here. We need the validating state to know if we need to backoff before a retry
+ if c.state == stateConnected {
+ c.state = stateDisconnected
+ }
logger.Warnw(ctx, "sending-disconnect-event", log.Fields{"api-endpoint": c.serverEndPoint, "client": c.clientEndpoint, "curr-state": stateConnected, "new-state": c.state})
c.events <- eventDisconnected
} else {
@@ -529,7 +532,7 @@
connectionValidationFail := false
c.stateLock.Lock()
logger.Debugw(ctx, "endpoint-disconnected", log.Fields{"api-endpoint": c.serverEndPoint, "curr-state": c.state, "client": c.clientEndpoint})
- if c.state == stateConnected || c.state == stateValidatingConnection {
+ if c.state == stateValidatingConnection {
connectionValidationFail = true
c.state = stateDisconnected
}
@@ -551,7 +554,7 @@
}
c.connectionLock.RLock()
if !c.done {
- c.events <- eventValidatingConnection
+ c.events <- eventConnecting
}
c.connectionLock.RUnlock()