Skip to content

fix(mediorum): keep audio analysis from completing uploads - #570

Merged
raymondjacobson merged 1 commit into
mainfrom
codex/fix-audio-analysis-upload-completion
Sep 8, 2026
Merged

raymondjacobson merged 1 commit into
mainfrom
codex/fix-audio-analysis-upload-completion

Conversation

@raymondjacobson

Copy link
Copy Markdown
Contributor

Audio analysis can publish an audio upload as done before its CID is persisted. During inline analysis, transcodeFullAudio has populated only the in-memory results. Successful analysis reloads the older database row and writes done with no CID; transcode writes the complete results afterward. Clients polling between these operations can publish a CIDless track. Core can expose the intermediate operation across block boundaries.

Keep the overall upload status owned by transcode completion, which already persists results after required attestation. Both analysis success and failure now refresh the persisted row and update only analysis fields, preserving upload status, transcode results, and mirrors. Failed analysis remains non-blocking for transcode completion.

Validation:

  • Added six cases checking persisted rows and operation payloads for successful/failed analysis on busy, done, and error uploads.
  • Extended the upload integration test to reject any done operation without a 320 CID.
  • gofmt and git diff --check pass. The Docker-based Mediorum suite must run in CI; Docker is unavailable locally.

This fixes a source-level mechanism, not an independently verified attribution of the production incidents. The premature write dates to #120; #364 retained peer broadcasts with Core writes disabled by default, and #366 later removed peer transport. July onset needs deployment/flag history. Existing CIDless track metadata and stuck transcodes require separate repair/investigation.

Related: AudiusProject/apps#14585

@raymondjacobson
raymondjacobson merged commit 88de83c into main Sep 8, 2026
5 checks passed
@raymondjacobson
raymondjacobson deleted the codex/fix-audio-analysis-upload-completion branch September 8, 2026 18:37
rickyrombo added a commit that referenced this pull request Sep 15, 2026
Unit tests pin each piece of content auth; nothing ran the whole chain. This
uploads audio over tus with an asserted user to one node, waits for the
attestation to commit before the upload reads done, and validates track writes
at a different node's mempool: the owner's create passes, another user naming
the same cid is rejected, an unattested cid is rejected, and edits that resend
the cids (as the web client does) keep passing.

Also pins that an audio upload naming no user is refused at tus create, and
it caught the pre-#570 done-without-cid race on a stale devnet image.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
rickyrombo added a commit that referenced this pull request Sep 16, 2026
…et (#574)

Unit tests pin each piece of content auth; nothing ran the whole chain. This
uploads audio over tus with an asserted user to one node, waits for the
attestation to commit before the upload reads done, and validates track writes
at a different node's mempool: the owner's create passes, another user naming
the same cid is rejected, an unattested cid is rejected, and edits that resend
the cids (as the web client does) keep passing.

Also pins that an audio upload naming no user is refused at tus create, and
it caught the pre-#570 done-without-cid race on a stale devnet image.

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant