From efc991e2d7e8b4a30af07e9d8a843ce12141a45b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dav=C3=AD=C3=B0=20Steinn=20Geirsson?= Date: Fri, 27 Mar 2026 23:30:06 +0000 Subject: [PATCH] fix: add sleep to vsock probe retry loop in proxy script vsock-connect --probe returns instantly on connection refused, so the wait loop burned through all iterations in ~2s instead of 30s. Add a 0.2s sleep between attempts so the first VM launch has time to boot. --- modules/scripts.nix | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/modules/scripts.nix b/modules/scripts.nix index d4b8ede..291fe2d 100644 --- a/modules/scripts.nix +++ b/modules/scripts.nix @@ -235,17 +235,20 @@ let VMNAME="${vm.name}" PORT=5000 TIMEOUT=30 - ELAPSED=0 + INTERVAL=0.2 + MAX_ATTEMPTS=$((TIMEOUT * 5)) # TIMEOUT / INTERVAL + ATTEMPT=0 # Wait for vsock to become available - while [ $ELAPSED -lt $TIMEOUT ]; do + while [ $ATTEMPT -lt $MAX_ATTEMPTS ]; do if ${vsockConnect} --timeout 0.5 --probe "$VMNAME" "$PORT" 2>/dev/null; then break fi - ELAPSED=$((ELAPSED + 1)) + sleep $INTERVAL + ATTEMPT=$((ATTEMPT + 1)) done - if [ $ELAPSED -ge $TIMEOUT ]; then + if [ $ATTEMPT -ge $MAX_ATTEMPTS ]; then echo "Timeout waiting for VM ${vm.name} vsock:$PORT" >&2 exit 1 fi