Skip to content

πŸ› fix(api): expire at the exact timeout - #922

Merged
gaborbernat merged 2 commits into
tox-dev:mainfrom
gaborbernat:fix/timeout-boundary-920
Nov 9, 2026
Merged

gaborbernat merged 2 commits into
tox-dev:mainfrom
gaborbernat:fix/timeout-boundary-920

Conversation

@gaborbernat

Copy link
Copy Markdown
Member

U-Boot's buildman process-limit test can leave a contended filelock retrying at its timeout boundary when the test's virtual clock stops advancing (#920). A caller waiting for that lock now receives Timeout at the deadline.

The shared acquisition path decides when a wait has expired for both Unix and soft locks. It still attempts to acquire a lock before checking the deadline, so an available lock can be acquired with a zero timeout.

@gaborbernat gaborbernat added the bug label Nov 9, 2026
Clipping each poll to the remaining time can leave a virtual clock exactly
at the deadline. The strict comparison then retries with sleep(0) forever.

Treat the deadline as expired after a failed acquisition and cover the
boundary with Unix and soft locks.

Fixes tox-dev#920
@gaborbernat
gaborbernat force-pushed the fix/timeout-boundary-920 branch from f0670a6 to f2fea5d Compare November 9, 2026 17:21
@gaborbernat
gaborbernat merged commit 2e1eaaa into tox-dev:main Nov 9, 2026
85 of 87 checks passed
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.

1 participant