Merge pull request #45078 from corhere/backport-23.0/bump-exit-timeouts-for-runhcs

[23.0 backport] Wait longer for exit events on Windows
This commit is contained in:
Cory Snider 2023-02-28 12:22:34 -05:00 committed by GitHub
commit fc59ac02ff
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 3 deletions

View file

@ -147,7 +147,12 @@ func (daemon *Daemon) Kill(container *containerpkg.Container) error {
}
}
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
waitTimeout := 10 * time.Second
if runtime.GOOS == "windows" {
waitTimeout = 75 * time.Second // runhcs can be sloooooow.
}
ctx, cancel := context.WithTimeout(context.Background(), waitTimeout)
defer cancel()
status := <-container.Wait(ctx, containerpkg.WaitConditionNotRunning)
@ -155,7 +160,7 @@ func (daemon *Daemon) Kill(container *containerpkg.Container) error {
return nil
}
logrus.WithError(status.Err()).WithField("container", container.ID).Error("Container failed to exit within 10 seconds of kill - trying direct SIGKILL")
logrus.WithError(status.Err()).WithField("container", container.ID).Errorf("Container failed to exit within %v of kill - trying direct SIGKILL", waitTimeout)
if err := killProcessDirectly(container); err != nil {
if errors.As(err, &errNoSuchProcess{}) {

View file

@ -145,7 +145,7 @@ func TestWaitConditions(t *testing.T) {
opts = append(opts, container.WithAutoRemove)
}
containerID := container.Run(ctx, t, cli, opts...)
poll.WaitOn(t, container.IsInState(ctx, cli, containerID, "running"), poll.WithTimeout(30*time.Second), poll.WithDelay(100*time.Millisecond))
poll.WaitOn(t, container.IsInState(ctx, cli, containerID, "running"), poll.WithTimeout(75*time.Second), poll.WithDelay(100*time.Millisecond))
waitResC, errC := cli.ContainerWait(ctx, containerID, tc.waitCond)
select {