The lab key travels with the build environment; the device coordinator's record line

infra/build-server/lib.sh: bs_repro_env forwards IGNEUM_LAB_PUBLIC_KEY to the box when the caller set it, so the lab
build (`--features lab`) compiles its root through tools/build-remote.sh without the key in the tree. The prover
logs `DEVICE event=free|not-free used_mib=<n> waited_s=<s> holder=prover` around the time-share gate: the line the
fleet lane's INT-11 rows read (the device free memory confirmed, not dispatch paused).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
igneum-labs 2026-10-08 19:20:16 +00:00
parent da76a77757
commit 630d43bed7
2 changed files with 10 additions and 1 deletions

View file

@ -370,9 +370,13 @@ fn wait_for_free_memory(shared: &Arc<Shared>) -> Option<u64> {
let used = crate::detect::nvidia_memory_used();
worst = used.values().copied().max().unwrap_or(0);
if used.is_empty() || worst < crate::device::FREE_MIB {
// the record line the fleet lane's rows read (INT-11): the device read free before the proof, with the wait
let waited = crate::device::FREE_WAIT_S.saturating_sub(deadline.saturating_duration_since(Instant::now()).as_secs());
shared.log(&format!("DEVICE event=free used_mib={worst} waited_s={waited} holder=prover"));
return None;
}
if Instant::now() >= deadline {
shared.log(&format!("DEVICE event=not-free used_mib={worst} waited_s={} holder=prover", crate::device::FREE_WAIT_S));
shared.log(&format!("prover: a device still holds {worst} MiB after {} s; the miner's dataset is not evicted, the shard waits", crate::device::FREE_WAIT_S));
return Some(worst);
}

View file

@ -309,7 +309,12 @@ bs_sync_sources() {
# commit's author time and TZ to UTC; the same two exports go into the Mac's cross-build.sh and the PC job (jobbuild.rs).
# bs_repro_env prints the export line a remote command starts with; BR_SDE carries the value into remote-run.sh's JSONL line.
bs_sde() { git -C "${1:-$BS_TOP}" log -1 --format=%at HEAD; }
bs_repro_env() { local sde; sde=$(bs_sde "${1:-$BS_TOP}"); BR_SDE="$sde"; export BR_SDE; printf 'export SOURCE_DATE_EPOCH=%s TZ=UTC; ' "$sde"; }
bs_repro_env() {
local sde; sde=$(bs_sde "${1:-$BS_TOP}"); BR_SDE="$sde"; export BR_SDE; printf 'export SOURCE_DATE_EPOCH=%s TZ=UTC; ' "$sde"
# review B F14 (8 October 2026): the lab build's signing root travels with the build environment, never in the tree
# (app/igneum-app/src/edition.rs reads it with env! under the `lab` feature); forwarded only when the caller set it
if [ -n "${IGNEUM_LAB_PUBLIC_KEY:-}" ]; then printf 'export IGNEUM_LAB_PUBLIC_KEY=%q; ' "$IGNEUM_LAB_PUBLIC_KEY"; fi
}
bs_sha256() { shasum -a 256 "$1" | awk '{ print $1 }'; }
bs_size() { stat -f %z "$1" 2>/dev/null || stat -c %s "$1"; }