Merge pull request #22123 from crosbymichael/restart-canceled

Remove restart canceled error
This commit is contained in:
Brian Goff 2016-04-19 16:28:33 -04:00
commit ab6b82b856
2 changed files with 11 additions and 3 deletions

View file

@ -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)
}
})
if err != restartmanager.ErrRestartCanceled {
logrus.Error(err)
}
} else {
ctr.start()
}

View file

@ -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()