Merge pull request #6830 from Junnplus/fix-monitor

This commit is contained in:
Fu Wei 2022-04-20 15:56:04 +08:00 committed by GitHub
commit d85ac56050
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -214,21 +214,30 @@ func (m *monitor) monitor(ctx context.Context) ([]change, error) {
} }
var changes []change var changes []change
for _, c := range containers { for _, c := range containers {
var (
task containerd.Task
status containerd.Status
err error
)
labels, err := c.Labels(ctx) labels, err := c.Labels(ctx)
if err != nil { if err != nil {
return nil, err return nil, err
} }
desiredStatus := containerd.ProcessStatus(labels[restart.StatusLabel]) desiredStatus := containerd.ProcessStatus(labels[restart.StatusLabel])
task, err := c.Task(ctx, nil) if task, err = c.Task(ctx, nil); err == nil {
if err != nil && desiredStatus == containerd.Stopped { if status, err = task.Status(ctx); err == nil {
continue if desiredStatus == status.Status {
continue
}
}
} }
status, err := task.Status(ctx)
if err != nil && desiredStatus == containerd.Stopped { // Task or Status return error, only desired to stop
continue if err != nil {
} logrus.WithError(err).Error("monitor")
if desiredStatus == status.Status { if desiredStatus != containerd.Stopped {
continue continue
}
} }
switch desiredStatus { switch desiredStatus {