浏览代码

Merge pull request #361 from thaJeztah/19.03_backport_libcontainerd_events_wait

[19.03 backport] Sleep before restarting event processing
Andrew Hsu 5 年之前
父节点
当前提交
f4f8feafe7
共有 1 个文件被更改,包括 9 次插入3 次删除
  1. 9 3
      libcontainerd/remote/client.go

+ 9 - 3
libcontainerd/remote/client.go

@@ -703,10 +703,16 @@ func (c *client) processEventStream(ctx context.Context, ns string) {
 				errStatus, ok := status.FromError(err)
 				if !ok || errStatus.Code() != codes.Canceled {
 					c.logger.WithError(err).Error("failed to get event")
-					go c.processEventStream(ctx, ns)
-				} else {
-					c.logger.WithError(ctx.Err()).Info("stopping event stream following graceful shutdown")
+
+					// rate limit
+					select {
+					case <-time.After(time.Second):
+						go c.processEventStream(ctx, ns)
+						return
+					case <-ctx.Done():
+					}
 				}
+				c.logger.WithError(ctx.Err()).Info("stopping event stream following graceful shutdown")
 			}
 			return
 		case ev = <-eventStream: