agl 21.0.2 → 22.0.0
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/changelog.md +9 -0
- package/dist_serve/bundle.js +1 -1
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/classes.aglhome.d.ts +25 -0
- package/dist_ts/classes.aglhome.js +65 -0
- package/dist_ts/classes.authmodels.js +7 -12
- package/dist_ts/classes.authstore.js +2 -29
- package/dist_ts/classes.cli.js +93 -35
- package/dist_ts/classes.config.d.ts +2 -11
- package/dist_ts/classes.config.js +14 -80
- package/dist_ts/classes.controller.d.ts +4 -1
- package/dist_ts/classes.controller.js +64 -26
- package/dist_ts/classes.embeddeddb.js +6 -5
- package/dist_ts/classes.gitreversion.js +3 -2
- package/dist_ts/classes.upgradecoordinator.d.ts +6 -1
- package/dist_ts/classes.upgradecoordinator.js +588 -177
- package/dist_ts/classes.upgradetransaction.js +46 -12
- package/dist_ts/classes.uploadmanager.d.ts +12 -0
- package/dist_ts/classes.uploadmanager.js +204 -2
- package/dist_ts/constants.upgradeenvironment.d.ts +2 -0
- package/dist_ts/constants.upgradeenvironment.js +3 -0
- package/dist_ts/functions.controllerdataroot.d.ts +4 -5
- package/dist_ts/functions.controllerdataroot.js +4 -29
- package/dist_ts/functions.embeddeddb.d.ts +1 -1
- package/dist_ts/functions.embeddeddb.js +8 -3
- package/dist_ts/functions.runtimeenvironment.js +2 -1
- package/dist_ts/index.d.ts +1 -0
- package/dist_ts/index.js +2 -1
- package/dist_ts/interfaces.config.d.ts +5 -7
- package/dist_ts_migration/classes.documentmigrationrunner.js +3 -1
- package/dist_ts_migration/index.d.ts +2 -0
- package/dist_ts_migration/index.js +3 -1
- package/dist_ts_migration/v23_aglhome.d.ts +91 -0
- package/dist_ts_migration/v23_aglhome.js +1775 -0
- package/dist_ts_migration/v23_runtimeconfig.d.ts +11 -0
- package/dist_ts_migration/v23_runtimeconfig.js +87 -0
- package/dist_ts_migration/v2_controllerdataroot.d.ts +5 -0
- package/dist_ts_migration/v2_controllerdataroot.js +176 -15
- package/package.json +1 -1
- package/readme.md +116 -35
- package/readme.plan.md +24 -9
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.aglhome.ts +116 -0
- package/ts/classes.authmodels.ts +5 -13
- package/ts/classes.authstore.ts +1 -39
- package/ts/classes.cli.ts +92 -34
- package/ts/classes.config.ts +20 -117
- package/ts/classes.controller.ts +92 -26
- package/ts/classes.embeddeddb.ts +5 -4
- package/ts/classes.gitreversion.ts +3 -2
- package/ts/classes.upgradecoordinator.ts +668 -191
- package/ts/classes.upgradetransaction.ts +46 -11
- package/ts/classes.uploadmanager.ts +231 -1
- package/ts/constants.upgradeenvironment.ts +2 -0
- package/ts/functions.controllerdataroot.ts +11 -47
- package/ts/functions.embeddeddb.ts +13 -2
- package/ts/functions.runtimeenvironment.ts +1 -0
- package/ts/index.ts +1 -0
- package/ts/interfaces.config.ts +5 -7
- package/ts_migration/classes.documentmigrationrunner.ts +2 -0
- package/ts_migration/index.ts +2 -0
- package/ts_migration/v23_aglhome.ts +2101 -0
- package/ts_migration/v23_runtimeconfig.ts +112 -0
- package/ts_migration/v2_controllerdataroot.ts +174 -16
- package/ts_web/00_commitinfo_data.ts +1 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import * as plugins from './plugins.js';
|
|
2
2
|
import { controllerPackageName, } from '../dist_ts_interfaces/index.js';
|
|
3
3
|
import { processIdentityHasCliCommand, readControllerProcessIdentity, readProcessGroupMemberPids, } from './classes.processinspection.js';
|
|
4
|
+
import { resolveAGLHomePaths } from './classes.aglhome.js';
|
|
5
|
+
import { upgradeCoordinationRootEnvironmentVariable, upgradeTokenEnvironmentVariable, } from './constants.upgradeenvironment.js';
|
|
4
6
|
export const upgradeCoordinationVersion = 2;
|
|
5
7
|
const coordinationVersion = upgradeCoordinationVersion;
|
|
6
8
|
export const upgradePackageTransitionTransactionVersion = 3;
|
|
@@ -33,13 +35,16 @@ const transactionMetadataPattern = /^transaction-[a-f0-9]{20}\.json$/;
|
|
|
33
35
|
const transactionTemporaryMetadataPattern = /^transaction-[a-f0-9]{20}\.json\.tmp-[1-9][0-9]*-[a-f0-9]{8}$/;
|
|
34
36
|
const transactionMutationDirectoryPattern = /^transaction-[a-f0-9]{20}\.json\.lock$/;
|
|
35
37
|
const ownershipGuardDirectoryPattern = /^[a-f0-9]{64}\.guard$/;
|
|
38
|
+
const ownershipGuardTemporaryPattern = /^[a-f0-9]{64}\.guard\.tmp-[1-9][0-9]*-[a-f0-9]{32}$/;
|
|
39
|
+
const ownerRemovalPattern = /^\.owner-removing-([1-9][0-9]*)-([a-f0-9]{64})-([a-f0-9]{16})$/;
|
|
40
|
+
const legacyOwnerRemovalPattern = /^\.owner-removing-([1-9][0-9]*)-([a-f0-9]{16})$/;
|
|
36
41
|
const tokenMetadataRetentionMs = 10 * 60 * 1000;
|
|
37
42
|
const transactionRetentionMs = 24 * 60 * 60 * 1000;
|
|
38
43
|
const terminalStatusRetentionMs = 10 * 60 * 1000;
|
|
39
44
|
const transactionMutationTimeoutMs = 10_000;
|
|
40
45
|
const ownershipGuardTimeoutMs = 10_000;
|
|
46
|
+
const legacyOwnerRemovalGraceMs = 30_000;
|
|
41
47
|
const workerTerminationGraceMs = 5_000;
|
|
42
|
-
export const upgradeTokenEnvironmentVariable = 'HARNESS_CONTROLLER_UPGRADE_TOKEN';
|
|
43
48
|
const assertUid = () => {
|
|
44
49
|
if (typeof process.getuid !== 'function') {
|
|
45
50
|
throw new Error(`${currentCliName} upgrade requires a POSIX effective user identity.`);
|
|
@@ -734,6 +739,103 @@ const exactPrimitiveRecordMatches = (leftArg, rightArg) => {
|
|
|
734
739
|
const keys = Object.keys(left);
|
|
735
740
|
return exactKeys(right, keys) && keys.every((keyArg) => left[keyArg] === right[keyArg]);
|
|
736
741
|
};
|
|
742
|
+
const parseOwnerRemovalName = (nameArg) => {
|
|
743
|
+
const current = ownerRemovalPattern.exec(nameArg);
|
|
744
|
+
if (current)
|
|
745
|
+
return { pid: Number(current[1]), fingerprintHash: current[2] };
|
|
746
|
+
const legacy = legacyOwnerRemovalPattern.exec(nameArg);
|
|
747
|
+
return legacy ? { pid: Number(legacy[1]) } : undefined;
|
|
748
|
+
};
|
|
749
|
+
const inspectOwnedDirectoryOwnerMetadata = async (directoryArg, parseOwnerArg) => {
|
|
750
|
+
const entries = await plugins.fs.promises.readdir(directoryArg, { withFileTypes: true });
|
|
751
|
+
if (entries.length === 0)
|
|
752
|
+
return undefined;
|
|
753
|
+
if (entries.length > 2) {
|
|
754
|
+
throw new Error(`Upgrade coordination owner directory contains unsafe entries: ${directoryArg}`);
|
|
755
|
+
}
|
|
756
|
+
const ownerEntry = entries.find((entryArg) => entryArg.name === ownerFileName);
|
|
757
|
+
const tombstoneEntry = entries.find((entryArg) => parseOwnerRemovalName(entryArg.name));
|
|
758
|
+
if (entries.some((entryArg) => entryArg !== ownerEntry && entryArg !== tombstoneEntry)
|
|
759
|
+
|| !ownerEntry && !tombstoneEntry)
|
|
760
|
+
throw new Error(`Upgrade coordination owner directory contains unsafe entries: ${directoryArg}`);
|
|
761
|
+
for (const entry of entries) {
|
|
762
|
+
if (!entry.isFile() || entry.isSymbolicLink()) {
|
|
763
|
+
throw new Error(`Upgrade coordination owner metadata is unsafe: ${directoryArg}`);
|
|
764
|
+
}
|
|
765
|
+
}
|
|
766
|
+
const ownerPath = ownerEntry ? plugins.path.join(directoryArg, ownerFileName) : undefined;
|
|
767
|
+
const tombstonePath = tombstoneEntry
|
|
768
|
+
? plugins.path.join(directoryArg, tombstoneEntry.name)
|
|
769
|
+
: undefined;
|
|
770
|
+
const [ownerStats, tombstoneStats] = await Promise.all([
|
|
771
|
+
ownerPath ? plugins.fs.promises.lstat(ownerPath) : undefined,
|
|
772
|
+
tombstonePath ? plugins.fs.promises.lstat(tombstonePath) : undefined,
|
|
773
|
+
]);
|
|
774
|
+
for (const metadata of [ownerStats, tombstoneStats]) {
|
|
775
|
+
if (!metadata)
|
|
776
|
+
continue;
|
|
777
|
+
if (!metadata.isFile()
|
|
778
|
+
|| metadata.isSymbolicLink()
|
|
779
|
+
|| (typeof process.getuid === 'function' && metadata.uid !== process.getuid())
|
|
780
|
+
|| (metadata.mode & 0o077) !== 0)
|
|
781
|
+
throw new Error(`Upgrade coordination owner metadata is unsafe: ${directoryArg}`);
|
|
782
|
+
}
|
|
783
|
+
let shape;
|
|
784
|
+
if (ownerStats && tombstoneStats) {
|
|
785
|
+
if (ownerStats.dev !== tombstoneStats.dev
|
|
786
|
+
|| ownerStats.ino !== tombstoneStats.ino
|
|
787
|
+
|| ownerStats.nlink !== 2
|
|
788
|
+
|| tombstoneStats.nlink !== 2)
|
|
789
|
+
throw new Error(`Upgrade coordination owner restoration is invalid: ${directoryArg}`);
|
|
790
|
+
shape = 'restoring';
|
|
791
|
+
}
|
|
792
|
+
else if (ownerStats) {
|
|
793
|
+
if (ownerStats.nlink !== 1) {
|
|
794
|
+
throw new Error(`Upgrade coordination owner link count is invalid: ${directoryArg}`);
|
|
795
|
+
}
|
|
796
|
+
shape = 'owner';
|
|
797
|
+
}
|
|
798
|
+
else {
|
|
799
|
+
if (tombstoneStats.nlink !== 1) {
|
|
800
|
+
throw new Error(`Upgrade coordination owner tombstone link count is invalid: ${directoryArg}`);
|
|
801
|
+
}
|
|
802
|
+
shape = 'removing';
|
|
803
|
+
}
|
|
804
|
+
return {
|
|
805
|
+
owner: parseOwnerArg(await readPrivateJson(ownerPath ?? tombstonePath)),
|
|
806
|
+
shape,
|
|
807
|
+
...(tombstoneEntry
|
|
808
|
+
? (() => {
|
|
809
|
+
const removal = parseOwnerRemovalName(tombstoneEntry.name);
|
|
810
|
+
return {
|
|
811
|
+
tombstoneName: tombstoneEntry.name,
|
|
812
|
+
tombstoneIdentity: { dev: tombstoneStats.dev, ino: tombstoneStats.ino },
|
|
813
|
+
tombstoneCtimeMs: tombstoneStats.ctimeMs,
|
|
814
|
+
removalPid: removal.pid,
|
|
815
|
+
...(removal.fingerprintHash
|
|
816
|
+
? { removalFingerprintHash: removal.fingerprintHash }
|
|
817
|
+
: {}),
|
|
818
|
+
};
|
|
819
|
+
})()
|
|
820
|
+
: {}),
|
|
821
|
+
};
|
|
822
|
+
};
|
|
823
|
+
const restoreOwnedDirectoryOwnerMetadata = async (directoryArg, metadataArg) => {
|
|
824
|
+
if (metadataArg.shape === 'owner')
|
|
825
|
+
return;
|
|
826
|
+
const tombstonePath = plugins.path.join(directoryArg, metadataArg.tombstoneName);
|
|
827
|
+
const tombstoneStats = await plugins.fs.promises.lstat(tombstonePath);
|
|
828
|
+
if (!sameOwnedDirectoryIdentity(tombstoneStats, metadataArg.tombstoneIdentity)) {
|
|
829
|
+
throw new Error('Upgrade coordination owner tombstone changed during recovery.');
|
|
830
|
+
}
|
|
831
|
+
if (metadataArg.shape === 'restoring') {
|
|
832
|
+
await plugins.fs.promises.unlink(tombstonePath);
|
|
833
|
+
}
|
|
834
|
+
else {
|
|
835
|
+
await plugins.fs.promises.rename(tombstonePath, plugins.path.join(directoryArg, ownerFileName));
|
|
836
|
+
}
|
|
837
|
+
await syncDirectory(directoryArg);
|
|
838
|
+
};
|
|
737
839
|
const removeExactOwnedDirectory = async (directoryArg, expectationArg) => {
|
|
738
840
|
const initialStats = await plugins.fs.promises.lstat(directoryArg);
|
|
739
841
|
if (!sameOwnedDirectoryIdentity(initialStats, expectationArg.identity)) {
|
|
@@ -750,7 +852,15 @@ const removeExactOwnedDirectory = async (directoryArg, expectationArg) => {
|
|
|
750
852
|
}
|
|
751
853
|
if (entries.length === 1) {
|
|
752
854
|
const ownerPath = plugins.path.join(directoryArg, ownerFileName);
|
|
753
|
-
const
|
|
855
|
+
const removerIdentity = await readControllerProcessIdentity(process.pid);
|
|
856
|
+
if (!removerIdentity) {
|
|
857
|
+
throw new Error('Unable to establish upgrade ownership-removal identity.');
|
|
858
|
+
}
|
|
859
|
+
const removerFingerprintHash = plugins.crypto
|
|
860
|
+
.createHash('sha256')
|
|
861
|
+
.update(removerIdentity.fingerprint, 'utf8')
|
|
862
|
+
.digest('hex');
|
|
863
|
+
const tombstonePath = plugins.path.join(directoryArg, `.owner-removing-${process.pid}-${removerFingerprintHash}-${plugins.crypto.randomBytes(8).toString('hex')}`);
|
|
754
864
|
expectationArg.assertRemovalAuthorized?.();
|
|
755
865
|
await plugins.fs.promises.rename(ownerPath, tombstonePath);
|
|
756
866
|
try {
|
|
@@ -793,14 +903,57 @@ const removeExactOwnedDirectory = async (directoryArg, expectationArg) => {
|
|
|
793
903
|
}
|
|
794
904
|
await syncDirectory(plugins.path.dirname(directoryArg));
|
|
795
905
|
};
|
|
906
|
+
const removeExactFailedOwnerPublication = async (directoryArg, identityArg) => {
|
|
907
|
+
const initialStats = await lstatIfPresent(directoryArg);
|
|
908
|
+
if (!initialStats)
|
|
909
|
+
return;
|
|
910
|
+
if (!sameOwnedDirectoryIdentity(initialStats, identityArg)) {
|
|
911
|
+
throw new Error('Upgrade coordination publication changed before cleanup.');
|
|
912
|
+
}
|
|
913
|
+
const entries = await plugins.fs.promises.readdir(directoryArg, { withFileTypes: true });
|
|
914
|
+
if (entries.length > 1
|
|
915
|
+
|| entries.some((entryArg) => (entryArg.name !== ownerFileName
|
|
916
|
+
|| !entryArg.isFile()
|
|
917
|
+
|| entryArg.isSymbolicLink())))
|
|
918
|
+
throw new Error(`Upgrade coordination publication contains unsafe entries: ${directoryArg}`);
|
|
919
|
+
if (entries.length === 1) {
|
|
920
|
+
const ownerPath = plugins.path.join(directoryArg, ownerFileName);
|
|
921
|
+
const ownerStats = await plugins.fs.promises.lstat(ownerPath);
|
|
922
|
+
if (!ownerStats.isFile()
|
|
923
|
+
|| ownerStats.isSymbolicLink()
|
|
924
|
+
|| (typeof process.getuid === 'function' && ownerStats.uid !== process.getuid())
|
|
925
|
+
|| (ownerStats.mode & 0o077) !== 0
|
|
926
|
+
|| ownerStats.nlink !== 1)
|
|
927
|
+
throw new Error(`Upgrade coordination publication metadata is unsafe: ${ownerPath}`);
|
|
928
|
+
await plugins.fs.promises.unlink(ownerPath);
|
|
929
|
+
await syncDirectory(directoryArg);
|
|
930
|
+
}
|
|
931
|
+
const currentStats = await lstatIfPresent(directoryArg);
|
|
932
|
+
if (!currentStats)
|
|
933
|
+
return;
|
|
934
|
+
if (!sameOwnedDirectoryIdentity(currentStats, identityArg)) {
|
|
935
|
+
throw new Error('Upgrade coordination publication changed during cleanup.');
|
|
936
|
+
}
|
|
937
|
+
try {
|
|
938
|
+
await plugins.fs.promises.rmdir(directoryArg);
|
|
939
|
+
}
|
|
940
|
+
catch (errorArg) {
|
|
941
|
+
if (errorArg.code === 'ENOENT')
|
|
942
|
+
return;
|
|
943
|
+
throw errorArg;
|
|
944
|
+
}
|
|
945
|
+
await syncDirectory(plugins.path.dirname(directoryArg));
|
|
946
|
+
};
|
|
796
947
|
class UpgradeOwnershipMutationGuard {
|
|
797
948
|
directory;
|
|
798
949
|
owner;
|
|
950
|
+
identity;
|
|
799
951
|
released = false;
|
|
800
952
|
releaseTask;
|
|
801
|
-
constructor(directory, owner) {
|
|
953
|
+
constructor(directory, owner, identity) {
|
|
802
954
|
this.directory = directory;
|
|
803
955
|
this.owner = owner;
|
|
956
|
+
this.identity = identity;
|
|
804
957
|
}
|
|
805
958
|
release() {
|
|
806
959
|
if (this.released)
|
|
@@ -808,19 +961,32 @@ class UpgradeOwnershipMutationGuard {
|
|
|
808
961
|
if (!this.releaseTask) {
|
|
809
962
|
let task;
|
|
810
963
|
task = (async () => {
|
|
811
|
-
const stats = await
|
|
812
|
-
|
|
813
|
-
|
|
964
|
+
const stats = await lstatIfPresent(this.directory);
|
|
965
|
+
if (!stats) {
|
|
966
|
+
this.released = true;
|
|
967
|
+
return;
|
|
968
|
+
}
|
|
969
|
+
if (!sameOwnedDirectoryIdentity(stats, this.identity)) {
|
|
970
|
+
throw new Error('Upgrade ownership mutation guard changed unexpectedly.');
|
|
971
|
+
}
|
|
972
|
+
const metadata = await inspectOwnedDirectoryOwnerMetadata(this.directory, parseOwnershipMutationGuardOwner);
|
|
973
|
+
if (metadata && !exactPrimitiveRecordMatches(metadata.owner, this.owner)) {
|
|
814
974
|
throw new Error('Upgrade ownership mutation guard changed unexpectedly.');
|
|
815
975
|
}
|
|
976
|
+
if (metadata)
|
|
977
|
+
await restoreOwnedDirectoryOwnerMetadata(this.directory, metadata);
|
|
816
978
|
await removeExactOwnedDirectory(this.directory, {
|
|
817
|
-
identity:
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
979
|
+
identity: this.identity,
|
|
980
|
+
...(metadata
|
|
981
|
+
? {
|
|
982
|
+
assertOwner: (valueArg) => {
|
|
983
|
+
const removedOwner = parseOwnershipMutationGuardOwner(valueArg);
|
|
984
|
+
if (!exactPrimitiveRecordMatches(removedOwner, this.owner)) {
|
|
985
|
+
throw new Error('Upgrade ownership mutation guard changed during release.');
|
|
986
|
+
}
|
|
987
|
+
},
|
|
822
988
|
}
|
|
823
|
-
|
|
989
|
+
: {}),
|
|
824
990
|
});
|
|
825
991
|
this.released = true;
|
|
826
992
|
})().finally(() => {
|
|
@@ -893,6 +1059,8 @@ export class UpgradeCoordinator {
|
|
|
893
1059
|
startLeasesDirectory;
|
|
894
1060
|
transactionsDirectory;
|
|
895
1061
|
ownershipGuardsDirectory;
|
|
1062
|
+
usesLegacyLocation;
|
|
1063
|
+
usesInheritedLocation;
|
|
896
1064
|
initializationTask;
|
|
897
1065
|
constructor(canonicalGlobalRoot) {
|
|
898
1066
|
this.canonicalGlobalRoot = canonicalGlobalRoot;
|
|
@@ -900,7 +1068,28 @@ export class UpgradeCoordinator {
|
|
|
900
1068
|
throw new Error('The canonical pnpm global root must be absolute.');
|
|
901
1069
|
}
|
|
902
1070
|
this.uid = assertUid();
|
|
903
|
-
|
|
1071
|
+
const canonicalBaseDirectory = plugins.path.join(resolveAGLHomePaths().upgrade, `coordination-${this.uid}-${coordinationPathHash(canonicalGlobalRoot)}`);
|
|
1072
|
+
const inheritedBaseDirectory = process.env[upgradeCoordinationRootEnvironmentVariable];
|
|
1073
|
+
if (inheritedBaseDirectory !== undefined) {
|
|
1074
|
+
if (!plugins.path.isAbsolute(inheritedBaseDirectory)
|
|
1075
|
+
|| plugins.path.normalize(inheritedBaseDirectory) !== inheritedBaseDirectory
|
|
1076
|
+
|| plugins.path.parse(inheritedBaseDirectory).root === inheritedBaseDirectory
|
|
1077
|
+
|| inheritedBaseDirectory.includes('\0')
|
|
1078
|
+
|| Buffer.byteLength(inheritedBaseDirectory, 'utf8') > 4096)
|
|
1079
|
+
throw new Error('The inherited AGL upgrade coordination root is invalid.');
|
|
1080
|
+
}
|
|
1081
|
+
const inheritedUpgradeToken = process.env[upgradeTokenEnvironmentVariable];
|
|
1082
|
+
const usesLegacyLocation = inheritedUpgradeToken !== undefined
|
|
1083
|
+
&& process.env[upgradeCoordinationRootEnvironmentVariable] === undefined;
|
|
1084
|
+
if (usesLegacyLocation
|
|
1085
|
+
&& (inheritedUpgradeToken === undefined || !upgradeTokenPattern.test(inheritedUpgradeToken))) {
|
|
1086
|
+
throw new Error('Legacy upgrade coordination requires the exact inherited upgrade token.');
|
|
1087
|
+
}
|
|
1088
|
+
this.usesLegacyLocation = usesLegacyLocation;
|
|
1089
|
+
this.usesInheritedLocation = inheritedBaseDirectory !== undefined;
|
|
1090
|
+
this.baseDirectory = this.usesLegacyLocation
|
|
1091
|
+
? plugins.path.join('/tmp', `harness-controller-upgrade-${this.uid}-${coordinationPathHash(canonicalGlobalRoot)}`)
|
|
1092
|
+
: inheritedBaseDirectory ?? canonicalBaseDirectory;
|
|
904
1093
|
this.upgradeLockDirectory = plugins.path.join(this.baseDirectory, 'upgrade.lock');
|
|
905
1094
|
this.startLeasesDirectory = plugins.path.join(this.baseDirectory, 'start-leases');
|
|
906
1095
|
this.transactionsDirectory = plugins.path.join(this.baseDirectory, 'transactions');
|
|
@@ -919,19 +1108,17 @@ export class UpgradeCoordinator {
|
|
|
919
1108
|
await this.initializationTask;
|
|
920
1109
|
}
|
|
921
1110
|
async performInitialization() {
|
|
1111
|
+
if (!this.usesLegacyLocation && !this.usesInheritedLocation) {
|
|
1112
|
+
const home = resolveAGLHomePaths();
|
|
1113
|
+
await ensurePrivateDirectory(home.root);
|
|
1114
|
+
await ensurePrivateDirectory(home.upgrade);
|
|
1115
|
+
}
|
|
922
1116
|
await ensurePrivateDirectory(this.baseDirectory);
|
|
923
1117
|
await ensurePrivateDirectory(this.startLeasesDirectory);
|
|
924
1118
|
await ensurePrivateDirectory(this.transactionsDirectory);
|
|
925
1119
|
await ensurePrivateDirectory(this.ownershipGuardsDirectory);
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
})) {
|
|
929
|
-
const guardPath = plugins.path.join(this.ownershipGuardsDirectory, entry.name);
|
|
930
|
-
if (!entry.isDirectory() || !ownershipGuardDirectoryPattern.test(entry.name)) {
|
|
931
|
-
throw new Error(`Upgrade ownership guard directory contains an unexpected entry: ${guardPath}`);
|
|
932
|
-
}
|
|
933
|
-
await assertPrivateDirectory(guardPath);
|
|
934
|
-
}
|
|
1120
|
+
await this.cleanupOwnershipGuardTemporaryDirectories();
|
|
1121
|
+
await this.cleanupOwnershipGuardDirectories();
|
|
935
1122
|
const entries = await plugins.fs.promises.readdir(this.baseDirectory, { withFileTypes: true });
|
|
936
1123
|
for (const entry of entries) {
|
|
937
1124
|
if (!entry.isFile() || !tokenMetadataPattern.test(entry.name))
|
|
@@ -1016,6 +1203,197 @@ export class UpgradeCoordinator {
|
|
|
1016
1203
|
ownershipGuardDirectory(directoryArg) {
|
|
1017
1204
|
return plugins.path.join(this.ownershipGuardsDirectory, `${ownershipTargetHash(directoryArg)}.guard`);
|
|
1018
1205
|
}
|
|
1206
|
+
async inspectOwnershipGuardDirectory(directoryArg, expectedTargetHashArg, attemptArg = 0) {
|
|
1207
|
+
const stats = await lstatIfPresent(directoryArg);
|
|
1208
|
+
if (!stats)
|
|
1209
|
+
return { state: 'absent' };
|
|
1210
|
+
if (!stats.isDirectory()
|
|
1211
|
+
|| stats.isSymbolicLink()
|
|
1212
|
+
|| stats.uid !== this.uid
|
|
1213
|
+
|| (stats.mode & 0o077) !== 0)
|
|
1214
|
+
throw new Error(`Upgrade ownership mutation guard is unsafe: ${directoryArg}`);
|
|
1215
|
+
let ownerMetadata;
|
|
1216
|
+
try {
|
|
1217
|
+
ownerMetadata = await inspectOwnedDirectoryOwnerMetadata(directoryArg, parseOwnershipMutationGuardOwner);
|
|
1218
|
+
}
|
|
1219
|
+
catch (errorArg) {
|
|
1220
|
+
const currentStats = await lstatIfPresent(directoryArg);
|
|
1221
|
+
if (!currentStats)
|
|
1222
|
+
return { state: 'absent' };
|
|
1223
|
+
if (!sameOwnedDirectoryIdentity(currentStats, { dev: stats.dev, ino: stats.ino })) {
|
|
1224
|
+
if (attemptArg < 2) {
|
|
1225
|
+
return await this.inspectOwnershipGuardDirectory(directoryArg, expectedTargetHashArg, attemptArg + 1);
|
|
1226
|
+
}
|
|
1227
|
+
throw new Error(`Upgrade ownership mutation guard changed repeatedly: ${directoryArg}`, {
|
|
1228
|
+
cause: errorArg,
|
|
1229
|
+
});
|
|
1230
|
+
}
|
|
1231
|
+
if (errorArg.code === 'ENOENT') {
|
|
1232
|
+
return {
|
|
1233
|
+
state: Date.now() - currentStats.mtimeMs < initializationGraceMs ? 'live' : 'empty',
|
|
1234
|
+
identity: { dev: currentStats.dev, ino: currentStats.ino },
|
|
1235
|
+
};
|
|
1236
|
+
}
|
|
1237
|
+
throw errorArg;
|
|
1238
|
+
}
|
|
1239
|
+
if (!ownerMetadata) {
|
|
1240
|
+
return {
|
|
1241
|
+
state: Date.now() - stats.mtimeMs < initializationGraceMs ? 'live' : 'empty',
|
|
1242
|
+
identity: { dev: stats.dev, ino: stats.ino },
|
|
1243
|
+
};
|
|
1244
|
+
}
|
|
1245
|
+
const owner = ownerMetadata.owner;
|
|
1246
|
+
if (owner.uid !== this.uid || owner.targetHash !== expectedTargetHashArg) {
|
|
1247
|
+
throw new Error(`Upgrade ownership mutation guard binding is invalid: ${directoryArg}`);
|
|
1248
|
+
}
|
|
1249
|
+
let processIdentity;
|
|
1250
|
+
let removalProcessIdentity;
|
|
1251
|
+
try {
|
|
1252
|
+
processIdentity = await readControllerProcessIdentity(owner.pid);
|
|
1253
|
+
removalProcessIdentity = ownerMetadata.removalPid === undefined
|
|
1254
|
+
? null
|
|
1255
|
+
: ownerMetadata.removalPid === owner.pid
|
|
1256
|
+
? processIdentity
|
|
1257
|
+
: await readControllerProcessIdentity(ownerMetadata.removalPid);
|
|
1258
|
+
}
|
|
1259
|
+
catch (errorArg) {
|
|
1260
|
+
throw new Error(`The upgrade ownership mutation guard cannot be verified safely: ${directoryArg}`, {
|
|
1261
|
+
cause: errorArg,
|
|
1262
|
+
});
|
|
1263
|
+
}
|
|
1264
|
+
const ownerIsStillLive = processIdentity?.fingerprint === owner.fingerprint;
|
|
1265
|
+
const removerIsStillLive = ownerMetadata.removalFingerprintHash
|
|
1266
|
+
? removalProcessIdentity !== null
|
|
1267
|
+
&& plugins.crypto.createHash('sha256')
|
|
1268
|
+
.update(removalProcessIdentity.fingerprint, 'utf8')
|
|
1269
|
+
.digest('hex') === ownerMetadata.removalFingerprintHash
|
|
1270
|
+
: ownerMetadata.removalPid !== undefined
|
|
1271
|
+
&& removalProcessIdentity !== null
|
|
1272
|
+
&& Date.now() - ownerMetadata.tombstoneCtimeMs < legacyOwnerRemovalGraceMs;
|
|
1273
|
+
return {
|
|
1274
|
+
state: ownerIsStillLive || removerIsStillLive ? 'live' : 'stale',
|
|
1275
|
+
identity: { dev: stats.dev, ino: stats.ino },
|
|
1276
|
+
owner,
|
|
1277
|
+
ownerMetadata,
|
|
1278
|
+
};
|
|
1279
|
+
}
|
|
1280
|
+
async reclaimOwnershipGuardDirectory(directoryArg, targetHashArg) {
|
|
1281
|
+
const inspected = await this.inspectOwnershipGuardDirectory(directoryArg, targetHashArg);
|
|
1282
|
+
if (inspected.state === 'absent')
|
|
1283
|
+
return 'retry';
|
|
1284
|
+
if (inspected.state === 'live')
|
|
1285
|
+
return 'live';
|
|
1286
|
+
const identity = inspected.identity;
|
|
1287
|
+
if (inspected.state === 'empty') {
|
|
1288
|
+
const current = await lstatIfPresent(directoryArg);
|
|
1289
|
+
if (!current)
|
|
1290
|
+
return 'retry';
|
|
1291
|
+
if (!sameOwnedDirectoryIdentity(current, identity)) {
|
|
1292
|
+
throw new Error('Upgrade ownership mutation guard changed before empty recovery.');
|
|
1293
|
+
}
|
|
1294
|
+
if ((await plugins.fs.promises.readdir(directoryArg)).length !== 0) {
|
|
1295
|
+
throw new Error('Upgrade ownership mutation guard changed during empty recovery.');
|
|
1296
|
+
}
|
|
1297
|
+
await plugins.fs.promises.rmdir(directoryArg).catch((errorArg) => {
|
|
1298
|
+
if (errorArg.code !== 'ENOENT')
|
|
1299
|
+
throw errorArg;
|
|
1300
|
+
});
|
|
1301
|
+
await syncDirectory(this.ownershipGuardsDirectory);
|
|
1302
|
+
return 'retry';
|
|
1303
|
+
}
|
|
1304
|
+
await restoreOwnedDirectoryOwnerMetadata(directoryArg, inspected.ownerMetadata);
|
|
1305
|
+
await removeExactOwnedDirectory(directoryArg, {
|
|
1306
|
+
identity,
|
|
1307
|
+
assertOwner: (valueArg) => {
|
|
1308
|
+
const removedOwner = parseOwnershipMutationGuardOwner(valueArg);
|
|
1309
|
+
if (!exactPrimitiveRecordMatches(removedOwner, inspected.owner)) {
|
|
1310
|
+
throw new Error('Upgrade ownership mutation guard changed during stale recovery.');
|
|
1311
|
+
}
|
|
1312
|
+
},
|
|
1313
|
+
});
|
|
1314
|
+
return 'retry';
|
|
1315
|
+
}
|
|
1316
|
+
async cleanupOwnershipGuardDirectories() {
|
|
1317
|
+
const entries = await plugins.fs.promises.readdir(this.ownershipGuardsDirectory, {
|
|
1318
|
+
withFileTypes: true,
|
|
1319
|
+
});
|
|
1320
|
+
for (const entry of entries) {
|
|
1321
|
+
const path = plugins.path.join(this.ownershipGuardsDirectory, entry.name);
|
|
1322
|
+
if (ownershipGuardTemporaryPattern.test(entry.name))
|
|
1323
|
+
continue;
|
|
1324
|
+
if (!entry.isDirectory() || !ownershipGuardDirectoryPattern.test(entry.name)) {
|
|
1325
|
+
throw new Error(`Upgrade ownership guard directory contains an unexpected entry: ${path}`);
|
|
1326
|
+
}
|
|
1327
|
+
await this.reclaimOwnershipGuardDirectory(path, entry.name.slice(0, 64));
|
|
1328
|
+
}
|
|
1329
|
+
}
|
|
1330
|
+
async cleanupOwnershipGuardTemporaryDirectories() {
|
|
1331
|
+
const entries = await plugins.fs.promises.readdir(this.ownershipGuardsDirectory, {
|
|
1332
|
+
withFileTypes: true,
|
|
1333
|
+
});
|
|
1334
|
+
for (const entry of entries) {
|
|
1335
|
+
if (!ownershipGuardTemporaryPattern.test(entry.name))
|
|
1336
|
+
continue;
|
|
1337
|
+
const match = /^([a-f0-9]{64})\.guard\.tmp-([1-9][0-9]*)-([a-f0-9]{32})$/.exec(entry.name);
|
|
1338
|
+
if (!match)
|
|
1339
|
+
throw new Error(`Upgrade ownership guard temporary name is invalid: ${entry.name}`);
|
|
1340
|
+
const pid = Number(match[2]);
|
|
1341
|
+
const path = plugins.path.join(this.ownershipGuardsDirectory, entry.name);
|
|
1342
|
+
const stats = await lstatIfPresent(path);
|
|
1343
|
+
if (!stats
|
|
1344
|
+
|| !stats.isDirectory()
|
|
1345
|
+
|| stats.isSymbolicLink()
|
|
1346
|
+
|| stats.uid !== this.uid
|
|
1347
|
+
|| (stats.mode & 0o077) !== 0)
|
|
1348
|
+
throw new Error(`Upgrade ownership guard temporary is unsafe: ${path}`);
|
|
1349
|
+
const ownerPath = plugins.path.join(path, ownerFileName);
|
|
1350
|
+
const ownerStats = await lstatIfPresent(ownerPath);
|
|
1351
|
+
let owner;
|
|
1352
|
+
if (ownerStats) {
|
|
1353
|
+
if (!ownerStats.isFile()
|
|
1354
|
+
|| ownerStats.isSymbolicLink()
|
|
1355
|
+
|| ownerStats.uid !== this.uid
|
|
1356
|
+
|| (ownerStats.mode & 0o077) !== 0
|
|
1357
|
+
|| ownerStats.nlink !== 1)
|
|
1358
|
+
throw new Error(`Upgrade ownership guard temporary owner is unsafe: ${ownerPath}`);
|
|
1359
|
+
try {
|
|
1360
|
+
owner = parseOwnershipMutationGuardOwner(await readPrivateJson(ownerPath));
|
|
1361
|
+
}
|
|
1362
|
+
catch (errorArg) {
|
|
1363
|
+
if (await readControllerProcessIdentity(pid)) {
|
|
1364
|
+
throw new Error(`Upgrade ownership guard temporary is owned by live PID ${pid}.`, {
|
|
1365
|
+
cause: errorArg,
|
|
1366
|
+
});
|
|
1367
|
+
}
|
|
1368
|
+
}
|
|
1369
|
+
}
|
|
1370
|
+
const live = await readControllerProcessIdentity(pid);
|
|
1371
|
+
if (live && (!owner || owner.pid !== pid || owner.fingerprint !== live.fingerprint)) {
|
|
1372
|
+
throw new Error(`Upgrade ownership guard temporary is owned by live PID ${pid}.`);
|
|
1373
|
+
}
|
|
1374
|
+
if (live)
|
|
1375
|
+
continue;
|
|
1376
|
+
if (owner && (owner.pid !== pid || owner.uid !== this.uid || owner.targetHash !== match[1])) {
|
|
1377
|
+
throw new Error(`Upgrade ownership guard temporary binding is invalid: ${path}`);
|
|
1378
|
+
}
|
|
1379
|
+
const stable = await lstatIfPresent(path);
|
|
1380
|
+
if (!stable || stable.dev !== stats.dev || stable.ino !== stats.ino) {
|
|
1381
|
+
throw new Error(`Upgrade ownership guard temporary changed before cleanup: ${path}`);
|
|
1382
|
+
}
|
|
1383
|
+
if (ownerStats) {
|
|
1384
|
+
const stableOwner = await lstatIfPresent(ownerPath);
|
|
1385
|
+
if (!stableOwner || stableOwner.dev !== ownerStats.dev || stableOwner.ino !== ownerStats.ino) {
|
|
1386
|
+
throw new Error(`Upgrade ownership guard temporary owner changed before cleanup: ${ownerPath}`);
|
|
1387
|
+
}
|
|
1388
|
+
await plugins.fs.promises.unlink(ownerPath);
|
|
1389
|
+
}
|
|
1390
|
+
if ((await plugins.fs.promises.readdir(path)).length !== 0) {
|
|
1391
|
+
throw new Error(`Upgrade ownership guard temporary contains unexpected entries: ${path}`);
|
|
1392
|
+
}
|
|
1393
|
+
await plugins.fs.promises.rmdir(path);
|
|
1394
|
+
await syncDirectory(this.ownershipGuardsDirectory);
|
|
1395
|
+
}
|
|
1396
|
+
}
|
|
1019
1397
|
async acquireOwnershipMutationGuard(directoryArg) {
|
|
1020
1398
|
const targetHash = ownershipTargetHash(directoryArg);
|
|
1021
1399
|
const guardDirectory = this.ownershipGuardDirectory(directoryArg);
|
|
@@ -1032,61 +1410,62 @@ export class UpgradeCoordinator {
|
|
|
1032
1410
|
createdAt: Date.now(),
|
|
1033
1411
|
};
|
|
1034
1412
|
const deadline = Date.now() + ownershipGuardTimeoutMs;
|
|
1413
|
+
const temporaryDirectory = `${guardDirectory}.tmp-${owner.pid}-${owner.nonce}`;
|
|
1035
1414
|
while (true) {
|
|
1415
|
+
let temporaryCreated = false;
|
|
1416
|
+
let publishedIdentity;
|
|
1036
1417
|
try {
|
|
1037
|
-
await plugins.fs.promises.mkdir(
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1418
|
+
await plugins.fs.promises.mkdir(temporaryDirectory, { mode: 0o700 });
|
|
1419
|
+
temporaryCreated = true;
|
|
1420
|
+
await writePrivateJson(plugins.path.join(temporaryDirectory, ownerFileName), owner);
|
|
1421
|
+
await syncDirectory(temporaryDirectory);
|
|
1422
|
+
const temporaryStats = await plugins.fs.promises.lstat(temporaryDirectory);
|
|
1423
|
+
const temporaryIdentity = { dev: temporaryStats.dev, ino: temporaryStats.ino };
|
|
1424
|
+
await plugins.fs.promises.rename(temporaryDirectory, guardDirectory);
|
|
1425
|
+
temporaryCreated = false;
|
|
1426
|
+
publishedIdentity = temporaryIdentity;
|
|
1427
|
+
const publishedStats = await plugins.fs.promises.lstat(guardDirectory);
|
|
1428
|
+
if (!sameOwnedDirectoryIdentity(publishedStats, publishedIdentity)) {
|
|
1429
|
+
throw new Error('Published upgrade ownership guard identity changed unexpectedly.');
|
|
1041
1430
|
}
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
// never be reclaimed automatically, or the guard would repeat the
|
|
1045
|
-
// fixed-path ownership race that it exists to prevent.
|
|
1046
|
-
throw errorArg;
|
|
1047
|
-
}
|
|
1048
|
-
return new UpgradeOwnershipMutationGuard(guardDirectory, owner);
|
|
1049
|
-
}
|
|
1050
|
-
catch (errorArg) {
|
|
1051
|
-
if (errorArg.code !== 'EEXIST')
|
|
1052
|
-
throw errorArg;
|
|
1053
|
-
}
|
|
1054
|
-
const stats = await lstatIfPresent(guardDirectory);
|
|
1055
|
-
if (!stats)
|
|
1056
|
-
continue;
|
|
1057
|
-
if (!stats.isDirectory()
|
|
1058
|
-
|| stats.isSymbolicLink()
|
|
1059
|
-
|| stats.uid !== this.uid
|
|
1060
|
-
|| (stats.mode & 0o077) !== 0)
|
|
1061
|
-
throw new Error(`Upgrade ownership mutation guard is unsafe: ${guardDirectory}`);
|
|
1062
|
-
let existingOwner;
|
|
1063
|
-
try {
|
|
1064
|
-
existingOwner = parseOwnershipMutationGuardOwner(await readPrivateJson(plugins.path.join(guardDirectory, ownerFileName)));
|
|
1431
|
+
await syncDirectory(this.ownershipGuardsDirectory);
|
|
1432
|
+
return new UpgradeOwnershipMutationGuard(guardDirectory, owner, publishedIdentity);
|
|
1065
1433
|
}
|
|
1066
1434
|
catch (errorArg) {
|
|
1067
|
-
const
|
|
1068
|
-
if (
|
|
1069
|
-
|
|
1435
|
+
const cleanupErrors = [];
|
|
1436
|
+
if (temporaryCreated) {
|
|
1437
|
+
try {
|
|
1438
|
+
await plugins.fs.promises.rm(temporaryDirectory, { recursive: true, force: true });
|
|
1439
|
+
}
|
|
1440
|
+
catch (cleanupErrorArg) {
|
|
1441
|
+
cleanupErrors.push(cleanupErrorArg);
|
|
1442
|
+
}
|
|
1070
1443
|
}
|
|
1071
|
-
if (
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1444
|
+
if (publishedIdentity) {
|
|
1445
|
+
try {
|
|
1446
|
+
await removeExactOwnedDirectory(guardDirectory, {
|
|
1447
|
+
identity: publishedIdentity,
|
|
1448
|
+
assertOwner: (valueArg) => {
|
|
1449
|
+
const publishedOwner = parseOwnershipMutationGuardOwner(valueArg);
|
|
1450
|
+
if (!exactPrimitiveRecordMatches(publishedOwner, owner)) {
|
|
1451
|
+
throw new Error('Published upgrade ownership guard changed during cleanup.');
|
|
1452
|
+
}
|
|
1453
|
+
},
|
|
1454
|
+
});
|
|
1455
|
+
}
|
|
1456
|
+
catch (cleanupErrorArg) {
|
|
1457
|
+
cleanupErrors.push(cleanupErrorArg);
|
|
1458
|
+
}
|
|
1075
1459
|
}
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
try {
|
|
1083
|
-
existingIdentity = await readControllerProcessIdentity(existingOwner.pid);
|
|
1084
|
-
}
|
|
1085
|
-
catch (errorArg) {
|
|
1086
|
-
throw new Error(`The existing upgrade ownership mutation guard cannot be verified safely: ${guardDirectory}`, { cause: errorArg });
|
|
1460
|
+
if (cleanupErrors.length > 0) {
|
|
1461
|
+
throw new AggregateError([errorArg, ...cleanupErrors], 'Upgrade ownership guard publication failed and cleanup was incomplete.', { cause: errorArg });
|
|
1462
|
+
}
|
|
1463
|
+
const code = errorArg.code;
|
|
1464
|
+
if (code !== 'EEXIST' && code !== 'ENOTEMPTY')
|
|
1465
|
+
throw errorArg;
|
|
1087
1466
|
}
|
|
1088
|
-
if (
|
|
1089
|
-
|
|
1467
|
+
if (await this.reclaimOwnershipGuardDirectory(guardDirectory, targetHash) === 'retry') {
|
|
1468
|
+
continue;
|
|
1090
1469
|
}
|
|
1091
1470
|
if (Date.now() >= deadline) {
|
|
1092
1471
|
throw new Error('Timed out waiting for an upgrade ownership mutation guard.');
|
|
@@ -1130,6 +1509,9 @@ export class UpgradeCoordinator {
|
|
|
1130
1509
|
}
|
|
1131
1510
|
if (current.state !== 'stale')
|
|
1132
1511
|
return false;
|
|
1512
|
+
if (current.ownerMetadata) {
|
|
1513
|
+
await restoreOwnedDirectoryOwnerMetadata(directoryArg, current.ownerMetadata);
|
|
1514
|
+
}
|
|
1133
1515
|
await removeExactOwnedDirectory(directoryArg, {
|
|
1134
1516
|
identity: current.identity,
|
|
1135
1517
|
...(current.owner
|
|
@@ -1146,43 +1528,39 @@ export class UpgradeCoordinator {
|
|
|
1146
1528
|
return true;
|
|
1147
1529
|
});
|
|
1148
1530
|
}
|
|
1149
|
-
async releaseOwnedDirectory(directoryArg, expectedOwnerArg, shouldReleaseArg) {
|
|
1531
|
+
async releaseOwnedDirectory(directoryArg, expectedOwnerArg, expectedIdentityArg, shouldReleaseArg) {
|
|
1150
1532
|
await this.withOwnershipMutationGuard(directoryArg, async () => {
|
|
1151
|
-
const stats = await
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
catch (errorArg) {
|
|
1157
|
-
if (errorArg.code === 'ENOENT') {
|
|
1158
|
-
throw new Error('Upgrade coordination ownership changed unexpectedly.', { cause: errorArg });
|
|
1159
|
-
}
|
|
1160
|
-
throw errorArg;
|
|
1533
|
+
const stats = await lstatIfPresent(directoryArg);
|
|
1534
|
+
if (!stats)
|
|
1535
|
+
return;
|
|
1536
|
+
if (!sameOwnedDirectoryIdentity(stats, expectedIdentityArg)) {
|
|
1537
|
+
throw new Error('Upgrade coordination ownership changed unexpectedly.');
|
|
1161
1538
|
}
|
|
1162
|
-
|
|
1539
|
+
const metadata = await inspectOwnedDirectoryOwnerMetadata(directoryArg, parseOwner);
|
|
1540
|
+
if (metadata && !exactPrimitiveRecordMatches(metadata.owner, expectedOwnerArg)) {
|
|
1163
1541
|
throw new Error('Upgrade coordination ownership changed unexpectedly.');
|
|
1164
1542
|
}
|
|
1543
|
+
if (shouldReleaseArg && !shouldReleaseArg()) {
|
|
1544
|
+
throw new Error('Upgrade coordination release is no longer authorized.');
|
|
1545
|
+
}
|
|
1546
|
+
if (metadata)
|
|
1547
|
+
await restoreOwnedDirectoryOwnerMetadata(directoryArg, metadata);
|
|
1165
1548
|
await removeExactOwnedDirectory(directoryArg, {
|
|
1166
|
-
identity:
|
|
1167
|
-
...(
|
|
1549
|
+
identity: expectedIdentityArg,
|
|
1550
|
+
...(metadata
|
|
1168
1551
|
? {
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1552
|
+
assertOwner: (valueArg) => {
|
|
1553
|
+
const removedOwner = parseOwner(valueArg);
|
|
1554
|
+
if (!exactPrimitiveRecordMatches(removedOwner, expectedOwnerArg)) {
|
|
1555
|
+
throw new Error('Upgrade coordination ownership changed during release.');
|
|
1172
1556
|
}
|
|
1173
1557
|
},
|
|
1174
1558
|
}
|
|
1175
1559
|
: {}),
|
|
1176
|
-
assertOwner: (valueArg) => {
|
|
1177
|
-
const removedOwner = parseOwner(valueArg);
|
|
1178
|
-
if (!exactPrimitiveRecordMatches(removedOwner, expectedOwnerArg)) {
|
|
1179
|
-
throw new Error('Upgrade coordination ownership changed during release.');
|
|
1180
|
-
}
|
|
1181
|
-
},
|
|
1182
1560
|
});
|
|
1183
1561
|
});
|
|
1184
1562
|
}
|
|
1185
|
-
async inspectTransactionMutationDirectory(directoryArg, expectedTokenHashArg) {
|
|
1563
|
+
async inspectTransactionMutationDirectory(directoryArg, expectedTokenHashArg, attemptArg = 0) {
|
|
1186
1564
|
const stats = await lstatIfPresent(directoryArg);
|
|
1187
1565
|
if (!stats)
|
|
1188
1566
|
return { state: 'absent' };
|
|
@@ -1191,17 +1569,47 @@ export class UpgradeCoordinator {
|
|
|
1191
1569
|
|| stats.uid !== this.uid
|
|
1192
1570
|
|| (stats.mode & 0o077) !== 0)
|
|
1193
1571
|
throw new Error('The upgrade transaction mutation lock is unsafe.');
|
|
1194
|
-
let
|
|
1572
|
+
let ownerMetadata;
|
|
1195
1573
|
try {
|
|
1196
|
-
|
|
1574
|
+
ownerMetadata = await inspectOwnedDirectoryOwnerMetadata(directoryArg, parseTransactionMutationOwner);
|
|
1197
1575
|
}
|
|
1198
1576
|
catch (errorArg) {
|
|
1577
|
+
const currentStats = await lstatIfPresent(directoryArg);
|
|
1578
|
+
if (!currentStats)
|
|
1579
|
+
return { state: 'absent' };
|
|
1580
|
+
if (!sameOwnedDirectoryIdentity(currentStats, { dev: stats.dev, ino: stats.ino })) {
|
|
1581
|
+
if (attemptArg < 2) {
|
|
1582
|
+
return await this.inspectTransactionMutationDirectory(directoryArg, expectedTokenHashArg, attemptArg + 1);
|
|
1583
|
+
}
|
|
1584
|
+
return {
|
|
1585
|
+
state: 'indeterminate',
|
|
1586
|
+
identity: { dev: currentStats.dev, ino: currentStats.ino },
|
|
1587
|
+
inspectionError: errorArg,
|
|
1588
|
+
};
|
|
1589
|
+
}
|
|
1199
1590
|
const code = errorArg.code;
|
|
1200
|
-
if (code === '
|
|
1201
|
-
return {
|
|
1591
|
+
if (code === 'ENOENT') {
|
|
1592
|
+
return {
|
|
1593
|
+
state: Date.now() - currentStats.mtimeMs < initializationGraceMs
|
|
1594
|
+
? 'recent-invalid'
|
|
1595
|
+
: 'stale',
|
|
1596
|
+
identity: { dev: currentStats.dev, ino: currentStats.ino },
|
|
1597
|
+
};
|
|
1202
1598
|
}
|
|
1203
|
-
if (
|
|
1204
|
-
|
|
1599
|
+
if (Date.now() - currentStats.mtimeMs < initializationGraceMs
|
|
1600
|
+
&& (code === undefined || code === 'HCON_INVALID_JSON')) {
|
|
1601
|
+
return {
|
|
1602
|
+
state: 'recent-invalid',
|
|
1603
|
+
identity: { dev: currentStats.dev, ino: currentStats.ino },
|
|
1604
|
+
};
|
|
1605
|
+
}
|
|
1606
|
+
return {
|
|
1607
|
+
state: 'indeterminate',
|
|
1608
|
+
identity: { dev: currentStats.dev, ino: currentStats.ino },
|
|
1609
|
+
inspectionError: errorArg,
|
|
1610
|
+
};
|
|
1611
|
+
}
|
|
1612
|
+
if (!ownerMetadata) {
|
|
1205
1613
|
return {
|
|
1206
1614
|
state: Date.now() - stats.mtimeMs < initializationGraceMs
|
|
1207
1615
|
? 'recent-invalid'
|
|
@@ -1209,13 +1617,7 @@ export class UpgradeCoordinator {
|
|
|
1209
1617
|
identity: { dev: stats.dev, ino: stats.ino },
|
|
1210
1618
|
};
|
|
1211
1619
|
}
|
|
1212
|
-
|
|
1213
|
-
try {
|
|
1214
|
-
owner = parseTransactionMutationOwner(rawOwner);
|
|
1215
|
-
}
|
|
1216
|
-
catch {
|
|
1217
|
-
return { state: 'indeterminate', identity: { dev: stats.dev, ino: stats.ino } };
|
|
1218
|
-
}
|
|
1620
|
+
const owner = ownerMetadata.owner;
|
|
1219
1621
|
if (owner.uid !== this.uid
|
|
1220
1622
|
|| (expectedTokenHashArg !== undefined
|
|
1221
1623
|
&& !tokensEqual(owner.tokenHash, expectedTokenHashArg)))
|
|
@@ -1226,10 +1628,15 @@ export class UpgradeCoordinator {
|
|
|
1226
1628
|
state: ownerIdentity?.fingerprint === owner.fingerprint ? 'live' : 'stale',
|
|
1227
1629
|
identity: { dev: stats.dev, ino: stats.ino },
|
|
1228
1630
|
owner,
|
|
1631
|
+
ownerMetadata,
|
|
1229
1632
|
};
|
|
1230
1633
|
}
|
|
1231
|
-
catch {
|
|
1232
|
-
return {
|
|
1634
|
+
catch (errorArg) {
|
|
1635
|
+
return {
|
|
1636
|
+
state: 'indeterminate',
|
|
1637
|
+
identity: { dev: stats.dev, ino: stats.ino },
|
|
1638
|
+
inspectionError: errorArg,
|
|
1639
|
+
};
|
|
1233
1640
|
}
|
|
1234
1641
|
}
|
|
1235
1642
|
async reclaimStaleTransactionMutationDirectory(directoryArg, expectedTokenHashArg) {
|
|
@@ -1238,10 +1645,15 @@ export class UpgradeCoordinator {
|
|
|
1238
1645
|
if (current.state === 'absent')
|
|
1239
1646
|
return false;
|
|
1240
1647
|
if (current.state === 'indeterminate') {
|
|
1241
|
-
throw new Error('The upgrade transaction mutation owner cannot be verified safely.'
|
|
1648
|
+
throw new Error('The upgrade transaction mutation owner cannot be verified safely.', {
|
|
1649
|
+
cause: current.inspectionError,
|
|
1650
|
+
});
|
|
1242
1651
|
}
|
|
1243
1652
|
if (current.state !== 'stale')
|
|
1244
1653
|
return false;
|
|
1654
|
+
if (current.ownerMetadata) {
|
|
1655
|
+
await restoreOwnedDirectoryOwnerMetadata(directoryArg, current.ownerMetadata);
|
|
1656
|
+
}
|
|
1245
1657
|
await removeExactOwnedDirectory(directoryArg, {
|
|
1246
1658
|
identity: current.identity,
|
|
1247
1659
|
...(current.owner
|
|
@@ -1274,17 +1686,14 @@ export class UpgradeCoordinator {
|
|
|
1274
1686
|
if (stats.uid !== this.uid || (stats.mode & 0o077) !== 0) {
|
|
1275
1687
|
throw new Error(`Upgrade coordination owner path is not private: ${directoryArg}`);
|
|
1276
1688
|
}
|
|
1277
|
-
let
|
|
1689
|
+
let ownerMetadata;
|
|
1278
1690
|
try {
|
|
1279
|
-
|
|
1691
|
+
ownerMetadata = await inspectOwnedDirectoryOwnerMetadata(directoryArg, parseOwner);
|
|
1280
1692
|
}
|
|
1281
|
-
catch
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
}
|
|
1286
|
-
if (code !== 'ENOENT')
|
|
1287
|
-
throw errorArg;
|
|
1693
|
+
catch {
|
|
1694
|
+
return { state: 'indeterminate', identity: { dev: stats.dev, ino: stats.ino } };
|
|
1695
|
+
}
|
|
1696
|
+
if (!ownerMetadata) {
|
|
1288
1697
|
return {
|
|
1289
1698
|
state: Date.now() - stats.mtimeMs < initializationGraceMs
|
|
1290
1699
|
? 'recent-invalid'
|
|
@@ -1292,18 +1701,13 @@ export class UpgradeCoordinator {
|
|
|
1292
1701
|
identity: { dev: stats.dev, ino: stats.ino },
|
|
1293
1702
|
};
|
|
1294
1703
|
}
|
|
1295
|
-
|
|
1296
|
-
try {
|
|
1297
|
-
owner = parseOwner(ownerValue);
|
|
1298
|
-
}
|
|
1299
|
-
catch {
|
|
1300
|
-
return { state: 'indeterminate', identity: { dev: stats.dev, ino: stats.ino } };
|
|
1301
|
-
}
|
|
1704
|
+
const owner = ownerMetadata.owner;
|
|
1302
1705
|
try {
|
|
1303
1706
|
return {
|
|
1304
1707
|
state: await ownerIsLive(owner) ? 'live' : 'stale',
|
|
1305
1708
|
identity: { dev: stats.dev, ino: stats.ino },
|
|
1306
1709
|
owner,
|
|
1710
|
+
ownerMetadata,
|
|
1307
1711
|
};
|
|
1308
1712
|
}
|
|
1309
1713
|
catch {
|
|
@@ -1320,14 +1724,24 @@ export class UpgradeCoordinator {
|
|
|
1320
1724
|
return undefined;
|
|
1321
1725
|
throw errorArg;
|
|
1322
1726
|
}
|
|
1727
|
+
const stats = await plugins.fs.promises.lstat(directoryArg);
|
|
1728
|
+
const identity = { dev: stats.dev, ino: stats.ino };
|
|
1323
1729
|
try {
|
|
1324
1730
|
await writePrivateJson(plugins.path.join(directoryArg, ownerFileName), ownerArg);
|
|
1325
1731
|
await syncDirectory(plugins.path.dirname(directoryArg));
|
|
1326
|
-
return {
|
|
1732
|
+
return {
|
|
1733
|
+
directory: directoryArg,
|
|
1734
|
+
owner: ownerArg,
|
|
1735
|
+
identity,
|
|
1736
|
+
};
|
|
1327
1737
|
}
|
|
1328
1738
|
catch (errorArg) {
|
|
1329
|
-
|
|
1330
|
-
|
|
1739
|
+
try {
|
|
1740
|
+
await removeExactFailedOwnerPublication(directoryArg, identity);
|
|
1741
|
+
}
|
|
1742
|
+
catch (cleanupErrorArg) {
|
|
1743
|
+
throw new AggregateError([errorArg, cleanupErrorArg], 'Upgrade coordination owner publication failed and cleanup was incomplete.', { cause: errorArg });
|
|
1744
|
+
}
|
|
1331
1745
|
throw errorArg;
|
|
1332
1746
|
}
|
|
1333
1747
|
});
|
|
@@ -1338,22 +1752,14 @@ export class UpgradeCoordinator {
|
|
|
1338
1752
|
for (let attempt = 0; attempt < 4; attempt++) {
|
|
1339
1753
|
const created = await this.createOwnedDirectory(this.upgradeLockDirectory, owner);
|
|
1340
1754
|
if (created)
|
|
1341
|
-
return new UpgradeInstallationLock(created.directory, created.owner, (directoryArg, ownerArg, shouldReleaseArg) => this.releaseOwnedDirectory(directoryArg, ownerArg, shouldReleaseArg));
|
|
1755
|
+
return new UpgradeInstallationLock(created.directory, created.owner, (directoryArg, ownerArg, shouldReleaseArg) => this.releaseOwnedDirectory(directoryArg, ownerArg, created.identity, shouldReleaseArg));
|
|
1342
1756
|
const state = await this.inspectOwnedDirectory(this.upgradeLockDirectory);
|
|
1343
1757
|
if (state.state === 'live') {
|
|
1344
|
-
|
|
1345
|
-
try {
|
|
1346
|
-
currentOwner = parseOwner(await readPrivateJson(plugins.path.join(this.upgradeLockDirectory, ownerFileName)));
|
|
1347
|
-
}
|
|
1348
|
-
catch (errorArg) {
|
|
1349
|
-
if (errorArg.code === 'ENOENT')
|
|
1350
|
-
continue;
|
|
1351
|
-
throw errorArg;
|
|
1352
|
-
}
|
|
1758
|
+
const currentOwner = state.owner;
|
|
1353
1759
|
if (currentOwner.pid === owner.pid
|
|
1354
1760
|
&& currentOwner.fingerprint === owner.fingerprint
|
|
1355
1761
|
&& tokensEqual(currentOwner.tokenHash, owner.tokenHash))
|
|
1356
|
-
return new UpgradeInstallationLock(this.upgradeLockDirectory, currentOwner, (directoryArg, ownerArg, shouldReleaseArg) => this.releaseOwnedDirectory(directoryArg, ownerArg, shouldReleaseArg));
|
|
1762
|
+
return new UpgradeInstallationLock(this.upgradeLockDirectory, currentOwner, (directoryArg, ownerArg, shouldReleaseArg) => this.releaseOwnedDirectory(directoryArg, ownerArg, state.identity, shouldReleaseArg));
|
|
1357
1763
|
throw new Error(`Another ${currentCliName} upgrade is already running.`);
|
|
1358
1764
|
}
|
|
1359
1765
|
if (state.state === 'recent-invalid') {
|
|
@@ -1418,13 +1824,7 @@ export class UpgradeCoordinator {
|
|
|
1418
1824
|
await this.reclaimStaleOwnedDirectory(this.upgradeLockDirectory);
|
|
1419
1825
|
continue;
|
|
1420
1826
|
}
|
|
1421
|
-
|
|
1422
|
-
return parseOwner(await readPrivateJson(plugins.path.join(this.upgradeLockDirectory, ownerFileName)));
|
|
1423
|
-
}
|
|
1424
|
-
catch (errorArg) {
|
|
1425
|
-
if (errorArg.code !== 'ENOENT')
|
|
1426
|
-
throw errorArg;
|
|
1427
|
-
}
|
|
1827
|
+
return state.owner;
|
|
1428
1828
|
}
|
|
1429
1829
|
throw new Error(`The ${currentCliName} upgrade owner changed repeatedly during admission.`);
|
|
1430
1830
|
}
|
|
@@ -1442,7 +1842,7 @@ export class UpgradeCoordinator {
|
|
|
1442
1842
|
const created = await this.createOwnedDirectory(leaseDirectory, owner);
|
|
1443
1843
|
if (!created)
|
|
1444
1844
|
throw new Error(`The ${currentCliName} start admission token is already in use.`);
|
|
1445
|
-
const lease = new UpgradeStartLease(created.directory, created.owner, (directoryArg, ownerArg, shouldReleaseArg) => this.releaseOwnedDirectory(directoryArg, ownerArg, shouldReleaseArg));
|
|
1845
|
+
const lease = new UpgradeStartLease(created.directory, created.owner, (directoryArg, ownerArg, shouldReleaseArg) => this.releaseOwnedDirectory(directoryArg, ownerArg, created.identity, shouldReleaseArg));
|
|
1446
1846
|
try {
|
|
1447
1847
|
const upgradeOwnerAfter = await this.readLiveUpgradeOwner();
|
|
1448
1848
|
if (upgradeOwnerAfter) {
|
|
@@ -1517,35 +1917,50 @@ export class UpgradeCoordinator {
|
|
|
1517
1917
|
createdAt: Date.now(),
|
|
1518
1918
|
};
|
|
1519
1919
|
while (true) {
|
|
1520
|
-
|
|
1521
|
-
|
|
1920
|
+
const acquisition = await this.withOwnershipMutationGuard(lockDirectory, async () => {
|
|
1921
|
+
try {
|
|
1922
|
+
await plugins.fs.promises.mkdir(lockDirectory, { mode: 0o700 });
|
|
1923
|
+
}
|
|
1924
|
+
catch (errorArg) {
|
|
1925
|
+
if (errorArg.code !== 'EEXIST')
|
|
1926
|
+
throw errorArg;
|
|
1927
|
+
const current = await this.inspectTransactionMutationDirectory(lockDirectory, owner.tokenHash);
|
|
1928
|
+
return { state: 'contended', current };
|
|
1929
|
+
}
|
|
1930
|
+
const lockStats = await plugins.fs.promises.lstat(lockDirectory);
|
|
1931
|
+
const lockIdentity = { dev: lockStats.dev, ino: lockStats.ino };
|
|
1522
1932
|
try {
|
|
1523
1933
|
await writePrivateJson(plugins.path.join(lockDirectory, ownerFileName), owner);
|
|
1934
|
+
return { state: 'acquired' };
|
|
1524
1935
|
}
|
|
1525
1936
|
catch (errorArg) {
|
|
1526
|
-
|
|
1937
|
+
try {
|
|
1938
|
+
await removeExactFailedOwnerPublication(lockDirectory, lockIdentity);
|
|
1939
|
+
}
|
|
1940
|
+
catch (cleanupErrorArg) {
|
|
1941
|
+
throw new AggregateError([errorArg, cleanupErrorArg], 'Upgrade transaction mutation owner publication failed and cleanup was incomplete.', { cause: errorArg });
|
|
1942
|
+
}
|
|
1527
1943
|
throw errorArg;
|
|
1528
1944
|
}
|
|
1945
|
+
});
|
|
1946
|
+
if (acquisition.state === 'acquired')
|
|
1529
1947
|
break;
|
|
1948
|
+
const current = acquisition.current;
|
|
1949
|
+
if (current.state === 'absent')
|
|
1950
|
+
continue;
|
|
1951
|
+
if (current.state === 'stale') {
|
|
1952
|
+
await this.reclaimStaleTransactionMutationDirectory(lockDirectory, owner.tokenHash);
|
|
1953
|
+
continue;
|
|
1530
1954
|
}
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
await this.reclaimStaleTransactionMutationDirectory(lockDirectory, owner.tokenHash);
|
|
1539
|
-
continue;
|
|
1540
|
-
}
|
|
1541
|
-
if (current.state === 'indeterminate') {
|
|
1542
|
-
throw new Error('The upgrade transaction mutation owner cannot be verified safely.');
|
|
1543
|
-
}
|
|
1544
|
-
if (Date.now() >= deadline) {
|
|
1545
|
-
throw new Error('Timed out waiting to update the upgrade transaction.');
|
|
1546
|
-
}
|
|
1547
|
-
await new Promise((resolve) => setTimeout(resolve, 25));
|
|
1955
|
+
if (current.state === 'indeterminate') {
|
|
1956
|
+
throw new Error('The upgrade transaction mutation owner cannot be verified safely.', {
|
|
1957
|
+
cause: current.inspectionError,
|
|
1958
|
+
});
|
|
1959
|
+
}
|
|
1960
|
+
if (Date.now() >= deadline) {
|
|
1961
|
+
throw new Error('Timed out waiting to update the upgrade transaction.');
|
|
1548
1962
|
}
|
|
1963
|
+
await new Promise((resolve) => setTimeout(resolve, 25));
|
|
1549
1964
|
}
|
|
1550
1965
|
let result;
|
|
1551
1966
|
let operationError;
|
|
@@ -1559,19 +1974,15 @@ export class UpgradeCoordinator {
|
|
|
1559
1974
|
try {
|
|
1560
1975
|
await this.withOwnershipMutationGuard(lockDirectory, async () => {
|
|
1561
1976
|
const stats = await plugins.fs.promises.lstat(lockDirectory);
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
}
|
|
1566
|
-
catch (errorArg) {
|
|
1567
|
-
if (errorArg.code === 'ENOENT') {
|
|
1568
|
-
throw new Error('The upgrade transaction mutation lock ownership changed unexpectedly.', { cause: errorArg });
|
|
1569
|
-
}
|
|
1570
|
-
throw errorArg;
|
|
1977
|
+
const metadata = await inspectOwnedDirectoryOwnerMetadata(lockDirectory, parseTransactionMutationOwner);
|
|
1978
|
+
if (!metadata) {
|
|
1979
|
+
throw new Error('The upgrade transaction mutation lock ownership changed unexpectedly.');
|
|
1571
1980
|
}
|
|
1981
|
+
const currentOwner = metadata.owner;
|
|
1572
1982
|
if (!exactPrimitiveRecordMatches(currentOwner, owner)) {
|
|
1573
1983
|
throw new Error('The upgrade transaction mutation lock ownership changed unexpectedly.');
|
|
1574
1984
|
}
|
|
1985
|
+
await restoreOwnedDirectoryOwnerMetadata(lockDirectory, metadata);
|
|
1575
1986
|
await removeExactOwnedDirectory(lockDirectory, {
|
|
1576
1987
|
identity: { dev: stats.dev, ino: stats.ino },
|
|
1577
1988
|
assertOwner: (valueArg) => {
|
|
@@ -2152,4 +2563,4 @@ export const parseUpgradeWorkerPayload = (payloadArg, tokenArg) => {
|
|
|
2152
2563
|
: {}),
|
|
2153
2564
|
};
|
|
2154
2565
|
};
|
|
2155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy51cGdyYWRlY29vcmRpbmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9jbGFzc2VzLnVwZ3JhZGVjb29yZGluYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQ0wscUJBQXFCLEdBR3RCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUNMLDRCQUE0QixFQUM1Qiw2QkFBNkIsRUFDN0IsMEJBQTBCLEdBQzNCLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsQ0FBVSxDQUFDO0FBQ3JELE1BQU0sbUJBQW1CLEdBQUcsMEJBQTBCLENBQUM7QUFDdkQsTUFBTSxDQUFDLE1BQU0sMENBQTBDLEdBQUcsQ0FBVSxDQUFDO0FBQ3JFLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHO0lBQzVDLFdBQVcsRUFBRSxzQ0FBc0M7SUFDbkQsT0FBTyxFQUFFLFFBQVE7SUFDakIsaUJBQWlCLEVBQUUsQ0FBQztJQUNwQixPQUFPLEVBQUUsTUFBTTtJQUNmLGVBQWUsRUFBRSxVQUFVO0NBQ25CLENBQUM7QUFDWCxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRztJQUM1QyxXQUFXLEVBQUUsS0FBSztJQUNsQixPQUFPLEVBQUUsUUFBUTtJQUNqQixpQkFBaUIsRUFBRSxDQUFDO0lBQ3BCLE9BQU8sRUFBRSxLQUFLO0lBQ2QsZUFBZSxFQUFFLFVBQVU7Q0FDbkIsQ0FBQztBQUNYLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLDhCQUE4QixDQUFDLFdBQVc7SUFDakcsQ0FBQyxDQUFDLDhCQUE4QixDQUFDLE9BQU87SUFDeEMsQ0FBQyxDQUFDLDhCQUE4QixDQUFDLE9BQU8sQ0FBQztBQUMzQyxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUM7QUFDbkMsTUFBTSxvQkFB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
|
|
2566
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy51cGdyYWRlY29vcmRpbmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9jbGFzc2VzLnVwZ3JhZGVjb29yZGluYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQ0wscUJBQXFCLEdBR3RCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUNMLDRCQUE0QixFQUM1Qiw2QkFBNkIsRUFDN0IsMEJBQTBCLEdBQzNCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUNMLDBDQUEwQyxFQUMxQywrQkFBK0IsR0FDaEMsTUFBTSxtQ0FBbUMsQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxDQUFVLENBQUM7QUFDckQsTUFBTSxtQkFBbUIsR0FBRywwQkFBMEIsQ0FBQztBQUN2RCxNQUFNLENBQUMsTUFBTSwwQ0FBMEMsR0FBRyxDQUFVLENBQUM7QUFDckUsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUc7SUFDNUMsV0FBVyxFQUFFLHNDQUFzQztJQUNuRCxPQUFPLEVBQUUsUUFBUTtJQUNqQixpQkFBaUIsRUFBRSxDQUFDO0lBQ3BCLE9BQU8sRUFBRSxNQUFNO0lBQ2YsZUFBZSxFQUFFLFVBQVU7Q0FDbkIsQ0FBQztBQUNYLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHO0lBQzVDLFdBQVcsRUFBRSxLQUFLO0lBQ2xCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLGlCQUFpQixFQUFFLENBQUM7SUFDcEIsT0FBTyxFQUFFLEtBQUs7SUFDZCxlQUFlLEVBQUUsVUFBVTtDQUNuQixDQUFDO0FBQ1gsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEtBQUssOEJBQThCLENBQUMsV0FBVztJQUNqRyxDQUFDLENB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
|