fix: keep Go ADK SQLite connections out of VM snapshots - #3004
Merged
Merged
Conversation
Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
EItanya
requested review from
a team,
Charlesthebird and
supreme-gg-gg
as code owners
September 29, 2026 13:57
Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
This comment has been minimized.
This comment has been minimized.
1 of 2 tasks
Classify deadline-triggered cancellation as a timeout despite guest clock skew, while preserving raced completion and failure outcomes. Include task errors in restore assertions and invoke Kind by name so version-manager shims work during local microVM setup. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
2 tasks done
moezdil
reviewed
Sep 29, 2026
| echo "key=${BRANCH_KEY}" >> $GITHUB_OUTPUT | ||
| echo "::notice title=Cache Key::Branch: ${BRANCH_KEY}" | ||
| test-e2e: | ||
| strategy: |
Contributor
There was a problem hiding this comment.
ruleset still requires test-e2e, which this matrix renames away
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| sandbox_class: [gvisor, microvm] |
Contributor
There was a problem hiding this comment.
microvm leg stays red until a substrate release ships?
Contributor
Author
There was a problem hiding this comment.
Correct, working on it now
Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
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.
Cloud Hypervisor restores guest memory over new backing files for
/data. The Go ADK retained idle SQLite connections from the golden snapshot, so the first message failed withSQLITE_READONLY_DBMOVED(1032).Set the SQLite pool's idle connection count to zero so startup still validates and migrates the database, while quiescent snapshots contain no open database handles. Regression tests cover first-message creation, existing conversation history, and subsequent restores.
Run E2E tests on Cloud Hypervisor alongside gVisor, checking
KVM_CREATE_VMbefore building images. Both lanes use Substratev0.3.0-alpha3, which includes RNG reseeding and the clock/sysctl fixes. Keep the Kind wrapper because the released installer still resolves a removed temporary executable on a cold Go cache.Update the Go client, local setup script, and vendored protobuf/UI schema together to alpha3, and compile its protocol-specific egress rules from each endpoint's scheme, hostname, and port. Each allowed destination has one deciding rule with its credential replacements. Alpha3 no longer supports IP allowlists, so endpoints must use DNS names; the host-based tracing fixture now has a Kubernetes Service and EndpointSlice. The vendored upstream alpha schema is excluded from kagent's compatibility check; its changed egress types are not exposed by kagent.
Validation: focused local Cloud Hypervisor v53 tests against the published alpha3 images passed first messages and credential delivery across kagent, Codex, Claude, and BYO, plus Claude/Codex trace export. Compiler, egress, session workflow, and controller tests, all-package compilation, Go lint, actionlint, protobuf generation/compatibility, UI type checking, ShellCheck error checks, and Bash syntax checks passed. Ran the full local microVM suite, then fixed first-page assumptions in the three CLI/MCP listing scenarios and reran them against the same populated cluster. Across those runs: 185 leaf cases passed, 10 existing skips, no remaining failures.
Removed the earlier scheduled-run clock workaround now that the runtime clock fix is included. Rebuilt and deployed the controller locally, then reran
TestScheduledRunTimeouton Cloud Hypervisor with alpha3: kagent, Codex, Claude, and BYO ADK all passed without the workaround. Scheduled-run controller unit tests and lint also passed.