mirror of https://github.com/docker/cli.git
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 10 times instead of 5 and we wait incrementally from 10ms to 100ms Relates to #3554 Signed-off-by: Djordje Lukic <djordje.lukic@docker.com>
This commit is contained in:
parent
6c9eb708fa
commit
9598c4c905
|
@ -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)
|
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) {
|
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
|
rttyFunc := resizeTtyFunc
|
||||||
if rttyFunc == nil {
|
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 {
|
if err := rttyFunc(ctx, cli, id, isExec); err != nil {
|
||||||
go func() {
|
go func() {
|
||||||
var err error
|
var err error
|
||||||
for retry := 0; retry < 5; retry++ {
|
for retry := 0; retry < 10; retry++ {
|
||||||
time.Sleep(10 * time.Millisecond)
|
time.Sleep(time.Duration(retry+1) * 10 * time.Millisecond)
|
||||||
if err = rttyFunc(ctx, cli, id, isExec); err == nil {
|
if err = rttyFunc(ctx, cli, id, isExec); err == nil {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,6 @@ func TestInitTtySizeErrors(t *testing.T) {
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
cli := test.NewFakeCli(&fakeClient{containerExecResizeFunc: fakeContainerExecResizeFunc})
|
cli := test.NewFakeCli(&fakeClient{containerExecResizeFunc: fakeContainerExecResizeFunc})
|
||||||
initTtySize(ctx, cli, "8mm8nn8tt8bb", true, fakeResizeTtyFunc)
|
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()))
|
assert.Check(t, is.Equal(expectedError, cli.ErrBuffer().String()))
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue