Commit Graph

4317 Commits

Author SHA1 Message Date
Jihun Cho 6dbdfcdbbc
grpclb: CachedSubchannelPool use new create subchannel (#6831) 2020-03-31 13:31:04 -07:00
Jihun Cho ae211a1ba8
benchmarks: fix missing configuration for netty server (#6877) 2020-03-31 13:00:10 -07:00
Chengyuan Zhang 68391e4d1b
xds: filter EDS localities with clarified specifications (#6874)
Fix logic of filtering localites in EDS responses:
   - Each LocalityLbEndpoints message is allowed to contain 0 LbEndpoints. 
   - LocalityLbEndpoints without or with 0 weight are ignored. 
   - NACK responses with sparse locality priorities.
2020-03-30 14:24:48 -07:00
Chris Nokleberg e081f414a7
core: copy the SchemaDescriptor when rebuilding descriptor (#6851)
useMarshalledMessages works by duplicating a ServerServiceDefinition while replacing just the marshallers. It currently does not copy over the SchemaDescriptors, which breaks at least the ProtoReflectionService.
2020-03-30 14:07:24 -07:00
sanjaypujare 1bf5ad1527
xds: update to envoy commit id b16ce6d5ea0d2da73e764d145623e7367dc59ed3 (#6871) 2020-03-30 12:16:29 -07:00
Chris Nokleberg a4275b63f4
core: preserve KnownLength when wrapping InputStream (#6852)
useInputStreamMessages ensures that the InputStream supports marking by wrapping the stream in a BufferedInputStream if markSupported() returns false. This change uses a new subclass of BufferedInputStream that also implements KnownLength, when the original stream also implements KnownLength.
2020-03-30 10:09:15 -07:00
Chengyuan Zhang 6c5a7df1d4
android-interop-testing: resolve build warnings (#6870)
Suppressed compiler warnings caused by protobug-javalite and errorrprone warnings from grpc-interop-testing + "throw-in-finally".
2020-03-27 17:22:58 -07:00
Eric Anderson 2c250ace52 netty: prevent interruption during bind from leaking channel
Fixes #6850
2020-03-27 17:21:22 -07:00
ZHANG Dapeng 0b4503e4b2
xds: rollback PGV dependency from using maven artifact to importing proto source
PGV is adding new fields (`well_known_regex` and `strict`) to proto and some of our new features require the most current envoy API which in turn requires the new fields in latest PGV proto (https://github.com/envoyproxy/envoy/blob/master/api/envoy/api/v2/core/base.proto#L251), but they are not available in the latest PGV maven release.
2020-03-27 17:09:27 -07:00
Kun Zhang e28bb1975f
xds: fix lint warnings (#6869) 2020-03-27 16:04:11 -07:00
Eric Anderson c7f69c851b core: Add missing setListener if decompressor is unknown
Previously AbstractServerStream would throw an exception which would kill the
RPC with a RST_STREAM. Now the server actually responds with a clean error
message and avoids spamming the logs.

WARNING: Exception in onHeadersRead()
java.lang.IllegalStateException
	at com.google.common.base.Preconditions.checkState(Preconditions.java:495)
	at io.grpc.internal.AbstractStream$TransportState.onStreamAllocated(AbstractStream.java:232)
	at io.grpc.internal.AbstractServerStream$TransportState.onStreamAllocated(AbstractServerStream.java:224)
	at io.grpc.netty.NettyServerHandler.onHeadersRead(NettyServerHandler.java:451)
	at io.grpc.netty.NettyServerHandler.access$900(NettyServerHandler.java:101)
	at io.grpc.netty.NettyServerHandler$FrameListener.onHeadersRead(NettyServerHandler.java:807)
	at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder$FrameReadListener.onHeadersRead(DefaultHttp2ConnectionDecoder.java:373)
2020-03-27 12:52:13 -07:00
Chengyuan Zhang 9dec06cc91
Upgrade protobuf plugin version to 0.8.12, android plugin version to 3.5.0 (#6859) 2020-03-27 12:10:56 -07:00
Eric Gribkoff e2bb44106a
buildscripts: allow per-xds test case artifacts (#6857) 2020-03-26 10:13:05 -07:00
sanjaypujare a2896051b8
xds: integration of XdsClientImpl with XdsServerBuilder to deliver Listener updates (#6838) 2020-03-25 10:14:29 -07:00
jiangtaoli2016 47b6b390bb update android-interop-testing ca.pem 2020-03-24 09:06:05 -10:00
Jihun Cho bf12157fc4
build: bump netty to 4.1.48.Final, bump tcnative to 2.0.30.Final (#6845) 2020-03-24 11:54:59 -07:00
Kun Zhang fc53747f1f
xds: annotate XdsRoutingLoadBalancerTest with RunWith (#6855)
This is required inside google for all tests.
2020-03-24 11:48:28 -07:00
Kun Zhang 2e3ad1de25
core: prevent data race in ManagedChannelOrphanWrapper (#6854)
Data race was detected internally when
ManagedChannelOrphanWrapper.shutdown() was called concurrently:

WARNING: ThreadSanitizer: data race (pid=5009)
  Write of size 8 at 0x7fd2f7f37530 by thread T49:
    #0 java.lang.ref.Reference.clear()V Reference.java:265
    #1 io.grpc.internal.ManagedChannelOrphanWrapper$ManagedChannelReference.clearInternal()V ManagedChannelOrphanWrapper.java:118
    #2 io.grpc.internal.ManagedChannelOrphanWrapper$ManagedChannelReference.clear()V ManagedChannelOrphanWrapper.java:110
    #3 io.grpc.internal.ManagedChannelOrphanWrapper.shutdown()Lio/grpc/ManagedChannel; ManagedChannelOrphanWrapper.java:58
    (stacktrace redacted)

  Previous write of size 8 at 0x7fd2f7f37530 by thread T45 (mutexes: write M267260296638793720, write M267541771615505864, write M267823246592216728, write M267260296898451984, write M267541771875162784, write M267823246851873416):
    #0 java.lang.ref.Reference.clear()V Reference.java:265
    #1 io.grpc.internal.ManagedChannelOrphanWrapper$ManagedChannelReference.clearInternal()V ManagedChannelOrphanWrapper.java:118
    #2 io.grpc.internal.ManagedChannelOrphanWrapper$ManagedChannelReference.clear()V ManagedChannelOrphanWrapper.java:110
    #3 io.grpc.internal.ManagedChannelOrphanWrapper.shutdown()Lio/grpc/ManagedChannel; ManagedChannelOrphanWrapper.java:58
    (stacktrace redacted)
2020-03-23 18:02:00 -07:00
Jiangtao Li 0ba9d3e2d1
Update to test credentials to use 2048-bit RSA key (#6841)
Update to test credentials to use 2048-bit RSA key
2020-03-23 14:43:04 -07:00
ZHANG Dapeng 6a64951005
xds: implement XdsRoutingLoadBalancer 2020-03-23 14:42:44 -07:00
Chengyuan Zhang 8d4240f480
android-interop-testing: set minSdkVersion to 14 in manifest (#6846) 2020-03-20 15:53:45 -07:00
Chengyuan Zhang 95e331a69b
buildscripts: clean up android related scripts (#6843)
Fix incorrect android-interop-testing apk path after flatten the project structure.
2020-03-19 19:09:54 -07:00
Chengyuan Zhang d537adedb3
android-interop-testing: include android interop testing in main build (#6829)
Proto generated code for android-interop-testing is checked in.
2020-03-19 12:37:48 -07:00
ZHANG Dapeng e739eeabf9
core: fix java.nio.ByteBuffer Java 9+ incompatible usage 2020-03-18 16:07:20 -07:00
Chengyuan Zhang b06f888615
android: suppress warnings for deprecated constants in ConnectivityManager (#6835)
For Android version 28, some constants in ConnectivityManager have been deprecated such as ConnectivityManager. CONNECTIVITY_ACTION, ConnectivityManager. TYPE_WIFI, ConnectivityManager. TYPE_MOBILE, etc. In grpc-android, they are used for supporting legacy SDK connectivity state monitoring (and its unit tests). They work as intended for legacy SDK versions. So we suppress those warnings for the target SDK version 28.
2020-03-18 10:31:56 -07:00
Anar Sultanov b7859e73a0
examples: Add a JWT authentication example (#5915) 2020-03-17 17:43:31 -07:00
Jihun Cho 58e6ad71cc
xds: fix style (#6834) 2020-03-16 12:46:58 -07:00
ZHANG Dapeng 9922382698
xds: parse RDS response to ConfigUpdate for path matching 2020-03-13 17:39:21 -07:00
Eric Gribkoff 1acde4604f
buildscripts: checkout matching grpc/grpc branch for xds test (#6828) 2020-03-13 15:32:13 -07:00
Jihun Cho b72477e282
rls: fix RlcProto parsing issues (#6822) 2020-03-12 18:46:05 -07:00
Jihun Cho a680c982f5
rls: adaptive throttler (#6749) 2020-03-12 18:45:36 -07:00
ZHANG Dapeng 6e0748da6f
xds: refactor XdsConfig to use PolicySelection 2020-03-11 21:38:14 -07:00
Eric Gribkoff 99b6d0156e
buildscripts,interop-testing: Increase logging for xDS tests (#6818) 2020-03-11 20:34:26 -07:00
ZHANG Dapeng 5e7b8c672f
xds: implement WeightedTargetLoadBalancer 2020-03-11 15:35:31 -07:00
Eric Gribkoff 3b8e36358c
buildscripts: update xds test server arg (#6816) 2020-03-11 13:20:30 -07:00
sanjaypujare 46eac47efc
xds: add support for server side Listener watcher in XdsClient (#6801) 2020-03-11 08:27:26 -07:00
Jihun Cho 111e348def
Update README etc to reference 1.28.0 (#6815) 2020-03-10 16:10:04 -07:00
Eric Anderson 47d545ad70 api: Fix MethodType documentation overspecification
The server does not _have_ to wait until half close in CLIENT_STREAMING, and
commonly wouldn't in error cases. {client,server}SendsOneMessage were way
over-specifying the behavior and included unnecessary and incorrect words like
"immediately." Those methods shouldn't be the defining the behavior in that
much precision anyway; that would be the job of the individual enum values, if
anything.
2020-03-09 12:16:01 -07:00
ZHANG Dapeng b348479ac8
interop-testing: set the right classpath for startscripts
Currently the classpath for all startscripts in interop-testing includes alpnagent and grpc-xds, even if a lot of startscripts don't need them. Made a change to only include alpnagent or grpc-xds when a startscript really needs it.
2020-03-06 11:55:45 -08:00
Chengyuan Zhang ef44795594
xds: treat target server authority opaquely for resolving cluster name (#6767)
Fixes usage of target hostname:port in xDS plugin.

The target hostname:port used to construct gRPC channel should be treated opaquely. XdsNameResolver should not try to split it and should use it opaquely for sending LDS requests. In received RouteConfiguration messages, do not stripe off port (if any) for finding the virtual host with domain name matching the requested LDS resource name.
2020-03-06 10:05:08 -08:00
Kun Zhang 4a2c5d6e9c
core: fix a bug in health check config propgation. (#6804)
The condition "effectiveServiceConfig != validServiceConfig" should
have been deleted in commit 2162ad0436.

The condition was there before that commit because
NAME_RESOLVER_SERVICE_CONFIG was already in "attrs", thus it needed to
be re-added only if "effectiveServiceConfig" differs from the original
"validServiceConfig".

In contrast, ATTR_HEALTH_CHECKING_CONFIG is not in the original
"attrs" and always needs to be added.
2020-03-05 09:27:55 -08:00
ZHANG Dapeng 7be75a0bcb
all: let interop test use shaded dependency correctly take 2
First rolls forward #6791, then fixes the issue of missing transitive dependency for the shadow configuration.
2020-03-04 16:10:46 -08:00
Chengyuan Zhang f85843bb88
benchmark: clean up jmh plugin configurations (#6803)
Bump jmh plugin to version 0.5.0. Put junit and mockito to test dependency. Eliminated jmh plugin config workaround for the known issue in previous version.
2020-03-04 16:04:09 -08:00
Chengyuan Zhang 5ba663bcf6
android: add grpc-android into main build (#6793)
Add grpc-android into main build. grpc-android will be built if Gradle option skipAndroid is false. This change also migrates deprecated Robolectric methods to androidx.test methods.
2020-03-04 15:40:39 -08:00
Kun Zhang a57f1a9636
services: fix a local variable name (#6802) 2020-03-04 14:31:09 -08:00
ZHANG Dapeng 6d3ffc7892
all: refactor select lb policy from a list of raw configs
Refactor to reuse `PolicySelection` and the implementation in `AutoConfiguredLoadBalancerFactory.parseLoadBalancerPolicy()`.
2020-03-03 11:24:59 -08:00
Chengyuan Zhang ec25beb660
grpclb: clean up usage of raw load balancing config attributes in tests (#6798) 2020-03-03 09:52:12 -08:00
markb74 fd5f4aac63
Enable use of InProcessTransport outside of InProcessServer
This allows an InProcessTransport instance to be created via a new
internal accessor class InternalInProcess. We effectively just expose a
method to create an InProcessTransport with a existing ServerListener
instance.

This will be used for in-process channels to an under-development
on-device server.
2020-03-02 16:02:17 -08:00
Chengyuan Zhang afc1f2e567
core, grpclb: clean up grpclb specific attributes in core (#6790)
Move ATTR_LB_ADDR_AUTHORITY and ATTR_LB_PROVIDED_BACKEND attributes definition in GrpcAttributes to GrpclbConstants. grpc-alts will have a compile dependency on grpc-grpclb.
2020-03-02 10:27:57 -08:00
ZHANG Dapeng 1df7d7ea8e
Revert "all: let interop test use shaded dependency correctly (#6780)"
This reverts commit c5f48b8e38.  (#6780)

Revert because caused a regression in the ALTS tests. https://source.cloud.google.com/results/invocations/691d9965-fea1-487d-b606-352a5234039e/targets/grpc%2Fcore%2Fpull_request%2Flinux%2Fgrpc_interop_toprod/log

2020-03-01 20:02:12,491 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang3/SystemUtils
at io.grpc.alts.CheckGcpEnvironment.isRunningOnGcp(CheckGcpEnvironment.java:69)
at io.grpc.alts.CheckGcpEnvironment.isOnGcp(CheckGcpEnvironment.java:44)
at io.grpc.alts.ComputeEngineChannelBuilder.(ComputeEngineChannelBuilder.java:62)
at io.grpc.alts.ComputeEngineChannelBuilder.forTarget(ComputeEngineChannelBuilder.java:72)
at io.grpc.alts.ComputeEngineChannelBuilder.forAddress(ComputeEngineChannelBuilder.java:77)
at io.grpc.testing.integration.TestServiceClient$Tester.createChannel(TestServiceClient.java:399)
at io.grpc.testing.integration.AbstractInteropTest.setUp(AbstractInteropTest.java:309)
at io.grpc.testing.integration.TestServiceClient.setUp(TestServiceClient.java:198)
at io.grpc.testing.integration.TestServiceClient.main(TestServiceClient.java:56)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.SystemUtils
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 9 more
2020-03-02 10:22:50 -08:00