From bfe665bbf67df2af00bc825413db6e4bc92b4a35 Mon Sep 17 00:00:00 2001 From: Yousong Zhou Date: Fri, 7 May 2021 19:40:01 +0800 Subject: [PATCH] guests: sshable: wait and retry for newly created forward --- pkg/compute/models/guest_sshable.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/pkg/compute/models/guest_sshable.go b/pkg/compute/models/guest_sshable.go index 987ab1ed6d..4ce414fb59 100644 --- a/pkg/compute/models/guest_sshable.go +++ b/pkg/compute/models/guest_sshable.go @@ -210,8 +210,20 @@ func (guest *SGuest) sshableTryEach( if err := res.Unmarshal(&fwd); err != nil { log.Errorf("unmarshal fwd details: %q", res.String()) } - if ok := guest.sshableTryForward(ctx, tryData, &fwd); ok { - return nil + + tmo := time.NewTimer(13 * time.Second) + tick := time.NewTicker(3 * time.Second) + for { + select { + case <-tmo.C: + break + case <-tick.C: + if ok := guest.sshableTryForward(ctx, tryData, &fwd); ok { + return nil + } + case <-ctx.Done(): + break + } } } else { var reason string