1
0
forked from wrenn/wrenn

Fix stale WRENN_SANDBOX_ID and WRENN_TEMPLATE_ID after snapshot restore

After restoring a VM from snapshot, envd had already completed its initial
MMDS poll, so the metadata files in /run/wrenn/ and env vars retained values
from the original sandbox. Call POST /init after WaitUntilReady on both
resume and create-from-template paths to trigger envd to re-read MMDS.
This commit is contained in:
2026-04-10 19:23:48 +06:00
parent 0e6daaabe0
commit 4ed17b2776
2 changed files with 34 additions and 0 deletions

View File

@ -697,6 +697,11 @@ func (m *Manager) Resume(ctx context.Context, sandboxID string, timeoutSec int)
return nil, fmt.Errorf("wait for envd: %w", err)
}
// Trigger envd to re-read MMDS so it picks up the new sandbox/template IDs.
if err := client.PostInit(waitCtx); err != nil {
slog.Warn("post-init failed after resume, metadata files may be stale", "sandbox", sandboxID, "error", err)
}
now := time.Now()
sb := &sandboxState{
Sandbox: models.Sandbox{
@ -1098,6 +1103,11 @@ func (m *Manager) createFromSnapshot(ctx context.Context, sandboxID string, team
return nil, fmt.Errorf("wait for envd: %w", err)
}
// Trigger envd to re-read MMDS so it picks up the new sandbox/template IDs.
if err := client.PostInit(waitCtx); err != nil {
slog.Warn("post-init failed after template restore, metadata files may be stale", "sandbox", sandboxID, "error", err)
}
now := time.Now()
sb := &sandboxState{
Sandbox: models.Sandbox{