homelab-codex-ws/services
Oskar Kapala d483274037 fix(node-agent): batch rsync, backlog trim, timeout 120s, backlog warn
Root cause of fleet staleness since ~OOM 2026-06-01: events/<node>/
grew to 291k files (1.2G on piha); rsync of the whole dir exceeded the
30s subprocess timeout every cycle; --remove-source-files never ran;
backlog compounded silently.

Four fixes:

1. Batch shipping (SHIP_BATCH_SIZE=1000): rsync sends only the oldest
   1000 files per cycle via --files-from=- on stdin instead of the whole
   directory.  Backlog drains across cycles; each push fits within timeout.

2. Timeout 30s → 120s: wider margin for large batches and slow links
   (piha → vps over Tailscale).

3. Backlog trim safety-net (_trim_events_backlog): if events/<node>/ exceeds
   BACKLOG_MAX (5000) files, oldest files are deleted to bring count back to
   5000.  Called each cycle before shipping.  Breaks the death-spiral
   independently of rsync success.  VPS excluded (uses _cleanup_control_plane_fs).

4. Backlog visibility: WARNING log with file count when unsent events
   exceed BACKLOG_WARN (2000).  "events backlog: N unsent files" — no more
   silent accumulation.

SHIP_BATCH_SIZE is env-configurable for tuning per-node.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-09 18:16:08 +02:00
..
agent-system fix(dashboard): read last_update from JSON content, not file mtime 2026-05-31 22:10:50 +02:00
brain-watchdog test(brain-watchdog): add pytest suite covering import and check() logic 2026-06-01 20:38:24 +02:00
control-plane fix(control-plane): run executor as uid 1000 with docker group access 2026-06-03 18:19:58 +02:00
forgejo Add node capability model 2026-05-11 20:46:50 +02:00
ha-diag-agent feat(control-plane): shadow_mode for HA event auto-actions + deploy docs 2026-05-29 17:12:33 +02:00
mosquitto Implement filesystem-first runtime event system 2026-05-12 13:38:25 +02:00
node-agent fix(node-agent): batch rsync, backlog trim, timeout 120s, backlog warn 2026-06-09 18:16:08 +02:00
node_exporter Fix pending actions: node_exporter, zigbee2mqtt, chelsty-ha monitoring 2026-05-27 15:10:48 +02:00
npm Add node capability model 2026-05-11 20:46:50 +02:00
ollama Add node capability model 2026-05-11 20:46:50 +02:00
planner-agent fix+debug(planner-agent): use base_url (not api_base) for litellm.acompletion, add print [TEMP] 2026-05-28 13:07:58 +02:00
stability-agent fix(stability-agent): run as uid 1000 with docker group access 2026-06-03 18:20:54 +02:00
zigbee2mqtt docs: compress CLAUDE.md + fix zigbee2mqtt coordinator docs 2026-05-29 14:17:23 +02:00
.gitkeep Add infrastructure standards and deployment conventions 2026-05-07 21:16:03 +02:00