From 891a6768ae85f36797895ed1bde2bad30794cf72 Mon Sep 17 00:00:00 2001 From: Djordje Lukic Date: Thu, 28 Apr 2022 14:55:01 +0200 Subject: [PATCH] Retry initializing TTY size a bit more I some cases, for example if there is a heavy load, the initialization of the TTY size would fail. This change makes the cli retry more times, 10 instead of 5 and we wait 100ms between two calls to resize the TTY. Relates to #3554 Signed-off-by: Djordje Lukic --- cli/command/container/tty.go | 6 +++--- cli/command/container/tty_test.go | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cli/command/container/tty.go b/cli/command/container/tty.go index cc64f999dc47..d86a0266d8ad 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(100 * 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 d29381042a74..7a2f042edb81 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(1100 * time.Millisecond) assert.Check(t, is.Equal(expectedError, cli.ErrBuffer().String())) }