fix: driver test suite & sqlite reliability#4559
Conversation
|
🚅 Deployed to the rivet-pr-4559 environment in rivet-frontend
|
|
PR Review: fix driver test suite and sqlite reliability Summary: This PR fixes several correctness bugs and refactors the SQLite/KV channel architecture for reliability. The changes are broadly well-structured. A few items warrant attention before merging. Bugs Fixed (Confirmed Good)
Concerns
Minor notes: actor/instance/mod.ts span-end fix is subtle but correct; a comment would help future readers. Shared test state in driver-engine.test.ts needs full teardown between test cases to prevent state leakage. turbo.json for sqlite-native is a good addition; verify outputs covers all napi-rs cross-compilation targets. broadcastProcessEvent correctly re-throws non-ActorStopping errors and silently drops ActorStopping. Overall the PR is headed in the right direction. The KV single-writer question and the legacy read-path removal are the two items most worth validating before merge. |
28d5a1f to
8af4472
Compare
8af4472 to
930ee95
Compare
930ee95 to
6d9fd88
Compare
6d9fd88 to
2f73a59
Compare
2f73a59 to
5b25ad0
Compare
5b25ad0 to
b8143ad
Compare
b8143ad to
33436b9
Compare
33436b9 to
6e18bf9
Compare
6e18bf9 to
7597a94
Compare
7597a94 to
c6d8ae5
Compare
9f06a14 to
e815bd1
Compare
8b3a33e to
a112a4f
Compare
b49a74d to
4de0f10
Compare
a112a4f to
67870e8
Compare
Merge activity
|
Reverts all file-system driver workarounds, test timing hacks, client retry/polling logic, sleep timeout overrides, DB proxy shutdown budgets, and connection-manager counters that were only needed for FS driver tests. Keeps engine-relevant fixes: action fire-and-forget in WS endpoints, conn single-flight disconnect, DB unification, KV channel multiplexing, envoy bugfixes.
Normal (envoy-based) runner configs never had protocol_version set by the metadata poller since that only runs for serverless configs. This caused all actors on normal configs to be created with the v1 workflow, which uses the old runner architecture and never becomes connectable through envoys. The fix treats normal runner configs as v2 since they inherently use the envoy protocol.
Normal (envoy-based) runner configs never had protocol_version set by the metadata poller since that only runs for serverless configs. This caused all actors on normal configs to be created with the v1 workflow, which uses the old runner architecture and never becomes connectable through envoys. The fix treats normal runner configs as v2 since they inherently use the envoy protocol.
The cache module changes (global OnceLock for InMemoryDriver and in_flight map) are not required for engine driver tests. Reverted to main. Added guidance to engine/CLAUDE.md about using concurrent containers instead of Mutex<HashMap<...>>.
67870e8 to
7cfcbcd
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: