瀏覽代碼

Merge pull request #38737 from thaJeztah/fix_stopped_restart_containers

Fix stopped containers with restart-policy showing as "restarting"
Sebastiaan van Stijn 6 年之前
父節點
當前提交
348d793351
共有 1 個文件被更改,包括 5 次插入2 次删除
  1. 5 2
      daemon/monitor.go

+ 5 - 2
daemon/monitor.go

@@ -85,6 +85,8 @@ func (daemon *Daemon) ProcessEvent(id string, e libcontainerd.EventType, ei libc
 			}
 			}
 			daemon.LogContainerEventWithAttributes(c, "die", attributes)
 			daemon.LogContainerEventWithAttributes(c, "die", attributes)
 			daemon.Cleanup(c)
 			daemon.Cleanup(c)
+			daemon.setStateCounter(c)
+			cpErr := c.CheckpointTo(daemon.containersReplica)
 
 
 			if err == nil && restart {
 			if err == nil && restart {
 				go func() {
 				go func() {
@@ -101,6 +103,8 @@ func (daemon *Daemon) ProcessEvent(id string, e libcontainerd.EventType, ei libc
 					if err != nil {
 					if err != nil {
 						c.Lock()
 						c.Lock()
 						c.SetStopped(&exitStatus)
 						c.SetStopped(&exitStatus)
+						daemon.setStateCounter(c)
+						c.CheckpointTo(daemon.containersReplica)
 						c.Unlock()
 						c.Unlock()
 						defer daemon.autoRemove(c)
 						defer daemon.autoRemove(c)
 						if err != restartmanager.ErrRestartCanceled {
 						if err != restartmanager.ErrRestartCanceled {
@@ -110,8 +114,7 @@ func (daemon *Daemon) ProcessEvent(id string, e libcontainerd.EventType, ei libc
 				}()
 				}()
 			}
 			}
 
 
-			daemon.setStateCounter(c)
-			return c.CheckpointTo(daemon.containersReplica)
+			return cpErr
 		}
 		}
 
 
 		if execConfig := c.ExecCommands.Get(ei.ProcessID); execConfig != nil {
 		if execConfig := c.ExecCommands.Get(ei.ProcessID); execConfig != nil {