mirror of
https://github.com/openglow-org/forgefirm.git
synced 2026-09-27 16:51:12 -07:00
CAMPAIGN-LOG: the job's limits pass through on a live session
cloud.pause-resume passed on dev image 20260821220926 with the service's hunt windows (10 to 50 C) ignored as looser and the print's window (33 C, 5 C floor, 116 rpm air-assist floor) matched. The test now quotes the print's job-limits line rather than the session's first (a hunt's), and keeps the engine line that carries the header beside the last one. forgectrl pin moves to e0b41b3 (the "not stricter" notice once per value).
This commit is contained in:
+3
-1
@@ -1332,7 +1332,9 @@ Open items only. Anything closed is in `CAMPAIGN-LOG.md`.
|
||||
header, never loosening and never overruling an off gate, logs the
|
||||
effective set and publishes it in `/cool/status`; the coolant ceiling
|
||||
is the live consumer, the floors wait for the fan gates
|
||||
(`cloud.pause-resume` checks both log lines on a real print). The fan
|
||||
(`cloud.pause-resume` checks both log lines on a real print; bench PASS
|
||||
2026-08-21 on dev image `20260821220926`, the service's hunt windows
|
||||
ignored as looser and the print's 33 C window matched). The fan
|
||||
gates, the coolant critical tier and the watch-only board temperatures
|
||||
follow.
|
||||
|
||||
|
||||
@@ -3229,6 +3229,31 @@ test (forgefirm f274eb1) waits for the engine's phase to leave `run` after
|
||||
every M9 and cycles a session after restoring; it was hot-deployed to the
|
||||
board for this run and is in the next dev image.
|
||||
|
||||
## 2026-08-21: the job's limits pass through, seen on a live session
|
||||
|
||||
`cloud.pause-resume` PASS on dev image `20260821220926` (campaign
|
||||
`c-20260821222752-4d93`, 22:30:52Z), the first print under the header
|
||||
pass-through. The two logs together, from the same session:
|
||||
|
||||
- Every hunt and motion file the service sent carried a coolant window of
|
||||
10 to 50 C; the client derived `coolant_max_c=50.0 coolant_min_c=10.0`
|
||||
from each, and the engine answered `effective limits: coolant ceiling
|
||||
33.0 C (local 33.0, header 50.0)` with `header coolant ceiling 50.0 C is
|
||||
not stricter than the local 33.0 C; the local one stands`.
|
||||
- The print carried `air_assist_min_rpm=116 coolant_max_c=33.0
|
||||
coolant_min_c=5.0` (the captured cut-job values: `AArx` 64500 us, `CMrx`
|
||||
33000, `CMrn` 5000); the engine resolved the ceiling at 33.0 (equal to
|
||||
the local one, so the local stands) and published the floors (coolant
|
||||
5.0 C, air assist 116 rpm, exhaust and intake 0) for the gates to come.
|
||||
- At the job's end the limits left with it and the effective set fell
|
||||
back to local.
|
||||
|
||||
Two refinements from the run, neither a behavior change: the "not
|
||||
stricter" notice printed twice per job (forgectrl e0b41b3 names it once per
|
||||
value), and the test quoted the session's first job-limits line, a hunt's,
|
||||
where the print's is the one worth keeping (it now takes the first line
|
||||
after the print's action request).
|
||||
|
||||
## Superseded status notes
|
||||
|
||||
### Shared machine services — remaining polish, as listed 2026-08-13
|
||||
|
||||
@@ -836,15 +836,19 @@ def pause_resume(ctx):
|
||||
# the air-assist tach maximum) and hands them to the engine with every
|
||||
# report, and the engine names the effective set it is running on,
|
||||
# with the header's ceiling beside its own.
|
||||
limits = next((ln.split(LIMITS_MARK, 1)[1].strip() for ln in lines if LIMITS_MARK in ln), None)
|
||||
# The session's hunts and motions carry their own (looser) windows; the
|
||||
# line that matters is the print's, the first after its action request.
|
||||
print_at = max((i for i, ln in enumerate(lines) if "service action request: print" in ln), default=-1)
|
||||
limits = next((ln.split(LIMITS_MARK, 1)[1].strip() for ln in lines[print_at + 1:] if LIMITS_MARK in ln), None)
|
||||
ev["header_limits"] = limits
|
||||
ctx.log("job limits from the header: %s", limits)
|
||||
ctx.log("job limits from the header (the print's): %s", limits)
|
||||
ctx.check(limits is not None, "the client named no job limits from the header")
|
||||
ctx.check("coolant_max_c=" in limits, "the header's coolant ceiling did not reach the engine: %s", limits)
|
||||
eff = [ln.strip()[:200] for ln in log_lines_since(FORGECTRL_LOG, fc_offset) if EFFECTIVE_MARK in ln]
|
||||
ev["effective_limits"] = eff[-3:]
|
||||
ctx.log("engine effective limits: %s", eff[-1] if eff else None)
|
||||
ctx.check(any("header " in ln and "header none" not in ln for ln in eff),
|
||||
with_header = [ln for ln in eff if "header " in ln and "header none" not in ln]
|
||||
ev["effective_limits"] = with_header[-1:] + eff[-1:]
|
||||
ctx.log("engine effective limits: %s", with_header[-1] if with_header else None)
|
||||
ctx.check(with_header,
|
||||
"the engine never resolved an effective ceiling against the header's: %s", eff[-2:])
|
||||
|
||||
settle_cloud(ctx, offset)
|
||||
|
||||
@@ -344,8 +344,8 @@ class CloudSuiteTests(unittest.TestCase):
|
||||
# the job's envelope passed through: the client's line and the engine's
|
||||
self.assertEqual(ev["header_limits"],
|
||||
"air_assist_min_rpm=116 coolant_max_c=33.0 coolant_min_c=5.0")
|
||||
self.assertEqual(len(ev["effective_limits"]), 1)
|
||||
self.assertIn("header 33.0", ev["effective_limits"][0])
|
||||
self.assertIn("header 33.0", ev["effective_limits"][0]) # the line with the header
|
||||
self.assertTrue(all("effective limits: coolant ceiling 33.0 C" in ln for ln in ev["effective_limits"]))
|
||||
|
||||
def test_pause_resume_fails_when_the_client_names_no_header_limits(self):
|
||||
self.client_limits = False
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
# only SRCREV and PV here - the image manifest leaves *-pin.inc out of the
|
||||
# layer content hash because the component entry already identifies the
|
||||
# pinned source (forgefirm-image-manifest.bbclass).
|
||||
SRCREV = "57f6064214939422eec51f6044b5868dc839a291"
|
||||
SRCREV = "e0b41b33ee13c29d0ff772b15a919b2b24bfa24b"
|
||||
PV = "0.1.0"
|
||||
|
||||
Reference in New Issue
Block a user