-
Notifications
You must be signed in to change notification settings - Fork 395
4.3.0: name resolution still fails closed on a terminated LaunchServices record (follow-up to #677) #709
Copy link
Copy link
Closed
Labels
P1Urgent regression or broken agent/channel workflow affecting real users now.Urgent regression or broken agent/channel workflow affecting real users now.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:otherThis issue has meaningful maintainer-visible impact outside the owned taxonomy.This issue has meaningful maintainer-visible impact outside the owned taxonomy.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Description
Activity
Metadata
Metadata
Assignees
Labels
P1Urgent regression or broken agent/channel workflow affecting real users now.Urgent regression or broken agent/channel workflow affecting real users now.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:otherThis issue has meaningful maintainer-visible impact outside the owned taxonomy.This issue has meaningful maintainer-visible impact outside the owned taxonomy.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Type
Fields
Priority
None yet
Follow-up to #677. That fix ("distinguishes repeated explicit EPERM on a foreign prohibited helper from genuinely uncertain metadata") resolved the root-owned-daemon case, but on 4.3.0 the same fail-closed behaviour still occurs for a terminated process that LaunchServices has not yet reaped. A dead PID falls on the "genuinely uncertain metadata" side of that split, so one stale LS record aborts the entire mutation inventory and every name-resolved command on the machine fails.
Reproduction
Same with the daemon path (
--no-remoteomitted), so this is not a runtime-host artifact.PID 424 does not exist
It is only a residual LaunchServices ASN entry:
(The bundle id is stale/mismatched too — this is a dead node process whose LS record was never cleaned up.) It survives a daemon kill/respawn and persists across runs.
Impact
Every
--app <name>command is refused machine-wide until the LS record clears.--pid <n>still works and is the only workaround:Suggested handling
processStartIdentityfailing withESRCH(or the PID otherwise not existing) means the entry is dead, not uncertain — a dead process cannot be a mutation target and cannot cause PID-reuse ambiguity against a live named target. Treating "process is gone" the same way #678 treats "explicit EPERM on a foreign prohibited helper" (drop the entry, keep the inventory complete) would close this without weakening the uniqueness guard, since a genuinely reused PID would resolve and fingerprint successfully.