Commit Graph

4856 Commits

Author SHA1 Message Date
David Fiala 98cd87f751
ensure that client keepalive timers are always cleared when they trigger. 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. 2024-06-06 22:57:13 -07:00
Michael Lumish e64d816d7d grpc-js: Avoid buffering significantly more than max_receive_message_size per received message (1.10.x) 2024-06-06 15:00:23 -07:00
David Fiala 3c5ab229b1 per discussion, avoid tracking keepalive disabled state and instead depend on whether the session is destroyed 2024-06-05 19:01:02 -07:00
Michael Lumish 7719e37c83 grpc-js: Fix client hang when receiving extra messages for a unary response 2024-06-05 17:55:56 -07:00
subhraOffGit 6957c6c4ec
[vote]Added Active maintainers into MAINTAINERS.md.
[vote] Added sergiitk, gnossen, temawi into grpc/node active maintainers list. Removed  @jtattermusch, @nicolasnoble, @srini100 from active maintainers list and moved them to emeritus. Added @nimf to emeritus
Please comment as "Agree" if you agree to the change, if not please comment as "Disagree". Your comment will be counted as a vote.
The PR needs to stay open for 14 days, I.e. till 15th June 2024 as per governance guidelines
2024-06-01 20:28:10 +05:30
David Fiala c2da436a8e remove keepaliveDisabled from server.ts. rename keepaliveTimer. 2024-05-29 15:09:55 -07:00
David Fiala a77d94f7c6 Based on grpc/grpc-node#2139 I wrapped http2session.ping in a try-catch block again 2024-05-29 10:37:40 -07:00
Brendan Myers 8e2dc274a3 fix: add decoding for url encoded user credentials 2024-05-29 19:24:48 +10:00
David Fiala d325b5fff3 hoist in second location 2024-05-28 22:46:48 -07:00
David Fiala bed5e85af9 resolve hoisting 2024-05-28 22:43:51 -07:00
David Fiala 19cdc1233c another missing trace message for parity 2024-05-28 22:37:24 -07:00
David Fiala 7883164137 return imports back to original order 2024-05-28 22:35:40 -07:00
David Fiala 577b4b4748 add keepalive server trace back in to match channelz vs non-channelz trace behavior 2024-05-28 22:32:09 -07:00
David Fiala d799a7a5bd unify server and client keepalive matching comments and discussion on first round of review from https://github.com/grpc/grpc-node/pull/2760 2024-05-28 22:26:25 -07:00
David Fiala 334f0dcdb5 remove comment 2024-05-28 14:58:59 -07:00
Michael Lumish a4c2106e63
Merge pull request #2758 from murgatroid99/grpc-js_1.10.x_upmerge
Merge 1.10.x branch into master
2024-05-28 14:58:13 -07:00
David Fiala ad598ecbe4 Serverside keepalive error detection and cleanups
- 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 https://github.com/grpc/grpc-node/pull/2756#issuecomment-2136031256
- This commit supercedes the prior PR on a master branch which was out of date. https://github.com/grpc/grpc-node/pull/2756
2024-05-28 14:53:46 -07:00
Michael Lumish 71853407a4 Merge remote-tracking branch 'upstream/@grpc/grpc-js@1.10.x' into grpc-js_1.10.x_upmerge 2024-05-28 13:34:05 -07:00
Michael Lumish 45e5fe5462
Merge pull request #2750 from murgatroid99/grpc-js_idle_uds_fix
grpc-js: Fix UDS channels not reconnecting after going idle
2024-05-15 09:17:41 -07:00
Michael Lumish 87a3541402 grpc-js: Fix UDS channels not reconnecting after going idle 2024-05-14 14:47:53 -07:00
James Watkins-Harvey 3e89fdcec1 HTTP CONNECT: handle early server packets 2024-05-10 16:17:06 -04:00
Michael Lumish 3105791fbe
Merge pull request #2740 from sergiitk/backport-1.10-psm-interop-common-prod-tests
PSM Interop: simplify Kokoro buildscripts (@grpc/grpc-js@1.10.x backport)
2024-05-07 10:10:48 -07:00
Michael Lumish fec135a980 Merge pull request #2729 from sergiitk/psm-interop-common-prod-tests
PSM Interop: simplify Kokoro buildscripts
2024-05-06 15:26:17 -07:00
Michael Lumish 15b7d4dcd4
Merge pull request #2729 from sergiitk/psm-interop-common-prod-tests
PSM Interop: simplify Kokoro buildscripts
2024-05-06 15:20:11 -07:00
Sergii Tkachenko 1495b020f5 PSM Interop: move test suite lists to psm_interop_kokoro_lib.sh 2024-05-06 14:05:54 -07:00
Michael Lumish 76fe802309
Merge pull request #2739 from murgatroid99/backport-1.10-grpc-js_linkify-it_fix
root: Update dependency on jsdoc to avoid linkify-it compilation error (@grpc/grpc-js@1.10.x backport)
2024-05-06 09:37:50 -07:00
Michael Lumish d5edf49f6c Merge pull request #2735 from murgatroid99/grpc-js_linkify-it_fix
root: Update dependency on jsdoc to avoid linkify-it compilation error
2024-05-03 14:28:01 -07:00
Michael Lumish 1a8678e493
Merge pull request #2735 from murgatroid99/grpc-js_linkify-it_fix
root: Update dependency on jsdoc to avoid linkify-it compilation error
2024-05-03 14:24:44 -07:00
Michael Lumish 5b76d7dfe8 root: Update dependency on jsdoc to avoid linkify-it compilation error 2024-05-03 14:05:38 -07:00
Michael Lumish 23c05fca84
Merge pull request #2732 from murgatroid99/grpc-js_proto-loader_update
grpc-js(-xds): Pick up proto-loader update
2024-05-01 11:03:57 -07:00
Michael Lumish 0ae86b13f0
Merge pull request #2731 from murgatroid99/proto-loader_dependency_update
proto-loader: Update dependency on protobufjs
2024-05-01 10:31:13 -07:00
Michael Lumish 0bbfb920d1
Merge pull request #2723 from murgatroid99/grpc-js_http2_error_reporting
grpc-js: Improve reporting of HTTP error codes
2024-05-01 10:27:59 -07:00
Michael Lumish 5e1ab3ecf8
Merge pull request #2717 from murgatroid99/proto-loader_duplicate_method_declarations
proto-loader: Avoid generating duplicate method declarations in some cases
2024-05-01 10:26:49 -07:00
Michael Lumish e4f2ecd053 grpc-js(-xds): Pick up proto-loader update 2024-04-30 15:49:20 -07:00
Michael Lumish cf9cba6142 proto-loader: Update dependency on protobufjs 2024-04-30 10:35:48 -07:00
Michael Lumish 8754ccb7db grpc-js: Improve reporting of HTTP error codes 2024-04-11 10:56:18 -07:00
Michael Lumish b292946de7 proto-loader: Avoid generating duplicate method declarations in some cases 2024-04-09 14:45:35 -07:00
Michael Lumish 567449875d
Merge pull request #2711 from n0v1/feat/method-options
grpc-loader: Expose method options
2024-04-09 14:36:19 -07:00
n0v1 6c7225f3ba make method options required 2024-04-09 18:21:33 +00:00
Sergii Tkachenko db1c05eb09
Merge pull request #2713 from sergiitk/backport-1.10-psm-interop-pkg-dev
PSM Interop: Migrate to Artifact Registry (@grpc/grpc-js@1.10.x backport)
2024-04-08 18:07:32 -07:00
Michael Lumish 2af21a55f3 Merge pull request #2712 from sergiitk/psm-interop-pkg-dev
PSM Interop: Migrate to Artifact Registry
2024-04-08 18:04:43 -07:00
Michael Lumish b2e9d04cec
Merge pull request #2712 from sergiitk/psm-interop-pkg-dev
PSM Interop: Migrate to Artifact Registry
2024-04-08 17:47:26 -07:00
Sergii Tkachenko ade39e8baa PSM Interop: Migrate to Artifact Registry
Migrate PSM Interop images from Container Registry (gcr.io) to
Artifact Registry (pkg.dev).
2024-04-08 16:13:44 -07:00
Christopher Fenn e6ac1a49ed return uninterpreted options as an array 2024-04-05 17:12:04 +02:00
Christopher Fenn 6e441a8d03 use single quotes consistently 2024-04-05 16:38:04 +02:00
Christopher Fenn 1e37caadfc add test case for partially set options 2024-04-05 16:37:03 +02:00
Christopher Fenn 27d608763b adjust implementation to always return default options 2024-04-05 16:23:29 +02:00
Christopher Fenn 99e8a060f6 make uninterpreted_option an array 2024-04-05 16:19:04 +02:00
Christopher Fenn 5bd37a9de1 narrow down type of idempotency_level 2024-04-05 16:00:28 +02:00
Christopher Fenn 260966c070 predefined options should always be returned with their default value 2024-04-05 16:00:04 +02:00