Backlog: F6a and the database-locked fix logged da29defdcb97
- Author
- Andy McCall @andymccall <[email protected]>
- When
- · 2026-09-28 21:11 UTC
- Signature
- ✔ signed by Andy McCall
- Hash
da29defdcb979896472dc431b2ba7404a6eaa041f949f38c5ac64c7c89e3ea45- Depends on
- 3c5c6ad2518a 75036530b621
- Depended on by
- 57dfc51417fd
- In bookmarks
- agents-in-readme bare-hashes carried-not-removed carry-identical doctor-trust identical-sides keyless-tags main merge-remote-bookmark only-help-103 paths-for-resolutions-and-amend push-notes show-stat subrepo-pin-state switch-says
- In tags
- v0.1.0 v0.10.0 v0.11.0 v0.2.0 v0.3.0 v0.3.1 v0.4.0 v0.4.1 v0.4.2 v0.4.3 v0.4.4 v0.4.5 v0.4.6 v0.5.0 v0.5.1 v0.6.0 v0.7.0 v0.8.0 v0.9.0
- Edits
- 1 atom, 0 tree operations, 1 file
Browse the tree at this change
modified docs/backlog-overnight-2.md +13 −0
| … | 410 unchanged lines |
||
| 411 | 411 | - **Andy asked:** |
|
| 412 | 412 | - Why his pushes show "site token": his repositories metalgear, rstar-api and snake-oxy use hub.toml's site push token (c085…). Told him to make his own personal token and set it with `oxy config remote.earth.token`. Removing the site token waits for his OK. |
|
| 413 | 413 | - The oxy equivalent of git-flow: bookmarks and `oxy merge` (a union, no merge change), proposals, tags. Answered. |
|
| 414 | + | - 2026-09-28 F6a done (oxygenflow#6, oxygenhub#21, closed by the changes). |
|
| 415 | + | - **The runner** runs up to `max_jobs` jobs at once within a memory and vCPU budget (flow.toml). |
|
| 416 | + | - It reports its free room when it claims, and the hub hands out only a job whose sandbox fits; a lone job may use the whole budget. |
|
| 417 | + | - Preparing workspaces stays one at a time: shared repository caches, and the first clone's token in the environment. |
|
| 418 | + | - Unit-tested budget; the hub was deployed before the runner. |
|
| 419 | + | - **Measured honestly: parallel Rust jobs are slower on Earth's 4 cores.** Oxygen's run took 345 s with clippy beside test and build (clippy 46 s → 1 min 53 s, build 2 min 7 s → 4 min 49 s), against 284 s one at a time. |
|
| 420 | + | - Earth's budget is therefore max_jobs 3, 24 GiB and **5 vCPUs**: one 4-vCPU Rust job at a time, with 1-vCPU and short jobs beside it. |
|
| 421 | + | - The real speed-up is F6b (prebuilt dependencies, release without debug info). |
|
| 422 | + | - **Found on the way:** OxygenFlow log appends failed with HTTP 500 "database is locked", losing log lines. |
|
| 423 | + | - Cause: the hub's write transactions were deferred and read before writing, which SQLite fails at once whatever the busy timeout. |
|
| 424 | + | - All 9 now begin IMMEDIATE (`db::begin_write`). A test of 16 concurrent appends fails with the old code and passes now. |
|
| 425 | + | - Deployed; the next oxygenhub run passed with no new lock errors in the runner's log. |
|
| 426 | + | - **Andy asked** whether an `oh` command, like GitHub's `gh`, should be its own repository. Recommended a crate in the oxygenhub workspace, since it shares hub-api and can test against a real hub. Asked where in the backlog he wants it; no answer yet. |