Commit Graph

1201 Commits

Author SHA1 Message Date
Michael Lumish c447875796
Merge pull request #2761 from brendan-myers/url-encoding
fix: add decoding for url encoded user credentials
2024-06-18 15:36:48 -07:00
Michael Lumish d90ca240fc
Merge pull request #2746 from mjameswh/http-connect-proxy-early-server-packet
HTTP CONNECT: handle early server packets
2024-06-18 15:36:28 -07:00
Michael Lumish 5c0226d0db
Merge pull request #2760 from davidfiala/@grpc/grpc-js@1.10.x
Keepalive bugfixes and unify timers strategies between client and server
2024-06-18 15:27:11 -07:00
Michael Lumish 52fe8e94e7
Merge pull request #2772 from murgatroid99/grpc-js_cardinality_error_hang
grpc-js: Fix client hang when receiving extra messages for a unary response
2024-06-18 15:25:59 -07:00
George Kampitakis e2a93d188a
fix: support authority overrides in the DNS resolver 2024-06-18 18:41:47 +01:00
Michael Lumish 7ecaa2d2dc grpc-js: Bump to 1.10.9 2024-06-07 10:52:50 -07:00
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
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
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 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 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 e4f2ecd053 grpc-js(-xds): Pick up proto-loader update 2024-04-30 15:49:20 -07:00
Michael Lumish 8754ccb7db grpc-js: Improve reporting of HTTP error codes 2024-04-11 10:56:18 -07:00
Michael Lumish 0d9a8c1dcf grpc-js: Fix check for whether to send a trailers-only response 2024-04-03 09:40:22 -07:00
Michael Lumish c3c7cc4d75
Merge pull request #2704 from murgatroid99/grpc-js_check_server_identity
grpc-js: Call custom `checkServerIdentity` when target name override is set
2024-04-01 15:26:15 -07:00
Michael Lumish cc44d785c9
Merge pull request #2692 from murgatroid99/grpc-js_deadline_info
grpc-js: Add more info to deadline exceeded errors
2024-04-01 15:25:48 -07:00
David Fiala 213230c73b Resolve exception when Error.stackTraceLimit is undefined
Some applications may explicitly set Error.stackTraceLimit = undefined. In this case it is not safe to assume new Error().stack is available.
2024-04-01 15:05:25 -07:00
Michael Lumish 74e4da5cc6
Merge pull request #2701 from davidfiala/patch-1
Resolve exception when Error.stackTraceLimit is undefined
2024-04-01 15:04:09 -07:00
Michael Lumish e1f831a57b grpc-js: Call custom checkServerIdentity when target name override is set 2024-04-01 10:03:51 -07:00
Michael Lumish 5d8d5b513e Fix proto-loader declaration in grpc-js devDependencies 2024-03-28 09:29:30 -07:00
David Fiala 2099f540d2
Resolve exception when Error.stackTraceLimit is undefined
Some applications may explicitly set Error.stackTraceLimit = undefined. In this case it is not safe to assume new Error().stack is available.
2024-03-27 16:39:45 -07:00
Michael Lumish 3b0e4ac8ff grpc-js: Use local proto-loader, and regenerate protobuf types 2024-03-27 10:36:54 -07:00
Michael Lumish 729a3f52cf
Merge pull request #2695 from murgatroid99/grpc-js_avoid_extra_rst_stream
grpc-js: Avoid sending redundant RST_STREAMs from the client
2024-03-26 11:01:00 -07:00
Michael Lumish 9948aea5a5 grpc-js: Ensure server interceptors work with builder utility classes 2024-03-21 14:58:37 -07:00
Michael Lumish f4330f72c9 Use call start times in some trace logs 2024-03-21 09:49:58 -07:00
Michael Lumish 14f1d02c9a grpc-js: Avoid sending redundant RST_STREAMs from the client 2024-03-20 15:46:59 -07:00
Michael Lumish d7d171776d grpc-js: Add more info to deadline exceeded errors 2024-03-15 15:43:57 -07:00
Michael Lumish a8c6c33daa grpc-js: Bump version to 1.10.3 2024-03-15 09:24:01 -07:00
Michael Lumish d0c2026887 Revert "grpc-js: pick_first: Don't automatically reconnect after connection drop"
This reverts commit 4a3fefa2b3.
2024-03-15 09:23:08 -07:00
Michael Lumish 0edd1948ab
Merge pull request #2684 from murgatroid99/grpc-js_1.10.2
grpc-js: Bump to 1.10.2
2024-03-07 10:53:27 -08:00
Michael Lumish 55b98529f8
Merge pull request #2683 from murgatroid99/grpc-js_server_event_order
grpc-js: Rearrange some function calls to revert event order changes
2024-03-07 10:53:02 -08:00
Michael Lumish cb966dfcd6
Merge pull request #2680 from murgatroid99/grpc-js_pick_first_disconnect_fix
grpc-js: pick_first: Don't automatically reconnect after connection drop
2024-03-07 10:52:57 -08:00
Michael Lumish 4d235c339b grpc-js: Bump to 1.10.2 2024-03-07 09:24:04 -08:00
AVVS 74ddb3bd6f
chore: address ts errors 2024-03-05 15:34:29 -08:00
Michael Lumish 07ee52acb0 grpc-js: Rearrange some function calls to revert event order changes 2024-03-05 10:27:21 -08:00
AVVS cf321a80b1
chore: use iterators for tracking map, const for default values 2024-03-04 18:25:23 -08:00
Michael Lumish 4a3fefa2b3 grpc-js: pick_first: Don't automatically reconnect after connection drop 2024-03-04 09:33:41 -08:00
AVVS 62e8ea97e6
chore: tests & cleanup of unref?.() 2024-03-02 07:58:54 -08:00
AVVS b873dce908
chore: simplify idle timeout further, fix wrong ref 2024-02-28 14:26:42 -08:00
AVVS bedb5055e8
refactor: no clearTimeout/null timers, use .refresh() + count refs 2024-02-28 13:36:24 -08:00
AVVS 11a98b5f37
chore: updated docs, cached onStreamClose per session 2024-02-27 16:49:20 -08:00
AVVS 74102fcc87
chore: extraneous closure, dont need server ref 2024-02-27 14:39:24 -08:00
AVVS 0b79b7420a
chore: cleanup traces 2024-02-27 14:35:02 -08:00
AVVS b8f157ed21
chore: revert interface -> type change in channelz 2024-02-27 14:30:55 -08:00
AVVS a4a676d378
chore: move new functions towards the end of the class 2024-02-27 14:17:32 -08:00
AVVS e0b900dd69
feat: channelz improvements, idle timeout implementation 2024-02-27 13:28:05 -08:00
Michael Lumish 6c2bc599e5 grpc-js: Run code formatter, fix one lint error 2024-02-27 12:51:38 -08:00
Michael Lumish 321b6603b0 grpc-js: Add Server#createConnectionInjector API 2024-02-22 16:52:56 -08:00
Michael Lumish 429a66d1cb grpc-js: round_robin: always have children reconnect immediately 2024-02-14 11:05:26 -08:00
Michael Lumish a1fde62101 grpc-js: Expand ServerCredentials API to support watchers 2024-02-09 14:33:13 -08:00
Michael Lumish b1c45a819f grpc-js/grpc-js-xds: Bump version to 1.10.0 2024-02-01 13:44:07 -08:00
Michael Lumish 7c9a5e7147 Make extra trailer behavior consistent with old code 2024-01-31 10:41:01 -08:00
Michael Lumish f52d1429fb grpc-js: Implement server interceptors 2024-01-26 14:36:18 -08:00
Michael Lumish 3915f579f2 Merge 1.9.x into master 2024-01-17 14:28:31 -08:00
Michael Lumish 5be83dd878
Merge pull request #2643 from murgatroid99/grpc-js_idle_timer_fix
grpc-js: Fix and optimize IDLE timeouts
2024-01-16 15:13:30 -08:00
Michael Lumish 2b31f8c148 grpc-js: Shutdown transport if a state change occurs while connecting 2024-01-16 14:38:17 -08:00
Michael Lumish 6da0b49dbc grpc-js: Fix and optimize IDLE timeouts 2024-01-16 14:18:05 -08:00
Chakhsu.Lau 3cdaebdd0c fix: export type VerifyOptions 2024-01-04 21:19:02 +08:00
Michael Lumish 4dfd8c43d7 grpc-js: Fix call ref timer handling 2023-12-01 10:27:09 -05:00
Michael Lumish 6d4e08cfd4 grpc-js: pick_first: fix currentPick comparison in resetSubchannelList 2023-11-27 12:28:30 -05:00
Michael Lumish 85bc3c2e78
Merge pull request #2619 from murgatroid99/grpc-js_idle_loop_fix
grpc-js: Make pick_first use exitIdle
2023-11-16 11:30:14 -08:00
Michael Lumish 736d6df80b grpc-js: Return the result from the UDS resolver only once 2023-11-16 10:19:26 -08:00
Michael Lumish 8843706ec7 grpc-js: Make pick_first use exitIdle 2023-11-16 10:15:48 -08:00
Michael Lumish 3a16187451 grpc-js: Implement server drain method 2023-11-14 14:37:13 -08:00
Michael Lumish 056738f2ed
Merge pull request #2611 from murgatroid99/grpc-js_goaway_null_data
grpc-js: Handle unset opaqueData in goaway event
2023-11-14 13:08:16 -08:00
Michael Lumish 66f972cb87 grpc-js: Implement unbind 2023-11-10 14:58:21 -08:00
Michael Lumish bf2009a72f grpc-js: Handle unset opaqueData in goaway event 2023-11-07 11:09:59 -08:00
Segev Finer 0854192dba Review fixes 2023-10-31 01:43:33 +02:00
Segev Finer 1f148e9349 Fix missing port in proxy CONNECT when using the default HTTPS port 2023-10-31 01:43:33 +02:00
Michael Lumish 9050ea9dae grpc-js: Don't repeat fixed resolver results 2023-10-30 09:42:29 -07:00
Michael Lumish 446f139b37 grpc-js: Cancel and don't start idle timer on shutdown 2023-10-27 10:14:58 -07:00
Michael Lumish d465f839d4 Add pick_first requestReresolution tests 2023-10-19 16:20:04 -07:00
Michael Lumish 2f5ddc7137 grpc-js: pick_first: fix happy eyeballs and reresolution in sticky TF mode 2023-10-19 13:58:31 -07:00
Michael Lumish 779e970099
Merge pull request #2597 from murgatroid99/grpc-js_server_deprecate_start
grpc-js: Deprecate Server#start
2023-10-17 14:55:33 -07:00
Michael Lumish ebc2c3e410
Merge pull request #2598 from murgatroid99/grpc-js_show_connectivity_errors
grpc-js: Propagate connectivity error information to request errors
2023-10-17 10:59:50 -07:00
Michael Lumish 3a9f4d2aa6 grpc-js: Propagate connectivity error information to request errors 2023-10-16 17:17:27 -07:00
Michael Lumish 0f8ebbdd17 grpc-js: Include library version and PID in all trace logs 2023-10-16 17:06:32 -07:00
Michael Lumish 976567395e grpc-js: Deprecate Server#start 2023-10-16 15:16:58 -07:00
Anuraag Agrawal abac01a9cf chore(grpc-js): remove unused callcredentials parameter from insecure impl 2023-10-11 17:43:14 +09:00
Michael Lumish 065ac2fef6
Merge pull request #2590 from murgatroid99/grpc-js_server_shutdown_race
grpc-js: Handle race between bindAsync and (try|force)Shutdown
2023-10-02 10:34:38 -07:00
Michael Lumish b33b8bc2bb grpc-js: Handle race between bindAsync and (try|force)Shutdown 2023-09-29 11:17:23 -07:00
Rafael Santos 974b235a04
Update server-call.ts
Fix TS2345
2023-09-29 15:44:42 +01:00
Michael Lumish ea6ba89ead grpc-js: Bump version to 1.9.4 2023-09-26 16:35:13 -07:00
Michael Lumish e6099d71f2 grpc-js: Unref backoff timer in subchannel 2023-09-26 15:17:55 -07:00
Michael Lumish 5be024f060 grpc-js: Delegate to child picker in ResolvingLoadBalancer#updateResolution 2023-09-18 17:32:29 -07:00
Michael Lumish 10c4bbdbe3 Add logging for DNS update delays due to rate limit or backoff 2023-09-13 10:18:30 -07:00