test(persist): Stabilize flaky session write fixture on nightly CI#39
Merged
Conversation
The write_and_wait helper drove the async store.write path (libuv fs_open/fs_write/fs_rename callback chain), which intermittently failed on the nightly CI job with "Store write failed" during before_each and after_each cleanup writes. Switch the fixture to the synchronous store.write_sync so setup/teardown writes are deterministic and no longer subject to the transient async-fs race. The async write path stays covered by the save_current and "async save write fails" tests.
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
persist_sessions_specwrite fixture that intermittently failed withStore write failedon the nightly CI job.write_and_waithelper from the asyncstore.write(libuvfs_open/fs_write/fs_renamecallback chain) to the synchronousstore.write_sync, making setup/teardown writes deterministic and eliminating the transient async-fs race.save_current(async) +wait_for_storetests and the "async save write fails" test.Changes
write_and_waitwith a blockingstore.write_synccall, removing thevim.wait-based async completion polling that introduced fixture-write nondeterminism.