Repository navigation
Keep KVM sandbox clocks synchronized with the host - #379
Open
duynguyen158 wants to merge 1 commit into
Open
duynguyen158 wants to merge 1 commit into
duynguyen158 wants to merge 1 commit into
Conversation
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
Fixes #378. Long-running KVM guests can fall behind the signing worker and reject fresh execution manifests as
not_yet_valid. Restarting resets the difference, but does not correct the clock's ongoing rate. This adds continuous guest time discipline using the existing KVM virtual PTP host-clock reference, rather than widening the manifest tolerance or scheduling restarts.The helper, configuration and regression test are added under the existing
api/src,api/configandtestsdirectories. The bootstrap/image/CI layout follows the guest resolver work in #152; no new directories, deployment infrastructure, release workflow or version changes are introduced.Change Type
/dev/ptp0. Startup fails closed if synchronization is unavailable. Direct NsJail, local OCI/macOS and Lambda startup remain unchanged.Testing
bash tests/guest_clock_lifecycle.sh,bash tests/kvm_guest_dns.sh,bash tests/sandbox_runner_healthcheck.shandbash tests/block_root_package_delivery.shtogether in Linux; the lifecycle suite also passed on Debian Bash 5.2.docker buildx build --checkforapi/Dockerfile,docker/Dockerfile.worker-sandboxandlauncher/Dockerfile, with no warnings.Test Configuration
Checklist
Maintainer integration note: per
CONTRIBUTING.md, this targets publicmainand leaves the internal bridge/review process to maintainers. The new public CI step also needs its internalci-codeapi.ymlcounterpart kept in sync; that internal file is not present here and has not been invented or modified by this contribution.