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_buffer and recovery_wait are 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-format is clean.

4. Plan

  1. Read the pass to see why it sees other tenants' work.
  2. Raise the case's buffer and wait, with the reason beside them.
  3. 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_default and account_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.

Emacs 29.3 (Org mode 9.6.15)