Skip to content

release: v0.8.4 — c1M follow-ups + park-vs-error spin fix (patches live v0.8.3 hazard) - #425

Merged
TinDang97 merged 1 commit into
mainfrom
release/v0.8.4
Jul 29, 2026
Merged

release: v0.8.4 — c1M follow-ups + park-vs-error spin fix (patches live v0.8.3 hazard)#425
TinDang97 merged 1 commit into
mainfrom
release/v0.8.4

Conversation

@TinDang97

Copy link
Copy Markdown
Collaborator

Patch release rolling up PR #424 (c1M round 6).

Ships the fix for a bug live in v0.8.3: task-exit parking defaults on (--conn-park-secs 60), and a client dying with an RST while parked spun that connection through park→wake→park at 100 % shard CPU (fd stuck in CLOSE_WAIT). Also: TLS task-parking (idle TLS 47.0 → 26.0 KB/conn), registration handoff (SETNAME/age survive wake), migrated-conn parking, REPLCONF park exclusion.

Mechanical rollup only: CHANGELOG [Unreleased][0.8.4], Cargo.toml/lock bump, RELEASES.md row, README milestone table. Full evidence in RELEASES.md and tmp/C10K-REVIEW.md round 6.

Release gate (soak-first-then-tag, ritual held — no crash/persistence path touched): crash-matrix nightly + ITERS=20 soak dispatched on this RC; tag v0.8.4 pushed after merge + green gates (triggers the Release workflow).

…ve v0.8.3 hazard)

Patch release rolling up PR #424 (c1M round 6).

Ships the fix for a bug LIVE in v0.8.3: task-exit parking defaults on,
and the idle-park arms treated every read error as the sweep cancel — a
client dying with an RST while parked (crashed client, NAT reset, LB
probe) left the fd permanently readable and spun the connection through
park→wake→park at 100% shard CPU, socket stuck in CLOSE_WAIT. The arms
now match monoio's exact ECANCELED (raw os 125, both drivers); real
errors tear down promptly; FIN/RST-while-parked regression-tested.

Also: TLS task-exit parking (idle TLS 47.0 → 26.0 KB/conn, −45%, no new
unsafe — vendored io_ref() readiness passthrough + task_park_safe()
veto); registration handoff across park/wake (no deregistered window;
fixes the wake silently resetting CLIENT SETNAME/age); migrated conns
park; REPLCONF'd conns excluded from parking (PSYNC-after-park
unreachable for real replicas).

Validation: parity suites green kqueue + io_uring (plain 5/5, TLS 3/3);
VM monoio 4466 + tokio 3628 lib tests; E10 plain-park sanity unchanged
(3.28 KB/conn); spin repro post-fix clean. Release gate: crash-matrix
nightly + ITERS=20 soak dispatched on the RC (ritual held), green
before tag.

Rolls CHANGELOG [Unreleased] into [0.8.4], bumps Cargo.toml/lock,
adds the RELEASES.md row, updates the README milestone table.

author: Tin Dang
@coderabbitai

coderabbitai Bot commented Jul 29, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@TinDang97, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 26 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 373d7bd9-4048-40ff-8eb6-a6764822dcdb

📥 Commits

Reviewing files that changed from the base of the PR and between fd4bea4 and 3381c2d.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (4)
  • CHANGELOG.md
  • Cargo.toml
  • README.md
  • RELEASES.md

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Release v0.8.4: bump version + publish release notes

⚙️ Configuration changes 📝 Documentation 🕐 10-20 Minutes

Grey Divider

AI Description

• Cut the v0.8.4 patch release by promoting Unreleased changelog entries.
• Bump crate version to 0.8.4 (Cargo.toml + lockfile).
• Update public release documentation (RELEASES.md + README milestone table).
High-Level Assessment

The following are alternative approaches to this PR:

1. Automate version + notes bump (release tooling)
  • ➕ Reduces manual errors (forgetting README/current marker, changelog header, lockfile).
  • ➕ Standardizes release process and makes it reproducible in CI.
  • ➖ Adds tooling/CI complexity and may not match the project’s release ritual/gates.
  • ➖ Still requires human-authored RELEASES.md narrative for evidence.
2. Generate RELEASES.md from CHANGELOG + PR metadata
  • ➕ Avoids duplicating release narratives across multiple documents.
  • ➕ Can automatically embed links/PR references and dates.
  • ➖ Harder to capture bespoke operational evidence/waivers in a structured generator.
  • ➖ May constrain the current evidence-driven format.

Recommendation: For this PR, the current mechanical rollup is appropriate and low-risk. Longer-term, consider lightweight automation for the version bump + README/current marker to prevent drift, while keeping RELEASES.md as the hand-written source of operational evidence.

Files changed (5) +11 / -3

Documentation (3) +9 / -1
CHANGELOG.mdStart v0.8.4 section in changelog +2/-0

Start v0.8.4 section in changelog

• Introduces a new dated heading for v0.8.4 by moving the changelog forward from the Unreleased section. This reflects the patch release cut on 2026-07-29.

CHANGELOG.md

README.mdMark v0.8.4 as current in milestones table +2/-1

Mark v0.8.4 as current in milestones table

• Moves the “(current)” marker from v0.8.3 to v0.8.4 and adds a short v0.8.4 summary line to the milestone table.

README.md

RELEASES.mdAdd v0.8.4 release entry with evidence summary +5/-0

Add v0.8.4 release entry with evidence summary

• Adds a new v0.8.4 section documenting the patch release scope and validation evidence, including the parked-connection spin fix context and associated follow-ups. Keeps prior v0.8.3 entry intact below.

RELEASES.md

Other (2) +2 / -2
Cargo.lockLockfile version bump to 0.8.4 +1/-1

Lockfile version bump to 0.8.4

• Updates the workspace/package version recorded in Cargo.lock from 0.8.3 to 0.8.4 to match the release.

Cargo.lock

Cargo.tomlCrate version bump to 0.8.4 +1/-1

Crate version bump to 0.8.4

• Updates the crate’s package version from 0.8.3 to 0.8.4 for the release cut.

Cargo.toml

@qodo-code-review

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

To customize comments, go to the Qodo configuration screen, or learn more in the docs.

Qodo Logo

@TinDang97
TinDang97 merged commit a7b6174 into main Jul 29, 2026
16 checks passed
@TinDang97
TinDang97 deleted the release/v0.8.4 branch July 29, 2026 17:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant