Task: Implement Hotfix: the recovery test fails when the database is busy
Table of Contents
This page documents a task in the Hotfix: the recovery test fails when the database is busy story. It captures the goal, current status, acceptance, and any notes or results.
1. Goal
Make the recovery case pass whatever else is running.
2. Status
| Field | Value |
|---|---|
| State | DONE |
| Parent story | Hotfix: the recovery test fails when the database is busy |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-10-01 |
3. Acceptance
step_command_bufferandrecovery_waitare named constants with the reason they differ from the neighbouring cases.- The case passes alone and in a parallel group with the suites that start workflows.
clang-formatis clean.
4. Plan
- Read the pass to see why it sees other tenants' work.
- Raise the case's buffer and wait, with the reason beside them.
- Run the case alone twice and in a parallel group, then format-check.
5. Measurements
| What | Value | Command | Commit | |||
|---|---|---|---|---|---|---|
| The failure | after.size() = 2 for: 1 = 2, a five second wait timing out |
CI log | main at 82ff1e59 | |||
| Alone, before and after | 3 of 3 runs pass on a quiet machine | ores.workflow.core.tests -r compact |
this branch | |||
| In the parallel pattern CI uses | pass, with iam core, ore core and shell workflow beside it | =ctest -j 4 -R "workflow\ | iam.core\ | shell.workflow\ | ore.core"= | this branch |
| Formatting | clean | clang-format --dry-run --Werror |
this branch |
6. Notes
- The pass is not narrowed: it must find every in-progress run after a restart. The read that would bound it is a repository read by state, which the generated repository does not offer today.
- iam core is red in this worktree on
is_registration_defaultandaccount_status, columns main added after the database was made; it is not part of this change and fails the same way without it.
7. PRs
| PR | Title |
|---|---|
| #2458 | Regenerate the ER diagram the SQL tree drifted away from |
8. Review
| Comment summary | File | Decision | Notes |
|---|---|---|---|
9. Result
The recovery case's subscription holds 512 commands and waits 20 seconds, and the constants carry the reason. It passes alone and with other suites beside it.