Skip to content

fix(cubemaster): rebuild stale rootfs artifacts#857

Draft
ZhiyaoWen999 wants to merge 1 commit into
TencentCloud:masterfrom
ZhiyaoWen999:agent/fix-stale-rootfs-artifact-reuse
Draft

fix(cubemaster): rebuild stale rootfs artifacts#857
ZhiyaoWen999 wants to merge 1 commit into
TencentCloud:masterfrom
ZhiyaoWen999:agent/fix-stale-rootfs-artifact-reuse

Conversation

@ZhiyaoWen999

Copy link
Copy Markdown

Summary

Fixes #852.

This change prevents CubeMaster from reusing a READY rootfs artifact record when the master-local ext4 file is stale or missing. Before returning a reusable artifact, CubeMaster now verifies that the ext4 file exists, is a regular file, matches the stored size, and matches the stored SHA256. If validation fails, the existing build path claims the artifact row and rebuilds it instead of distributing stale metadata to Cubelet.

Why

After a CubeMaster Pod restart with ephemeral local storage, the database can still contain READY artifact metadata while /data/CubeMaster/storage/.../*.ext4 no longer exists. Reusing that stale metadata causes compute nodes to download invalid content and fail with a SHA256 mismatch. Revalidating the local artifact before reuse makes the create-from-image path self-heal by rebuilding the artifact.

Validation

  • git diff --check
  • Not run locally: go test ./pkg/templatecenter -run 'TestValidateReusableRootfsArtifactFile|TestEnsureRootfsArtifactRebuildsMissingReadyArtifact' because the local environment does not have the Go toolchain installed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Cubemaster loses local artifact files after Pod restart while artifact metadata remains READY

1 participant