Browse Source

Merge pull request #22123 from crosbymichael/restart-canceled

Remove restart canceled error
Brian Goff 9 years ago
parent
commit
ab6b82b856
2 changed files with 11 additions and 3 deletions
  1. 4 1
      libcontainerd/container_linux.go
  2. 7 2
      restartmanager/restartmanager.go

+ 4 - 1
libcontainerd/container_linux.go

@@ -9,6 +9,7 @@ import (
 
 	"github.com/Sirupsen/logrus"
 	containerd "github.com/docker/containerd/api/grpc/types"
+	"github.com/docker/docker/restartmanager"
 	"github.com/opencontainers/specs/specs-go"
 	"golang.org/x/net/context"
 )
@@ -148,7 +149,9 @@ func (ctr *container) handleEvent(e *containerd.Event) error {
 								logrus.Error(err)
 							}
 						})
-						logrus.Error(err)
+						if err != restartmanager.ErrRestartCanceled {
+							logrus.Error(err)
+						}
 					} else {
 						ctr.start()
 					}

+ 7 - 2
restartmanager/restartmanager.go

@@ -1,6 +1,7 @@
 package restartmanager
 
 import (
+	"errors"
 	"fmt"
 	"sync"
 	"time"
@@ -13,6 +14,10 @@ const (
 	defaultTimeout    = 100 * time.Millisecond
 )
 
+// ErrRestartCanceled is returned when the restart manager has been
+// canceled and will no longer restart the container.
+var ErrRestartCanceled = errors.New("restart canceled")
+
 // RestartManager defines object that controls container restarting rules.
 type RestartManager interface {
 	Cancel() error
@@ -54,7 +59,7 @@ func (rm *restartManager) ShouldRestart(exitCode uint32, hasBeenManuallyStopped
 	}()
 
 	if rm.canceled {
-		return false, nil, fmt.Errorf("restartmanager canceled")
+		return false, nil, ErrRestartCanceled
 	}
 
 	if rm.active {
@@ -95,7 +100,7 @@ func (rm *restartManager) ShouldRestart(exitCode uint32, hasBeenManuallyStopped
 	go func() {
 		select {
 		case <-rm.cancel:
-			ch <- fmt.Errorf("restartmanager canceled")
+			ch <- ErrRestartCanceled
 			close(ch)
 		case <-time.After(rm.timeout):
 			rm.Lock()