

























@@ -53,6 +53,10 @@ import {
53535454// Older published baselines predate this warning, but still need update coverage.
5555const BAD_PLUGIN_DIAGNOSTIC_MIN_VERSION = "2026.5.7";
56+// Restored Ubuntu snapshots may immediately run unattended-upgrades. Let that
57+// legitimate maintenance finish instead of racing or disabling the OS service.
58+const APT_LOCK_TIMEOUT_SECONDS = 900;
59+const BOOTSTRAP_TIMEOUT_SECONDS = 1200;
56605761function parseOpenClawPackageVersion(value: string): string | null {
5862return value.match(/\b(\d{4}\.\d{1,2}\.\d{1,2}(?:-[A-Za-z0-9.]+)?)\b/u)?.[1] ?? null;
@@ -316,7 +320,9 @@ class LinuxSmoke extends SmokeRunController<LinuxOptions> {
316320317321protected async runFreshLane(): Promise<void> {
318322await this.phase("fresh.restore-snapshot", 180, () => this.restoreSnapshot());
319-await this.phase("fresh.bootstrap-guest", 600, () => this.bootstrapGuest());
323+await this.phase("fresh.bootstrap-guest", BOOTSTRAP_TIMEOUT_SECONDS, () =>
324+this.bootstrapGuest(),
325+);
320326await this.phase("fresh.preflight", 90, () => this.logGuestPreflight());
321327await this.phase("fresh.install-latest-bootstrap", 420, () => this.installLatestRelease());
322328await this.phase("fresh.install-main", 420, () =>
@@ -342,7 +348,9 @@ class LinuxSmoke extends SmokeRunController<LinuxOptions> {
342348343349protected async runUpgradeLane(): Promise<void> {
344350await this.phase("upgrade.restore-snapshot", 180, () => this.restoreSnapshot());
345-await this.phase("upgrade.bootstrap-guest", 600, () => this.bootstrapGuest());
351+await this.phase("upgrade.bootstrap-guest", BOOTSTRAP_TIMEOUT_SECONDS, () =>
352+this.bootstrapGuest(),
353+);
346354await this.phase("upgrade.preflight", 90, () => this.logGuestPreflight());
347355await this.phase("upgrade.install-latest", 420, () => this.installLatestRelease());
348356this.status.latestInstalledVersion = await this.extractLastVersion("upgrade.install-latest");
@@ -442,13 +450,13 @@ printf 'preflight.npmRoot=%s\n' "$(npm root -g 2>/dev/null || true)"`);
442450"-o",
443451"Acquire::Check-Date=false",
444452"-o",
445-"DPkg::Lock::Timeout=300",
453+`DPkg::Lock::Timeout=${APT_LOCK_TIMEOUT_SECONDS}`,
446454"update",
447455]);
448456this.guestExec([
449457"apt-get",
450458"-o",
451-"DPkg::Lock::Timeout=300",
459+`DPkg::Lock::Timeout=${APT_LOCK_TIMEOUT_SECONDS}`,
452460"install",
453461"-y",
454462"curl",
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。