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:
parent
da76a77757
commit
630d43bed7
2 changed files with 10 additions and 1 deletions
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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"; }
|
||||
|
|
|
|||
Loading…
Reference in a new issue