Skip to content

Commit 1ddec49

Browse files
committed
rewrap grpc errors in context errors - default do disconnected
1 parent 95fef64 commit 1ddec49

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

internal/device-agent/states/connected/connected.go

+8-9
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,6 @@ func (c *Connected) Enter(ctx context.Context) statemachine.Event {
8888
c.unhealthy = false
8989
}()
9090

91-
done := func() statemachine.Event {
92-
c.logger.Infof("Config sync loop done: %s", ctx.Err())
93-
return statemachine.EventWaitForExternalEvent
94-
}
95-
9691
attempt := 0
9792
for ctx.Err() == nil {
9893
attempt++
@@ -111,9 +106,13 @@ func (c *Connected) Enter(ctx context.Context) statemachine.Event {
111106
case errors.Is(e, ErrLostConnection):
112107
c.logger.Infof("Lost connection, reconnecting..")
113108
attempt = 0
114-
case errors.Is(e, context.Canceled) || errors.Is(e, context.DeadlineExceeded):
115-
c.logger.Infof("syncConfigLoop: %v", err)
116-
return done()
109+
case errors.Is(e, context.DeadlineExceeded):
110+
c.logger.Infof("syncConfigLoop deadline exceeded: %v", err)
111+
return statemachine.EventDisconnect
112+
case errors.Is(e, context.Canceled):
113+
// in this case something from the outside canceled us, let them decide next state
114+
c.logger.Infof("syncConfigLoop canceled: %v", err)
115+
return statemachine.EventWaitForExternalEvent
117116
case e != nil:
118117
// Unhandled error: disconnect
119118
c.logger.Errorf("error in syncConfigLoop: %v", err)
@@ -122,7 +121,7 @@ func (c *Connected) Enter(ctx context.Context) statemachine.Event {
122121
}
123122
}
124123

125-
return done()
124+
return statemachine.EventDisconnect
126125
}
127126
func (c *Connected) triggerStatusUpdate() {
128127
select {

0 commit comments

Comments
 (0)