fix(harness): route nightly state store to flatkv, not memiavl_only#444
fix(harness): route nightly state store to flatkv, not memiavl_only#444bdchatham wants to merge 2 commits into
Conversation
The load/release/chaos suites pinned both storage write-modes to memiavl_only. The latest nightly seid image builds the FlatKV state store for full nodes (ss-enable=true), and memiavl_only routes all EVM data away from that enabled store — its open path deadlocks. The RPC followers (full nodes) wedge right after WAL discovery, before binding any listener, so the benchmark's EVM-readiness gate never passes and NightlyRunFailed fires. Validators are unaffected (ss-enable=false makes the mode inert). State commitment stays on memiavl (the controller default cosmos_only is rejected by the nightly image); only the state-store mode moves to flatkv_only so the enabled FlatKV store is the write target it expects. Renames the config var to match. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
PR SummaryLow Risk Overview This is a test-harness / provisioning config change only; major-upgrade tests still omit this map on purpose. Reviewed by Cursor Bugbot for commit 475bfef. Bugbot is set up for automated code reviews on this repo. Configure here. |
The "controller default cosmos_only" note conflated the chain-optimizations write-mode enum with the migration enum SC actually uses; trim to the verifiable fact (the controller default is rejected, so SC is pinned). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Superseded by #445 (link adjusts if number differs). Grounding the direction in canonical sei-chain main (commit 51eb1fd) showed |
Problem
The nightly load suite hangs:
TestBenchmarkprovisions the chain, logsnetwork bench: ready, then the RPC follower wedges and never becomes EVM-serving, so seiload never runs andNightlyRunFailedfires.Root cause (root-caused on a live hung node): the RPC follower's seid parks all threads on
futex_wait_queueright afterFound 0 WALs, opening no listeners (/proc/net/tcpshows no:8545/:26657/:26656). The follower runsss-enable=true(full node) withss-write-mode=memiavl_only; validators run the same override butss-enable=false, so they're fine.The latest nightly seid image constructs the FlatKV state store for full nodes.
memiavl_onlyroutes all EVM data away from that enabled store, so the SS-store open path deadlocks before listener bind. The override is weeks-old and was benign on older images (which didn't build the SS store); the new image makes it fatal — only for full nodes (RPC followers), not validators.Fix
In
flatkvStorageConfig(wasmemiavlStorageConfig), shared by the load/release/chaos suites:storage.state_commit.write_mode:memiavl_only(unchanged — commitment tree stays memiavl; the controller defaultcosmos_onlyis rejected by the nightly image)storage.state_store.write_mode:memiavl_only→flatkv_only(route state to the FlatKV store the image now builds)The major-upgrade suite still omits this map (it tests the migration path itself). Var renamed to reflect the state store is now FlatKV.
Validation
go vet -tags integration ./test/integration/passes; gofmt clean; all 3 usages renamed.:8545and emitsseiload_run_duration_seconds.🤖 Generated with Claude Code