OXYGENHUB

Backlog: M4 done; database-locked retries ce3e73ce9020

Author
Andy McCall @andymccall <[email protected]>
When
· 2026-09-29 00:21 UTC
Signature
✔ signed by Andy McCall
Hash
ce3e73ce90208fe0b5c21a7ddfad4e946090c486d3d22e1196dbd750e571035a
Depends on
75036530b621 85ef828b6bf0 c1fe1fb25021
Depended on by
73609c9f7f50
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
3 atoms, 0 tree operations, 1 file

Browse the tree at this change

modified docs/backlog-overnight-2.md +14 −1
…
70 unchanged lines
71 71
- [x] M13 (feedback 3a) `oxy bookmark switch --carry`: take uncommitted work to the other bookmark when it applies cleanly there (and `bookmark create --switch` moving the working copy onto a new bookmark at its base, changes and all).
72 72
- [x] M14 (feedback 7a) `oxy show`'s summary lists every path the change touches with its kind (added, modified, removed, renamed, mode), not only additions.
73 73
- [x] M3 Start a run without moving a bookmark (feedback 9): "Run pipeline" on a state and "Re-run" on a finished run, in the web and the API.
74 -
- [ ] M4 Guest `/dev/fd`, `/dev/stdin|stdout|stderr` links in flow-init (feedback 15), and job variables `FLOW_STATE`, `FLOW_HEADS`, `FLOW_BOOKMARK`, `FLOW_RUN`, `FLOW_REPO` (feedback 17).
74 +
- [x] M4 Guest `/dev/fd`, `/dev/stdin|stdout|stderr` links in flow-init (feedback 15), and job variables `FLOW_STATE`, `FLOW_HEADS`, `FLOW_BOOKMARK`, `FLOW_RUN`, `FLOW_REPO` (feedback 17).
75 75
- [ ] M5 Sandbox-level `env` in pipeline.kdl, and the image's environment kept through `flow rootfs import` (feedback 16).
76 76
- [ ] M6 Flow API: `GET /repos/{o}/{n}/flow/runs`, `/flow/runs/{n}` with jobs, a job's log; checks by head hash as well as state (feedback 11). JSON 404s under `/api/v1` (feedback 13). Per-repository run numbers, or a note (feedback 12).
77 77
- [ ] M7 Server push errors name the operation and bookmark and log the error chain (feedback 2).
…
420 unchanged lines
498 498
  - Runs record what started them (migration 0020), and the run page says "pushed by", "started by" or "re-run of #N by".
499 499
  - Pushes and both new paths share `flow::start_run`.
500 500
  - One hub test; gate green; deployed; run green.
501 +
- 2026-09-29 **M4 done** (oxygenflow#7; feedback 15 and 17).
502 +
  - **/dev links.** flow-init adds `/dev/fd`, `/dev/stdin`, `/dev/stdout` and `/dev/stderr` into `/proc/self/fd`.
503 +
  - **Job variables.** Claims carry the run's state hash, bookmark and number. The runner adds `FLOW_REPO`, `FLOW_STATE`, `FLOW_HEADS`, `FLOW_BOOKMARK`, `FLOW_RUN` and `FLOW_JOB` to the job's environment, so they are in its receipt too.
504 +
    - `flow run` sets `FLOW_JOB` and `FLOW_RUN=local`.
505 +
    - A pipeline's own value wins; unknown values are left out.
506 +
  - **Tests:** unit tests for both, and the hub test checks the claim's new fields. Hub and runner deployed (runner with `.prev` copies).
507 +
  - **Proved in a real microVM on Earth:** `< <(echo …)` works, the links are there, and the variables arrive.
508 +
- 2026-09-29 **"database is locked" again** (oxygenflow#8).
509 +
  - At 00:40 and 01:01, during oxygenhub runs, log appends and a claim got HTTP 500 after the 5 s busy timeout, and the runner dropped those log lines.
510 +
  - It was not the hub restarting (up since 00:51) nor the WAL (4 MB). Most likely a commit stalled while the release build saturated Earth's disk. Not proven.
511 +
  - **Runner:** tries 5xx answers again after 1, 2 and 4 s; a 4xx is final. Tested against a fake hub.
512 +
  - **Hub:** busy timeout 30 s.
513 +
  - No lock errors in the runs since, including a full oxygenhub run.