| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | ln/lightning: watchdog recycles zombie receive-listener socket | Adam Soltys | 2026-06-04 | 1 | -1/+65 |
| | | | | | | | | | | | | | | | | | | | | | | On 2026-06-04 cl restarted (autoheal, after its 15s healthcheck timed out), and the app's waitanyinvoice long-poll hung on the now-dead listen socket. listenerActive stayed true forever, so ensureListenerAlive never restarted it, and incoming lightning payments stopped crediting for ~2h until a manual app restart. The per-call RPC timeout in ln.ts can't catch this: waitanyinvoice is intentionally in NO_TIMEOUT (it's meant to block). Fix: ensureListenerAlive (runs every 120s) now also detects a stalled listener — active but blocked in waitanyinvoice for >5min. It probes cl via the main ln socket (getinfo); only if cl is actually alive does it treat the listen socket as a zombie, call lnListen.reset() (new: drops the proxy's socket so the next call reconnects), and re-arm. A listenerEpoch guard makes the wedged invocation bow out when its waitanyinvoice finally rejects, so we never run two listeners concurrently and never double-credit. Verified with a state-machine test covering normal receive, quiet-but-healthy (left alone), stall+cl-alive (recycled), stall+cl-down (left alone), and the no-double-listener race. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]> | ||||
| * | lnurl proxy | Adam Soltys | 2026-03-27 | 1 | -0/+2 |
| | | |||||
| * | ensure lightning payments get processed | Adam Soltys | 2026-03-19 | 1 | -0/+9 |
| | | |||||
| * | listener logs | Adam Soltys | 2026-03-18 | 1 | -1/+1 |
| | | |||||
| * | remove logs | Adam Soltys | 2026-03-17 | 1 | -2/+0 |
| | | |||||
| * | health check | Adam Soltys | 2026-02-06 | 1 | -42/+103 |
| | | |||||
| * | sendinvoice support | Adam Soltys | 2025-09-18 | 1 | -4/+6 |
| | | |||||
| * | fix invoice lookup | Adam Soltys | 2025-03-07 | 1 | -8/+2 |
| | | |||||
| * | use getInvoice helper | Adam Soltys | 2025-03-05 | 1 | -5/+9 |
| | | |||||
| * | record payment_hash | Adam Soltys | 2025-03-05 | 1 | -0/+2 |
| | | |||||
| * | payment types | Adam Soltys | 2025-02-26 | 1 | -3/+4 |
| | | |||||
| * | check if bolt11 | Adam Soltys | 2025-01-23 | 1 | -4/+2 |
| | | |||||
| * | notes and stuff | Adam Soltys | 2025-01-21 | 1 | -3/+9 |
| | | |||||
| * | prettier | Adam Soltys | 2025-01-14 | 1 | -8/+6 |
| | | |||||
| * | handle zaps asynchronously | Adam Soltys | 2025-01-06 | 1 | -2/+2 |
| | | |||||
| * | fix bolt12 | Adam Soltys | 2024-12-26 | 1 | -3/+22 |
| | | |||||
| * | bolt12 replay | Adam Soltys | 2024-12-26 | 1 | -18/+15 |
| | | |||||
| * | replay function | Adam Soltys | 2024-12-23 | 1 | -0/+53 |
| | | |||||
| * | check for offers | Adam Soltys | 2024-12-22 | 1 | -1/+1 |
| | | |||||
| * | handle offers | Adam Soltys | 2024-12-19 | 1 | -4/+6 |
| | | |||||
| * | biome lint | Adam Soltys | 2024-10-31 | 1 | -8/+14 |
| | | |||||
| * | getpayment helper | Adam Soltys | 2024-10-01 | 1 | -3/+2 |
| | | |||||
| * | unused vars | Adam Soltys | 2024-09-25 | 1 | -6/+2 |
| | | |||||
| * | refactor rpc helper, accounts endpoints | Adam Soltys | 2024-09-08 | 1 | -1/+1 |
| | | |||||
| * | typescript | Adam Soltys | 2024-08-26 | 1 | -0/+52 |
