@agent-link/agent 0.1.298 → 0.1.299
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/external-upgrade.js +39 -5
- package/dist/external-upgrade.js.map +1 -1
- package/dist/upgrade-lock.js +40 -12
- package/dist/upgrade-lock.js.map +1 -1
- package/package.json +1 -1
- package/worker/worker.cjs +2 -2
package/dist/external-upgrade.js
CHANGED
|
@@ -6,10 +6,11 @@ import { computeLaunchSpecDigest, loadLaunchSpec, } from './launch-spec.js';
|
|
|
6
6
|
import { getProcessStartIdentity, matchProcessStartIdentity, } from './process-identity.js';
|
|
7
7
|
import { snapshotUpgradeLaunchSpec } from './upgrade-launch-spec.js';
|
|
8
8
|
import { createExternalUpgradeJob, getExternalUpgradeJobDirectory, getExternalUpgradeJobPath, loadExternalUpgradeJob, transitionExternalUpgradeJob, } from './upgrade-job.js';
|
|
9
|
-
import { acquireUpgradeLock, loadUpgradeLockOwner, loadUpgradeLockWorkerClaim, } from './upgrade-lock.js';
|
|
9
|
+
import { acquireUpgradeLock, hasUpgradeLock, loadUpgradeLockOwner, loadUpgradeLockWorkerClaim, } from './upgrade-lock.js';
|
|
10
10
|
import { isVersionStoreAdopted, loadCurrentVersion, loadLastKnownGood, validateVersionInstallation, } from './version-store.js';
|
|
11
11
|
import { getPackagedWorkerPath, cleanupUpgradeWorkerHost, startUpgradeWorker, } from './worker-host.js';
|
|
12
12
|
const HANDOFF_WINDOW_MS = 2 * 60_000;
|
|
13
|
+
const TERMINAL_PHASES = ['failed', 'target-started'];
|
|
13
14
|
function sameSelection(left, right) {
|
|
14
15
|
return left.version === right.version
|
|
15
16
|
&& left.integrity === right.integrity
|
|
@@ -148,8 +149,29 @@ export async function startExternalWorkerUpgrade(options) {
|
|
|
148
149
|
}
|
|
149
150
|
try {
|
|
150
151
|
let current = loadExternalUpgradeJob(jobId);
|
|
151
|
-
|
|
152
|
-
|
|
152
|
+
let cleanupRequired = true;
|
|
153
|
+
if (!hasUpgradeLock()) {
|
|
154
|
+
current = loadExternalUpgradeJob(jobId);
|
|
155
|
+
if (!TERMINAL_PHASES.includes(current.phase)) {
|
|
156
|
+
throw new Error(`External upgrade lock disappeared in nonterminal phase ${current.phase}`);
|
|
157
|
+
}
|
|
158
|
+
cleanupRequired = false;
|
|
159
|
+
}
|
|
160
|
+
let worker;
|
|
161
|
+
if (cleanupRequired) {
|
|
162
|
+
try {
|
|
163
|
+
worker = loadUpgradeLockWorkerClaim() ?? loadUpgradeLockOwner().worker;
|
|
164
|
+
}
|
|
165
|
+
catch (lockError) {
|
|
166
|
+
if (lockError.code !== 'ENOENT')
|
|
167
|
+
throw lockError;
|
|
168
|
+
current = loadExternalUpgradeJob(jobId);
|
|
169
|
+
if (!TERMINAL_PHASES.includes(current.phase))
|
|
170
|
+
throw lockError;
|
|
171
|
+
cleanupRequired = false;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
let controllerOwnsCleanup = cleanupRequired && lock.tryClaimControllerCleanup();
|
|
153
175
|
if (!controllerOwnsCleanup
|
|
154
176
|
&& worker
|
|
155
177
|
&& (current.phase === 'created' || current.phase === 'worker-starting')) {
|
|
@@ -177,8 +199,20 @@ export async function startExternalWorkerUpgrade(options) {
|
|
|
177
199
|
}
|
|
178
200
|
}
|
|
179
201
|
catch (cleanupError) {
|
|
180
|
-
|
|
181
|
-
|
|
202
|
+
let reportCleanupError = true;
|
|
203
|
+
if (cleanupError.code === 'ENOENT') {
|
|
204
|
+
try {
|
|
205
|
+
const current = loadExternalUpgradeJob(jobId);
|
|
206
|
+
reportCleanupError = !TERMINAL_PHASES.includes(current.phase);
|
|
207
|
+
}
|
|
208
|
+
catch {
|
|
209
|
+
reportCleanupError = true;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
if (reportCleanupError) {
|
|
213
|
+
console.error(`[AgentLink] Could not finalize failed external upgrade ${jobId}: `
|
|
214
|
+
+ cleanupError.message);
|
|
215
|
+
}
|
|
182
216
|
}
|
|
183
217
|
throw error;
|
|
184
218
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-upgrade.js","sourceRoot":"","sources":["../src/external-upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,UAAU,GACX,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EACL,UAAU,EACV,cAAc,EACd,gBAAgB,GAEjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,uBAAuB,EACvB,cAAc,GAEf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,yBAAyB,EACzB,sBAAsB,EACtB,4BAA4B,GAE7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,2BAA2B,GAE5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,GAGnB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,iBAAiB,GAAG,CAAC,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"external-upgrade.js","sourceRoot":"","sources":["../src/external-upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,UAAU,GACX,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EACL,UAAU,EACV,cAAc,EACd,gBAAgB,GAEjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,uBAAuB,EACvB,cAAc,GAEf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,yBAAyB,EACzB,sBAAsB,EACtB,4BAA4B,GAE7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,2BAA2B,GAE5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,GAGnB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,iBAAiB,GAAG,CAAC,GAAG,MAAM,CAAC;AACrC,MAAM,eAAe,GAA2C,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;AAqB7F,SAAS,aAAa,CAAC,IAAoB,EAAE,KAAqB;IAChE,OAAO,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;WAChC,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;WAClC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAe,EAAE,MAAc;IAC7D,MAAM,MAAM,GAAG,iBAAiB,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;IACD,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QACvC,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO,WAAW,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,KAAa,EACb,QAAgD,EAChD,SAAiB,EACjB,KAA8C;IAE9C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,IAAI,IAAI,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/C,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,eAAe,CAAC,OAAqB,EAAE,MAAsB;IAKpE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/F,IACE,OAAO,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI;WAClC,OAAO,CAAC,YAAY,CAAC,eAAe,KAAK,MAAM,CAAC,OAAO,EAC1D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClE,IAAI,CAAC,oBAAoB;QAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IACnG,MAAM,cAAc,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;IAClD,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,OAA+B;IAE/B,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,2BAA2B,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACrD,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAChD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC;IACxB,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,UAAU,GAA4B,IAAI,CAAC;IAC/C,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;QAC7C,MAAM,sBAAsB,GAAG,iBAAiB,EAAE,CAAC;QACnD,IAAI,CAAC,eAAe,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QACD,2BAA2B,CAAC,eAAe,CAAC,CAAC;QAC7C,2BAA2B,CAAC,sBAAsB,CAAC,CAAC;QACpD,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9E,MAAM,IAAI,KAAK,CACb,UAAU,eAAe,CAAC,OAAO,+BAA+B,eAAe,CAAC,OAAO,EAAE,CAC1F,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,gBAAgB,EAAE,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC/E,MAAM,eAAe,GAAG,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,wBAAwB,CAAC;YACnC,KAAK;YACL,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,UAAU,EAAE;YAC5C,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,aAAa,EAAE,eAAe,CAAC,OAAO;YACtC,aAAa,EAAE,eAAe,CAAC,OAAO;YACtC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC;YAC7B,cAAc,EAAE,eAAe,CAAC,cAAc;YAC9C,gBAAgB,EAAE,uBAAuB,CAAC,eAAe,CAAC,UAAU,CAAC;YACrE,UAAU,EAAE;gBACV,GAAG,EAAE,OAAO,CAAC,GAAI;gBACjB,oBAAoB,EAAE,eAAe,CAAC,oBAAoB;gBAC1D,iBAAiB,EAAE,OAAO,CAAC,iBAAkB;gBAC7C,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,cAAc,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9E;YACD,YAAY,EAAE,QAAQ;YACtB,eAAe;YACf,eAAe;YACf,sBAAsB;YACtB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;YAC3B,gBAAgB,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,iBAAiB,CAAC,CAAC,WAAW,EAAE;YACjF,GAAG,EAAE,SAAS;SACf,CAAC,CAAC;QACH,UAAU,GAAG,IAAI,CAAC;QAClB,MAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,IAAI,qBAAqB,EAAE,CAAC;QACzE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,YAAY,EAAE,CAAC,CAAC;QACrG,MAAM,UAAU,GAAG,OAAO,CAAC,8BAA8B,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC;QAChF,YAAY,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACvC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;YAAE,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/D,4BAA4B,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QACvD,UAAU,GAAG,kBAAkB,CAAC;YAC9B,KAAK;YACL,OAAO,EAAE,yBAAyB,CAAC,KAAK,CAAC;YACzC,UAAU;YACV,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI;SAC/C,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QAC3B,MAAM,UAAU,CAAC,OAAO,CAAC;QACzB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,EAAE,CAC7C,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,YAAY,CAChB,KAAK,EACL;YACE,cAAc;YACd,oBAAoB;YACpB,mBAAmB;YACnB,WAAW;YACX,iBAAiB;YACjB,gBAAgB;SACjB,EACD,OAAO,CAAC,gBAAgB,IAAI,MAAM,EAClC,KAAK,CACN,CAAC;QACF,MAAM,QAAQ,GAAG,OAAO,CAAC,oBAAoB,KAAK,KAAK;YACrD,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC;YAC/B,CAAC,CAAC,MAAM,YAAY,CAClB,KAAK,EACL,CAAC,gBAAgB,CAAC,EAClB,OAAO,CAAC,oBAAoB,IAAI,MAAM,EACtC,KAAK,CACN,CAAC;QACJ,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,MAAM,KAAK,CAAC;QACd,CAAC;QACD,IAAI,CAAC;YACH,IAAI,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,eAAe,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;gBACtB,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC7C,MAAM,IAAI,KAAK,CAAC,0DAA0D,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC7F,CAAC;gBACD,eAAe,GAAG,KAAK,CAAC;YAC1B,CAAC;YACD,IAAI,MAAM,CAAC;YACX,IAAI,eAAe,EAAE,CAAC;gBACpB,IAAI,CAAC;oBACH,MAAM,GAAG,0BAA0B,EAAE,IAAI,oBAAoB,EAAE,CAAC,MAAM,CAAC;gBACzE,CAAC;gBAAC,OAAO,SAAS,EAAE,CAAC;oBACnB,IAAK,SAAmC,CAAC,IAAI,KAAK,QAAQ;wBAAE,MAAM,SAAS,CAAC;oBAC5E,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;oBACxC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;wBAAE,MAAM,SAAS,CAAC;oBAC9D,eAAe,GAAG,KAAK,CAAC;gBAC1B,CAAC;YACH,CAAC;YACD,IAAI,qBAAqB,GAAG,eAAe,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC;YAChF,IACE,CAAC,qBAAqB;mBACnB,MAAM;mBACN,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,iBAAiB,CAAC,EACvE,CAAC;gBACD,MAAM,QAAQ,GAAG,yBAAyB,CACxC,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,oBAAoB,CAC5B,CAAC;gBACF,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBACnE,qBAAqB,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;YACD,IAAI,qBAAqB,EAAE,CAAC;gBAC1B,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC/B,IAAI,UAAU;wBAAE,wBAAwB,CAAC,UAAU,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;oBAC7E,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,CAAC;qBAAM,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,iBAAiB,EAAE,CAAC;oBAC9E,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAClC,CAAC;qBAAM,CAAC;oBACN,IAAI,UAAU;wBAAE,wBAAwB,CAAC,UAAU,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;oBAC7E,4BAA4B,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;oBACnF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,YAAY,EAAE,CAAC;YACtB,IAAI,kBAAkB,GAAG,IAAI,CAAC;YAC9B,IAAK,YAAsC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9D,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;oBAC9C,kBAAkB,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAChE,CAAC;gBAAC,MAAM,CAAC;oBACP,kBAAkB,GAAG,IAAI,CAAC;gBAC5B,CAAC;YACH,CAAC;YACD,IAAI,kBAAkB,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CACX,0DAA0D,KAAK,IAAI;sBAChE,YAAsB,CAAC,OAAO,CAClC,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/upgrade-lock.js
CHANGED
|
@@ -19,12 +19,12 @@ export function loadUpgradeLockOwner() {
|
|
|
19
19
|
}
|
|
20
20
|
return value;
|
|
21
21
|
}
|
|
22
|
-
function getHandoffClaimPath() {
|
|
23
|
-
return join(getUpgradeLockPath(),
|
|
22
|
+
function getHandoffClaimPath(nonce) {
|
|
23
|
+
return join(getUpgradeLockPath(), `handoff-${nonce}.claim`);
|
|
24
24
|
}
|
|
25
|
-
function loadHandoffClaim() {
|
|
25
|
+
function loadHandoffClaim(nonce) {
|
|
26
26
|
try {
|
|
27
|
-
const value = JSON.parse(readFileSync(getHandoffClaimPath(), 'utf8'));
|
|
27
|
+
const value = JSON.parse(readFileSync(getHandoffClaimPath(nonce), 'utf8'));
|
|
28
28
|
if (value.schemaVersion !== 1
|
|
29
29
|
|| (value.role !== 'controller' && value.role !== 'worker')
|
|
30
30
|
|| typeof value.jobId !== 'string'
|
|
@@ -45,7 +45,7 @@ function loadHandoffClaim() {
|
|
|
45
45
|
function tryCreateHandoffClaim(claim) {
|
|
46
46
|
let handle;
|
|
47
47
|
try {
|
|
48
|
-
handle = openSync(getHandoffClaimPath(), 'wx', 0o600);
|
|
48
|
+
handle = openSync(getHandoffClaimPath(claim.nonce), 'wx', 0o600);
|
|
49
49
|
}
|
|
50
50
|
catch (error) {
|
|
51
51
|
if (error.code === 'EEXIST')
|
|
@@ -63,7 +63,7 @@ function tryCreateHandoffClaim(claim) {
|
|
|
63
63
|
}
|
|
64
64
|
function releaseClaimedLock(jobId, nonce, role) {
|
|
65
65
|
const owner = loadUpgradeLockOwner();
|
|
66
|
-
const claim = loadHandoffClaim();
|
|
66
|
+
const claim = loadHandoffClaim(nonce);
|
|
67
67
|
if (owner.jobId !== jobId
|
|
68
68
|
|| owner.nonce !== nonce
|
|
69
69
|
|| claim?.jobId !== jobId
|
|
@@ -118,18 +118,45 @@ export function acquireUpgradeLock(jobId) {
|
|
|
118
118
|
return false;
|
|
119
119
|
if (controllerClaimed)
|
|
120
120
|
return true;
|
|
121
|
+
let current;
|
|
122
|
+
try {
|
|
123
|
+
current = loadUpgradeLockOwner();
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
if (error.code === 'ENOENT')
|
|
127
|
+
return false;
|
|
128
|
+
throw error;
|
|
129
|
+
}
|
|
130
|
+
if (current.jobId !== owner.jobId || current.nonce !== owner.nonce)
|
|
131
|
+
return false;
|
|
121
132
|
controllerClaimed = tryCreateHandoffClaim({
|
|
122
133
|
schemaVersion: 1,
|
|
123
134
|
role: 'controller',
|
|
124
135
|
jobId: owner.jobId,
|
|
125
136
|
nonce: owner.nonce,
|
|
126
137
|
});
|
|
138
|
+
if (!controllerClaimed)
|
|
139
|
+
return false;
|
|
140
|
+
try {
|
|
141
|
+
current = loadUpgradeLockOwner();
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
if (error.code === 'ENOENT') {
|
|
145
|
+
controllerClaimed = false;
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
throw error;
|
|
149
|
+
}
|
|
150
|
+
if (current.jobId !== owner.jobId || current.nonce !== owner.nonce) {
|
|
151
|
+
controllerClaimed = false;
|
|
152
|
+
return false;
|
|
153
|
+
}
|
|
127
154
|
return controllerClaimed;
|
|
128
155
|
},
|
|
129
156
|
tryReclaimDeadWorkerCleanup(worker) {
|
|
130
157
|
if (released || controllerClaimed)
|
|
131
158
|
return false;
|
|
132
|
-
const claim = loadHandoffClaim();
|
|
159
|
+
const claim = loadHandoffClaim(owner.nonce);
|
|
133
160
|
if (claim?.role !== 'worker'
|
|
134
161
|
|| claim.jobId !== owner.jobId
|
|
135
162
|
|| claim.nonce !== owner.nonce
|
|
@@ -137,19 +164,19 @@ export function acquireUpgradeLock(jobId) {
|
|
|
137
164
|
|| claim.worker.processStartIdentity !== worker.processStartIdentity) {
|
|
138
165
|
return false;
|
|
139
166
|
}
|
|
140
|
-
rmSync(getHandoffClaimPath());
|
|
167
|
+
rmSync(getHandoffClaimPath(owner.nonce));
|
|
141
168
|
return this.tryClaimControllerCleanup();
|
|
142
169
|
},
|
|
143
170
|
abandonControllerCleanup() {
|
|
144
171
|
if (!controllerClaimed || released)
|
|
145
172
|
return;
|
|
146
|
-
const claim = loadHandoffClaim();
|
|
173
|
+
const claim = loadHandoffClaim(owner.nonce);
|
|
147
174
|
if (claim?.role !== 'controller'
|
|
148
175
|
|| claim.jobId !== owner.jobId
|
|
149
176
|
|| claim.nonce !== owner.nonce) {
|
|
150
177
|
throw new Error('Upgrade controller cleanup claim changed unexpectedly');
|
|
151
178
|
}
|
|
152
|
-
rmSync(getHandoffClaimPath());
|
|
179
|
+
rmSync(getHandoffClaimPath(owner.nonce));
|
|
153
180
|
controllerClaimed = false;
|
|
154
181
|
},
|
|
155
182
|
release() {
|
|
@@ -187,7 +214,7 @@ export function assignUpgradeLockWorker(jobId, nonce, worker) {
|
|
|
187
214
|
}
|
|
188
215
|
export function releaseUpgradeLockForWorker(jobId, nonce, worker) {
|
|
189
216
|
const owner = loadUpgradeLockOwner();
|
|
190
|
-
const claim = loadHandoffClaim();
|
|
217
|
+
const claim = loadHandoffClaim(nonce);
|
|
191
218
|
if (owner.worker?.pid !== worker.pid
|
|
192
219
|
|| owner.worker?.processStartIdentity !== worker.processStartIdentity
|
|
193
220
|
|| claim?.role !== 'worker'
|
|
@@ -201,7 +228,8 @@ export function hasUpgradeLock() {
|
|
|
201
228
|
return existsSync(getUpgradeLockPath());
|
|
202
229
|
}
|
|
203
230
|
export function loadUpgradeLockWorkerClaim() {
|
|
204
|
-
const
|
|
231
|
+
const owner = loadUpgradeLockOwner();
|
|
232
|
+
const claim = loadHandoffClaim(owner.nonce);
|
|
205
233
|
return claim?.role === 'worker' ? claim.worker ?? null : null;
|
|
206
234
|
}
|
|
207
235
|
//# sourceMappingURL=upgrade-lock.js.map
|
package/dist/upgrade-lock.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade-lock.js","sourceRoot":"","sources":["../src/upgrade-lock.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,MAAM,EACN,aAAa,GACd,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AA6BlE,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,CAAqB,CAAC;IAC7G,IACE,KAAK,CAAC,aAAa,KAAK,CAAC;WACtB,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;WAC/B,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;WAC/B,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC;WAC/C,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC;WAC5C,OAAO,KAAK,CAAC,UAAU,EAAE,oBAAoB,KAAK,QAAQ,EAC7D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB;
|
|
1
|
+
{"version":3,"file":"upgrade-lock.js","sourceRoot":"","sources":["../src/upgrade-lock.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/worker/worker.cjs
CHANGED
|
@@ -194,7 +194,7 @@ function assignLockWorker(job, worker) {
|
|
|
194
194
|
) {
|
|
195
195
|
throw new Error('active upgrade lock does not belong to this job');
|
|
196
196
|
}
|
|
197
|
-
const claimPath = path.join(lockDirectory,
|
|
197
|
+
const claimPath = path.join(lockDirectory, `handoff-${job.lockNonce}.claim`);
|
|
198
198
|
const claimFd = fs.openSync(claimPath, 'wx', 0o600);
|
|
199
199
|
try {
|
|
200
200
|
fs.writeFileSync(claimFd, `${JSON.stringify({
|
|
@@ -501,7 +501,7 @@ async function startTarget(job) {
|
|
|
501
501
|
function releaseLock(job, worker) {
|
|
502
502
|
const lockDirectory = path.join(job.dataRoot, 'upgrades', 'active.lock');
|
|
503
503
|
const owner = loadJson(path.join(lockDirectory, 'owner.json'));
|
|
504
|
-
const claim = loadJson(path.join(lockDirectory,
|
|
504
|
+
const claim = loadJson(path.join(lockDirectory, `handoff-${job.lockNonce}.claim`));
|
|
505
505
|
if (
|
|
506
506
|
owner.jobId !== job.jobId
|
|
507
507
|
|| owner.nonce !== job.lockNonce
|