mirror of
https://github.com/openglow-org/forgefirm.git
synced 2026-09-27 08:41:13 -07:00
BRINGUP: unified logging bench validation complete (levels, remote, rotation, export, RT, respawn, cloud routing)
This commit is contained in:
+42
-22
@@ -2703,28 +2703,48 @@ motion, cooling, camera, cloud, then the live tests from the page.
|
|||||||
unreachable (the rendered rules end in `stop`) — the default rules
|
unreachable (the rendered rules end in `stop`) — the default rules
|
||||||
now come from the init script when the render leaves none
|
now come from the init script when the render leaves none
|
||||||
(forgefirm 7487f90, next image).
|
(forgefirm 7487f90, next image).
|
||||||
- levels: set `grblhal` disk to `debug` in the panel → the pending
|
- ~~levels~~ **DONE 2026-08-15** (three reboots): `forgectrl`/`grblhal`
|
||||||
marker and banner appear; after reboot the per-run
|
→ `debug`: `pending_reboot:true` before, effective after; the per-run
|
||||||
`gfstream: run:` stats appear; set it to `warning` → they stop;
|
`gfstream: run:` DEBUG stats appear on jogs; `forgectrl` → `warning`
|
||||||
`off` → the file stops growing. Remote: point `syslog_server` at a
|
+ `grblhal` → `off`: the new boot wrote zero NOTICE/INFO forgectrl
|
||||||
LAN host running `nc -ul 514` (or rsyslog), one logger's remote
|
lines and kept a WARNING probe, grblhal wrote nothing even for an
|
||||||
level `info`, reboot → RFC 5424 lines arrive; unplug the host →
|
`err` probe, kernel/system unaffected; defaults restored and
|
||||||
the machine keeps cutting/logging locally, nothing stalls
|
re-verified. ~~Remote~~ **DONE 2026-08-15 against a listener on the
|
||||||
(per-action queue discards).
|
board itself** (`127.0.0.1:5514`, UDP — the workstation's firewall
|
||||||
- rotation: `logger -t grblhal` a 3 MB burst (or a debug-level
|
drops unsolicited inbound UDP and was left alone): RFC 5424 lines
|
||||||
session) → the hourly/boot logrotate produces `grblhal.log.1.gz`
|
arrive (`<31>1 … glowforge grblhal - - - …`), filtered exactly per
|
||||||
and the live file keeps receiving lines (HUP reopen).
|
logger (grblhal debug + forgectrl info forwarded; forgectrl debug
|
||||||
- export: download both bundle variants from the panel; the
|
and gfhome err held back); the physical hop to another host is the
|
||||||
sanitized `README.txt` lists redactions and no bundle file
|
only part not exercised. Unreachable-server behavior not separately
|
||||||
contains the machine's serial, `XXX-YYY` hostname, WiFi SSID, or
|
drilled (UDP has none; the TCP queue discards by config).
|
||||||
a LAN IP (`grep` the extracted tree); the unsanitized one does.
|
- ~~rotation~~ **DONE 2026-08-15**: a 30 000-line burst (4.8 MB) into
|
||||||
Staging under `/data/forgefirm/tmp/` is empty afterwards.
|
`grblhal`, one `logrotate` run → `grblhal.log.1.gz` (all 30 024
|
||||||
- RT: a debug-level GRBL session with LightBurn streaming — producer
|
lines), the live file recreated and receiving (rsyslogd's fd on the
|
||||||
stats `clamped 0`, no underrun (fflog is non-blocking; nothing
|
new inode). The imuxsock per-pid rate limit did not engage for
|
||||||
logs from the shipper).
|
`logger` bursts (each line is a new pid) — it bounds a single
|
||||||
- `/etc/init.d/forgectrl stop`/`start` — the fifo relay comes and
|
runaway process only, as intended.
|
||||||
goes with the wrapper; a forced daemon crash logs the wrapper's
|
- ~~export~~ **DONE 2026-08-15**: both variants downloaded over the LAN;
|
||||||
`exited (N) - respawning in 5 s` line under `forgectrl`.
|
the sanitized bundle carries `<SERIAL>`, `<IP-n>`, `<MAC-n>` and no
|
||||||
|
LAN address, the full one has them; staging empty afterwards.
|
||||||
|
- ~~RT~~ **DONE 2026-08-15**, with a finding that is NOT logging: X
|
||||||
|
jogs (F600/F1200, ±5 mm) with `grblhal` at debug: without a camera
|
||||||
|
stream `max behind 0–5.8 ms, clamped 0`; with the lid stream running
|
||||||
|
steady, `max behind 6–19 ms, clamped 0–11` per run — and the same
|
||||||
|
with rsyslogd frozen (SIGSTOP) during the runs (`clamped 0/1/0/10`),
|
||||||
|
so the producer clamping under a live stream is the stream's CPU
|
||||||
|
load, not the logger (no underrun, the shipper is unaffected). The
|
||||||
|
2026-08-03 baseline said `clamped 0` at F1200 with a stream —
|
||||||
|
re-check under item 1/10 (VPU stream + cooling engine + telemetry
|
||||||
|
polling all landed since).
|
||||||
|
- ~~stop/start~~ **DONE 2026-08-15**: `kill -9` of the daemon → the
|
||||||
|
wrapper's `forgectrl[-] ERR exited (137) - respawning in 5 s` lands
|
||||||
|
through the fifo relay, the respawned daemon stood by, took over the
|
||||||
|
unmanaged controller, re-probed motion and restarted it; a mode
|
||||||
|
switch to cloud put gfcloud's lines (`ffmachine:_lid_image …`,
|
||||||
|
`websocket:img_upload COMPLETE`) in `gfcloud/gfcloud.log` with a
|
||||||
|
per-controller relay alive, and back. **Item closed** except: the
|
||||||
|
physical remote hop, a `$H` for the gfhome lines, and a Python
|
||||||
|
traceback through the relay (routing proven with `logger`).
|
||||||
|
|
||||||
15. **Release acceptance tool (forgetest) - CODE-COMPLETE 2026-08-15,
|
15. **Release acceptance tool (forgetest) - CODE-COMPLETE 2026-08-15,
|
||||||
host- and build-verified; bench validation pending, ships with the
|
host- and build-verified; bench validation pending, ships with the
|
||||||
|
|||||||
Reference in New Issue
Block a user