fix(depot-client): only fatal sqlite vfs on fence mismatch#5007
Conversation
|
🚅 Deployed to the rivet-pr-5007 environment in rivet-frontend
|
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Code ReviewOverviewThis PR changes the SQLite VFS error-handling model so that only confirmed head-fence mismatches permanently kill the VFS, while plain transport failures (network drops, lost responses) are treated as transient and allow retries. The key insight is sound: if a commit never reached the depot, the head fence has not advanced, so a retry from the same head will succeed; if the commit was applied but the response was lost, the next attempt will get a fence mismatch from the server, which is caught and made fatal at that point. Positives
Issues / Questions1. Test name mismatch ( The test was updated to assert 2.
3. The defer is stored in 4. If a transient error is deferred but 5.
Minor Notes
SummaryThe design is correct and the new test coverage for the two critical scenarios (pre-apply drop vs. post-apply lost response) is solid. Main items before merging: clarify the |
f2a28ab to
24c5d49
Compare
011798b to
0889a3a
Compare

Description
Please include a summary of the changes and the related issue. Please also include relevant motivation and context.
Type of change
How Has This Been Tested?
Please describe the tests that you ran to verify your changes.
Checklist: