Repository navigation
chore: prepare 0.6.16 release - #705
Conversation
Turn the unreleased entries into the 0.6.16 section for operators upgrading from 0.6.15: a lead paragraph, the upgrade steps for the three schema patches and the prune control grants, the rolling-upgrade caveats for new queue lanes and 0.6.15 leaders, and the batch insert limits under Changed.
The guide was assembled from several changes' sections. It now has one list of upgrade steps covering the three schema patches and the prune control grants in order, a section per change, and a single roll back section. The batch insert section says the lane lock is held until the transaction ends, notes the subtransaction cache limit, and the 0.6.15 guide points to the fix. The README row lists all of 0.6.16.
Bring in the bounded rescue drain and fold its entries into the 0.6.16 section: the lead paragraph, a retry-burst upgrade note, a rescue and heartbeats group under Fixed, the leader hold and hook drops under Changed, and the new knobs and metrics under Added.
The rescue section now comes first among the changes, says when rescued jobs become due (2^attempt seconds plus jitter, so at about the drain rate) and that slow Rescued hooks drop events past 1,024 outstanding. The upgrade steps and roll back section mention the leader's rescue rate, the lifecycle hooks page notes the drain, the README row lists the drain, and the configuration table describes zero for either pass setting as the code does: one batch per rescue interval with no early passes.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the
|
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. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 86121e9f27
ℹ️ 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".
…lease notes The troubleshooting note on transient admin reads now says that a read of one job which finds nothing reads once more in a new snapshot, so a failed job that prune moved is no longer reported missing. The claim batch index note in the migrations guide said released 0.6 binaries neither use nor build the index; 0.6.15 does both, so it now names binaries before 0.6.15. The test plan lists the bounded rescue drain, the durable prune halt and the batch insert and new-lane deadlock tests, and the lock-order model now covers new-lane provisioning.
…ecture overview The recovery model now says that queue-storage rescue runs as passes of short 500-attempt batches, bounded by rescue_pass_budget and rescue_pass_max_rows and re-armed a second later while a backlog remains, with stale-heartbeat acceleration gated on runtime evidence. The reclamation section points at the maintenance.prune control: a halted leader stops admitting rotation, prune and housekeeping while enqueue, dispatch, promotion and rescue continue.
--scope, --mode, --reason and --halt had no help text. They now say which values are supported, that the reason is stored and shown by status, and where to find the halt UUID.
…r spec AwaStorageLockOrder collapsed a lane's queue_lanes row and provisioning lock into its enqueue lock, so it could not see the #692 deadlock between a QueueStorage process and a SQL producer that are both first to use a lane. It now models both: ProvisionLanePlan takes the row, then the provisioning lock, then the enqueue lock, as every producer does, and the main config stays deadlock-free (245,414 distinct states). AwaStorageLockOrderOldLaneProvisioningDeadlock.cfg keeps the earlier QueueStorage order and trips NoDeadlock in 5 steps. The TLC suite now runs that witness and the existing old striped-claim witness, which was documented but not run. MAPPING.md points the rescue actions at the batch entry points and records why bounded rescue passes, the stale-heartbeat owner-evidence gate, try-lock heartbeats and the prune halt leave every modelled invariant unchanged, and why batch insert contention, fresh-snapshot point reads and the claim batch index stay outside the models.
Bumps the Rust and Python packages from 0.6.15 to 0.6.16 and publishes the 0.6.16 release notes, written for operators upgrading from 0.6.15. The release contains #647 (bounded-time rescue drain of abandoned claims), #700 (batch insert gives way instead of deadlocking with per-row producers), #702 (new-lane provisioning order, #692), #675 (durable operator
maintenance.prunehalt), #701 (claim batch index check andSET-only migrator grants) and #698 (get_jobduring prune).The 0.6.15 → 0.6.16 upgrade guide, assembled from those PRs, is rewritten as one sequence: ordered upgrade steps (migrate, grants, roll binaries, fence older leaders), a section per change, and a single roll-back section. Notable operator points: three repeatable patches re-apply or install on a 0.6.15 database; the prune halt needs runtime and operator grants before it can be relied on; a large abandoned-claim backlog now drains in minutes, so its retries become due at about the drain rate. The README guide row,
lifecycle-hooks.md(hook drops during a large drain) andconfiguration.md(zero rescue-pass settings) are aligned with the code. CHANGELOG and docs are flowed onto single lines, because the release workflow publishes the CHANGELOG section as the GitHub release body.Testing
cargo check --workspace --lockedpasses,cargo metadata --lockedpasses forawa-python, andcargo fmt --checkis clean. Version bump and docs only.