You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Timer-phase-independent watchdog + HTTP timeouts
Deep dive found the recurring detection freeze: the old watchdog was a
setInterval, so whatever wedges the JS timer phase (a nested native run
loop around the meeting UI work) froze the poll loop AND the watchdog
together — which is why neither a heartbeat nor a "watchdog restarting"
line ever appeared.
- Drive the watchdog from setImmediate (libuv check phase) too, so it
keeps cycling even when setTimeout/setInterval are dead, and recover by
rebuilding fresh timers + polling directly off setImmediate. Verified it
recovers with the timer phase fully stubbed dead.
- Fix a per-poll setTimeout leak in _micMac (clear the kill timer on the
normal path; unref; guard child 'error').
- tpclient: 20s request timeout + req.destroy so a hung DNS/TP call can't
hang a promise or leak a socket forever (the c-ares frames in the freeze
sample). updateTotals no longer stacks overlapping fetches.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>