A cache hit drops the symbolic links in a task's outputs
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 45/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- rust
- Bereich
- build-system
Rechercherichtung
Start with create_output_archive in crates/vt/src/session/cache/archive.rs and walk_glob_files in crates/vt/src/session/execute/glob.rs; the issue describes how both handle symbolic links. Reproduce with the provided task, then check the cache archive and glob behavior for links. Done when a cache hit restores links matched by an output glob; automatic tracking of created links is explicitly left open.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Written by an AI agent (Claude) on behalf of @jasonkuhrt.
A cache hit leaves out the symbolic links a task created in its outputs, so the replayed output differs from the one the task produced.
We hit it with Nitro's server build: its dependency tracer (nf3) writes server/node_modules/tslib -> .nf3/[email protected]. After a hit, the link is gone, and the replayed server resolves tslib outside its own output, or not at all.
Repro. A package with this script and task:
// make-link.mjs
import fs from 'node:fs';
fs.mkdirSync('dist/.store/pkg', { recursive: true });
fs.writeFileSync('dist/.store/pkg/index.js', 'export default 42;');
fs.symlinkSync('.store/pkg', 'dist/pkg');
// vite.config.ts
export default defineConfig({
run: {
tasks: {
build: {
command: 'node make-link.mjs',
cache: { output: [{ auto: true }, 'dist/**'] },
},
},
},
});
vp run build, rm -rf dist, vp run build again: the second run is a cache hit, dist/.store/pkg/index.js is back, and dist/pkg is missing.
Causes (at 0346c268):
create_output_archivereads each output withstd::fs::metadata, which follows links, and archives regular files only: a directory link is skipped, and a file link would be stored as a copy of its target.walk_glob_fileskeeps onlyis_file()entries, so anoutputglob never lists a link.- Automatic output tracking never sees a link being created: fspy has no interceptor for
symlink/symlinkat(preload interceptions, and the Linux syscall handler), norCreateSymbolicLinkWon Windows. So even with 1 and 2 fixed,{ auto: true }alone can't list a created link; it takes anoutputglob that matches it.
A fix for 1 and 2 follows in a PR. 3 is left open here.
- Vorherrschende Sprache
- Rust
- Sterne
- 480
- Forks
- 50
- Ø Merge
- 1 T. 3 Std.
- Gemergte PRs (30 T.)
- 62
Entwicklungsumgebung
Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus voidzero-dev/vite-task
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
voidzero-dev/vite-task#888 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 58/100
voidzero-dev/vite-task#886 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 72/100
voidzero-dev/vite-task#881 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
voidzero-dev/vite-task#879 ·
Maintainer antworten meist innerhalb von 1 Tag
-
vp run hangs after a failure when a cancelled task's detached descendant holds its IPC connectionOffen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
voidzero-dev/vite-task#878 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in voidzero-dev/vite-task
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 73/100
Maintainer antworten meist innerhalb von 1 Tag
-
C-bug needs-triage O-UEFI T-libs
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
bug priority: P3 ready-for-agent
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
shep-pm/shep-kelpie#1332 ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
ramensoftware/windhawk#1156 · 2 Kommentare ·
-
area/cli complexity:trivial good first issue Stellar Wave test
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Externalize-Labs/externalize#23 ·
Maintainer antworten meist innerhalb von 1 Tag