Skip to content

store: 17→18 index check before tx.head open - #160

Merged
reardencode merged 3 commits into
masterfrom
store/schema18-check-before-head
Aug 20, 2026
Merged

store: 17→18 index check before tx.head open#160
reardencode merged 3 commits into
masterfrom
store/schema18-check-before-head

Conversation

@rearden-grok

@rearden-grok rearden-grok Bot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Store::open ran the schema-17 index refuse after TxTable::open. Wiping tx.head on a v17 meta then triggered a full MPHF rebuild; the new occupancy made schema17_index_data_present true, so open refused and never rewrote meta to 18.

Move the 17→18 check (and empty-index meta bump) before TxTable::open.

Test plan

  • 17 + occupied tx.head still refused
  • 17 + SH data still refused
  • 17 empty indexes still bump meta to 18
  • 17 + wiped indexes + Class A creates: rebuild succeeds, meta is 18

rbitcoin-bot added 3 commits August 19, 2026 19:36
Empty 17 indexes must rewrite meta to 18 before TxTable::open. Checking
after a Class A head rebuild treats the new occupancy as leftover 17 data
and refuses, leaving meta at 17.
Occupying every rbtc-scripts worker then panicking before notify_all
leaves the process-wide pool blocked. Later wait_done never returns,
so cargo test --workspace hangs on 2-core GHA. Drop the gate on
unwind and serialize occupy tests.
The test job had no timeout (GHA default 6h), so a hung cargo test
sat for hours. Bound it at 20 minutes and cancel in-progress CI on
the same ref so retries and new pushes do not stack.
@reardencode
reardencode merged commit d4d8a4e into master Aug 20, 2026
13 checks passed
@rearden-grok
rearden-grok Bot deleted the store/schema18-check-before-head branch August 20, 2026 16:42
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