Existence probes of pnpm-workspace.yaml become content inputs, so any manifest edit misses every task
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
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- rust, vite, yaml
- Bereich
- build-system, tooling
Rechercherichtung
Start with packages/vite/src/node/server/searchRoot.ts, the Unix access/stat interceptions, and crates/vt/src/session/execute/fingerprint.rs to trace how workspace-root existence checks become content inputs. Reproduce with a small pnpm workspace and repeated vp run -r test executions, then verify the fix distinguishes probe-only existence checks from tasks that read manifest contents. Done means unrelated edits no longer invalidate probe-only tasks, while actual reads and marker creation or deletion still affect caching.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
In a pnpm workspace, every task that loads a Vite config records pnpm-workspace.yaml (and lerna.json) in every ancestor directory as a content input. An edit to an unrelated line of pnpm-workspace.yaml, for example a new catalog entry that no package uses, then misses the cache of every task. In our 199-task monorepo one such edit dropped a repeat run to 1 cache hit out of 184 tasks.
The reads come from Vite's searchForWorkspaceRoot (packages/vite/src/node/server/searchRoot.ts), which calls fs.existsSync on those names in each ancestor to find the root. fspy records access and stat as READ (crates/fspy_preload_unix/src/interceptions/access.rs, stat.rs; AccessMode in crates/fspy_shared/src/ipc/mod.rs has only READ, WRITE and READ_DIR), and the fingerprint then hashes the file content (crates/vt/src/session/execute/fingerprint.rs). So a probe that only asks "does this file exist" becomes a dependency on the file's bytes.
Repro with vite-plus 1.3.0:
- A workspace with three packages, each with a
vite.config.tsand atesttask, and a rootpnpm-workspace.yamlwithpackages: [packages/*]and acatalog:block. vp run -r testtwice. The second run is all cache hits.- Add an unused line to the catalog, for example
left-pad: 1.3.0, and runvp run -r testagain. Every task misses with'pnpm-workspace.yaml' modified.
ignoreInput from vite-plus does not fix this correctly. It drops the path for the whole task, so a task whose own code reads the manifest (a catalog lint, for example) would replay a stale result, and creating or deleting a marker file, which can change the workspace root Vite selects, would no longer invalidate anything.
A fix that keeps both properties would record existence probes separately: fingerprint whether the path exists for a probe-only access, and promote the path to a content input when the same task also opens and reads it. stat may need care, because some callers use size or mtime.
- Vorherrschende Sprache
- Rust
- Sterne
- 478
- Forks
- 48
- Ø Merge
- 1 T. 3 Std.
- Gemergte PRs (30 T.)
- 72
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 68/100
voidzero-dev/vite-task#858 · 1 Reaktion ·
Maintainer antworten meist innerhalb von 1 Tag
-
Concurrent cache hits for the same task fail to restore outputs with "File exists (os error 17)"Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
voidzero-dev/vite-task#846 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Windows: automatic filesystem tracking makes Git/MSYS sh.exe fail with MapViewOfFileEx error 487Offen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 18/100
voidzero-dev/vite-task#830 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
voidzero-dev/vite-task#822 · 1 Kommentar · 2 Reaktionen ·
Maintainer antworten meist innerhalb von 1 Tag
-
Let tools mark cache directories with CACHEDIR.TAGEvtl. vergeben @lifeiscontent hat das vor 16 Tagen übernommen. Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
voidzero-dev/vite-task#793 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in voidzero-dev/vite-task
Ähnliche Issues
-
`image_generation`: `max_retries` is ignored for OpenAI-compatible providers (always 2 retries)Evtl. vergeben @ericz7900 hat das heute übernommen. Offenllm translation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 77/100
Maintainer antworten meist innerhalb von 1 Tag
-
[Package Request]: LificOffenHelp-Wanted Needs-Triage Package-Request
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 67/100
microsoft/winget-pkgs#456324 ·
Maintainer antworten meist innerhalb von 1 Tag
-
ai_p2
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
ClickHouse/ClickHouse#126833 ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
area/runtime good first issue size/S type/refactor
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
lorica-labs/volant#681 ·
Maintainer antworten meist innerhalb von 1 Tag