fix: apo ir-blob transient read failures + deterministic harness timing#48
Merged
Conversation
…ness timing Caught by the windows-installer CI runner: the e2e blob test measured -2.46 dB instead of -6 — the format-lock blob read failed transiently on the fresh runner (a just-renamed file can be held by an on-access scanner), the chain fell back to unity passthrough, and the worker's first tick attached the IR mid-tone, splitting the analysis window. Three layers: - load_ir_blob retries briefly (5 x 10 ms) before giving up — init and worker context only, never the RT callback; - the worker only latches the blob generation once the read SUCCEEDS; it previously latched on failure too, which would have disabled convolution until the next IR change on a real user's box with an on-access scanner (production bug, not just test flake); - the hires harness settles 150 ms after lock before driving audio, so a worker-side rebuild can't land mid-tone on a slow runner (the tight process loop runs faster than real time).
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.
The windows-installer runner caught a real one: the e2e blob test measured −2.46 dB instead of −6 because the format-lock blob read failed transiently on the fresh runner (a just-renamed file can be briefly unreadable while an on-access scanner holds it), the chain fell back to unity passthrough, and the worker attached the IR mid-tone — splitting the analysis window across two chain states.
Fixes, three layers:
load_ir_blobretries briefly (5×10 ms) — init/worker context only, never the RT callback;Verified: 27 serial APO tests green natively on the Windows VM at this commit;
make checkgreen on Linux. Merge gated on CI.