Explorar el Código

Don't throw "restartmanager canceled" error for no restart policy container

Don't throw "restartmanager canceled" error for no restart policy container
and add the container id to the warning message if a container has restart policy
and has been canceled.

Signed-off-by: Lei Jitang <leijitang@huawei.com>
(cherry picked from commit 494297baf8f391ce73cdc2e885a335a266261970)
Lei Jitang hace 9 años
padre
commit
c9417489a2
Se han modificado 2 ficheros con 4 adiciones y 1 borrados
  1. 1 1
      libcontainerd/container_linux.go
  2. 3 0
      restartmanager/restartmanager.go

+ 1 - 1
libcontainerd/container_linux.go

@@ -117,7 +117,7 @@ func (ctr *container) handleEvent(e *containerd.Event) error {
 		if st.State == StateExit && ctr.restartManager != nil {
 		if st.State == StateExit && ctr.restartManager != nil {
 			restart, wait, err := ctr.restartManager.ShouldRestart(e.Status)
 			restart, wait, err := ctr.restartManager.ShouldRestart(e.Status)
 			if err != nil {
 			if err != nil {
-				logrus.Error(err)
+				logrus.Warnf("container %s %v", ctr.containerID, err)
 			} else if restart {
 			} else if restart {
 				st.State = StateRestart
 				st.State = StateRestart
 				ctr.restarting = true
 				ctr.restarting = true

+ 3 - 0
restartmanager/restartmanager.go

@@ -42,6 +42,9 @@ func (rm *restartManager) SetPolicy(policy container.RestartPolicy) {
 }
 }
 
 
 func (rm *restartManager) ShouldRestart(exitCode uint32) (bool, chan error, error) {
 func (rm *restartManager) ShouldRestart(exitCode uint32) (bool, chan error, error) {
+	if rm.policy.IsNone() {
+		return false, nil, nil
+	}
 	rm.Lock()
 	rm.Lock()
 	unlockOnExit := true
 	unlockOnExit := true
 	defer func() {
 	defer func() {