Repository navigation
fix(client): release idle registry mutex allocations - #1884
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
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. |
[Medium impact] The PR appears safe to merge.
|
|
@codex review |
Codex Review Summary: ✅ CompletedThis 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. |
|
Codex Review: Didn't find any major issues. What shall we delve into next? Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
Merging this PR will not alter performance1 warning, 1 note
Performance Changes
Comparing Footnotes
|
Cold registry fallback initializes async-lock's event and leaves 72 extra bytes per client in the connected-idle retention check. This follows #1883, which was merged while the retention correction was being validated.
Registry operations now share an Arc-backed async-lock mutex through the complete holder/waiter lifetime. The final lease releases its strong reference and clears the weak slot under the admission lock, allowing both the mutex event and its allocation header to retire when idle. The actual guard drops before its lease. This adds temporary allocations at the start of an isolated operation; concurrent operations share them.
Four lifecycle regressions cover queued ordering, cancellation after notification, cancellation with another waiter, and simultaneous final lease retirement.
Validation:
fa8c640c.The existing Cargo Deny failure for
RUSTSEC-2026-0459is inherited from main's bundled SQLite dependency. Published Diesel 2.3.14 excludes the fixed libsqlite3-sys 0.39 line; the audit remains enabled.