test(#8140): verify keepalive interval cleanup on disconnect, resolve, and reject - #8190
Conversation
|
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
|
Thanks for adding coverage for #8140 — I ran the 3 new tests in However, this PR's diff isn't actually scoped to #8140 — it's a superset of your earlier branches (same commit set as #8110 and #8179, plus 2 more), so it also carries unrelated changes for #8074, #8072, #8059, #8081, #8056, and #8141 that aren't mentioned in the PR description. Several of those already have other open PRs in flight (yours: #8110, #8179; others': #8165, #8062, #8162, #8058, #8143), and the base ( To avoid re-merging stale/duplicate fixes, we'll extract just the new #8140 test commit onto a clean Going forward, cutting each new fix branch from a fresh |
437dbfc to
7441966
Compare
407de12 to
30980c5
Compare
…ect, resolve, and reject Closes diegosouzapw#8140 Adds 3 unit tests covering earlyStreamKeepalive timer cleanup: - Client disconnect (abort signal): interval cleared, no leaked timers - Handler resolves normally (slow path): interval cleared in finally block - Handler rejects (slow path): interval cleared despite error Each test verifies handle count stability across a 30ms gap to ensure no leaked setInterval keeps ticking after stream closure.
30980c5 to
5c262b8
Compare
# Conflicts: # .env.example # README.md
2dfc67e
into
diegosouzapw:release/v3.8.49
…ect, resolve, and reject (diegosouzapw#8190) * fix(ci): resolve upstream-inherited check failures * test(diegosouzapw#8140): verify keepalive interval cleanup on disconnect, resolve, and reject Closes diegosouzapw#8140 Adds 3 unit tests covering earlyStreamKeepalive timer cleanup: - Client disconnect (abort signal): interval cleared, no leaked timers - Handler resolves normally (slow path): interval cleared in finally block - Handler rejects (slow path): interval cleared despite error Each test verifies handle count stability across a 30ms gap to ensure no leaked setInterval keeps ticking after stream closure. --------- Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>
…ect, resolve, and reject (diegosouzapw#8190) * fix(ci): resolve upstream-inherited check failures * test(diegosouzapw#8140): verify keepalive interval cleanup on disconnect, resolve, and reject Closes diegosouzapw#8140 Adds 3 unit tests covering earlyStreamKeepalive timer cleanup: - Client disconnect (abort signal): interval cleared, no leaked timers - Handler resolves normally (slow path): interval cleared in finally block - Handler rejects (slow path): interval cleared despite error Each test verifies handle count stability across a 30ms gap to ensure no leaked setInterval keeps ticking after stream closure. --------- Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>
Closes #8140
Adds 3 unit tests covering
earlyStreamKeepalivetimer cleanup across all exit paths:Implementation notes
The keepalive
setIntervalisunref'd (line 120 ofearlyStreamKeepalive.ts), so it doesn't appear inprocess._getActiveHandles(). Each test verifies cleanup by checking handle count stability across a 30ms gap — if the interval were leaked, the handle count would fluctuate as it ticks.Verification
Lint: clean