fix(mediorum): restore worker identity at transcode completion - #571
Closed
raymondjacobson wants to merge 3 commits into
Closed
fix(mediorum): restore worker identity at transcode completion#571raymondjacobson wants to merge 3 commits into
raymondjacobson wants to merge 3 commits into
Conversation
raymondjacobson
marked this pull request as ready for review
September 8, 2026 19:50
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.
After #570, main-branch CI repeatedly completed an upload with an empty
transcoded_by, failing both worker attribution and the transcode statistics assertions inTestUploadFile.A mirror worker can read the initial upload row, then persist that whole snapshot after the transcode worker has written its identity with
busy. Completion reloads the row and used to inherit that now-empty identity. Previously, analysis failure wrote the in-memory upload and could incidentally restore the identity; #570 correctly stopped analysis from publishing the overall upload state and removed that incidental repair.Persist the completing worker's identity alongside its CID, timestamp, and
donestatus. Keep the CIDless fix intact: analysis still cannot complete the upload. This is a narrow correction for transcode attribution, not a general solution to concurrent full-row snapshot writes.Validation:
gofmtandgit diff --checkpass. Docker is unavailable locally, so tests run through the repository CI harness.CI now captures container state, resource usage, and node logs before teardown when integration fails. The run with those diagnostics passed all build and test jobs with unchanged application code. Integration completed in 35.454 seconds;
TestBlockCreation, which previously failed its 300-second readiness wait, passed in 0.53 seconds: https://github.com/OpenAudio/go-openaudio/actions/runs/34270220380.The original merged run passed on its third attempt, consistent with a timing-dependent failure. The deterministic test establishes the bug independently of that intermittent upload test.
The passing rerun establishes that the integration failure is intermittent, but does not establish its root cause. No readiness timeout was increased and no test was disabled. The original failed run has no retained node logs, so attributing it to a specific node crash, resource limit, or startup race would be speculation.