Fix Windows durable locking and add cross-platform CI - #2
Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Team Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1940e69f29
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| lock_file.flush() | ||
| os.fsync(lock_file.fileno()) | ||
| lock_file.seek(0) | ||
| msvcrt.locking(lock_file.fileno(), msvcrt.LK_LOCK, 1) |
There was a problem hiding this comment.
Retry beyond msvcrt's fixed lock window
On Windows, msvcrt.LK_LOCK is not an indefinitely blocking lock: it retries ten times at one-second intervals and then raises OSError. If another append holds this sibling lock for longer than roughly ten seconds—for example while LayerStore.append parses and read-verifies a large ledger—a concurrent write fails instead of waiting and serializing as the POSIX backend does. Use an explicit retry loop (typically around LK_NBLCK) or otherwise document and handle a deliberate timeout.
Useful? React with 👍 / 👎.
Summary
msvcrtbyte-range locking backend while preserving POSIXfcntlbehaviorValidation
PYTHON=python3 ./scripts/ci-local.shon macOS