From b4b0dc4b3019efa8b75372387c03f00c2ce8c0f3 Mon Sep 17 00:00:00 2001 From: Ansuman Sahoo Date: Fri, 14 Nov 2025 17:22:34 +0530 Subject: [PATCH] vmdriver(vz): fix race condition for AdditionalSetupForSSH() Signed-off-by: Ansuman Sahoo --- pkg/driver/vz/vz_driver_darwin.go | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/pkg/driver/vz/vz_driver_darwin.go b/pkg/driver/vz/vz_driver_darwin.go index 0cc05dc00f3..c87995a62c8 100644 --- a/pkg/driver/vz/vz_driver_darwin.go +++ b/pkg/driver/vz/vz_driver_darwin.go @@ -440,7 +440,24 @@ func (l *LimaVzDriver) ForwardGuestAgent() bool { return l.vSockPort == 0 && l.virtioPort == "" } -func (l *LimaVzDriver) AdditionalSetupForSSH(_ context.Context) error { - <-l.waitSSHLocalPortAccessible - return nil +func (l *LimaVzDriver) AdditionalSetupForSSH(ctx context.Context) error { + ticker := time.NewTicker(100 * time.Millisecond) + defer ticker.Stop() + + timeout := time.After(60 * time.Second) + + for { + if l.waitSSHLocalPortAccessible != nil { + <-l.waitSSHLocalPortAccessible + return nil + } + + select { + case <-ctx.Done(): + return ctx.Err() + case <-timeout: + return errors.New("timeout waiting for Start() to initialize") + case <-ticker.C: + } + } }