[DO NOT MERGE] hotfix(1.3.0): coerce nil ProverAddresses — chain-halt CI build#314
Closed
raymondjacobson wants to merge 1 commit into
Closed
[DO NOT MERGE] hotfix(1.3.0): coerce nil ProverAddresses — chain-halt CI build#314raymondjacobson wants to merge 1 commit into
raymondjacobson wants to merge 1 commit into
Conversation
…geProof
A StorageProof tx with empty/nil ProverAddresses caused pgx to serialize
the value as SQL NULL, violating the NOT NULL constraint on
storage_proofs.prover_addresses. That aborted the FinalizeBlock
transaction (SQLSTATE 25P02), Commit resolved to ROLLBACK, and CometBFT
panicked with CONSENSUS FAILURE — halting the chain deterministically on
every validator at block 25229900.
Coerce nil to []string{} before insert so the column receives '{}'
instead of NULL, allowing the block to commit on the next restart.
Co-Authored-By: Claude Opus 4.7 <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.
Purpose
Do not merge this PR. It exists only to make CI build a Docker image of `v1.3.0` + the chain-halt fix from #313, so the resulting SHA-tagged image can be promoted to `:stable` manually.
Branch: `hotfix/v1.3.0-pos-nil-prover-addresses`
Base of branch: tag `v1.3.0` (`ad0b9b3`)
Cherry-picked from: #313 (`a0c179e`)
Diff against `v1.3.0` is a single one-file change in `pkg/core/server/pos.go`.
CI caveat
`ci.yml` runs on `pull_request` targeting `main` and uses `ref: ${{ github.ref }}` (the `refs/pull/N/merge` ref), so the image CI builds for this PR is actually `main + fix`, not `v1.3.0 + fix`. If you need a true `v1.3.0 + fix` image, we'll need a different path (e.g. add `workflow_dispatch` to `ci.yml` keyed on a branch name, or tag-then-retag via `tag-released.yml`).
Context
Prod chain halted at block 25229899 (2026-05-26 09:47:22 UTC). Every validator panics in `FinalizeBlock` for height 25229900 because a `StorageProof` tx in that block has nil `ProverAddresses`, which pgx serializes as SQL `NULL` and trips the `NOT NULL` constraint on `storage_proofs.prover_addresses`. Full root cause in #313.
🤖 Generated with Claude Code