A runner's claim lists the rootfs images it holds (refs andymccall/oxygenhub#73) 8c0a4e3a8a30
ClaimRequest gains images: the BLAKE3 hashes of cas/*.ext4 in the
runner's home, read at each claim so an image imported meanwhile counts.
The hub can then offer a runner only the jobs whose image it has; absent,
as from an older runner, any job may still be offered.
- **A runner says which images it holds (oxygenhub#73).** Each claim lists the rootfs images in the runner's `cas/` (read each time, so an image imported while it runs counts), and the hub offers only jobs whose image is among them. plex-1 had failed metalgear's jobs for want of one.
8
+
7
9
- **A job's result is kept until the hub has it (oxygenhub#71).** The runner offered a finished job's result three times over seven seconds and then dropped it, so a hub that was briefly down (Earth's reset) left the job running forever. The result is now kept on disk (`pending/` in the Flow home) and offered again, every 5 s doubling to a minute, for up to two hours, through any server error or lost connection; a runner that restarts sends what it kept. A refusal (the hub ended the job already) is final.
8
10
9
11
- **The Rust build image vendors mimalloc (#20).** Oxygen's new allocator was missing from the image, so oxygen's runs #150 to #153 failed. The image was rebuilt with `images/rust/build.sh`, imported on Earth and pinned in the oxygen, oxygenhub and oxygenflow pipelines. Rebuild it whenever a `Cargo.lock` of those projects changes.
…
1 unchanged lines
modifiedcrates/flow-core/src/api.rs+6−0
…
21 unchanged lines
22
22
/// What the runner is, for the hub's Runners page.