Commit Graph

672 Commits

Author SHA1 Message Date
Michael Lumish 36986f618a grpc-js: round robin: re-resolve when subchannels go idle 2021-01-19 13:43:56 -08:00
Michael Lumish 0b026be131
Merge pull request #1648 from murgatroid99/grpc-js_deadline_filter_fast_cancel
grpc-js: End calls faster if the deadline has already passed
2021-01-07 12:55:49 -08:00
Michael Lumish fe4bd2641a
Merge pull request #1654 from 418sec/1-npm-grpc
Security Fix for Prototype Pollution - huntr.dev
2021-01-07 12:54:54 -08:00
Michael Lumish 374309be66 grpc-js: Propagate internal stream errors from the http2 module 2021-01-05 10:36:30 -08:00
d3v53c 6101694397 added test case 2020-12-07 22:40:14 -08:00
d3v53c b2530119b9 prototype pollution fix 2020-12-07 22:29:18 -08:00
Michael Lumish 21da990cb0 grpc-js: End calls faster if the deadline has already passed 2020-12-02 12:00:19 -08:00
Michael Lumish a006be07f4 grpc-js-xds: Shutdown the xDS client used by the resolver when the channel shuts down 2020-11-25 12:33:36 -08:00
Michael Lumish c050f97534 grpc-js: Make calls use the min of parent and own deadline when both are provided 2020-11-18 13:08:06 -08:00
Michael Lumish b78e5a0762
Merge pull request #1622 from murgatroid99/grpc-js_1.2.x
grpc-js: Update to 1.2.0
2020-11-11 14:39:39 -08:00
Michael Lumish ca6cf0f20b
Merge pull request #1616 from murgatroid99/grpc-js_deadline_cancellation_propagation
grpc-js: Implement deadline and cancellation propagation
2020-11-11 14:38:48 -08:00
Michael Lumish adfd4db9ea grpc-js: Update to 1.2.0 2020-11-09 10:53:44 -08:00
Michael Lumish cd2713f42a grpc-js: Rearrange connectivity state enum to match the native library 2020-11-09 10:45:57 -08:00
Michael Lumish 57428bf6fa
Merge pull request #1607 from murgatroid99/grpc-js_xds_separate_package
grpc-js: Separate xds code into a separate plugin package
2020-11-05 14:42:09 -08:00
Michael Lumish 38e4e48f4d
Merge pull request #1571 from murgatroid99/grpc-js_header_block_size
grpc-js: Allow clients and servers to send metadata of unlimited size
2020-11-05 13:29:58 -08:00
Michael Lumish ae2b64bd65 grpc-js: Implement deadline and cancellation propagation 2020-10-30 11:38:30 -07:00
Michael Lumish d8021d20d9
Merge pull request #1614 from hugebdu/master
grpc-js: support adding/removing services on started server
2020-10-29 14:22:52 -07:00
Daniel Shmuglin 51ca00298e implement Server#unregisterService(serviceDefinition) 2020-10-29 11:33:29 +02:00
Daniel Shmuglin 7c3ccda8ff implement Server#unregister(handlerName) 2020-10-29 10:54:33 +02:00
Daniel Shmuglin e49524a2ba Server#addService - lift the limitation of adding a new service to started server 2020-10-29 10:24:31 +02:00
Michael Lumish e4b69a8ee1 grpc-js: Add support for grpc.max_reconnect_backoff_ms channel arg 2020-10-28 13:27:44 -07:00
Michael Lumish afe4c3e082
Merge pull request #1605 from murgatroid99/grpc-js_prototype_pollution
grpc-js: Prevent prototype pollution in loadPackageDefinition
2020-10-23 10:49:18 -07:00
Michael Lumish f312326e9c Set the default port of 80 explicitly in http_proxy 2020-10-23 10:15:56 -07:00
Michael Lumish fd406fbef1 Use a regular dependency for proto-loader 2020-10-22 10:27:03 -07:00
Michael Lumish 9699de5ec6 Re-add grpc-js proto-loader dev dependency 2020-10-22 09:59:23 -07:00
Michael Lumish e71caded1b Put the google-auth-library dependency back in grpc-js 2020-10-21 14:10:37 -07:00
Michael Lumish c86f08c770 Document experimental namespace instability 2020-10-21 13:56:18 -07:00
Michael Lumish a6a8639343 grpc-js: Separate xds code into a separate plugin package 2020-10-21 13:45:22 -07:00
Michael Lumish 967eeb5443 grpc-js: Prevent prototype pollution in loadPackageDefinition 2020-10-20 11:19:22 -07:00
Michael Lumish bbd7617ba7 Move grpc-js xDS features into a separate package 2020-10-12 10:23:03 -07:00
Michael Lumish 73d3c307c9 grpc-js: xds: Add more logging around adding and removing eds and cds watchers 2020-10-05 11:27:18 -07:00
Michael Lumish a5cc154c8e
Merge pull request #1568 from murgatroid99/grpc-js_xds_credentials_bootstrap_change
grpc-js: xDS: handle insecure and google_default bootstrap creds
2020-09-28 14:08:46 -07:00
Michael Lumish dcf47460da grpc-js: xDS: Do not remove watchers in onResourceDoesNotExist 2020-09-24 14:01:15 -07:00
Michael Lumish 21adc97c4a
Merge pull request #1587 from badsyntax/export-client-streaming-type
grpc-js: Export handleClientStreamingCall type
2020-09-24 10:14:41 -07:00
Michael Lumish 62d9b1ad9b
Merge pull request #1586 from grpc/@grpc/grpc-js@1.1.x
Merge @grpc/grpc js@1.1.x into master
2020-09-24 09:42:45 -07:00
Richard Willis f3d14bd2b3 grpc-js: export handleClientStreamingCall type 2020-09-24 08:19:33 +01:00
Michael Lumish 0713b28da5 Revert testing changes 2020-09-22 12:09:13 -07:00
Michael Lumish fbdfcd4ee9 Fix tracer setting lines in xds script 2020-09-22 10:56:11 -07:00
Michael Lumish 474a496a7a Update submodules in xds test script 2020-09-22 00:47:55 -07:00
Michael Lumish 2574952e06 Use full node path in client_cmd 2020-09-21 14:15:21 -07:00
Michael Lumish c259edd7f8 Patch xds python script with debug logging 2020-09-21 13:33:37 -07:00
Michael Lumish a45d8da204 Add debugging output to xds scripts 2020-09-21 11:12:38 -07:00
Michael Lumish a1600812d1 Move timer initialization to the beginning of channel construction 2020-09-17 13:18:11 -07:00
Michael Lumish 6a32c00ed2 Bump grpc-js to 1.1.7 2020-09-17 12:15:47 -07:00
Michael Lumish 2791dbbb23 grpc-js: Add a timer that holds the event loop open while there are pending calls 2020-09-17 11:25:56 -07:00
Michael Lumish c0f31a8a02 grpc-js: Source nvm.sh in profile files in xds script to get nvm in subprocesses 2020-09-15 14:52:00 -07:00
Michael Lumish 8162efdf54 grpc-js: Install dependencies in xds script 2020-09-14 15:48:03 -07:00
Michael Lumish d32734f491 grpc-js: Allow clients and servers to send metadata of unlimited size 2020-09-11 13:03:31 -07:00
Michael Lumish 58801acf1e grpc-js: Fix path handling in xds interop script 2020-09-11 10:47:09 -07:00
Michael Lumish b99872eee7 grpc-js: xDS: handle insecure and google_default bootstrap creds 2020-09-10 14:52:24 -07:00
Michael Lumish 5e0feb5d74
Merge pull request #1552 from murgatroid99/grpc-js_xds_interop_client
grpc-js: Enable the xds URL scheme and add an interop test for it
2020-09-10 10:25:59 -07:00
Michael Lumish 46ac39b1e2 Add copyright notice to the new script 2020-09-10 09:56:45 -07:00
Michael Lumish d8e00689d0 Bump grpc-js to 1.1.6 2020-09-03 14:32:30 -07:00
Michael Lumish a45fb43091 Merge branch 'master' into grpc-js_xds_interop_client 2020-09-02 16:06:02 -07:00
Michael Lumish 1fc284f59d
Revert "fix(grpc-js): Add support for impl type to server.addService" 2020-09-02 15:17:57 -07:00
Michael Lumish 2d4ab786da Add xds kokoro config and update the test script 2020-09-02 15:00:46 -07:00
Michael Lumish e21f3374e8
Merge pull request #1556 from slavovojacek/master
fix(grpc-js): Add support for impl type to server.addService
2020-09-02 13:39:20 -07:00
Michael Lumish 1178d553e0
Merge pull request #1557 from mad-it/master
fix(grpc-js): preserve original error code when the handler of a readable stream throws an error
2020-09-02 13:38:20 -07:00
Slavo Vojacek fba1ee0cc3 fix(grpc): Fix typings 2020-09-02 20:32:31 +01:00
Slavo Vojacek 0d1d5a12fa chore(Typings): Update types 2020-09-02 16:05:10 +01:00
Jaroslav Šmolík b2d89820a3 Fix ClientOptions types
Remove index signature from ChannelOptions to fix intersection error
described in #1558 which causes issues on using ClientOptions direct
fields with TypeScript.

Removing of index signature required few minor changes:
 - adding few constant types that were used throughout the app
 - using `as const` assertion in xds-client
 - using not-so-great type cast in channelOptionsEqual

Alternative solution would be removing the index signature from
ChannelOptions explicitly in ClientOptions definition, which is not
trivial and probably calls for a generic type helper.

See: https://github.com/grpc/grpc-node/issues/1558
Fixes: #1558
2020-09-01 21:47:52 +02:00
Algin Maduro aaee068a69 fix: add addition check if the provided code is valid gRPC code 2020-09-01 13:28:23 +02:00
Algin Maduro 5e42be1b34 fix: preserve original error code if present 2020-09-01 12:59:07 +02:00
Michael Lumish 2c98a3d3f9 More EDS logging, and improved weight handling 2020-08-31 15:18:00 -07:00
Michael Lumish 286c81a924 Handle endpoint health_status, improve some logging 2020-08-31 14:04:53 -07:00
Slavo Vojacek 38e988ea03 fix(grpc-js): Add support for impl type to server.addService 2020-08-31 20:34:14 +01:00
WK 158d0dd99f
Update subchannel.ts 2020-09-01 01:40:14 +08:00
WK 7fc0035f7f
Update subchannel.ts 2020-09-01 01:30:35 +08:00
WK 148b273f19
Update http_proxy.ts 2020-09-01 01:28:53 +08:00
Michael Lumish 62bd1cab68 Add granular verbosity option to xDS interop client 2020-08-31 09:55:29 -07:00
WK 6a99983ed1
Undo changes. 2020-08-30 14:56:23 +08:00
WK 08350ec0ef
Update subchannel.ts 2020-08-30 14:52:20 +08:00
WK 6f3db6f4d8
Update http_proxy.ts 2020-08-30 14:49:54 +08:00
WK c536178c67
Fixed connectivity to Google PubSub over proxy
Latest version has caused @google-cloud/pubsub fail to connect over a proxy connection.


Snapshot of error:

2020-08-29T10:52:45.340Z | proxy | Successfully connected to pubsub.googleapis.c
om:443 through proxy 172.16.52.252:443
2020-08-29T10:52:45.370Z | subchannel | 172.16.52.252:443 CONNECTING -> TRANSIEN
T_FAILURE
2020-08-29T10:52:45.372Z | pick_first | CONNECTING -> TRANSIENT_FAILURE
2020-08-29T10:52:45.373Z | resolving_load_balancer | dns:172.16.52.252:443 CONNE
CTING -> TRANSIENT_FAILURE
2020-08-29T10:52:45.375Z | channel | Pick result: TRANSIENT_FAILURE subchannel:
undefined status: 14 No connection established
2020-08-29T10:52:45.377Z | call_stream | [11] cancelWithStatus code: 14 details:
 "No connection established"
2020-08-29T10:52:45.379Z | call_stream | [11] ended with status: code=14 details
="No connection established"
2020-08-29T10:52:45.381Z | connectivity_state | dns:172.16.52.252:443 CONNECTING
 -> TRANSIENT_FAILURE


Before proposed fix:

    static getDefaultAuthority(target) {
        return target.path;  // this returns "pubsub.googleapis.com:443"
    }

After proposed fix:

    static getDefaultAuthority(target) {
        const hostPort = uri_parser_1.splitHostPort(target.path);  // target.path is "pubsub.googleapis.com:443"
        if (hostPort !== null) {
            return hostPort.host; // this returns "pubsub.googleapis.com"
        }
        else {
            throw new Error(`Failed to parse target ${uri_parser_1.uriToString(target)}`);
        }
    }
2020-08-29 19:05:42 +08:00
Michael Lumish 36db24e39f Set a deadline on outgoing requests in the xds interop client 2020-08-28 12:50:53 -07:00
Michael Lumish 5827b3e01d Reset saved LRS settings when the LRS stream ends 2020-08-28 11:49:03 -07:00
Michael Lumish b9962feff0 Add more interop client logging 2020-08-28 11:17:52 -07:00
Michael Lumish 60bc11285b Send buffered stats when starting LRS stream 2020-08-28 10:43:58 -07:00
Michael Lumish 338941d664 Add more LRS tracing 2020-08-28 10:06:57 -07:00
Michael Lumish 8269fd4bca priority: improve tracing, cancel failover timer when selecting child 2020-08-28 09:50:33 -07:00
Michael Lumish 597fc1c57b Use the same channel for ADS and LRS clients 2020-08-27 18:14:03 -07:00
Michael Lumish 82037fcdaf Add error logging to xDS interop client 2020-08-27 15:54:05 -07:00
Michael Lumish 1a47f78f4f Fix some trace logs, increase XdsClient keepalive interval 2020-08-27 14:17:29 -07:00
Michael Lumish c83d5a7c4d Fix keepalive ping timing, change some trace logs 2020-08-27 13:23:07 -07:00
Michael Lumish 665632f480 Add more keepalive logging 2020-08-27 12:47:53 -07:00
Michael Lumish 197cc84e7a Add more tracers, fix onResourceDoesNotExist handling 2020-08-27 11:05:54 -07:00
Michael Lumish 2404446234 Fix RDS domain search 2020-08-25 14:10:54 -07:00
Michael Lumish 36a6580921 Add more XdsClient tracing 2020-08-25 13:49:28 -07:00
Michael Lumish af949674da Add XdsClient tracers, and stream start backoff, and fix some bugs 2020-08-25 13:22:30 -07:00
Michael Lumish 8580204a73 Fix incorrect 'Method not implemented' error 2020-08-25 11:05:22 -07:00
Michael Lumish ee52de4f98 Load proto files with json option to handle Any properly 2020-08-25 10:54:56 -07:00
Michael Lumish 302b87183e Fix bug in bootstrap file validation 2020-08-25 10:05:44 -07:00
Michael Lumish 7e35657cf1 node.cluster is optional in the bootstrap file 2020-08-25 09:45:47 -07:00
Michael Lumish 0e8e1adfc4 More test script fixes, don't run xDS tests in PR tests 2020-08-24 15:53:07 -07:00
Michael Lumish 1e223048b8 Grab xds client logs in kokoro config 2020-08-21 12:58:05 -07:00
Michael Lumish eb849db1aa Add a log line to the top level of xds-interop-client 2020-08-21 12:47:17 -07:00
Michael Lumish 362b77259f Add more logging to the xDS interop client 2020-08-21 11:02:33 -07:00
Simon Woolf 141dfeb790 Channel#watchConnectivityState: handle infinite deadlines correctly
Per https://grpc.github.io/grpc/node/grpc.html#~Deadline:
"If it is a finite number, it is treated as a number of milliseconds
since the Unix Epoch. If it is Infinity, the deadline will never be
reached. If it is -Infinity, the deadline has already passed."
2020-08-21 18:18:30 +01:00
Michael Lumish 14eea7d6d2 Add separate trace and verbosity env variables for this library 2020-08-21 09:46:45 -07:00
Michael Lumish f4e9b63ddf Trace all 2020-08-21 00:10:35 -07:00