Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

grpc-js: Merge 1.10.x branch into master #2792

Merged
merged 35 commits into from
Jul 12, 2024

Conversation

murgatroid99
Copy link
Member

To prepare for a 1.11.x branch cut.

davidfiala and others added 30 commits May 28, 2024 14:53
- Bugfix: Ensure that if session.ping returns false we correctly identify fail the keepalive and connection
- Bugfix: Ensure that if the interval between keepalives being sent occurs faster than the prior keepalive's timeout that we do not overwrite the reference to the prior timeout. Prior implementation could have in theory prevented a valid keepalive timeout from clearing itself. This rewrite keeps every timeout as a local (vs a shared state per session). Even if the timeout outlives the lifetime of a session, we still guard against errors by checking that the parent interval is not false-y. I reckon this could result in a short-term memory leak per session which is bounded for a maximum of keepaliveTimeoutMs. On the other hand even with that potential for a short reference hold, this implementation proposed here is more correct I think. One alternative we could do is keep a list of pending timeouts.. which is complex for a rare situation that will self resolve anyhow when keepaliveTimeoutMs is reached.
- Bug Fix: keepalive intervals were being cleared with an incorrect clearTimeout before. Not sure if this was causing intervals leaks in some nodejs impls or not. (v20.13.1 seems to accept this mismatch without issue)
- Rename variables for clarity, to prevent future bugs like swapping clearInterval vs clearTimeout.
- Implementation is repeated in two places, per warning from grpc#2756 (comment)
- This commit supercedes the prior PR on a master branch which was out of date. grpc#2756
…ger. this is a necessary change to fit with having removed keepaliveDisabled boolean. manually inspected test logs for both server.ts and transport.ts to verify both types of keepalives are operating correctly.
grpc-js: Avoid buffering significantly more than max_receive_message_size per received message
…ror_hang

grpc-js: Fix client hang when receiving extra messages for a unary response
Keepalive bugfixes and unify timers strategies between client and server
…ge_size_fix

grpc-js: Re-add client-side max send message size checking
…st_deflake

grpc-js: Increase state change deadline in server idle tests
…pick_fix

grpc-js: Ensure pending calls end after channel close
…onnection_fix

grpc-js: Fix pick_first reconnecting without active calls
@murgatroid99 murgatroid99 merged commit b35896b into grpc:master Jul 12, 2024
9 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants