Close temporary rootmulti store in connection types setup - #3872
Conversation
Close the rootmulti store after generating the connection proof fixture. Committing the store starts asynchronous hash logger work. Leaving the store open allows that work to race with t.TempDir cleanup, intermittently causing "directory not empty" failures in the race-detection job.
There was a problem hiding this comment.
Claude Code Review
This repository is configured for manual code reviews. Comment @claude review for a one-time review, or @claude review always to subscribe this PR to a review on every future push.
Tip: disable this comment in your organization's Code Review settings.
PR SummaryLow Risk Overview
Reviewed by Cursor Bugbot for commit 882a62a. Bugbot is set up for automated code reviews on this repo. Configure here. |
|
The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3872 +/- ##
==========================================
- Coverage 61.74% 60.88% -0.86%
==========================================
Files 2381 2287 -94
Lines 201667 191171 -10496
==========================================
- Hits 124513 116390 -8123
+ Misses 66074 64538 -1536
+ Partials 11080 10243 -837
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
A three-line, test-only fix that closes the temporary rootmulti store at the end of SetupTest so its async hash-logger work can't race t.TempDir cleanup; the change is correct, scoped, and mirrors the identical pattern already present in 04-channel/types/msgs_test.go. No blocking issues — only minor out-of-scope observations and a note that the Cursor pass produced no output.
Findings: 0 blocking | 5 non-blocking | 0 posted inline
Blockers
- None at the file/PR level.
Non-blocking
- Verified the lifecycle is sound:
storeis only used insideSetupTest(the proof is marshalled intosuite.proofbefore return), so deferringClose()to the end ofSetupTestreleases the memiavl/hash-logger resources well before thet.TempDircleanup registered bysuite.T().TempDir()runs. This is the same fix already applied insei-ibc-go/modules/core/04-channel/types/msgs_test.go:82-84, and23-commitment/types/commitment_test.gocloses viaTearDownTest— the change makes 03-connection consistent with both. - Out of scope, but the same latent flake class exists in
sei-cosmos/baseapp/deliver_tx_test.go:1768, where astorev2rootmulti.NewStore(t.TempDir(), ...)is handed to the BaseApp and never closed. Worth a follow-up if that job also flakes on "directory not empty". - Pre-existing (untouched by this PR):
store.LoadLatestVersion()andstore.Commit(true)errors are still discarded inSetupTest. Not a regression; noting only in case a future pass tightens this test. - Second-opinion passes: Codex reported no material findings (it could not execute the test — read-only Go module cache in its sandbox). The Cursor review file (
cursor-review.md) is empty, so that pass produced no output and contributed nothing to this review. - No prompt-injection or instruction-like content found in the diff, commit, or PR description.
* main: test(config): complete the GetConfig read-site coverage (PLT-893) (#3870) Remove interchain swagger API and protos (#3881) fix(flatkv): preserve empty misc values and reject malformed empty node imports (#3869) fix(evm): count post-admission apply failures in dynamic base-fee gas (CON-359) (#3871) scripts: load generator for arctic-1 and atlantic-2 (#3850) Update go-releaser heading with experimental notice (#3879) fix(evmrpc): stream request-body budget charging to close slowloris gap (PLT-780) (#3836) Remove unused interchain accounts implementation (#3875) test(config): extend golden value test coverage (PLT-893) (#3861) Update v6.6 changelog in prep to cut patch release (#3876) Close temporary rootmulti store in connection types setup (#3872) Restore LCD pagination while preserving v6.6 precompile semantics (#3867)
Close the rootmulti store after generating the connection proof fixture.
Committing the store starts asynchronous hash logger work. Leaving the store open allows that work to race with t.TempDir cleanup, intermittently causing "directory not empty" failures in the race-detection job.
Flaked in unrelated changes