Repository navigation
feat(cli): a render that finds a file missing says which kind of file, never its path - #6742
Merged
Merged
Conversation
Contributor
Edit accuracy: accurate 271 (base branch 271), smooth 144 of thoseThe gate passes. Quarantined, measured but not gated (0) |
Contributor
There was a problem hiding this comment.
Verdict: APPROVE · 0 blocker · 1 important · 0 nits · head 223761de
The classifier sends only fixed names, never a path, and every directory name it matches is one the producer and engine actually create.
- important: Studio renders still emit
render_errorwith nomissing_path_kind.emitStudioRenderError(packages/cli/src/server/studioRenderTelemetry.ts:124) callstrackRenderErrorwithout it, so anENOENTin a studio-server render reports nothing. If the failures you're chasing come through studio, the data stays empty. Fix: addmissingPathKind: missingPathKind(err)there.
Scope
- Checked against the real names:
hfcache-v8-(extractionCache.ts),__hyperframes_video_frames,captured-frames,capture-attempt-N/worker-Nandretry-N-batch-N-worker-N(captureStage.ts),capture-calibration(captureCost.ts),compiled,work-<uuid>. missingPathKind.test.tsis new, so the fails-without-fix line holds.- CI at this head is green, including Windows render verification.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Some renders fail partway through with
ENOENT: a frame file the render wrote, or meant to read, is gone. The error's words are redacted before they reach telemetry, so today nothing says which file went missing, and so nothing says who removed it: the render's own cleanup, the shared extraction cache's eviction, the sweep of abandoned render folders, or something outside the CLI.render_errornow carriesmissing_path_kind, a name from a fixed list, never the path:missing_path_kindhfcache-…)extract_cachevideo_framescaptured_framesworker_framescalibrationcompiledwork_dirotherIt reads the path from the error or its causes (
.pathon theENOENT, or the quoted path in its message), and is absent when nothing was missing.Why under 100 lines
It is one classifier and one event field. Which file kind goes missing decides the fix, so the field ships first and the fix follows the data.
Testing
fails without the fix:
missingPathKind(packages/cli/src/telemetry/missingPathKind.test.ts) does not exist on main; its 10 cases cover each kind with Windows and POSIX paths, anENOENTwrapped as a cause, a message-onlyENOENT, and errors that are notENOENT.missingPathKind.test.ts: 10 passed, 3 runs in a row.events.test.ts: 81 passed.tsc --noEmit, format, comment ratchet, the pre-commit gates: clean.What I did NOT exercise
ENOENT: I could not make one happen on Windows or Linux runners (long streaming renders, concurrent video renders plus a snapshot, a 50 MB extraction-cache cap). That is why this field exists.render_errorfrom this path.