agl 22.0.1 → 22.0.2

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.
@@ -3,16 +3,14 @@ import { commitinfo } from './00_commitinfo_data.js';
3
3
  import { controllerPackageName, controllerProtocolVersion, controllerUpgradeManagementVersion, } from '../dist_ts_interfaces/index.js';
4
4
  import { resolveAGLHomePaths } from './classes.aglhome.js';
5
5
  import { isLoopbackPortListening, queryControllerStatus, requestControllerUpgradeFinalize, requestControllerUpgradePrepareBegin, stopVerifiedController, } from './classes.controllermanagement.js';
6
- import { inspectControllerProcess, listControllerDataWriterProcessesForCli, listControllerProcessesForCli, processIdentityHasCliCommand, readControllerProcessIdentity, readProcessGroupMemberPids, } from './classes.processinspection.js';
7
- import { createUpgradeToken, UpgradeCoordinator, upgradeCoordinationVersion, upgradePackageTransitionTransactionVersion, upgradePackageTransitionSource, upgradePackageTransitionTarget, serializeUpgradeWorkerPayload, } from './classes.upgradecoordinator.js';
6
+ import { inspectControllerProcess, listControllerDataWriterProcessesForCli, listControllerDataWriterProcessesForCliPaths, listControllerProcessesForCli, processIdentityHasCliCommand, readControllerProcessIdentity, readProcessGroupMemberPids, } from './classes.processinspection.js';
7
+ import { createUpgradeToken, compareUpgradeSemver, normalizeUpgradeRegistryUrl, UpgradeCoordinator, upgradeCoordinationVersion, upgradePackageTransitionTransactionVersion, upgradePackageTransitionSource, upgradePackageTransitionTarget, upgradeTransactionIsStalled, upgradeTransactionTargetVersion, serializeUpgradeWorkerPayload, terminateVerifiedUpgradeWorkerProcessGroup, } from './classes.upgradecoordinator.js';
8
8
  import { upgradeCoordinationRootEnvironmentVariable, upgradeTokenEnvironmentVariable, } from './constants.upgradeenvironment.js';
9
- const npmRegistryUrl = 'https://registry.npmjs.org/';
10
9
  const commandOutputByteLimit = 1024 * 1024;
11
10
  const loggedCommandOutputByteLimit = 16 * 1024 * 1024;
12
11
  const packageManagerTimeoutMs = 10 * 60 * 1000;
13
12
  const controllerRestartTimeoutMs = 90_000;
14
13
  const commandGroupDrainTimeoutMs = 5_000;
15
- const candidateCleanupRetryIntervalMs = 250;
16
14
  const retainedUpgradeLogCount = 10;
17
15
  const minimumPrunableUpgradeLogAgeMs = 30 * 60 * 1000;
18
16
  const upgradePreparationPollMs = 250;
@@ -24,13 +22,15 @@ const scrubUpgradeCoordinationEnvironment = () => {
24
22
  delete process.env[upgradeCoordinationRootEnvironmentVariable];
25
23
  };
26
24
  const upgradeLogPattern = /^upgrade-[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{6}\.[0-9]{3}Z-[A-Za-z0-9_-]{10}\.log$/;
27
- const semverPattern = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/;
28
25
  let upgradeWorkerCliPath;
29
26
  const currentPackageIdentity = String(controllerPackageName)
30
27
  === upgradePackageTransitionSource.packageName
31
28
  ? upgradePackageTransitionSource
32
29
  : upgradePackageTransitionTarget;
33
30
  const currentCliName = currentPackageIdentity.cliName;
31
+ const registryArguments = (registryUrlArg) => registryUrlArg
32
+ ? [`--registry=${registryUrlArg}`]
33
+ : [];
34
34
  const packageManagerEnvironmentAllowlist = new Set([
35
35
  'CI',
36
36
  'COREPACK_HOME',
@@ -45,6 +45,7 @@ const packageManagerEnvironmentAllowlist = new Set([
45
45
  'NPM_CONFIG_REGISTRY',
46
46
  'NPM_CONFIG_USERCONFIG',
47
47
  'PATH',
48
+ 'PNPM_CONFIG_REGISTRY',
48
49
  'PNPM_HOME',
49
50
  'SHELL',
50
51
  'SSL_CERT_DIR',
@@ -63,6 +64,47 @@ const packageManagerEnvironmentAllowlist = new Set([
63
64
  ]);
64
65
  class UpgradeCommandCleanupError extends Error {
65
66
  }
67
+ export class UpgradeWorkerHandoffError extends Error {
68
+ recoveryLock;
69
+ constructor(messageArg, causeArg, recoveryLock) {
70
+ super(messageArg, { cause: causeArg });
71
+ this.recoveryLock = recoveryLock;
72
+ this.name = 'UpgradeWorkerHandoffError';
73
+ }
74
+ }
75
+ export class UpgradeWorkerCandidateDrainageError extends Error {
76
+ constructor(messageArg, causeArg) {
77
+ super(messageArg, { cause: causeArg });
78
+ this.name = 'UpgradeWorkerCandidateDrainageError';
79
+ }
80
+ }
81
+ export const terminalizeUpgradeWorkerHandoffFailure = async (optionsArg) => {
82
+ const handoffFailure = optionsArg.error.cause ?? optionsArg.error;
83
+ let terminalizationError;
84
+ let terminalized = false;
85
+ try {
86
+ await optionsArg.error.recoveryLock.assertOwned();
87
+ await optionsArg.coordinator.finishTransaction(optionsArg.token, false, 'The upgrade worker handoff failed before package work began.', handoffFailure instanceof Error ? handoffFailure.message : String(handoffFailure));
88
+ terminalized = true;
89
+ }
90
+ catch (errorArg) {
91
+ terminalizationError = errorArg;
92
+ }
93
+ let releaseError;
94
+ if (terminalized) {
95
+ try {
96
+ await optionsArg.error.recoveryLock.release();
97
+ }
98
+ catch (errorArg) {
99
+ releaseError = errorArg;
100
+ }
101
+ }
102
+ const failures = [optionsArg.error, terminalizationError, releaseError]
103
+ .filter((failureArg) => failureArg !== undefined);
104
+ throw failures.length > 1
105
+ ? new AggregateError(failures, 'The upgrade worker handoff failed and its transaction cleanup was incomplete.')
106
+ : optionsArg.error;
107
+ };
66
108
  const proxyEnvironmentValueIsSafe = (valueArg) => {
67
109
  try {
68
110
  const parsed = new URL(valueArg);
@@ -84,6 +126,14 @@ export const createPackageManagerEnvironment = (sourceArg = process.env) => {
84
126
  if ((normalizedName === 'HTTP_PROXY' || normalizedName === 'HTTPS_PROXY')
85
127
  && !proxyEnvironmentValueIsSafe(value))
86
128
  continue;
129
+ if (normalizedName === 'NPM_CONFIG_REGISTRY' || normalizedName === 'PNPM_CONFIG_REGISTRY') {
130
+ try {
131
+ normalizeUpgradeRegistryUrl(value);
132
+ }
133
+ catch {
134
+ continue;
135
+ }
136
+ }
87
137
  environment[name] = value;
88
138
  }
89
139
  return environment;
@@ -581,7 +631,12 @@ const resolveAuthoritativeRecoveryInstallation = async (transactionArg, captured
581
631
  : upgradePackageTransitionSource;
582
632
  return {
583
633
  packageName: identity.packageName,
584
- versions: [identity.version],
634
+ versions: transactionArg.targetPackageCommitStarted === true
635
+ ? [...new Set([
636
+ identity.version,
637
+ transactionArg.recoveryTargetVersion ?? capturedInstallationArg.packageVersion,
638
+ ])]
639
+ : [identity.version],
585
640
  managementVersion: identity.managementVersion,
586
641
  cliName: identity.cliName,
587
642
  cliRelativePath: identity.cliRelativePath,
@@ -652,7 +707,7 @@ const resolveAuthoritativeRecoveryInstallation = async (transactionArg, captured
652
707
  packageVersion: manifest.version,
653
708
  };
654
709
  };
655
- const verifyPackageTransitionTopology = async (contextArg, expectedArg) => {
710
+ const verifyPackageTransitionTopology = async (contextArg, expectedArg, targetVersionArg = upgradePackageTransitionTarget.version) => {
656
711
  const output = await runCapturedCommand(contextArg.packageManagerPath, [
657
712
  'list',
658
713
  '--global',
@@ -677,7 +732,10 @@ const verifyPackageTransitionTopology = async (contextArg, expectedArg) => {
677
732
  ? readExactGlobalPackage(contextArg, sourceDependency, upgradePackageTransitionSource)
678
733
  : undefined,
679
734
  targetDependency
680
- ? readExactGlobalPackage(contextArg, targetDependency, upgradePackageTransitionTarget)
735
+ ? readExactGlobalPackage(contextArg, targetDependency, {
736
+ ...upgradePackageTransitionTarget,
737
+ version: targetVersionArg,
738
+ })
681
739
  : undefined,
682
740
  ]);
683
741
  if (expectedArg === 'grouped' && source?.groupDirectory !== target?.groupDirectory) {
@@ -706,7 +764,7 @@ export const resolveInheritedUpgradeTargetInstallation = async (transactionArg)
706
764
  if (transactionArg.version === upgradeCoordinationVersion) {
707
765
  return await resolvePnpmGlobalInstallation();
708
766
  }
709
- const topology = await verifyPackageTransitionTopology(await resolvePackageManagerContext(), 'target-only');
767
+ const topology = await verifyPackageTransitionTopology(await resolvePackageManagerContext(), 'target-only', upgradeTransactionTargetVersion(transactionArg));
710
768
  if (!topology.target)
711
769
  throw new Error('The committed target package is unavailable.');
712
770
  return topology.target;
@@ -741,67 +799,106 @@ export const tryResolveCurrentPnpmGlobalInstallation = async () => {
741
799
  return undefined;
742
800
  return await resolveCurrentPnpmGlobalInstallation();
743
801
  };
744
- const parseSemver = (valueArg) => {
745
- const match = semverPattern.exec(valueArg);
746
- if (!match)
747
- throw new Error(`Invalid semantic version: ${valueArg}`);
748
- const prerelease = match[4]?.split('.') ?? [];
749
- if (prerelease.some((identifierArg) => /^\d+$/.test(identifierArg)
750
- && identifierArg.length > 1
751
- && identifierArg.startsWith('0'))) {
752
- throw new Error(`Invalid semantic version: ${valueArg}`);
753
- }
754
- return {
755
- major: match[1],
756
- minor: match[2],
757
- patch: match[3],
758
- prerelease,
759
- };
760
- };
761
- const compareNumericStrings = (leftArg, rightArg) => {
762
- if (leftArg.length !== rightArg.length)
763
- return leftArg.length < rightArg.length ? -1 : 1;
764
- return leftArg === rightArg ? 0 : leftArg < rightArg ? -1 : 1;
802
+ export const compareSemver = compareUpgradeSemver;
803
+ export const inspectOrphanedUpgradeForAdoption = async (optionsArg) => {
804
+ const inventory = await optionsArg.coordinator.inspectCanonicalTransactionInventory();
805
+ const nonterminal = inventory.transactions.filter((entryArg) => !entryArg.transaction.terminal);
806
+ if (nonterminal.length === 0)
807
+ return undefined;
808
+ if (nonterminal.length !== 1) {
809
+ throw new Error('Multiple nonterminal upgrade transactions block a fresh upgrade.');
810
+ }
811
+ const entry = nonterminal[0];
812
+ const transaction = entry.transaction;
813
+ const eligibleV2 = transaction.version === upgradeCoordinationVersion
814
+ && transaction.controllerWasRunning === true
815
+ && transaction.targetStartupInvoked === true
816
+ && transaction.targetVersion !== undefined
817
+ && transaction.preparationCompletedAt !== undefined
818
+ && (transaction.phase === 'restarting' || transaction.phase === 'continuing')
819
+ && compareSemver(transaction.sourceVersion, upgradePackageTransitionTarget.version) >= 0
820
+ && compareSemver(transaction.sourceVersion, transaction.targetVersion) < 0
821
+ && compareSemver(transaction.targetVersion, optionsArg.installation.packageVersion) <= 0;
822
+ const eligibleV3 = transaction.version === upgradePackageTransitionTransactionVersion
823
+ && currentPackageIdentity.packageName === upgradePackageTransitionTarget.packageName
824
+ && transaction.targetPackageCommitStarted === true
825
+ && (!transaction.controllerWasRunning || transaction.preparationCompletedAt !== undefined)
826
+ && (transaction.phase === 'installing'
827
+ || transaction.phase === 'restarting'
828
+ || transaction.phase === 'continuing')
829
+ && compareSemver(upgradeTransactionTargetVersion(transaction), optionsArg.installation.packageVersion) <= 0;
830
+ if (transaction.port !== optionsArg.port
831
+ || (!eligibleV2 && !eligibleV3)
832
+ || !upgradeTransactionIsStalled(transaction))
833
+ throw new Error('A nonterminal upgrade transaction blocks a fresh upgrade.');
834
+ if (transaction.version === upgradePackageTransitionTransactionVersion && optionsArg.registryUrl) {
835
+ throw new Error('Legacy package-transition recovery uses pnpm registry configuration and cannot retain --registry.');
836
+ }
837
+ if (transaction.version === upgradeCoordinationVersion
838
+ && transaction.registryUrl !== undefined
839
+ && optionsArg.registryUrl !== undefined
840
+ && transaction.registryUrl !== optionsArg.registryUrl)
841
+ throw new Error('The orphaned upgrade registry conflicts with the requested registry.');
842
+ if (await optionsArg.coordinator.transactionWorkerIsLive(transaction)) {
843
+ throw new Error('A nonterminal upgrade worker is still running.');
844
+ }
845
+ if (transaction.controller
846
+ && await optionsArg.coordinator.transactionControllerIsLive(transaction))
847
+ throw new Error('A nonterminal upgrade controller is still running.');
848
+ const adoptionMatch = /^transaction-([a-f0-9]{20})\.json\.adopting-([a-f0-9]{20})$/
849
+ .exec(entry.fileName);
850
+ const prefixes = new Set([
851
+ transaction.tokenHash.slice(0, 20),
852
+ ...(adoptionMatch ? [adoptionMatch[1], adoptionMatch[2]] : []),
853
+ ]);
854
+ if (inventory.tokenMetadataFileNames.some((fileNameArg) => ([...prefixes].some((prefixArg) => fileNameArg.includes(`-${prefixArg}.json`)))))
855
+ throw new Error('The orphaned upgrade retains token-bound coordination metadata.');
856
+ return entry;
765
857
  };
766
- export const compareSemver = (leftArg, rightArg) => {
767
- const left = parseSemver(leftArg);
768
- const right = parseSemver(rightArg);
769
- for (const key of ['major', 'minor', 'patch']) {
770
- const comparison = compareNumericStrings(left[key], right[key]);
771
- if (comparison !== 0)
772
- return comparison;
773
- }
774
- if (left.prerelease.length === 0 || right.prerelease.length === 0) {
775
- if (left.prerelease.length === right.prerelease.length)
776
- return 0;
777
- return left.prerelease.length === 0 ? 1 : -1;
778
- }
779
- const identifierCount = Math.max(left.prerelease.length, right.prerelease.length);
780
- for (let index = 0; index < identifierCount; index++) {
781
- const leftIdentifier = left.prerelease[index];
782
- const rightIdentifier = right.prerelease[index];
783
- if (leftIdentifier === undefined || rightIdentifier === undefined) {
784
- return leftIdentifier === rightIdentifier ? 0 : leftIdentifier === undefined ? -1 : 1;
785
- }
786
- if (leftIdentifier === rightIdentifier)
787
- continue;
788
- const leftNumeric = /^\d+$/.test(leftIdentifier);
789
- const rightNumeric = /^\d+$/.test(rightIdentifier);
790
- if (leftNumeric && rightNumeric) {
791
- return compareNumericStrings(leftIdentifier, rightIdentifier);
858
+ export const adoptOrphanedUpgradeUnderLock = async (optionsArg) => {
859
+ await optionsArg.lock.assertOwned();
860
+ const candidate = await inspectOrphanedUpgradeForAdoption(optionsArg);
861
+ if (!candidate
862
+ || candidate.transaction.tokenHash !== optionsArg.expected.transaction.tokenHash
863
+ || candidate.transaction.revision !== optionsArg.expected.transaction.revision)
864
+ throw new Error('The orphaned upgrade transaction changed before adoption.');
865
+ const cliPaths = [
866
+ optionsArg.installation.cliPath,
867
+ ...(candidate.transaction.worker ? [candidate.transaction.worker.cliPath] : []),
868
+ ...(candidate.transaction.controller ? [candidate.transaction.controller.cliPath] : []),
869
+ ];
870
+ const assertNoRuntimeWriters = async () => {
871
+ if (await isLoopbackPortListening(optionsArg.port)) {
872
+ throw new Error('The orphaned upgrade port became occupied before recovery.');
873
+ }
874
+ const writers = await listControllerDataWriterProcessesForCliPaths(cliPaths, {
875
+ includeInstalledPackagePaths: true,
876
+ });
877
+ if (writers.length > 0) {
878
+ throw new Error(`A ${writers[0].kind} data writer prevents orphaned upgrade recovery.`);
792
879
  }
793
- if (leftNumeric !== rightNumeric)
794
- return leftNumeric ? -1 : 1;
795
- return leftIdentifier < rightIdentifier ? -1 : 1;
796
- }
797
- return 0;
880
+ };
881
+ await assertNoRuntimeWriters();
882
+ await optionsArg.lock.assertOwned();
883
+ const adopted = await optionsArg.coordinator.adoptOrphanedTransaction({
884
+ lock: optionsArg.lock,
885
+ token: optionsArg.token,
886
+ expectedTokenHash: candidate.transaction.tokenHash,
887
+ expectedRevision: candidate.transaction.revision,
888
+ port: optionsArg.port,
889
+ installedVersion: optionsArg.installation.packageVersion,
890
+ ...(optionsArg.registryUrl === undefined ? {} : { registryUrl: optionsArg.registryUrl }),
891
+ });
892
+ await assertNoRuntimeWriters();
893
+ await optionsArg.lock.assertOwned();
894
+ return adopted;
798
895
  };
799
- const readLatestVersion = async (installationArg) => {
896
+ const readLatestVersion = async (installationArg, registryUrlArg) => {
800
897
  const output = await runCapturedCommand(installationArg.packageManagerPath, [
801
898
  'view',
802
899
  controllerPackageName,
803
900
  'dist-tags.latest',
804
- `--registry=${npmRegistryUrl}`,
901
+ ...registryArguments(registryUrlArg),
805
902
  '--json',
806
903
  ], createPackageManagerEnvironment());
807
904
  let version;
@@ -809,33 +906,19 @@ const readLatestVersion = async (installationArg) => {
809
906
  version = JSON.parse(output);
810
907
  }
811
908
  catch {
812
- throw new Error('pnpm view returned malformed JSON for the npm latest tag.');
909
+ throw new Error('pnpm view returned malformed JSON for the registry latest tag.');
813
910
  }
814
911
  if (typeof version !== 'string') {
815
- throw new Error('The npm latest tag did not resolve to one package version.');
912
+ throw new Error('The registry latest tag did not resolve to one package version.');
816
913
  }
817
- parseSemver(version);
914
+ compareUpgradeSemver(version, version);
818
915
  return version;
819
916
  };
820
- const assertInternalRegistryUrl = (valueArg) => {
821
- let parsed;
822
- try {
823
- parsed = new URL(valueArg);
824
- }
825
- catch (errorArg) {
826
- throw new Error('The internal upgrade registry URL is invalid.', { cause: errorArg });
827
- }
828
- if ((parsed.protocol !== 'https:' && parsed.protocol !== 'http:')
829
- || parsed.username.length > 0
830
- || parsed.password.length > 0)
831
- throw new Error('The internal upgrade registry URL is unsafe.');
832
- return parsed.toString();
833
- };
834
917
  const resolveExactPackageTransitionTarget = async (contextArg, registryUrlArg) => {
835
918
  const output = await runCapturedCommand(contextArg.packageManagerPath, [
836
919
  'view',
837
920
  `${upgradePackageTransitionTarget.packageName}@${upgradePackageTransitionTarget.version}`,
838
- `--registry=${registryUrlArg}`,
921
+ ...registryArguments(registryUrlArg),
839
922
  '--json',
840
923
  ], createPackageManagerEnvironment());
841
924
  let metadata;
@@ -947,53 +1030,24 @@ const parseUpgradeRecoveryWorkerContext = (valueArg) => {
947
1030
  throw new Error('The internal upgrade recovery worker context is incompatible.');
948
1031
  return context;
949
1032
  };
950
- const waitForProcessGroupDrain = async (processGroupIdArg, timeoutMsArg) => {
951
- const deadline = Date.now() + timeoutMsArg;
952
- while (Date.now() < deadline) {
953
- if ((await readProcessGroupMemberPids(processGroupIdArg)).length === 0)
954
- return true;
955
- await new Promise((resolve) => setTimeout(resolve, 50));
956
- }
957
- return (await readProcessGroupMemberPids(processGroupIdArg)).length === 0;
958
- };
959
- const terminateSpawnedDetachedWorker = async (processIdArg) => {
960
- const signal = (signalArg) => {
961
- try {
962
- process.kill(-processIdArg, signalArg);
963
- }
964
- catch (errorArg) {
965
- if (errorArg.code !== 'ESRCH')
966
- throw errorArg;
967
- }
968
- };
969
- signal('SIGTERM');
970
- if (await waitForProcessGroupDrain(processIdArg, commandGroupDrainTimeoutMs))
971
- return;
972
- signal('SIGKILL');
973
- if (!await waitForProcessGroupDrain(processIdArg, commandGroupDrainTimeoutMs)) {
974
- throw new Error('The detached upgrade worker candidate group did not terminate.');
975
- }
976
- };
977
- const retryCandidateCleanupUntilDrained = async (cleanupArg, dependenciesArg = {}, processIdArg) => {
978
- const delay = dependenciesArg.delay
979
- ?? (async (millisecondsArg) => new Promise((resolve) => (setTimeout(resolve, millisecondsArg))));
980
- while (true) {
981
- try {
982
- await dependenciesArg.beforeAttempt?.(processIdArg);
983
- await cleanupArg();
984
- return;
985
- }
986
- catch {
987
- await delay(candidateCleanupRetryIntervalMs);
988
- }
989
- }
1033
+ const terminateSpawnedDetachedWorker = async (identityArg, cliPathArg) => await terminateVerifiedUpgradeWorkerProcessGroup({
1034
+ pid: identityArg.pid,
1035
+ processGroupId: identityArg.processGroupId,
1036
+ fingerprint: identityArg.fingerprint,
1037
+ cliPath: cliPathArg,
1038
+ });
1039
+ const cleanupCandidateUntilDrained = async (cleanupArg, dependenciesArg = {}, processIdArg) => {
1040
+ await dependenciesArg.beforeAttempt?.(processIdArg);
1041
+ await cleanupArg();
990
1042
  };
1043
+ export const terminateUpgradeWorkerCandidateUntilDrained = async (coordinatorArg, candidateArg) => await cleanupCandidateUntilDrained(async () => await coordinatorArg.terminateUpgradeWorkerCandidate(candidateArg), {}, candidateArg.pid);
991
1044
  const launchDetachedUpgradeWorkerProcess = async (optionsArg, dependenciesArg = {}) => {
992
1045
  if (process.platform !== 'linux' && process.platform !== 'darwin') {
993
1046
  throw new Error(`${currentCliName} upgrade is currently supported on Linux and macOS only.`);
994
1047
  }
995
1048
  const log = await openUpgradeLog(optionsArg.payload.token);
996
1049
  let child;
1050
+ let spawnedIdentity;
997
1051
  let logClosed = false;
998
1052
  try {
999
1053
  const workerEnvironment = { ...(optionsArg.environment ?? process.env) };
@@ -1026,13 +1080,15 @@ const launchDetachedUpgradeWorkerProcess = async (optionsArg, dependenciesArg =
1026
1080
  launchedChild.once('spawn', resolve);
1027
1081
  launchedChild.once('error', reject);
1028
1082
  });
1029
- await log.handle.close();
1030
- logClosed = true;
1031
1083
  if (!launchedChild.pid) {
1032
1084
  throw new Error(`The detached ${currentCliName} upgrade worker has no process ID.`);
1033
1085
  }
1086
+ spawnedIdentity = await readControllerProcessIdentity(launchedChild.pid) ?? undefined;
1087
+ await log.handle.close();
1088
+ logClosed = true;
1034
1089
  const identity = await (dependenciesArg.readProcessIdentity
1035
- ?? readControllerProcessIdentity)(launchedChild.pid);
1090
+ ? dependenciesArg.readProcessIdentity(launchedChild.pid)
1091
+ : spawnedIdentity);
1036
1092
  if (!identity
1037
1093
  || !identity.processGroupLeader
1038
1094
  || identity.processGroupId !== launchedChild.pid
@@ -1049,6 +1105,7 @@ const launchDetachedUpgradeWorkerProcess = async (optionsArg, dependenciesArg =
1049
1105
  }
1050
1106
  catch (errorArg) {
1051
1107
  const errors = [errorArg];
1108
+ let candidateCleanupError;
1052
1109
  if (!logClosed) {
1053
1110
  try {
1054
1111
  await log.handle.close();
@@ -1059,10 +1116,22 @@ const launchDetachedUpgradeWorkerProcess = async (optionsArg, dependenciesArg =
1059
1116
  }
1060
1117
  }
1061
1118
  if (child?.pid) {
1062
- await retryCandidateCleanupUntilDrained(async () => terminateSpawnedDetachedWorker(child.pid), dependenciesArg.candidateCleanup, child.pid);
1119
+ try {
1120
+ if (!spawnedIdentity) {
1121
+ throw new Error('The detached upgrade worker cleanup identity was not established.');
1122
+ }
1123
+ await cleanupCandidateUntilDrained(async () => terminateSpawnedDetachedWorker(spawnedIdentity, optionsArg.installation.cliPath), dependenciesArg.candidateCleanup, child.pid);
1124
+ }
1125
+ catch (cleanupErrorArg) {
1126
+ candidateCleanupError = cleanupErrorArg;
1127
+ errors.push(cleanupErrorArg);
1128
+ }
1129
+ }
1130
+ if (candidateCleanupError !== undefined) {
1131
+ throw new UpgradeWorkerCandidateDrainageError('The detached upgrade worker launch failed and candidate drainage is unproven.', new AggregateError(errors, 'Detached upgrade worker launch cleanup was incomplete.'));
1063
1132
  }
1064
1133
  if (errors.length > 1) {
1065
- throw new AggregateError(errors, 'The detached upgrade worker launch and log cleanup both failed.');
1134
+ throw new AggregateError(errors, 'The detached upgrade worker launch failed and cleanup was incomplete.');
1066
1135
  }
1067
1136
  throw errorArg;
1068
1137
  }
@@ -1088,7 +1157,7 @@ const runLoggedCommand = async (optionsArg) => {
1088
1157
  outputByteLimit: loggedCommandOutputByteLimit,
1089
1158
  });
1090
1159
  };
1091
- const installVersion = async (installationArg, versionArg) => {
1160
+ const installVersion = async (installationArg, versionArg, registryUrlArg) => {
1092
1161
  await runLoggedCommand({
1093
1162
  executable: installationArg.packageManagerPath,
1094
1163
  arguments: [
@@ -1099,7 +1168,7 @@ const installVersion = async (installationArg, versionArg) => {
1099
1168
  '--reporter=append-only',
1100
1169
  '--allow-build=node-pty',
1101
1170
  '--allow-build=fs-ext-extra-prebuilt',
1102
- `--registry=${npmRegistryUrl}`,
1171
+ ...registryArguments(registryUrlArg),
1103
1172
  `${controllerPackageName}@${versionArg}`,
1104
1173
  ],
1105
1174
  environment: createPackageManagerEnvironment(),
@@ -1114,7 +1183,7 @@ const packageAddArguments = (packageSpecArg, registryUrlArg) => [
1114
1183
  '--reporter=append-only',
1115
1184
  '--allow-build=node-pty',
1116
1185
  '--allow-build=fs-ext-extra-prebuilt',
1117
- `--registry=${registryUrlArg}`,
1186
+ ...registryArguments(registryUrlArg),
1118
1187
  packageSpecArg,
1119
1188
  ];
1120
1189
  const preparePackageAdd = async (contextArg, packageSpecArg, registryUrlArg) => await prepareManagedCommand({
@@ -1136,25 +1205,26 @@ const assertExpectedController = (statusArg, expectedArg) => {
1136
1205
  throw new Error('The running controller changed after the upgrade request was authorized.');
1137
1206
  }
1138
1207
  };
1139
- const prepareControllerStart = async (installationArg, portArg, tokenArg) => await prepareManagedCommand({
1208
+ const prepareControllerStart = async (installationArg, portArg, tokenArg, coordinatorArg) => await prepareManagedCommand({
1140
1209
  executable: process.execPath,
1141
1210
  arguments: [installationArg.cliPath, 'start', '--port', String(portArg)],
1142
1211
  environment: {
1143
1212
  ...process.env,
1144
1213
  [upgradeTokenEnvironmentVariable]: tokenArg,
1214
+ [upgradeCoordinationRootEnvironmentVariable]: coordinatorArg.baseDirectory,
1145
1215
  },
1146
1216
  timeoutMs: controllerRestartTimeoutMs,
1147
1217
  captureOutput: false,
1148
1218
  outputByteLimit: loggedCommandOutputByteLimit,
1149
1219
  });
1150
- const startController = async (installationArg, portArg, tokenArg) => await runPreparedManagedCommand(await prepareControllerStart(installationArg, portArg, tokenArg)).then(() => undefined);
1220
+ const startController = async (installationArg, portArg, tokenArg, coordinatorArg) => await runPreparedManagedCommand(await prepareControllerStart(installationArg, portArg, tokenArg, coordinatorArg)).then(() => undefined);
1151
1221
  const retainedTargetTransactionMatches = (transactionArg, installationArg) => Boolean(!transactionArg.terminal
1152
1222
  && transactionArg.controllerWasRunning
1153
1223
  && transactionArg.targetStartupInvoked === true
1154
1224
  && (transactionArg.version === upgradeCoordinationVersion
1155
1225
  || transactionArg.targetPackageCommitted === true)
1156
1226
  && (transactionArg.phase === 'restarting' || transactionArg.phase === 'continuing')
1157
- && transactionArg.targetVersion === installationArg.packageVersion
1227
+ && upgradeTransactionTargetVersion(transactionArg) === installationArg.packageVersion
1158
1228
  && transactionArg.controller?.command === '__serve'
1159
1229
  && transactionArg.controller.cliPath === installationArg.cliPath
1160
1230
  && transactionArg.controller.pid === transactionArg.controller.processGroupId
@@ -1324,7 +1394,7 @@ export const prepareAndStopRunningController = async (optionsArg, dependenciesAr
1324
1394
  port: optionsArg.port,
1325
1395
  });
1326
1396
  };
1327
- const restorePreviousInstallation = async (installationArg) => {
1397
+ const restorePreviousInstallation = async (installationArg, registryUrlArg) => {
1328
1398
  try {
1329
1399
  const current = await resolvePnpmGlobalInstallation();
1330
1400
  if (current.packageVersion === installationArg.packageVersion)
@@ -1335,7 +1405,7 @@ const restorePreviousInstallation = async (installationArg) => {
1335
1405
  throw errorArg;
1336
1406
  // Reinstalling the exact prior version is the authoritative rollback.
1337
1407
  }
1338
- await installVersion(installationArg, installationArg.packageVersion);
1408
+ await installVersion(installationArg, installationArg.packageVersion, registryUrlArg);
1339
1409
  const restored = await resolvePnpmGlobalInstallation();
1340
1410
  if (restored.packageVersion !== installationArg.packageVersion) {
1341
1411
  throw new Error('The previous pnpm-global package version was not restored.');
@@ -1378,13 +1448,13 @@ const targetControllerIdentity = (transactionArg) => transactionArg.version ===
1378
1448
  }
1379
1449
  : {
1380
1450
  packageName: transactionArg.targetPackageName,
1381
- packageVersion: transactionArg.targetVersion,
1451
+ packageVersion: upgradeTransactionTargetVersion(transactionArg),
1382
1452
  managementVersion: transactionArg.targetManagementVersion,
1383
1453
  };
1384
1454
  export const assertInheritedUpgradeTransaction = (transactionArg, currentIdentityArg) => {
1385
1455
  if (!transactionArg.controllerWasRunning
1386
1456
  || transactionArg.targetStartupInvoked !== true
1387
- || transactionArg.targetVersion !== currentIdentityArg.packageVersion)
1457
+ || upgradeTransactionTargetVersion(transactionArg) !== currentIdentityArg.packageVersion)
1388
1458
  throw new Error('The inherited upgrade transaction did not authorize target startup.');
1389
1459
  if (transactionArg.version === upgradeCoordinationVersion) {
1390
1460
  if (currentIdentityArg.packageName !== String(controllerPackageName)
@@ -1562,7 +1632,7 @@ const runPackageTransitionUpgradeWorker = async (optionsArg) => {
1562
1632
  if (!sourceTopology.source)
1563
1633
  throw new Error('The exact bridge package was not restored.');
1564
1634
  if (runningStatus) {
1565
- await startController(sourceTopology.source, payload.port, payload.token);
1635
+ await startController(sourceTopology.source, payload.port, payload.token, coordinator);
1566
1636
  const restoredStatus = await queryUpgradeManagedController(payload.port, sourceControllerIdentity(initialTransaction));
1567
1637
  await finalizeControllerUpgrade(coordinator, payload.token, restoredStatus, 'compensate');
1568
1638
  process.stdout.write(`${initialTransaction.sourceCliName} upgrade: bridge package restored and restarted.\n`);
@@ -1576,7 +1646,7 @@ const runPackageTransitionUpgradeWorker = async (optionsArg) => {
1576
1646
  process.stdout.write(`${initialTransaction.sourceCliName} upgrade: committed ${initialTransaction.targetPackageName}@${initialTransaction.targetVersion}.\n`);
1577
1647
  if (runningStatus) {
1578
1648
  await updateWorkerProgress(coordinator, payload.token, 'restarting', `Restarting ${initialTransaction.targetPackageName} ${initialTransaction.targetVersion}.`);
1579
- const preparedTargetStart = await prepareControllerStart(targetInstallation, payload.port, payload.token);
1649
+ const preparedTargetStart = await prepareControllerStart(targetInstallation, payload.port, payload.token, coordinator);
1580
1650
  await coordinator.mutateTransaction(payload.token, (current) => {
1581
1651
  if (current.version !== upgradePackageTransitionTransactionVersion) {
1582
1652
  throw new Error('The package-transition transaction changed format.');
@@ -1713,11 +1783,13 @@ export async function runUpgradeWorker(payloadArg, internalOptionsArg = {}) {
1713
1783
  payload: payloadArg,
1714
1784
  transaction,
1715
1785
  currentInstallation,
1716
- registryUrl: assertInternalRegistryUrl(internalOptionsArg.registryUrl ?? npmRegistryUrl),
1786
+ registryUrl: internalOptionsArg.registryUrl === undefined
1787
+ ? undefined
1788
+ : normalizeUpgradeRegistryUrl(internalOptionsArg.registryUrl),
1717
1789
  });
1718
1790
  return;
1719
1791
  }
1720
- const latestVersion = await readLatestVersion(currentInstallation);
1792
+ const latestVersion = await readLatestVersion(currentInstallation, transaction.registryUrl);
1721
1793
  await coordinator.mutateTransaction(payloadArg.token, (current) => {
1722
1794
  if (current.version !== upgradeCoordinationVersion) {
1723
1795
  throw new Error('The same-package upgrade transaction changed format.');
@@ -1726,18 +1798,18 @@ export async function runUpgradeWorker(payloadArg, internalOptionsArg = {}) {
1726
1798
  ...current,
1727
1799
  targetVersion: latestVersion,
1728
1800
  phase: 'checking',
1729
- message: `Installed ${currentInstallation.packageVersion}; npm latest is ${latestVersion}.`,
1801
+ message: `Installed ${currentInstallation.packageVersion}; registry latest is ${latestVersion}.`,
1730
1802
  };
1731
1803
  });
1732
1804
  const versionComparison = compareSemver(latestVersion, currentInstallation.packageVersion);
1733
- process.stdout.write(`${currentCliName} upgrade: installed ${currentInstallation.packageVersion}, npm latest ${latestVersion}.\n`);
1805
+ process.stdout.write(`${currentCliName} upgrade: installed ${currentInstallation.packageVersion}, registry latest ${latestVersion}.\n`);
1734
1806
  if (versionComparison <= 0) {
1735
1807
  process.stdout.write(versionComparison === 0
1736
1808
  ? `${currentCliName} upgrade: already up to date.\n`
1737
- : `${currentCliName} upgrade: installed version is newer than npm latest; refusing to downgrade.\n`);
1809
+ : `${currentCliName} upgrade: installed version is newer than registry latest; refusing to downgrade.\n`);
1738
1810
  await coordinator.finishTransaction(payloadArg.token, true, versionComparison === 0
1739
1811
  ? 'Already up to date.'
1740
- : 'Installed version is newer than npm latest; no downgrade was performed.');
1812
+ : 'Installed version is newer than registry latest; no downgrade was performed.');
1741
1813
  return;
1742
1814
  }
1743
1815
  const controllerProcesses = await listControllerProcessesForCli(currentInstallation.cliPath);
@@ -1785,10 +1857,10 @@ export async function runUpgradeWorker(payloadArg, internalOptionsArg = {}) {
1785
1857
  const writer = sourceDataWriters[0];
1786
1858
  throw new Error(`Package replacement is blocked by ${writer.kind} source writer PID ${writer.identity.pid}.`);
1787
1859
  }
1788
- await installVersion(currentInstallation, latestVersion);
1860
+ await installVersion(currentInstallation, latestVersion, transaction.registryUrl);
1789
1861
  upgradedInstallation = await resolvePnpmGlobalInstallation();
1790
1862
  if (upgradedInstallation.packageVersion !== latestVersion) {
1791
- throw new Error('pnpm completed without installing the requested npm latest version.');
1863
+ throw new Error('pnpm completed without installing the requested registry version.');
1792
1864
  }
1793
1865
  }
1794
1866
  catch (upgradeErrorArg) {
@@ -1796,9 +1868,9 @@ export async function runUpgradeWorker(payloadArg, internalOptionsArg = {}) {
1796
1868
  throw upgradeErrorArg;
1797
1869
  const recoveryErrors = [upgradeErrorArg];
1798
1870
  try {
1799
- const restored = await restorePreviousInstallation(currentInstallation);
1871
+ const restored = await restorePreviousInstallation(currentInstallation, transaction.registryUrl);
1800
1872
  if (runningStatus) {
1801
- await startController(restored, payloadArg.port, payloadArg.token);
1873
+ await startController(restored, payloadArg.port, payloadArg.token, coordinator);
1802
1874
  const restoredStatus = await queryUpgradeManagedController(payloadArg.port, {
1803
1875
  packageName: controllerPackageName,
1804
1876
  packageVersion: restored.packageVersion,
@@ -1822,7 +1894,7 @@ export async function runUpgradeWorker(payloadArg, internalOptionsArg = {}) {
1822
1894
  targetStartupInvoked: true,
1823
1895
  message: `Invoking ${controllerPackageName} ${latestVersion}.`,
1824
1896
  }));
1825
- await startController(upgradedInstallation, payloadArg.port, payloadArg.token);
1897
+ await startController(upgradedInstallation, payloadArg.port, payloadArg.token, coordinator);
1826
1898
  const upgradedStatus = await queryUpgradeManagedController(payloadArg.port, {
1827
1899
  packageName: controllerPackageName,
1828
1900
  packageVersion: latestVersion,
@@ -1864,19 +1936,20 @@ const recoverPackageTransition = async (optionsArg) => {
1864
1936
  globalRoot: optionsArg.installation.globalRoot,
1865
1937
  globalBinDirectory: optionsArg.installation.globalBinDirectory,
1866
1938
  };
1867
- const registryUrl = assertInternalRegistryUrl(npmRegistryUrl);
1939
+ const registryUrl = undefined;
1868
1940
  const transaction = optionsArg.transaction;
1869
1941
  if (transaction.targetPackageCommitStarted === true) {
1870
- const targetSpec = `${transaction.targetPackageName}@${transaction.targetVersion}`;
1942
+ const targetVersion = upgradeTransactionTargetVersion(transaction);
1943
+ const targetSpec = `${transaction.targetPackageName}@${targetVersion}`;
1871
1944
  let targetTopology;
1872
1945
  if (transaction.targetPackageCommitted === true) {
1873
1946
  try {
1874
- targetTopology = await verifyPackageTransitionTopology(context, 'target-only');
1947
+ targetTopology = await verifyPackageTransitionTopology(context, 'target-only', targetVersion);
1875
1948
  }
1876
1949
  catch (verificationErrorArg) {
1877
1950
  try {
1878
1951
  await addExactPackage(context, targetSpec, registryUrl);
1879
- targetTopology = await verifyPackageTransitionTopology(context, 'target-only');
1952
+ targetTopology = await verifyPackageTransitionTopology(context, 'target-only', targetVersion);
1880
1953
  }
1881
1954
  catch (normalizationErrorArg) {
1882
1955
  throw new AggregateError([verificationErrorArg, normalizationErrorArg], 'The committed target package could not be normalized without restoring the bridge.');
@@ -1885,7 +1958,7 @@ const recoverPackageTransition = async (optionsArg) => {
1885
1958
  }
1886
1959
  else {
1887
1960
  await addExactPackage(context, targetSpec, registryUrl);
1888
- targetTopology = await verifyPackageTransitionTopology(context, 'target-only');
1961
+ targetTopology = await verifyPackageTransitionTopology(context, 'target-only', targetVersion);
1889
1962
  await optionsArg.coordinator.mutateTransaction(optionsArg.token, (current) => {
1890
1963
  if (current.version !== upgradePackageTransitionTransactionVersion) {
1891
1964
  throw new Error('The package-transition transaction changed format.');
@@ -1908,7 +1981,7 @@ const recoverPackageTransition = async (optionsArg) => {
1908
1981
  if (candidates.length > 0 || await isLoopbackPortListening(current.port)) {
1909
1982
  throw new Error('A target controller exists before its durable startup marker; refusing to adopt it.');
1910
1983
  }
1911
- const preparedTargetStart = await prepareControllerStart(targetInstallation, current.port, optionsArg.token);
1984
+ const preparedTargetStart = await prepareControllerStart(targetInstallation, current.port, optionsArg.token, optionsArg.coordinator);
1912
1985
  current = requirePackageTransitionTransaction(await optionsArg.coordinator.mutateTransaction(optionsArg.token, (candidate) => {
1913
1986
  if (candidate.version !== upgradePackageTransitionTransactionVersion) {
1914
1987
  throw new Error('The package-transition transaction changed format.');
@@ -1924,7 +1997,7 @@ const recoverPackageTransition = async (optionsArg) => {
1924
1997
  }
1925
1998
  let status = await queryControllerStatus(current.port, {
1926
1999
  packageName: current.targetPackageName,
1927
- packageVersion: current.targetVersion,
2000
+ packageVersion: upgradeTransactionTargetVersion(current),
1928
2001
  upgradeManagementVersion: current.targetManagementVersion,
1929
2002
  }).catch(() => undefined);
1930
2003
  if (!status) {
@@ -1938,12 +2011,12 @@ const recoverPackageTransition = async (optionsArg) => {
1938
2011
  if (targetCandidates.length > 0 || await isLoopbackPortListening(current.port)) {
1939
2012
  throw new Error('A target controller is already starting or listening but cannot be adopted safely; refusing to launch a replacement.');
1940
2013
  }
1941
- await startController(targetInstallation, current.port, optionsArg.token);
2014
+ await startController(targetInstallation, current.port, optionsArg.token, optionsArg.coordinator);
1942
2015
  status = await queryUpgradeManagedController(current.port, targetControllerIdentity(current));
1943
2016
  }
1944
2017
  await finalizeControllerUpgrade(optionsArg.coordinator, optionsArg.token, status, current.continueSessions ? 'continue' : 'reopen');
1945
2018
  }
1946
- await optionsArg.coordinator.finishTransaction(optionsArg.token, true, `Upgrade to ${current.targetPackageName}@${current.targetVersion} completed during bounded recovery.`);
2019
+ await optionsArg.coordinator.finishTransaction(optionsArg.token, true, `Upgrade to ${current.targetPackageName}@${upgradeTransactionTargetVersion(current)} completed during bounded recovery.`);
1947
2020
  return true;
1948
2021
  }
1949
2022
  const sourceSpec = `${transaction.sourcePackageName}@${transaction.sourceVersion}`;
@@ -1965,7 +2038,7 @@ const recoverPackageTransition = async (optionsArg) => {
1965
2038
  upgradeManagementVersion: transaction.sourceManagementVersion,
1966
2039
  }).catch(() => undefined);
1967
2040
  if (!status) {
1968
- await startController(sourceInstallation, transaction.port, optionsArg.token);
2041
+ await startController(sourceInstallation, transaction.port, optionsArg.token, optionsArg.coordinator);
1969
2042
  status = await queryUpgradeManagedController(transaction.port, sourceControllerIdentity(transaction));
1970
2043
  }
1971
2044
  await finalizeControllerUpgrade(optionsArg.coordinator, optionsArg.token, status, 'compensate');
@@ -2018,7 +2091,7 @@ const recoverStalledUpgradeUnderLock = async (optionsArg) => {
2018
2091
  if (targetCandidates.length > 0 || await isLoopbackPortListening(transaction.port)) {
2019
2092
  throw new Error('A target controller is already starting or listening but cannot be adopted safely; refusing to launch a replacement.');
2020
2093
  }
2021
- await startController(targetInstallation, transaction.port, optionsArg.token);
2094
+ await startController(targetInstallation, transaction.port, optionsArg.token, optionsArg.coordinator);
2022
2095
  status = await queryUpgradeManagedController(transaction.port, {
2023
2096
  packageName: controllerPackageName,
2024
2097
  packageVersion: targetInstallation.packageVersion,
@@ -2033,7 +2106,7 @@ const recoverStalledUpgradeUnderLock = async (optionsArg) => {
2033
2106
  const sourceInstallation = await restorePreviousInstallation({
2034
2107
  ...optionsArg.installation,
2035
2108
  packageVersion: transaction.sourceVersion,
2036
- });
2109
+ }, transaction.version === upgradeCoordinationVersion ? transaction.registryUrl : undefined);
2037
2110
  if (transaction.controllerWasRunning) {
2038
2111
  let status = await queryControllerStatus(transaction.port, {
2039
2112
  packageName: controllerPackageName,
@@ -2041,7 +2114,7 @@ const recoverStalledUpgradeUnderLock = async (optionsArg) => {
2041
2114
  upgradeManagementVersion: controllerUpgradeManagementVersion,
2042
2115
  }).catch(() => undefined);
2043
2116
  if (!status) {
2044
- await startController(sourceInstallation, transaction.port, optionsArg.token);
2117
+ await startController(sourceInstallation, transaction.port, optionsArg.token, optionsArg.coordinator);
2045
2118
  status = await queryUpgradeManagedController(transaction.port, {
2046
2119
  packageName: controllerPackageName,
2047
2120
  packageVersion: sourceInstallation.packageVersion,
@@ -2053,30 +2126,129 @@ const recoverStalledUpgradeUnderLock = async (optionsArg) => {
2053
2126
  await optionsArg.coordinator.finishTransaction(optionsArg.token, false, 'The stalled upgrade restored the source package.', `The upgrade stopped making progress during phase ${transaction.phase}.`);
2054
2127
  return true;
2055
2128
  };
2056
- export async function recoverStalledUpgrade(optionsArg, dependenciesArg = {}) {
2057
- await optionsArg.coordinator.terminateTransactionWorker(optionsArg.transaction);
2058
- let lock;
2129
+ export const handoffLaunchedUpgradeWorkerUnderLock = async (optionsArg, dependenciesArg = {}) => {
2130
+ let worker;
2059
2131
  try {
2060
- lock = await optionsArg.coordinator.acquireUpgradeLock({
2132
+ await optionsArg.coordinator.removeWorkerAcknowledgement(optionsArg.token);
2133
+ const launchedTransaction = await optionsArg.coordinator.recordWorkerLaunch(optionsArg.token, optionsArg.candidate.pid, optionsArg.candidate.cliPath, optionsArg.candidate.logFilePath);
2134
+ const retainedWorker = launchedTransaction.worker;
2135
+ if (!retainedWorker
2136
+ || retainedWorker.pid !== optionsArg.candidate.pid
2137
+ || retainedWorker.cliPath !== optionsArg.candidate.cliPath
2138
+ || retainedWorker.logFilePath !== optionsArg.candidate.logFilePath
2139
+ || (optionsArg.candidate.processGroupId !== undefined
2140
+ && retainedWorker.processGroupId !== optionsArg.candidate.processGroupId)
2141
+ || (optionsArg.candidate.fingerprint !== undefined
2142
+ && retainedWorker.fingerprint !== optionsArg.candidate.fingerprint))
2143
+ throw new Error('The upgrade worker launch identity was not retained exactly.');
2144
+ worker = {
2145
+ pid: retainedWorker.pid,
2146
+ processGroupId: retainedWorker.processGroupId,
2147
+ fingerprint: retainedWorker.fingerprint,
2148
+ cliPath: retainedWorker.cliPath,
2149
+ logFilePath: optionsArg.candidate.logFilePath,
2150
+ };
2151
+ await optionsArg.coordinator.transferUpgradeLockToWorker({
2152
+ lock: optionsArg.lock,
2061
2153
  token: optionsArg.token,
2062
- cliPath: optionsArg.installation.cliPath,
2063
- command: optionsArg.command,
2154
+ worker,
2064
2155
  });
2156
+ await optionsArg.coordinator.acknowledgeWorker(optionsArg.token, worker);
2157
+ return {
2158
+ pid: worker.pid,
2159
+ processGroupId: worker.processGroupId,
2160
+ fingerprint: worker.fingerprint,
2161
+ cliPath: worker.cliPath,
2162
+ logFilePath: worker.logFilePath,
2163
+ };
2065
2164
  }
2066
2165
  catch (errorArg) {
2067
- if (errorArg instanceof Error
2068
- && (errorArg.message.includes('already running')
2069
- || errorArg.message.includes('initializing')))
2070
- return false;
2166
+ const errors = [errorArg];
2167
+ if (!worker) {
2168
+ const current = await optionsArg.coordinator.readTransaction(optionsArg.token).catch(() => undefined);
2169
+ if (current?.worker
2170
+ && current.worker.pid === optionsArg.candidate.pid
2171
+ && current.worker.cliPath === optionsArg.candidate.cliPath
2172
+ && current.worker.logFilePath === optionsArg.candidate.logFilePath)
2173
+ worker = {
2174
+ pid: current.worker.pid,
2175
+ processGroupId: current.worker.processGroupId,
2176
+ fingerprint: current.worker.fingerprint,
2177
+ cliPath: current.worker.cliPath,
2178
+ logFilePath: optionsArg.candidate.logFilePath,
2179
+ };
2180
+ }
2181
+ if (!worker && (optionsArg.candidate.processGroupId !== undefined
2182
+ && optionsArg.candidate.fingerprint !== undefined)) {
2183
+ worker = {
2184
+ pid: optionsArg.candidate.pid,
2185
+ processGroupId: optionsArg.candidate.processGroupId,
2186
+ fingerprint: optionsArg.candidate.fingerprint,
2187
+ cliPath: optionsArg.candidate.cliPath,
2188
+ logFilePath: optionsArg.candidate.logFilePath,
2189
+ };
2190
+ }
2191
+ if (!worker) {
2192
+ throw new UpgradeWorkerCandidateDrainageError('The upgrade worker handoff failed before its cleanup identity could be retained.', errorArg);
2193
+ }
2194
+ const cleanupWorker = worker;
2195
+ try {
2196
+ await cleanupCandidateUntilDrained(async () => await (dependenciesArg.terminateWorkerCandidate
2197
+ ?? ((candidateArg) => optionsArg.coordinator.terminateUpgradeWorkerCandidate(candidateArg)))(cleanupWorker), dependenciesArg.candidateCleanup, cleanupWorker.pid);
2198
+ }
2199
+ catch (cleanupErrorArg) {
2200
+ errors.push(cleanupErrorArg);
2201
+ }
2202
+ if (errors.length > 1) {
2203
+ throw new AggregateError(errors, 'Upgrade worker handoff failed and candidate drainage is unproven; ownership was retained.');
2204
+ }
2205
+ const acquireCallerLock = async () => {
2206
+ try {
2207
+ await optionsArg.lock.assertOwned();
2208
+ return optionsArg.lock;
2209
+ }
2210
+ catch {
2211
+ return await optionsArg.coordinator.acquireUpgradeLock({
2212
+ token: optionsArg.token,
2213
+ cliPath: optionsArg.installation.cliPath,
2214
+ command: optionsArg.command,
2215
+ });
2216
+ }
2217
+ };
2218
+ if (optionsArg.retainLockOnFailure) {
2219
+ try {
2220
+ const recoveryLock = await acquireCallerLock();
2221
+ await recoveryLock.assertOwned();
2222
+ throw new UpgradeWorkerHandoffError('The upgrade worker handoff failed; exclusive ownership was retained for recovery.', errors.length === 1
2223
+ ? errorArg
2224
+ : new AggregateError(errors, 'Upgrade worker handoff and candidate cleanup failed.'), recoveryLock);
2225
+ }
2226
+ catch (lockRetentionErrorArg) {
2227
+ if (lockRetentionErrorArg instanceof UpgradeWorkerHandoffError) {
2228
+ throw lockRetentionErrorArg;
2229
+ }
2230
+ errors.push(lockRetentionErrorArg);
2231
+ }
2232
+ }
2233
+ try {
2234
+ await (await acquireCallerLock()).release();
2235
+ }
2236
+ catch (lockCleanupErrorArg) {
2237
+ errors.push(lockCleanupErrorArg);
2238
+ }
2239
+ if (errors.length > 1) {
2240
+ throw new AggregateError(errors, 'Upgrade worker handoff failed and cleanup was incomplete.');
2241
+ }
2071
2242
  throw errorArg;
2072
2243
  }
2244
+ };
2245
+ export const handoffStalledUpgradeRecoveryUnderLock = async (optionsArg, dependenciesArg = {}) => {
2073
2246
  let candidate;
2074
- let lockTransferred = false;
2075
2247
  try {
2076
2248
  const transaction = await optionsArg.coordinator.readTransaction(optionsArg.token);
2077
2249
  if (transaction.terminal) {
2078
- await lock.release();
2079
- return true;
2250
+ await optionsArg.lock.release();
2251
+ return undefined;
2080
2252
  }
2081
2253
  const recoveryInstallation = await resolveAuthoritativeRecoveryInstallation(transaction, optionsArg.installation);
2082
2254
  const payload = {
@@ -2086,65 +2258,53 @@ export async function recoverStalledUpgrade(optionsArg, dependenciesArg = {}) {
2086
2258
  gracePeriodMs: transaction.gracePeriodMs,
2087
2259
  continueSessions: transaction.continueSessions,
2088
2260
  };
2261
+ await optionsArg.coordinator.removeWorkerAcknowledgement(optionsArg.token);
2089
2262
  candidate = await (dependenciesArg.launchRecoveryWorker ?? launchDetachedRecoveryWorker)({
2090
2263
  installation: recoveryInstallation,
2091
2264
  payload,
2092
2265
  });
2093
- const launchedTransaction = await optionsArg.coordinator.recordWorkerLaunch(optionsArg.token, candidate.pid, candidate.cliPath, candidate.logFilePath);
2094
- const worker = launchedTransaction.worker;
2095
- if (!worker
2096
- || worker.pid !== candidate.pid
2097
- || worker.processGroupId !== candidate.processGroupId
2098
- || worker.fingerprint !== candidate.fingerprint
2099
- || worker.cliPath !== candidate.cliPath
2100
- || worker.logFilePath !== candidate.logFilePath)
2101
- throw new Error('The recovery worker launch identity was not retained exactly.');
2102
- await optionsArg.coordinator.transferUpgradeLockToWorker({
2103
- lock,
2104
- token: optionsArg.token,
2105
- worker,
2106
- });
2107
- lockTransferred = true;
2108
- await optionsArg.coordinator.acknowledgeWorker(optionsArg.token);
2109
- return true;
2110
2266
  }
2111
2267
  catch (errorArg) {
2112
- const errors = [errorArg];
2113
- if (candidate) {
2114
- await retryCandidateCleanupUntilDrained(async () => await (dependenciesArg.terminateWorkerCandidate
2115
- ?? ((candidateArg) => optionsArg.coordinator.terminateUpgradeWorkerCandidate(candidateArg)))(candidate), dependenciesArg.candidateCleanup, candidate.pid);
2116
- }
2268
+ if (errorArg instanceof UpgradeWorkerCandidateDrainageError)
2269
+ throw errorArg;
2117
2270
  try {
2118
- if (!lockTransferred) {
2119
- try {
2120
- await lock.release();
2121
- }
2122
- catch {
2123
- const replacementLock = await optionsArg.coordinator.acquireUpgradeLock({
2124
- token: optionsArg.token,
2125
- cliPath: optionsArg.installation.cliPath,
2126
- command: optionsArg.command,
2127
- });
2128
- await replacementLock.release();
2129
- }
2130
- }
2131
- else {
2132
- const replacementLock = await optionsArg.coordinator.acquireUpgradeLock({
2133
- token: optionsArg.token,
2134
- cliPath: optionsArg.installation.cliPath,
2135
- command: optionsArg.command,
2136
- });
2137
- await replacementLock.release();
2138
- }
2271
+ await optionsArg.lock.release();
2139
2272
  }
2140
2273
  catch (lockCleanupErrorArg) {
2141
- errors.push(lockCleanupErrorArg);
2142
- }
2143
- if (errors.length > 1) {
2144
- throw new AggregateError(errors, 'Stalled upgrade recovery handoff failed and cleanup was incomplete.');
2274
+ throw new AggregateError([errorArg, lockCleanupErrorArg], 'Stalled upgrade recovery launch failed and its lock could not be released.');
2145
2275
  }
2146
2276
  throw errorArg;
2147
2277
  }
2278
+ return await handoffLaunchedUpgradeWorkerUnderLock({
2279
+ ...optionsArg,
2280
+ candidate,
2281
+ }, dependenciesArg);
2282
+ };
2283
+ export async function recoverStalledUpgrade(optionsArg, dependenciesArg = {}) {
2284
+ await optionsArg.coordinator.terminateTransactionWorker(optionsArg.transaction);
2285
+ let lock;
2286
+ try {
2287
+ lock = await optionsArg.coordinator.acquireUpgradeLock({
2288
+ token: optionsArg.token,
2289
+ cliPath: optionsArg.installation.cliPath,
2290
+ command: optionsArg.command,
2291
+ });
2292
+ }
2293
+ catch (errorArg) {
2294
+ if (errorArg instanceof Error
2295
+ && (errorArg.message.includes('already running')
2296
+ || errorArg.message.includes('initializing')))
2297
+ return false;
2298
+ throw errorArg;
2299
+ }
2300
+ await handoffStalledUpgradeRecoveryUnderLock({
2301
+ coordinator: optionsArg.coordinator,
2302
+ token: optionsArg.token,
2303
+ installation: optionsArg.installation,
2304
+ command: optionsArg.command,
2305
+ lock,
2306
+ }, dependenciesArg);
2307
+ return true;
2148
2308
  }
2149
2309
  export const createUpgradeWorkerPayload = (optionsArg) => ({
2150
2310
  version: upgradeCoordinationVersion,
@@ -2156,4 +2316,4 @@ export const createUpgradeWorkerPayload = (optionsArg) => ({
2156
2316
  ? { expectedController: optionsArg.expectedController }
2157
2317
  : {}),
2158
2318
  });
2159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy51cGdyYWRldHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9jbGFzc2VzLnVwZ3JhZGV0cmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUNMLHFCQUFxQixFQUNyQix5QkFBeUIsRUFDekIsa0NBQWtDLEdBRW5DLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixxQkFBcUIsRUFDckIsZ0NBQWdDLEVBQ2hDLG9DQUFvQyxFQUNwQyxzQkFBc0IsR0FDdkIsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLHVDQUF1QyxFQUN2Qyw2QkFBNkIsRUFDN0IsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3QiwwQkFBMEIsR0FDM0IsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsa0JBQWtCLEVBS2xCLGtCQUFrQixFQUNsQiwwQkFBMEIsRUFDMUIsMENBQTBDLEVBQzFDLDhCQUE4QixFQUM5Qiw4QkFBOEIsRUFDOUIsNkJBQTZCLEdBQzlCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUNMLDBDQUEwQyxFQUMxQywrQkFBK0IsR0FDaEMsTUFBTSxtQ0FBbUMsQ0FBQztBQUUzQyxNQUFNLGNBQWMsR0FBRyw2QkFBNkIsQ0FBQztBQUNyRCxNQUFNLHNCQUFzQixHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7QUFDM0MsTUFBTSw0QkFBNEIsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztBQUN0RCxNQUFNLHVCQUF1QixHQUFHLEVBQUUsR0FBRyxFQUFFLEdB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
2319
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy51cGdyYWRldHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9jbGFzc2VzLnVwZ3JhZGV0cmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUNMLHFCQUFxQixFQUNyQix5QkFBeUIsRUFDekIsa0NBQWtDLEdBRW5DLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixxQkFBcUIsRUFDckIsZ0NBQWdDLEVBQ2hDLG9DQUFvQyxFQUNwQyxzQkFBc0IsR0FDdkIsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLHVDQUF1QyxFQUN2Qyw0Q0FBNEMsRUFDNUMsNkJBQTZCLEVBQzdCLDRCQUE0QixFQUM1Qiw2QkFBNkIsRUFDN0IsMEJBQTBCLEdBRTNCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixvQkFBb0IsRUFNcEIsMkJBQTJCLEVBQzNCLGtCQUFrQixFQUVsQiwwQkFBMEIsRUFDMUIsMENBQTBDLEVBQzFDLDhCQUE4QixFQUM5Qiw4QkFBOEIsRUFDOUIsMkJBQTJCLEVBQzNCLCtCQUErQixFQUMvQiw2QkFBNkIsRUFDN0IsMENBQTBDLEdBQzNDLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUNMLDBDQUEwQyxFQUMxQywrQkFBK0IsR0FDaEMsTUFBTSxtQ0FBbUMsQ0FBQztBQUUzQyxNQUFNLHNCQUFzQixHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7QUFDM0MsTUFBTSw0QkFBNEIsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUks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