Komodo Periphery<->Core websocket flaps every ~60-90s on Dispatcharr LXC 113 #194
Labels
No labels
blocked
needs-manual-review
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
matt/homelab-docker#194
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Found 2026-07-06/07 while debugging why Komodo silently failed to redeploy several stacks after PR merges (see #36 comment history and the Komodo procedure-split fix that same day).
Symptom
docker logs komodo-peripheryon PVE LXC 113 (Dispatcharr, 192.168.1.254) shows a continuous reconnect loop, roughly every 60-90 seconds, indefinitely:Occasionally escalates to a harder failure:
This is the ONLY Periphery connection that crosses a real network hop (Nexus <-> PVE LXC over the LAN) — every other Komodo-managed stack runs Periphery locally on Nexus itself (effectively loopback), so none of them show this pattern. That's why this specific LXC's flakiness was able to silently block deploys for unrelated stacks until the procedure was split (see below).
What's been ruled out
ping -c 10from Nexus to 192.168.1.254 showed 0% packet loss, ~0.3-1ms latency, no jitter.ip neigh//proc/net/arpon Nexus shows a single, stable, consistently-REACHABLE MAC for 192.168.1.254./proc/net/softnet_statinside the container showed 0 drops — so it's not a receive-queue overflow either.What hasn't been tried yet
Impact
Currently contained, not urgent: as of 2026-07-06, Dispatcharr was split out of the shared "Deploy Stacks" Komodo procedure into its own dedicated "Deploy Dispatcharr" procedure/webhook. This flapping can therefore no longer cause silent deploy failures for unrelated stacks (Home Assistant, Tandoor, etc.) — worst case now is Dispatcharr's own deploys/git-pulls occasionally failing and needing a manual retry.
Suggested next step
Start with a packet capture during an active disconnect window (the flapping is frequent enough that a 2-3 minute capture on both Nexus and the PVE host should catch several cycles), then check Komodo's ping/timeout config as a lower-effort first attempt.
Root cause found (packet capture, 2026-07-07)
There is still an IP conflict on 192.168.1.254 — a Netgear device (MAC
38:94:ed:52:73:92) is also using this address. The #36 fix (static .254) didn't help because .254 itself was already occupied. Confirmed viacurlto the device while Nexus's ARP entry pointed at it: lighttpd, TLS certCN=www.routerlogin.net, O=Netgear— a Netgear router/AP/extender, not documented anywhere in the homelab docs.Mechanism (from 4-min tcpdump on PVE
veth113i0, saved at/root/issue194.pcapon PVE)who-has 192.168.1.1 tell 192.168.1.254) on a ~66s cycle (22:26:39.5, 22:27:45.9 EDT).ip neigh show 192.168.1.254on Nexus →38:94:ed:52:73:92 REACHABLE(LXC 113's real MAC isbc:24:11:0a:3b:15).lib/transport/src/websocket/mod.rs, not configurable) trips →Timed out waiting for Ping. Nexus's neighbor-probing recovers the correct MAC after ~30-60s, the websocket relogs in, then the next Netgear ARP re-poisons. The ~60-90s flap period is the Netgear's ARP refresh cycle.This also explains all prior observations: ICMP tests passed (1s ping keeps the neighbor entry fresh / hit clean windows),
ip neighlooked stable when checked (point-in-time), and only this Periphery flaps (all others are local to Nexus — no ARP involved).Mitigation applied (2026-07-07 02:37 UTC)
Static ARP pin on Nexus:
ip neigh replace 192.168.1.254 lladdr bc:24:11:0a:3b:15 dev eno1 nud permanentip neigh del 192.168.1.254 dev eno1.Permanent fix — needs a decision
Option A (recommended): renumber LXC 113 to a verified-free static IP. Known references to update:
README.md(2 lines) anddashy/conf.yml(2 lines) in this repo, homelab docs/memory, and any IPTV clients pointed at.254:9191. Then remove the ARP pin on Nexus.Option B: find and reconfigure/remove the Netgear device. It answers HTTP/HTTPS at .254 during poisoned windows (
routerlogin.netcert). If it's a forgotten extender, unplugging it ends the conflict and .254 stays as-is. If it's an active AP, renumber it or the LXC.Either way the ARP pin should be treated as temporary.