test(autobahn): add FlatKV Integration CI matrix entry#3493
Draft
wen-coding wants to merge 5 commits into
Draft
Conversation
|
The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).
|
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #3493 +/- ##
==========================================
- Coverage 59.11% 59.10% -0.01%
==========================================
Files 2187 2188 +1
Lines 182237 182272 +35
==========================================
+ Hits 107730 107740 +10
- Misses 64851 64876 +25
Partials 9656 9656
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
35a0d3f to
d5b88f5
Compare
Mirrors the vanilla FlatKV Integration matrix row with Autobahn's AUTOBAHN/GIGA_EXECUTOR/GIGA_OCC env. Also hardcodes the container's repo path in deploy_flatkv_evm_fixture.sh and verify_flatkv_evm_store.sh so they no longer rely on `git rev-parse --show-toplevel`, which fails inside the container when the host checkout is a git worktree. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…pp state Under Tendermint the consensus replay handshake compares state.AppHash against app.Info().LastBlockAppHash at startup and aborts with "Did you reset Tendermint without resetting your application's data?" on mismatch. Autobahn skips that handshake (it does not maintain Tendermint's block/state stores), so a partial wipe of state_commit (e.g. state_commit/flatkv removed without state-sync) goes undetected and the node silently commits blocks with a divergent AppHash. Add the equivalent intra-node consistency check on the Autobahn path, using the avail prune anchor (avail_inner_a.pb / avail_inner_b.pb) as the persisted-AppHash source. The comparison itself lives in a new consensus-agnostic sei-db/state_db/consistency package; the engine adapter in node.OnStart reads the persisted hash via the giga router and the current hash via ABCI Info, panicking when they disagree. Skips silently when the engine has no persisted AppQC yet (fresh chain or mid-state-sync recovery) and when the app's reported version does not match the persisted version (chain mid-catchup). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…tion Rename LatestCommittedAppHash to LatestPersistedAppHash and add a TODO explaining that the method reads through the avail prune anchor's AppQC because PushAppHash itself never writes to disk (NewState's WAL recovery does not repopulate appProposals). The proper fix is direct AppHash persistence via the upcoming sei-db/ledger_db/block.BlockDB; the consistency check should be re-pointed at that once a writer is wired up. No behavior change. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds INFO logs at the giga catchup choke points so we can see what a restarted Autobahn node is actually doing while it waits for peer blocks: * block fetcher started / stopped with err * per-block: waiting for QC / requesting from peers / block fetched * outbound peer dial + handshake success (the existing log only fires on failure, so a healthy connection was invisible) * inbound peer accept Useful for diagnosing the matrix step 5/6 stalls where the Tendermint- shaped wait_for_statesync_log_and_kill regex can't tell what an Autobahn node is doing during catchup. INFO level because catchup is the time we care about; idle nodes don't loop the fetcher so the log volume stays proportional to work. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Keeps only "FlatKV Integration" (vanilla) and "Autobahn FlatKV Integration" in the integration-test matrix so CI iterations finish in minutes instead of an hour while we diagnose the Autobahn step 5/6 catchup behavior. Revert before merging — see git history for the full matrix. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
751c850 to
bd17238
Compare
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
Autobahn FlatKV Integrationrow to theintegration-testmatrix, mirroring the vanillaFlatKV Integrationrow withAUTOBAHN=true GIGA_EXECUTOR=true GIGA_STORAGE=true GIGA_OCC=true./sei-protocol/sei-chain) indeploy_flatkv_evm_fixture.shandverify_flatkv_evm_store.sh. The previousgit rev-parse --show-toplevelresolved correctly in a clean checkout but failed inside the container when the host repo was a git worktree (the.gitpointer file references a host-only absolute path).Local results under Autobahn (2026-05-21)
deploy_flatkv_evm_fixture.shflatkv_evm_test.yamlverify_flatkv_evm_store.shverify_flatkv_crash_recovery.shverify_flatkv_statesync_crash_recovery.shverify_flatkv_total_loss_recovery.shverify_flatkv_partial_loss_fails_loudly.shStep 7 fails with a WAL-hole / snapshot-0 panic during the cosmos snapshot exporter's readonly FlatKV open after a partial-loss restart (only
state_commit/flatkvdeleted; chain at height N continues writing WAL entries starting at version N while FlatKVcommittedVersion=0). Pushing as draft so we can confirm the same failure surface in CI.Test plan