Skip to content

test(engine): cover duplicate action locks - #16247

Merged
rgrinberg merged 1 commit into
ocaml:mainfrom
rgrinberg:push-kwqlyprulryu
Aug 29, 2026
Merged

test(engine): cover duplicate action locks#16247
rgrinberg merged 1 commit into
ocaml:mainfrom
rgrinberg:push-kwqlyprulryu

Conversation

@rgrinberg

Copy link
Copy Markdown
Member

A rule that declares the same lock twice currently tries to acquire the same
non-reentrant mutex twice and deadlocks.

Add a cram regression that snapshots the timeout instead of the requested
target. A follow-up change will deduplicate lock acquisition.

Add a rule that declares the same lock twice and snapshot its timeout instead of
the requested target. Acquiring the same non-reentrant mutex twice demonstrates
the self-deadlock fixed by the following change.

Signed-off-by: Rudi Grinberg <me@rgrinberg.com>
@rgrinberg
rgrinberg merged commit a4c0885 into ocaml:main Aug 29, 2026
37 of 39 checks passed
rgrinberg added a commit that referenced this pull request Aug 29, 2026
Canonicalize action lock paths as a set when constructing and combining
action
properties. Duplicate declarations can no longer make a rule acquire the
same
non-reentrant mutex twice, and digesting and acquisition consume the
same
canonical ordering without repeated sorting.

The regression is covered by #16247.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant