Session-recovery robustness (from PR #1)

- Suppress ConnectionError log noise from in-flight requests draining
  after a session close (poll_scheduler + keepalive log at DEBUG).
- Null KeepaliveTask.on_unreachable during a forced reconnect so the
  dying session's keepalive can't flip HA availability offline after
  the new session is already healthy. Ported into PR #5's
  _maybe_force_reconnect flow.

Drops the _session_stop / publish-health force-close mechanism from
the original PR — PR #5's last_success_ts + _maybe_force_reconnect
already covers the 'session dead, restart it' goal via a different
path, and running both means two paths force-closing the same session
on the same failure.
This commit is contained in:
Aminorjourney authored and Jack Nagy committed 2026-07-02 21:15:00 +01:00
1 parent 93f78f99a2
commit 015e4a4e9e
4 files changed
+19 -1

No files matched your search

+2
View File
@@ -67,6 +67,8 @@ class KeepaliveTask:
try:
self.session.ping()
ok = True
except ConnectionError as e:
if self.log: self.log.debug("ping: %s", e)
except Exception as e:
if self.log: self.log.warning("ping: %s", e)
# Real half-open detection: ping sends can succeed against a