Commit Graph

1201 Commits

Author SHA1 Message Date
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
Michael Lumish f1f8d1ba61 grpc-js: Make a few improvements to DNS resolving timing 2023-09-11 13:51:32 -07:00
Michael Lumish 4bff372df7 grpc-js: Remove logging in QueuePicker 2023-09-07 17:24:17 -07:00
Michael Lumish 3a43cba3a3 grpc-js-xds: Implement ring_hash LB policy 2023-09-07 17:14:39 -07:00
Michael Lumish 00e1ac46a8 grpc-js: Pass channel options to LoadBalancer constructors 2023-09-06 10:39:56 -07:00
Michael Lumish 092d1e96e2
Merge pull request #2561 from murgatroid99/grpc-js_pick_first_leaf
grpc-js: Make pick_first the universal leaf policy, plus related changes
2023-08-31 15:46:22 -07:00
Michael Lumish e7e199c501
Merge pull request #2564 from murgatroid99/grpc-js_ping_first_equality_check_backport
grpc-js: Fix pick-first-load-balancer pick subchannel lost state listener (1.9.x)
2023-08-31 10:26:24 -07:00
Michael Lumish 2fe961d5b1 grpc-js: Bump to version 1.9.2 2023-08-31 09:37:34 -07:00
gusumuzhe f5218edf82 fix: pick first load balancer call doPick infinite 2023-08-31 09:36:52 -07:00
Michael Lumish 83789c15db grpc-js: Handle keepalive ping error 2023-08-31 09:35:24 -07:00
Michael Lumish 266af4c19f Add pick_first tests 2023-08-30 15:16:25 -07:00
Michael Lumish 3ff8b674bb Export HealthListener type in experimental 2023-08-30 14:57:52 -07:00
Michael Lumish 49b7c6af34 grpc-js: Make pick_first the universal leaf policy, switch to endpoint lists 2023-08-30 14:46:08 -07:00
gusumuzhe 613c9144d9 fix: pick first load balancer call doPick infinite 2023-08-29 17:39:38 +08:00
Michael Lumish 9ca8302725 Add tests and fix bugs 2023-08-23 14:32:15 -07:00
Michael Lumish c679726246 Add custom LB interop test support 2023-08-22 09:53:19 -07:00
Michael Lumish 7ca0af6eec
Merge pull request #2550 from murgatroid99/grpc-js_service_config_parsing
grpc-js: Fix method config name handling in service configs
2023-08-21 17:22:44 -07:00
Michael Lumish cd25bada71
Merge pull request #2552 from murgatroid99/grpc-js_deferred_write_callback
grpc-js: Defer actions in http2 stream write callback
2023-08-21 17:22:35 -07:00
Michael Lumish 8896bfe4c9 grpc-js: Defer actions in http2 stream write callback 2023-08-21 13:30:33 -07:00
Michael Lumish f9af919393 grpc-js: Update dependency on @grpc/proto-loader 2023-08-21 13:17:11 -07:00
Michael Lumish 69257a7893 grpc-js: Fix method config name handling in service configs 2023-08-21 13:01:15 -07:00
Michael Lumish 1221772052 grpc-js: Switch Timer type to Timeout 2023-08-14 10:31:16 -07:00
Michael Lumish ea5c18d232 grpc-js: Switch Timer type to Timeout 2023-08-14 10:15:46 -07:00
Michael Lumish d7c27fb3aa grpc-js: Add config parsing tests and fix outlier detection config parsing 2023-08-11 11:09:55 -07:00
Michael Lumish 7a8d4630ba
Merge pull request #2535 from murgatroid99/grpc-js_channelz_improvements
grpc-js: Improve formatting of channelz logs for grpcdebug
2023-08-08 15:01:16 -07:00
Michael Lumish 9ef4655b3a
Merge pull request #2536 from murgatroid99/grpc-js_pick_cancel_race
grpc-js: Handle race between call cancellation and auth metadata generation
2023-08-08 15:01:00 -07:00
Michael Lumish a4ba925352 grpc-js: Add null check in pick_first array access 2023-08-08 10:37:20 -07:00
Michael Lumish d28b9e8c37 grpc-js: Return LB policy configs from resolvers in JSON form 2023-08-07 17:23:57 -07:00
Michael Lumish 01749a8d41 Explicitly log credentials/cancellation races 2023-08-03 09:24:24 -07:00
Michael Lumish 30bc44f4ce grpc-js: Handle race between call cancellation and auth metadata generation 2023-08-02 16:48:57 -07:00
Michael Lumish bb2942197e grpc-js: Improve formatting of channelz logs for grpcdebug 2023-08-02 16:42:29 -07:00
Michael Lumish 49b629ffb0 grpc-js/grpc-js-xds: Update to 1.9.0, and update READMEs 2023-07-31 16:55:27 -07:00
Michael Lumish 14b11f6b99
Merge pull request #2511 from murgatroid99/grpc-js_pick_first_update
grpc-js: Implement pick_first sticky TF and address list shuffling
2023-07-31 16:11:39 -07:00
Michael Lumish b86615c1a3
Merge pull request #2508 from murgatroid99/grpc-js_server_clear_deadline_cancel
grpc-js: Cancel deadline timer on server when call is cancelled
2023-07-31 15:47:22 -07:00
Michael Lumish ff25a75ce9
Merge pull request #2507 from murgatroid99/grpc-js_tls_trace
grpc-js: Add channel option to enable TLS tracing
2023-07-31 15:45:35 -07:00
Michael Lumish 1d38cc319c Merge remote-tracking branch 'upstream/@grpc/grpc-js@1.8.x' into v1.8.x_upmerge_3 2023-07-28 14:53:43 -07:00
Michael Lumish 4e111e7792 grpc-js: Fix propagation of UNIMPLEMENTED error messages 2023-07-28 14:21:33 -07:00
Michael Lumish e43fa71619 Fix formatting 2023-07-25 10:11:45 -07:00
Michael Lumish e83ce3b6fd Merge remote-tracking branch 'upstream/@grpc/grpc-js@1.8.x' into v1.8.x_upmerge_3 2023-07-25 10:10:16 -07:00
Michael Lumish 6d97956549 grpc-js: Fix a crash when grpc.keepalive_permit_without_calls is set 2023-07-25 09:40:45 -07:00
Michael Lumish 66cd8519bd grpc-js: pick_first: Properly dispose of current pick when it disconnects 2023-07-24 16:00:13 -07:00
Michael Lumish 71d035b5bf Fix formatting 2023-07-24 13:54:30 -07:00
Michael Lumish 981efb6eca Merge remote-tracking branch 'upstream/@grpc/grpc-js@1.8.x' into v1.8.x_upmerge_again 2023-07-24 13:53:17 -07:00
Michael Lumish 42a02749eb grpc-js: Fix compilation error from new @types/node version 2023-07-24 13:08:55 -07:00
Michael Lumish 2e9060385c grpc-js: Fix keepalive ping timing after inactivity 2023-07-24 11:20:00 -07:00
Michael Lumish 698d1427c6 grpc-js: Implement pick_first sticky TF and address list shuffling 2023-07-21 09:45:34 -07:00
Michael Lumish 54409d00f3 grpc-js: Fix transport trace message formatting 2023-07-14 14:15:44 -07:00
Michael Lumish 7c3a5fe70c grpc-js: Cancel deadline timer on server when call is cancelled 2023-07-14 10:58:53 -07:00
Michael Lumish cb11e66c59 grpc-js: Add channel option to enable TLS tracing 2023-07-14 10:46:03 -07:00
Michael Lumish 66bcc7a2cc grpc-js: Reformat files and fix lint errors 2023-07-13 14:20:54 -07:00
Michael Lumish 220a70289c Merge remote-tracking branch 'upstream/@grpc/grpc-js@1.8.x' into v1.18.x_upmerge 2023-07-13 14:14:29 -07:00
Cedric Kassen 8ed0a50c58 directly pass deserializeMessageWithInternalError to resolve 2023-07-13 20:59:04 +02:00
Cedric Kassen c5bdd9c398 remove oversight asyncs and replace safeDeserializeMessage 2023-07-13 08:01:09 +02:00
Michael Lumish 493cbaaf45 grpc-js: Increment version to 1.8.18 2023-07-12 15:23:34 -07:00
Michael Lumish 713a2c9bd1 grpc-js: Enable the noUnusedLocals TypeScript compiler option 2023-07-12 15:22:15 -07:00
Michael Lumish 45e277547f grpc-js: Fix mistakenly committed testing changes 2023-07-12 14:55:49 -07:00
Cedric Kassen 555643dcc8 try catch promise rejection and sendError 2023-07-12 14:31:11 +02:00
Cedric Kassen 14b18a4bba promisify receiveUnaryMessage server-call 2023-07-12 14:31:10 +02:00
Michael Lumish 51c5b9491a
Merge pull request #2471 from murgatroid99/grpc-js_channel_idle_timeout
grpc-js: Implement channel idle timeout
2023-06-27 10:21:59 -07:00
Michael Lumish ed70a0b381 Fix handling of OD policy with no child 2023-06-27 10:11:45 -07:00
Michael Lumish b53f5882f1 grpc-js: Disallow pick_first as child of outlier_detection 2023-06-22 14:32:09 -07:00
Michael Lumish 6fb6544483 grpc-js: Update documentation of compression behavior in README 2023-06-21 11:36:45 -07:00
Michael Lumish 89cd8f7bc3 grpc-js: Idle timeout: format files 2023-06-20 15:46:27 -07:00
Michael Lumish fcff72b941 grpc-js: Implement channel idle timeout 2023-06-20 14:47:14 -07:00
Michael Lumish 87b5466b1b grpc-js: Implement trace function in Http2SubchannelConnector 2023-06-20 10:25:59 -07:00
Dan Rumney cd24d6956d style: run eslint fix on codebase
Fixes #2464
2023-06-15 13:04:57 -05:00
Dan Rumney 3bf2af1d70 docs(apache-notice.md): add a notice acknowledging the use of GTS config settings
This might actually be unnecessary; since I've copied over configuration settings from the GTS package, I figured I'd add this notice. It's in a file, since there's no capacity for adding comments in a JSON or .rc file. It feels doubtful that configuration settings fall under the auspices of the Apache License, but I'll leave that to the maintainers to decide.
2023-06-15 13:03:30 -05:00
Dan Rumney 208b79e625 refactor(packages/grpc-js/log.txt): remove extraneous file 2023-06-15 13:01:38 -05:00
Dan Rumney e3522bb53b refactor(grpc-js): convert from gts to eslint/prettier/tsconfig
GTS provides config for ESLint, Prettier and TSConfig; this commit removes GTS, but brings over the configuration details

Fixes #2464
2023-06-15 12:54:15 -05:00
Dan Rumney 1880faf8a0 fix(packages/grpc-js/test/assert2): move assert2 into its own file
Moving from exporting a namespace to just putting assert2 functions into their own files

Fixes #2464
2023-06-15 12:52:45 -05:00
Michael Lumish 2b455e7d18 grpc-js: Fix a couple of minor issues 2023-05-31 14:05:10 -07:00
Michael Lumish d70d7eed07 Merge remote-tracking branch 'upstream/@grpc/grpc-js@1.8.x' into v1.8.x_upmerge 2023-04-24 16:52:54 -07:00
Michael Lumish 3709998012 grpc-js: Fix a couple of errors from a previous PR 2023-04-13 09:25:38 -07:00
Michael Lumish 6bc85716cd grpc-js: Bump version to 1.8.14 2023-04-12 14:46:27 -07:00
Michael Lumish 8f329e08b2
Merge pull request #2412 from murgatroid99/grpc-js_round_robin_refactor
grpc-js: Simplify round robin implementation
2023-04-12 13:53:12 -07:00
Michael Lumish 43d42dcf3f grpc-js: Fix connectivity state change event sequencing 2023-04-11 14:50:41 -07:00
Michael Lumish d21ce8cc49 grpc-js: Simplify round robin implementation 2023-04-05 16:35:10 -07:00
Michael Lumish 59423176f0 Merge remote-tracking branch 'upstream/@grpc/grpc-js@1.8.x' into v1.8.x_merge 2023-04-03 14:19:03 -07:00
Michael Lumish 3fbdf0d337 grpc-js: Bump version to 1.8.13 2023-03-10 14:05:39 -08:00
Michael Lumish 056dc8e56e grpc-js: Unregister socket from channelz when closing transport 2023-03-10 13:58:02 -08:00
Michael Lumish 79161816e6 grpc-js: Add more logging to trace handling of received messages 2023-03-07 15:09:19 -08:00
Michael Lumish 7aba0004e6
Merge pull request #2380 from murgatroid99/grpc-js_pick_first_fix2
grpc-js: Fix address equality check in pick-first
2023-03-07 14:24:14 -08:00
Michael Lumish c525025f06 grpc-js: Trace before call to LB policy picker 2023-03-06 15:10:29 -08:00
Ulrich Van Den Hekke c23c67cd4f grpc-js: add await/async on method that return promise
add await/async on method that return promise to ensure that the order of message (and of the end of stream) are preserved
2023-03-06 10:15:52 -08:00
Michael Lumish 0726fdf290 grpc-js: Fix address equality check in pick-first 2023-03-06 10:11:46 -08:00
Ulrich Van Den Hekke 081270f013
grpc-js: add await/async on method that return promise
add await/async on method that return promise to ensure that the order of message (and of the end of stream) are preserved
2023-02-26 13:14:32 +01:00
Michael Lumish 1f14d1c138 grpc-js: Stop leaking freed message buffer placeholder objects 2023-02-23 17:49:03 -08:00
Michael Lumish 6862af2350 grpc-js: Fix bugs in pick first LB policy and channel subchannel wrapper 2023-02-21 15:26:09 -08:00
Michael Lumish 72b99a1413
Merge pull request #2363 from murgatroid99/grpc-js_channel_keepalive_throttling
grpc-js: Propagate keepalive throttling throughout channel
2023-02-15 15:44:48 -08:00
Michael Lumish 2ed8e71ba1 grpc-js: Propagate keepalive throttling throughout channel 2023-02-14 13:47:50 -08:00
Michael Lumish 37eb5ed2fa grpc-js: Improve timeout handling and deadline logging 2023-02-09 10:18:24 -08:00
Michael Lumish 7ab5368a6e
Merge pull request #2349 from murgatroid99/grpc-js_retry_commit_fix
grpc-js: Fix `commitCallWithMostMessages` trying to commit completed attempts
2023-02-08 10:40:55 -08:00
Michael Lumish 2b7f296680
Merge pull request #2351 from murgatroid99/grpc-js_export_interceptor_types
grpc-js: Export `InterceptingListener` and `NextCall` types
2023-02-08 10:40:25 -08:00
Michael Lumish 18c803e6dd grpc-js: Export InterceptingListener and NextCall types 2023-02-08 09:55:32 -08:00
Michael Lumish 3596c4f655 grpc-js: Remove progress field in status from retrying call 2023-02-07 14:52:20 -08:00
Michael Lumish cf090c7f50 grpc-js: Fix commitCallWithMostMessages trying to commit completed attempts 2023-02-07 14:35:35 -08:00
Michael Lumish fed7b02a35 Update latestConfig in ChildLoadBalancerHandler when handling update 2023-02-03 09:33:51 -08:00
Michael Lumish 3efdc7b58c grpc-js: Bump version to 1.8.7 2023-01-25 11:56:09 -08:00
Michael Lumish 0d177a818f grpc-js: Fix tracking of active calls in transport 2023-01-25 11:52:24 -08:00
Michael Lumish 6d98dc5bbf grpc-js: Hold a reference to transport in SubchannelCall 2023-01-25 10:01:45 -08:00
Michael Lumish ba405cf35e grpc-js: Clear deadline timer when call ends 2023-01-23 11:36:24 -08:00