diff --git a/cli/command/container/tty.go b/cli/command/container/tty.go index cc64f999dc..1d287b0068 100644 --- a/cli/command/container/tty.go +++ b/cli/command/container/tty.go @@ -45,7 +45,7 @@ func resizeTty(ctx context.Context, cli command.Cli, id string, isExec bool) err return resizeTtyTo(ctx, cli.Client(), id, height, width, isExec) } -// initTtySize is to init the tty's size to the same as the window, if there is an error, it will retry 5 times. +// initTtySize is to init the tty's size to the same as the window, if there is an error, it will retry 10 times. func initTtySize(ctx context.Context, cli command.Cli, id string, isExec bool, resizeTtyFunc func(ctx context.Context, cli command.Cli, id string, isExec bool) error) { rttyFunc := resizeTtyFunc if rttyFunc == nil { @@ -54,8 +54,8 @@ func initTtySize(ctx context.Context, cli command.Cli, id string, isExec bool, r if err := rttyFunc(ctx, cli, id, isExec); err != nil { go func() { var err error - for retry := 0; retry < 5; retry++ { - time.Sleep(10 * time.Millisecond) + for retry := 0; retry < 10; retry++ { + time.Sleep(time.Duration(retry+1) * 10 * time.Millisecond) if err = rttyFunc(ctx, cli, id, isExec); err == nil { break } diff --git a/cli/command/container/tty_test.go b/cli/command/container/tty_test.go index d29381042a..70552c9152 100644 --- a/cli/command/container/tty_test.go +++ b/cli/command/container/tty_test.go @@ -25,6 +25,6 @@ func TestInitTtySizeErrors(t *testing.T) { ctx := context.Background() cli := test.NewFakeCli(&fakeClient{containerExecResizeFunc: fakeContainerExecResizeFunc}) initTtySize(ctx, cli, "8mm8nn8tt8bb", true, fakeResizeTtyFunc) - time.Sleep(100 * time.Millisecond) + time.Sleep(750 * time.Millisecond) assert.Check(t, is.Equal(expectedError, cli.ErrBuffer().String())) }