Revert "chore(deps): bump go-openaudio ETL to halt-on-block-error (#883)"#885
Merged
Merged
Conversation
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.
Summary
Reverts #883, pinning go-openaudio back to
v1.3.1-0.20260529221831-4d1c9dfdfb52.The halt-on-error behavior from upstream go-openaudio#323 is correct in isolation, but is incompatible with the current dual-run state: Python and api-side ETL both write to overlapping tables, and the on-chain plays bridge from #881 doesn't ON CONFLICT-protect against rows Python has already written. So:
continue— ETL was effectively a no-op on essentially every block since feat(indexer): bridge on-chain plays into the plays table #881 deployed, but block_diff stayed green because Python's writes keptMAX(blocks.height)moving. Block-level data loss masked by Python carrying the load.processBlock failedon block 25415514, reproducibly across pod restarts because Python writes the same plays in the same block before the ETL gets to it. Once fix(indexer): errgroup.WithContext so ETL halt actually exits the process #884 (the api-wrapper fix that makes that halt actually exit the process) ships, every pod would crashloop the moment it tries to index any recent block.So shipping #883 + #884 without first handling the cross-writer collision points would convert today's silent wedge into a continuous outage that takes the parity jobs (
IndexChallengesJob,UserListeningHistory,HourlyPlayCounts, etc.) down with the ETL. Strictly worse.Plan
blockstable. Then sweep anywhere else ETL and Python touch the same row.Bump details (revert direction)
github.com/OpenAudio/go-openaudiov1.3.1-0.20260529230137-819100b28c94v1.3.1-0.20260529221831-4d1c9dfdfb52github.com/OpenAudio/go-openaudio/pkg/etlv1.3.1-0.20260529230137-819100b28c94v1.3.1-0.20260529221831-4d1c9dfdfb52Test plan
go build ./...clean.processBlock failedhalt log on block 25415514 (it'll go back to silentcontinue).🤖 Generated with Claude Code