From 1d836f57c6d0f0e953e4b039d2b37b8017915fcd Mon Sep 17 00:00:00 2001 From: c4ch3c4d3 Date: Tue, 18 Aug 2026 21:32:34 -0500 Subject: [PATCH] =?UTF-8?q?docs:=20stability=20notes=20=E2=80=94=20pineapd?= =?UTF-8?q?=20crash=20sources=20+=20fixes=20on=20Pager=2024.10.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/README.md b/README.md index ed33c1a..12f36e1 100644 --- a/README.md +++ b/README.md @@ -100,6 +100,26 @@ terminal I/O, and reboot persistence. - `www/` — vanilla JS SPA (no build step) + bundled xterm.js. - `payload.sh` + `pagerwebui.init` — Nautilus-style installer / procd service. +## Stability notes (Pager 24.10.1) + +pineapd crash sources found and fixed on this firmware (verified on-device, +zero crashes over sustained watches): + +1. **SSID-pool broadcast** — segfaults pineapd (~15s cadence). Kept disabled. +2. **wlan2mon** — a 6GHz monitor this hardware never creates; hopping the + missing iface segfaults pineapd. Disabled. +3. **Large refilled pool** — the pool list itself crashes pineapd even with + broadcast disabled. The health monitor clears it (collect refills). +4. **wlan1mon fast-hopping 6GHz** — stalls pineapd's command socket; the + stock daemon's watchdog then SIGTERMs pineapd every ~30s. Bands pinned + to 5GHz (2.4GHz only on wlan0mon). +5. **Socket collisions** — actively pinging pineapd from a health monitor + collides with the stock daemon's own socket writes. The monitor now + checks `pidof` only. + +`GET /api/health` reports pineapd/monitor state; the top bar shows a +PINEAP OK / POOL OFF / PINEAPD DOWN chip. + ## Security notes - Auth via device password validated against the daemon; HttpOnly session