Skip to content

Deploy creates the materialization store's staging sibling (#13690 regression) - #13732

Merged
gunbai-bot[bot] merged 3 commits into
mainfrom
bright-moth-475/store-staging
Oct 11, 2026
Merged

gunbai-bot[bot] merged 3 commits into
mainfrom
bright-moth-475/store-staging

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Oct 11, 2026

Copy link
Copy Markdown
Contributor

Summary

On srv1, every compute build has refused with store unavailable: could not create the compute directories since #13690 (dd786baf) moved compute onto the durable store at /var/lib/gunbc/materialization-store. Compute stages into a sibling directory, <store root>-staging. The deploy declared materialization-store as a srv1 host directory, but not that sibling. The service user cannot create it under the root-owned /var/lib/gunbc, so the directory never existed.

Production picks this up on its next deploy from main. Reported to and confirmed by smart-gull-336, whose #13690 introduced it; they asked that this land first.

Fix:

  • The sibling's path now derives in one place, std.materialization_store_grant materialization_store_staging_root_path.
  • compute_staging_dir and a new materialization-store-staging member of gunbc.live_deploy.spec deployment_srv1_host_directories both consume it, so the producer and the deploy cannot disagree.
  • The srv1 sudoers projection is regenerated with generated_artifact_gate main_wet_one. It adds the staging directory's stat readback grant and keeps Deployment risk D2 (3/4): role-singleton assess-and-admit with A2 in-place apply #13723's fabric-storage-control grant.

Known gap: the store's declared read/write grant envelope covers the store root but not the sibling. The annotation on the new function says so; modeling the sibling inside the envelope is not attempted here.

Evidence

Root cause, observed directly on the srv1 lab: compute_request_cli operation=build returned the outcome above verbatim. Compute last succeeded at 04:44; the store's identity file was created at 04:56. Lineages based before dd786baf compiled, and those based after it did not.

Executed on srv1 at 02b3536 (this branch merged with main c6a38b4), seed built from that tree:

Live: deploying this change to the srv1 lab created /var/lib/gunbc/materialization-store-staging (11:11Z), and compute builds launch again there.

After landing

srv1 needs one sudoers reinstall carrying both new grants (this PR's and #13723's).

🤖 Generated with Claude Code

gunbc-ci-auto-heal and others added 3 commits October 11, 2026 11:03
Every compute build on srv1 refused 'store unavailable: could not create the
compute directories' since dd786ba moved compute to the durable store under
/var/lib/gunbc: the deploy declared materialization-store but not the
'-staging' sibling compute stages into, and the service user cannot create
it under the root-owned /var/lib/gunbc. The sibling's path now derives once
in std.materialization_store_grant, consumed by compute_staging_dir and by a
new srv1 host-directory member.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… staging sibling

Generated by generated_artifact_gate main_wet_one on this tree (keeps #13723's
fabric-storage-control grant).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@gunbai-bot
gunbai-bot Bot merged commit 9e83137 into main Oct 11, 2026
1 check passed
@gunbai-bot
gunbai-bot Bot deleted the bright-moth-475/store-staging branch October 11, 2026 15:28
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.

0 participants