Skip to content

🐛 fix(api): retain acquisition path identity#647

Merged
gaborbernat merged 1 commit into
mainfrom
fix/632-stable-acquisition-key
Jul 14, 2026
Merged

🐛 fix(api): retain acquisition path identity#647
gaborbernat merged 1 commit into
mainfrom
fix/632-stable-acquisition-key

Conversation

@gaborbernat

Copy link
Copy Markdown
Member

Release resolved a mutable parent symlink twice. If its target changed while held, the original registry record remained, and release could delete a live holder's record at the new target. A finite or nonblocking acquisition that raised could also delete its peer's record. This closes issue #632.

The lock context now stores the path identity owned by the first physical acquisition. Recursive acquisition preserves it, while final release, forced release, and rollback clear only that identity. Backend paths and singleton construction retain their existing behavior, and Unix release avoids a second realpath() lookup.

Release could resolve a changed parent symlink, leave the holder's deadlock
record behind, or delete a peer's record. Store the identity owned by the
active hold and clear only that identity during release and rollback.
@gaborbernat gaborbernat force-pushed the fix/632-stable-acquisition-key branch from 63c2fe4 to 5fb47fe Compare July 14, 2026 02:14
@gaborbernat gaborbernat marked this pull request as ready for review July 14, 2026 02:19
@gaborbernat gaborbernat merged commit 059cca2 into main Jul 14, 2026
36 checks passed
@gaborbernat gaborbernat deleted the fix/632-stable-acquisition-key branch July 14, 2026 04:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Keep the acquisition canonical key through release

1 participant