Repository navigation
analysis: don't keep re-analyzing a track whose file is missing - #99
Merged
Merged
Conversation
The web UI asks for a track's waveform on every render, and each request for an unanalyzed track queued an analysis. For a track whose file is missing, every one of those ran ffmpeg and failed the same way: a test session logged 14 failed runs in two minutes for one missing track. Queueing now checks that the file exists. A missing one is skipped and the track flagged as missing in the library (shown in the web UI); the check runs each time, so a file that comes back is analyzed then. The lazy analysis a deck's request triggers skips missing files too.
Opening a missing track in the web UI's track drawer asks for its waveform and beat grid, and each request ran an on-demand analysis that failed in ffmpeg (three at a time in a test session). On-demand analysis now skips a missing file the same way queued analysis does; cached or imported analysis is still served.
vynulldev
force-pushed
the
missing-file-analysis
branch
from
October 18, 2026 20:47
00f9f3a to
5aa32dd
Compare
vynulldev
marked this pull request as ready for review
October 18, 2026 20:48
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.
What & why
The web UI asks for a track's waveform each time it renders the row, and for a track with no analysis yet every request queued one. When the track's file is missing (an imported path that doesn't exist on this machine), each of those analyses ran ffmpeg and failed the same way. A CDJ test session with one missing track logged 14 failed analyses in two minutes, and it would carry on for as long as the row stayed on screen.
New tests check that repeated requests for a missing file queue nothing and flag the track, that the track is queued once its file is back, and that on-demand analysis skips it; they fail without the fix. The existing queue test now uses real temporary files, since it relied on paths that don't exist. Conformance against rekordbox 7.2.19 is unchanged (3,054 of 4,250 exact, none gained or lost).
Hardware testing
Checklist
go build ./...,go vet ./..., andgo test ./...passgofmt -l .is cleanGPL-3.0-or-later)