Merge pull request #41625 from sparrc/delete-task-timeout

handleContainerExit: timeout on containerd DeleteTask
This commit is contained in:
Sebastiaan van Stijn 2020-11-24 14:24:21 +01:00 committed by GitHub
commit e1b15e1e5b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -26,15 +26,17 @@ func (daemon *Daemon) setStateCounter(c *container.Container) {
func (daemon *Daemon) handleContainerExit(c *container.Container, e *libcontainerdtypes.EventInfo) error {
c.Lock()
ec, et, err := daemon.containerd.DeleteTask(context.Background(), c.ID)
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
ec, et, err := daemon.containerd.DeleteTask(ctx, c.ID)
cancel()
if err != nil {
logrus.WithError(err).Warnf("failed to delete container %s from containerd", c.ID)
logrus.WithError(err).WithField("container", c.ID).Warnf("failed to delete container from containerd")
}
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
ctx, cancel = context.WithTimeout(context.Background(), 2*time.Second)
c.StreamConfig.Wait(ctx)
cancel()
c.Reset(false)
exitStatus := container.ExitStatus{