Skip to content

fix(server): make lifecycle ACL reconciliation race-safe - #101

Open
Emran025 wants to merge 1 commit into
mainfrom
fix/server-lifecycle-acl-concurrency
Open

fix(server): make lifecycle ACL reconciliation race-safe#101
Emran025 wants to merge 1 commit into
mainfrom
fix/server-lifecycle-acl-concurrency

Conversation

@Emran025

Copy link
Copy Markdown
Owner

Summary

This fixes the desktop-v0.0.2 tag workflow failure in the Server Windows lifecycle contract.

The failure occurred during the required second claim --owner server-desktop: the first service was already operating and could remove a transient runtime entry after the ACL traversal had enumerated it. The recursive ACL traversal treated that descendant NotFound as a fatal error, even though the service remained healthy and the private data root itself still existed.

The fix preserves the security boundary:

  • A missing requested ACL root remains a failure.
  • Symbolic links remain rejected.
  • Only a previously enumerated descendant that disappears during traversal is skipped.
  • All stable entries continue to receive explicit System and Built-in Administrators ACLs, while the public status tree retains its read-only public projection.

Validation

  • git diff --check
  • node frontend/scripts/create-release-manifests.test.mjs
  • The existing Windows lifecycle public contract exercises the same active-service reconcile path; GitHub Windows CI is required because this workspace has no Cargo/Rust toolchain.

Release impact

The existing desktop-v0.0.2 tag remains pointed at the already merged 0.0.2 source revision and its workflow failed before release creation. After this PR is approved and merged, the tag will be moved only to the verified main revision and the release workflow will be rerun.

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.

1 participant