Fix nightly rolling-upgrade rehearsal - #478
Conversation
Use the migration model's current version in rolling-upgrade assertions so new migrations do not deterministically break the release gate. Recheck queue-storage readiness when migration commit races startup diagnostics, and include every nightly job in failure notifications.
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. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughChangesThe worker now re-probes queue-storage readiness when a migration commits between probes. Rehearsal tests use Queue readiness and rehearsal validation
Nightly failure reporting
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to The PR corrects rolling-upgrade schema assertions, handles a startup race without bypassing readiness checks, and updates nightly failure notifications; no actionable merge-blocking risk remains after normal checks and review. Sequence Diagram(s)sequenceDiagram
participant resolve_effective_storage
participant current_version_readonly
participant queue_storage_schema_ready
resolve_effective_storage->>current_version_readonly: read observed schema version
current_version_readonly-->>resolve_effective_storage: return CURRENT_VERSION
resolve_effective_storage->>queue_storage_schema_ready: re-probe queue-storage readiness
queue_storage_schema_ready-->>resolve_effective_storage: return readiness result
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 85.71% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 7 functions across 2 files. (1 skipped: 1 unsupported.) ✨ Finishing Touches📝 Generate docstrings
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 |
Summary
migrations::CURRENT_VERSIONin every rolling-upgrade schema assertioncompat-matrixandrolling-upgrade-rehearsalin nightly failure notificationsRoot cause
Migration v044 advanced the current schema while the release-gate rehearsal still asserted the literal version 43, making every cell fail deterministically after a successful migration.
Repeated local validation also exposed a startup race in the overlap cell. The readiness probe could observe the pre-migration schema, then the version probe could observe the committed current schema and misclassify the transient state as an unprepared installation. The startup path now carries the observed version and rechecks readiness when those probes straddle the commit.
Validation
cargo fmt --all -- --checkSQLX_OFFLINE=true cargo clippy --workspace --all-targets --all-features -- -D warningsSQLX_OFFLINE=true cargo build --workspacecargo test --package awa-worker— 49 passed, 2 ignoredSummary by CodeRabbit
Bug Fixes
Tests