Fix: verschachtelte Entpack-Fortschritte wurden bei jedem Lauf verworfen
Der Resume-Prune validiert Eintraege gegen die Top-Level-Archiv-Kandidaten auf der Platte. Nested-Archiv-Schluessel (nested:<name>) haben dort kein Gegenstueck, also wurden sie bei JEDEM extractPackageArchives-Aufruf geloescht — verschachtelte Archive wurden beim Resume erneut entpackt. nested:-Schluessel werden im Prune jetzt uebersprungen (sie werden mit dem Rest geleert, wenn das Paket fertig ist).
This commit is contained in:
parent
3c33b988c3
commit
61a830475b
@ -2883,6 +2883,13 @@ export async function extractPackageArchives(options: ExtractOptions): Promise<{
|
|||||||
const resumeCompletedAtStart = resumeCompleted.size;
|
const resumeCompletedAtStart = resumeCompleted.size;
|
||||||
const allCandidateNames = new Set(allCandidates.map((archivePath) => archiveNameKey(path.basename(archivePath))));
|
const allCandidateNames = new Set(allCandidates.map((archivePath) => archiveNameKey(path.basename(archivePath))));
|
||||||
for (const archiveName of Array.from(resumeCompleted.values())) {
|
for (const archiveName of Array.from(resumeCompleted.values())) {
|
||||||
|
// Nested-archive progress (keyed "nested:<name>") has no top-level candidate on
|
||||||
|
// disk to validate against, so it must NOT be pruned here — otherwise every
|
||||||
|
// extractPackageArchives call wiped it and nested archives were re-extracted on
|
||||||
|
// resume. It is cleared together with the rest once the package fully completes.
|
||||||
|
if (archiveName.startsWith("nested:")) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (!allCandidateNames.has(archiveName)) {
|
if (!allCandidateNames.has(archiveName)) {
|
||||||
resumeCompleted.delete(archiveName);
|
resumeCompleted.delete(archiveName);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user