feat(seasonpass): bump mainnet image to git-52e16aa (deploy #309 tx-tracker + #306+#308)#3497
Merged
Merged
Conversation
…racker GQL-out-of-txn, stacked on #306+#308) #309 is stacked on #308 -> #306, so this single tag bump ships all three on top of the currently-live 887fe57: 485b172 raise DB pool 30 -> 60 [#306] 887fe57 API: call cleared-stage RPC outside the DB transaction [#308] 52e16aa tracker: run tx-tracker GQL outside the DB transaction [#309] #309 fixes the same anti-pattern as #308, in the tx-tracker: track_tx() held a transaction open across its per-claim headless GQL batch, sitting idle-in-transaction for minutes (observed 448s live). That pinned the xmin horizon and blocked autovacuum on claim/user_season_pass (dead tuples piling into the hundreds of thousands). It split into read -> GQL (no txn) -> write, with the write guarded (id + tx_id + still-unsettled status) so a settled SUCCESS/FAILURE is never clobbered by a stale GQL result. code-reviewer verdict on #309: merge — logic correct, session/pool safe, no money-path regression. The status guard was the one recommended hardening and is included here. No migration coupling: the #307 partial index is already applied live and the code works with or without it. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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
Bumps the mainnet
seasonpass.image.tagfromgit-887fe57togit-52e16aa.SeasonPass #309 (
tx-tracker GQL-out-of-txn) is stacked on #308 → #306, so this single tag bump ships all three on top of the currently-live887fe57:485b172887fe5752e16aaThe currently-live
887fe57already includes #306+#308; this adds #309 on top, so the API behaviour is unchanged and only the tracker gains the fix.Why (#309)
Found while investigating the mainnet seasonpass DB after the #308 deploy.
tx_tracker.track_tx()opened a session,SELECTed up to 200 unsettled claims, then held that transaction open while it ran a per-claim headless GQL batch — sitting idle-in-transaction for 448s (observed live viapg_stat_activity) when a node was slow. It's a plainSELECT(noFOR UPDATE) so it blocked nothing and raised no alarms, but the long-lived transaction pinned the xmin horizon and blocked autovacuum onclaim/user_season_pass(dead tuples in the hundreds of thousands;user_season_passhad never been autovacuumed).#309 splits it into read → GQL (no txn) → write, with the write guarded (
id+tx_id+ still-STAGED/INVALID) so a settledSUCCESS/FAILUREis never clobbered by a stale GQL result.Review
code-reviewerverdict on #309: merge — logic correct, read/write sessions independent & pool-safe, no money-path regression. The one recommended hardening (the still-unsettled status guard on the write) is included in52e16aa.Migrations
None coupled. The #307 partial index is already applied live; the code works with or without it. Migrations are applied manually (no init-container/Job).
Deploy
git-52e16aaimage build was triggered by the #309 force-push and may still be in progress — confirm the image is present on Docker Hub before syncing (else ImagePullBackOff). ArgoCD9c-external-serviceshas no auto-sync; after merge:Note: season-pass #309 is a stacked PR (base
fix/gql-outside-db-txn); for repo hygiene merge the stack in order #306 → #308 → #309 to main afterwards.🤖 Generated with Claude Code