aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-06-06 21:12:17 -0700
committerAdam Soltys <[email protected]>2026-06-06 21:12:17 -0700
commit7b71c96b5ed9728c63e8fcbb7b2a8bb7155ec7af (patch)
tree338a679979c118452ee56667ad4fc90bf4e608ba /scripts
parent10284aa1b8868012829c0b643def73ee55e4822d (diff)
downloadcoinos-server-7b71c96b5ed9728c63e8fcbb7b2a8bb7155ec7af.tar.gz
coinos-server-7b71c96b5ed9728c63e8fcbb7b2a8bb7155ec7af.zip
lightning: watchdog only recycles on real backlog, not normal idle
The zombie-listener watchdog (bd1ece38) treated "waitanyinvoice blocked > 5min while cl is alive" as a stall — but that's NORMAL during quiet periods, so it false-fired and needlessly recycled the cl listen socket every few minutes (~26x in 6h on 2026-06-07). Receives still worked, but it was churn + noise and would mask a genuine zombie. Fix: a blocked long-poll is only a zombie if cl actually has a paid invoice the listener isn't picking up. When blocked past the threshold, probe cl on the MAIN socket with waitanyinvoice(pay_index, 2s server-side timeout): if it returns an invoice there's a real backlog the wedged listener missed -> recycle; if it times out (CLN code 904 = nothing waiting) the listener is just idle and healthy -> leave it alone. Only recycle on a confirmed backlog. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Diffstat (limited to 'scripts')
0 files changed, 0 insertions, 0 deletions