Commit Graph

4821 Commits

Author SHA1 Message Date
Eric Anderson 499694e9da android-interop-testing: ErrorProne should ignore generated R class
This silences many MutablePublicArray warnings that we can't do anything
about.
2020-12-17 09:13:27 -08:00
Eric Anderson 9c5427fd44
Bump versions for lots of dependencies
I didn't touch Protobuf and Netty; we upgrade those individually. Below
are issues I encountered that caused me to not upgrade (further).

Guava 30.1-android fails to build with Android without enabling
desugaring. https://github.com/google/guava/issues/5358

Robolectric 4.4 breaks AndroidChannelBuilderTest.
https://github.com/grpc/grpc-java/issues/7731

Opencensus 0.28.1+ is incompatible with gRPC.
https://github.com/census-instrumentation/opencensus-java/issues/2069
https://github.com/grpc/grpc-java/issues/7732

Truth now defines the asm dependency as "compile" although it is still
optional. But asm appears to have accidentally included incorrect gradle
module metadata in their release (I see they've disabled the metadata on
master) which make gradle think it requires Java 8. We could asm
everywhere, but that's is annoying. It seems likely this will resolve
itself.

Mockito can be upgraded to 3.4.0, but it deprecates initMocks, which
causes more code churn than I wanted in this commit. I still
synchronized the example versions on 3.4.0, though, as it was already
being used in some examples and the examples don't use initMocks.
2020-12-17 09:04:09 -08:00
Eric Anderson d10d4a6a65 Update README etc to reference 1.34.1 2020-12-15 12:45:28 -08:00
Chengyuan Zhang 9ead2c7c28
xds: move subchannel TLS context attaching code to cluster_impl LB policy (#7709)
This change moves the xDS security implementation that attaches an SSLContextProviderSupplier as EAG attributes from CDS LB policy to cluster_impl LB policy. It is similar to how DropOverload and circuit breakers work. This change assumes the UpstreamTlsContext in an CDS response is configured for underlying clusters in the context of supporting aggregate clusters. The UpstreamTlsContext configuration is obtained from CdsUpdate, then it is passed to the child EDS LB policy, where it is embedded into the cluster_impl LB policy config that the EDS LB policy generates.
2020-12-14 17:08:51 -08:00
ZHANG Dapeng 821ec65f2e
rls: cleanup and minor enhancement for rls logging
Cleanup `toString()` for cache entries, and print more debug information about cache entry when `pickSubchannel()`. This will be more helpful to debug.
2020-12-11 11:45:33 -08:00
Eric Anderson 60d3e7c536
core: On unexpected EOS, mention whether the frame was empty
Empty DATA frames with EOS tell a stronger tale as to where the server
may have its bug.
2020-12-10 14:54:33 -08:00
Eric Anderson 4be68f3287
core: Don't leak CallCredentials into OOB channels
The addition of CompositeChannelCredentials allowed CallCredentials to
be passed to the ManagedChannel itself. But the implementation was buggy
and used the call creds for out-of-band channels as well, which is
inappropriate since they have a different authority.

This also fixes a bug where resolving OOB channels would have CallCreds
duplicated; that wasn't noticed or important because we don't use
CallCreds in OOB channels.

Fixes #7643
2020-12-10 11:49:29 -08:00
sanjaypujare 20fc907b21
xds: fix ServerXdsClient to return subscribed resources only for LDS (#7689) 2020-12-09 17:42:12 -08:00
赵延 f5865d5bf2
examples: Modify the way of getHedgingServiceConfig in io.grpc.examples.hedging.HedgingHelloWorldClient (#7700) 2020-12-09 16:21:23 -08:00
Eric Anderson 26e88d9326 CONTRIBUTING.md: Fix out-of-date CLA documentation
The CLA system swapped a while back and this was left behind.
2020-12-09 14:32:57 -08:00
Sergii Tkachenko d9becc74d8
interop: add channelz to xds interop test server running in non-secure mode 2020-12-09 11:06:52 -05:00
Eric Anderson 8ce6355e89 buildscripts: Combine android builds together
Previously the android projects were separate from the main build and
each other. For quite a while now they have been integrated in the main
project. There's no longer any need to build each separately.
2020-12-07 15:01:51 -08:00
Chengyuan Zhang 71a3c55177
buildscripts: add missing CI coverage for examples (#7708)
Adds CI coverage for building example/android/strictmode and examples/example-jwt-auth. Also cleans up existing Gradle and Maven build command in the CIs.
2020-12-07 14:43:32 -08:00
Eric Anderson f13471d68d buildscripts: Check for out-of-date codegen after android builds
Issues like that fixed in 05048cf3 should have failed the CI, like it
does for the rest of the build (on both Travis and linux_artifacts).
2020-12-07 11:56:06 -08:00
Eric Anderson 3f1563434d xds: Add missing relocations and jacoco exclusions
We have been leaking classes since grpc-xds's inception. That's no good.

Lists are now sorted and use the same package names so they can be
easily compared. Excluding things like com/github/** is too aggressive,
and is unclear what is being targeted.
2020-12-07 11:42:24 -08:00
sanjaypujare 71606479ed
interop: add channelz and reflection support to xds interop test client and server (#7701)
* interop: add channelz support to xds interop test client and server

* add reflection

Co-authored-by: Sergii Tkachenko <sergiitk@google.com>
2020-12-07 10:48:36 -08:00
Eric Anderson ee9286a0f2 buildscripts: Fix grpc-java-artifacts indentation
Re-sort packages, now that the tabs aren't skewing the sorting.

I'm quite confident I had fixed this already, but I had multiple copies
of this file on multiple machines and must have fixed the wrong copy.
2020-12-04 16:42:26 -08:00
ZHANG Dapeng af29777686
all: migrate to interceptor-based config selector
This is migration following #7610
2020-12-04 11:11:57 -08:00
Chengyuan Zhang 0be913467d
xds: move drop support and circuit breaking into xds_cluster_impl LB policy (#7631)
Implementation for cluster_impl LB policy as per C2P design. This policy sits in the middle of priority LB policy and weighted_target LB policy, its major functionality is to handle drops and apply circuit breakers.

The idea is to move implementations of handling drops and circuit breakers from the EDS LB policy (will be split to cluster_resolver LB policy and cluster_impl LB policy) to cluster_impl LB policy.
2020-12-04 10:45:56 -08:00
Eric Anderson 486d82a7e1 Build Linux artifacts using CentOS 7
CentOS 6 is dead and no longer has update servers. CentOS 7 is older
than Debian 9 (oldstable), so binaries hopefully work on both. More
testing is necessary, but everything's broken now, so this is better
than nothing.

We stop using protoc-artifacts because now the container is
straight-forward enough that we can just use our own. Previously the
"devtoolset" stuff made us want to share the container.
2020-12-03 22:56:31 -08:00
ZHANG Dapeng 90e3dcf1ae
xds: provide more debug info for priority lb error-picker
When all priorities fail, update the overall picker with the picker from the last priority. This still does not provide the full detail why all priorities fail but is better than nothing being provided currently.
2020-12-03 14:07:24 -08:00
Eric Anderson 814e36b541 alts: Limit number of concurrent handshakes to 32 2020-12-03 13:51:50 -08:00
Chengyuan Zhang 7dc8ab1c6e
xds: print xDS request messages with JsonFormat (#7679)
Currently xDS response messages are printed with protobuf JsonFormat as they may contain Any-typed messages. JsonFormat internally uses Gson for generating human-readable message representations. The default Gson instance escapes HTML characters, which causes characters like '=' to be printed as '\u003d'. There is nothing can be done on our side to disable this as it is protobuf's internal implementation.

To make the same content consistent in both request and response messages consistent, we use JsonFormat to print both.
2020-12-01 15:57:18 -08:00
Chengyuan Zhang 9b276aa73a Update README etc to reference 1.34.0 2020-12-01 15:47:37 -08:00
Chengyuan Zhang 05048cf3e2
interop-testing: update proto generated service files (#7682) 2020-11-30 22:49:00 -08:00
sanjaypujare a6c3df2f24
xds: fix text in the readme and the comment about the --secure flag (#7676) 2020-11-30 14:58:52 -08:00
ZHANG Dapeng ac2327deb7
api,core: interceptor-based config selector (#7610)
Interceptor-based config selector will be needed for fault injection.

Add `interceptor` field to `InternalConfigSelector.Result`. Keep `callOptions` and `committedCallback` fields for the moment, because it needs a refactoring to migrate the existing xds config selector implementation to the new API.
2020-11-30 09:16:22 -08:00
sanjaypujare 3811ef3d22
xds: fix the new server API for ServerXdsClient (#7666) 2020-11-25 16:52:09 -08:00
Chengyuan Zhang 192614bf51
Revert "netty: create adaptive cumulator" (#7669)
This reverts commit 729175c783.
2020-11-25 14:37:48 -08:00
Eric Anderson f0223eb8e3 alts: Migrate java proto map getter from get<field> to get<field>Map
This is part of a proto-wide cleanup of its map APIs.

cl/344096880
2020-11-25 13:45:21 -08:00
Sergii Tkachenko fd59f1de0c buildscripts: Add xDS GKE interop tests buildscript placeholder 2020-11-25 16:24:07 -05:00
Eric Anderson 902cc019fa example-xds: Change arg from --secure to --xds-creds
The xds creds don't actually guarantee anything is secure. We don't want
to give new users a false impression.
2020-11-25 13:16:48 -08:00
Eric Anderson 0be12b40c3 example-xds: Prefix class names with Xds, instead of suffix
This aligns with normal naming practice.
2020-11-25 11:12:12 -08:00
Eric Anderson 7480dade0f example-xds: Mirror helloworld and hostname example
--secure was moved to front since many languages need flags to precede
positional parameters, and we'd like other languages to use the same
flags when feasible.

:8000 was removed from xds: target in the README, as it isn't all that
useful and is confusing as xDS itself provides the backend port numbers.
2020-11-25 11:12:12 -08:00
Sergii Tkachenko 9211bd1914 interop-testing: rename XdsTestClient secure_mode argument 2020-11-24 20:39:53 -05:00
sanjaypujare f0915e7619
xds: fix xds example to be consistent with hello world example (#7659) 2020-11-24 09:08:27 -08:00
Chengyuan Zhang f2e71a69b6
xds: clean up MessagePrinter (#7658)
In v3, UpstreamTlsContext and DownstreamTlsContext messages are not transitively type-referenced by Cluster and Listener. So the message printer is not able to print them without adding them into the registry manually.
2020-11-24 01:03:14 -08:00
ZHANG Dapeng ca12e7a339
grpclb: improve log for SRV lookup failure (#7647) 2020-11-23 11:09:28 -08:00
Aman Khalid fa1f900856 Remove deprecated javadoc options 2020-11-23 11:09:09 -08:00
Chengyuan Zhang e136d8bdeb
gradle, README: Bump protobuf-gradle-plugin version to 0.8.14 (#7640) 2020-11-23 11:01:34 -08:00
Chengyuan Zhang 1ca8bda17f
xds: fix mistake of taking wrong argument in log message (#7653) 2020-11-20 23:17:03 -08:00
sanjaypujare a7530efd6e
interop: create PSM security xDS interop tests - server & client (#7609)
Co-authored-by: Sergii Tkachenko <hi@sergii.org>
2020-11-20 18:31:40 -08:00
Chengyuan Zhang 40b54079ce
xds: obtain the global SharedCallCounterMap in the xDS resolver only (#7646)
Making the global map for holding atomics that aggregates cluster's outstanding requests an explicit dependency is easier for maintaining the architecture.
2020-11-20 12:02:19 -08:00
wanyingd1996 2bf5ef54da
api: Added documentation for Call onClose hanging problem 2020-11-19 12:45:16 -08:00
sanjaypujare 99df22a7a6
xds: remove temporary APIs and update xds example to use new ServerCreds (#7644) 2020-11-19 10:00:42 -08:00
Chengyuan Zhang 3a10392e4e
RELEASING.md: only project admin can create Cron jobs (#7642) 2020-11-18 16:24:55 -08:00
Chengyuan Zhang f5bbe12c9f
Start 1.35.0 development cycle (#7641) 2020-11-18 13:59:40 -08:00
sanjaypujare 620d266677
xds: implement XdsServerCredentials (#7636)
Co-authored-by: Eric Anderson <ejona@google.com>
2020-11-18 12:46:29 -08:00
Sergii Tkachenko 79d2e0c326 core: fix typos in Forwarding* classes 2020-11-18 15:36:56 -05:00
Chengyuan Zhang 7554e971e3
xds: gate xDS circuit breaking feature with environment variable (#7632)
Use GRPC_XDS_EXPERIMENTAL_CIRCUIT_BREAKING environment variable to enable xDS circuit breaking feature. Otherwise, it is disabled by default.
2020-11-18 11:34:56 -08:00