Commit Graph

3689 Commits

Author SHA1 Message Date
Chengyuan Zhang 4309c4339e Defined a proto message that maps the bootstrap JSON file for convenient parsing purpose. 2019-09-09 15:50:23 -07:00
Chengyuan Zhang d771f254aa
xds: import proto files for xDS LB bootstrap from upstream envoy repository (#6125)
* xds: import proto files for xDS LB bootstrap from upstream envoy repository.

* reorder import filenames
2019-09-04 16:33:11 -07:00
Eric Anderson 19942ba039 README.md: Swap to Gradle Plugins DSL
The Plugins DSL has matured and is now preferred. It's also more terse,
which is nice.
2019-08-30 11:39:16 -07:00
Chengyuan Zhang efc14bd299
auth: fix builder invocation for converting Google service account to Jwt access credential (#6106)
* Fixed mistaken method invocation for privateKeyId getter/setter.

* Added test coverage to verify jwt credentials are applied to request metadata correctly.

* No need to expose serviceUri method for testing.
2019-08-30 11:21:33 -07:00
Jihun Cho c9177b2327
alts: convert TsiHandshakeHandler to fit new ProtocolNegotiation style (#6104) 2019-08-30 09:59:32 -07:00
Aaditya Gavandalkar 39dc883b34 context: Implement equals and hashCode for Deadline (grpc#6075) 2019-08-30 08:25:07 -07:00
Eric Anderson daad3bcdbf benchmarks: Disable NETTY_LOCAL in TransportBenchmark
NETTY_LOCAL seem to have a flow control issue. Disable it since we don't
really look at it very often and we care about the
streamingCallsMessageThroughput benchmark.
2019-08-29 16:29:08 -07:00
Eric Anderson daed6e01b1 benchmarks: Move message throughput benchmark to TransportBenchmark
This replaces FlowControlledMessagesPerSecondBenchmark, except it does not
avoid local flow control issues via request(5). If hacking in a request(5),
this benchmark produces similar results (non-direct: 671k vs previously 641k
msg/s).
2019-08-29 16:29:08 -07:00
Eric Anderson 8d18dbd501 benchmarks: Add byte throughput benchmark to TransportBenchmark
This is equivalent to UnaryCallResponseBandwidthBenchmark and
StreamingResponseBandwidthBenchmark, although without the interface selection
logic (which allows for traffic shaping).
2019-08-29 16:29:08 -07:00
Eric Anderson 0aaaacec83 benchmarks: Remove unnecessary volatile from TransportBenchmark
TearDown is guaranteed to execute after Setup; there is no synchronization
necessary. Although the volatile doesn't hurt anything functionally, it is
misleading and confusing.
2019-08-29 16:29:08 -07:00
Eric Anderson a919ef7f74 benchmarks: Delete SingleThreadBlockingQpsBenchmark
It is basically the same as TransportBenchmark without protobuf, smaller
payload, and only Netty. It does show latencies around 66 µs instead of
TransportBenchmark's 70 µs on my laptop, but a quick conversion of
TransportBenchmark to ByteBufOutputMarshaller made it 66 µs as well.
2019-08-29 16:29:08 -07:00
Eric Anderson 3a78325a65 Move HandlerRegistryBenchmark to core/
It blended in with Netty benchmarks, so was missed in our earlier
reorganization.
2019-08-29 16:29:08 -07:00
Chengyuan Zhang 4f516d545b
Delete CronetCallOptions API with replacement of internal accessors for restricted usages only. (#6102) 2019-08-28 13:05:48 -07:00
ZHANG Dapeng 0bc659cfdd
xds: bump envoy to 6ff0bce8ff417a252cde4d04dfb9cba2bab463d8
Also add import script for upda protos from https://github.com/cncf/udpa

This PR is for the purpose to sync up with internal cl/265717410
2019-08-28 12:58:09 -07:00
ZHANG Dapeng c240f27077
buildscripts: android.sh to clean the build when building HEAD^
A gradle plugin [issue](google/protobuf-gradle-plugin#331) was seen for https://github.com/grpc/grpc-java/pull/6099. This PR try to workaround it.
2019-08-28 12:56:49 -07:00
Chengyuan Zhang 5fbe2ed8e8
android: final stabilization of AndroidChannelBuilder (#6097)
* Removed ExperimentalApi annotation for AndroidChannelBuilder

* Put ExperimentalApi annotation back to deprecated method.
2019-08-28 09:52:08 -07:00
Chengyuan Zhang 1e475be64d
android: deleted unused code leftover in AndroidChannelBuilder test. (#6098) 2019-08-28 09:51:44 -07:00
Srini Polavarapu d507ea72a4
change from Inc. to LLC for Google and update the list (#6096) 2019-08-26 12:20:34 -07:00
Eric Anderson 9d6f5322c2 bazel: Add helper for maven_install's override_targets
This can be used to prevent duplicate classes in the classpath, one via
Maven and one via Bazel-native.

See census-instrumentation/opencensus-java#1963 and #5359
2019-08-22 07:40:32 -07:00
Chengyuan Zhang 493af030ab
android: delete deprecated API methods (#6088) 2019-08-21 16:31:36 -07:00
Chengyuan Zhang be226aa99c
cronet: add getter for retrieving grpc cronet annotations in calloptions. (#6086) 2019-08-21 09:55:48 -07:00
Eric Anderson 63661c7b70 netty: Add Bazel target similar to netty-shaded
See census-instrumentation/opencensus-java#1963
2019-08-21 09:48:20 -07:00
ST-DDT d5b63e9c68 docs, examples: Update the maven plugins version (#6065) 2019-08-20 14:35:03 -07:00
ZHANG Dapeng 92805713e4
doc: explicitly mention that Deadline might saturate 2019-08-20 14:28:45 -07:00
Chengyuan Zhang 3a9616fc25
android: clean up AndroidChannelBuilder APIs (#6083)
* Added missing Javadoc for public methods, deprecate fromBuilder and replace with usingBuilder.

* Removed unnecessary final keyword for static methods.

* call usingBuilder in deprecated fromBuilder

* Changed Javadoc description for usingBuilder method.
2019-08-19 17:21:43 -07:00
Chengyuan Zhang 1d04601313
xds: Implement an xDS NameResolver/Provider for xDS load balancing alpha release (#6052)
* Implemented an XdsNameResolver that always returns a hard-coded service config

* Implemented XdsNameResolverProvider

* Added unit tests for XdsNameResolver and XdsNameResolverProvider

* Added META-INF file for XdsNameReresolverProvider

* Removed balancer name field in hard-coded service config

* Changed URI scheme to xds-experimental.

* Deleted unnecessary executors for running name resolution in a separate thread.

* Fixed nits.

* Fixed usage of GrpcUtil.getDefaultProxyDetector() as it was deleted.

* Removed unnecessary shutdown implementation.

* Replaced return with AssertionError as it hard-coded service config should never have error.

* Removed unused name resolver args.

* Added tail blank line.
2019-08-19 16:39:36 -07:00
Srini Polavarapu 9fa2608430
Add MAINTAINERS.md (#6084) 2019-08-19 15:55:17 -07:00
ZHANG Dapeng 9dbbcf5a42
xds: move XdsLoadBalancer.XdsConfig to XdsLoadBalancerProvider
`XdsLoadBalancer` will be replaced by `XdsLoadBalancer2`, and `XdsConfig` is better fit in `XdsLoadBalancerProvider`.
2019-08-16 15:08:10 -07:00
Kun Zhang 2c0b2de862
grpclb: fix pick_first mode shutdown without subchannels. (#6072) 2019-08-16 10:21:25 -07:00
Chengyuan Zhang e68e4004e4
cronet: move call options APIs into an internal accessor class (#6073)
* cronet: move call options APIs into an internal accessor class

* Removed deprecated call option key.
2019-08-16 01:05:32 -07:00
Carl Mastrangelo 4c1e197fcd
okhttp: remove unused import 2019-08-15 16:00:02 -07:00
Chengyuan Zhang c521a31886
android: fix Javadoc symbol/class not found errors (#6063)
* android: fix Javadoc symbol/class not found errors

* Removed redundant join, files API can already handle list.

* Replace usage of javaCompile with javaCompileProvider

* Avoid afterEvaluate by filling javadocs.classpath in android configuration.

* Construct FileCollection via files(Closure), which delays the file resolution.
2019-08-15 12:47:14 -07:00
Carl Mastrangelo 21c34d7862
netty: check for null protocol negotiator in NettyChannelBuilder 2019-08-15 11:11:31 -07:00
Chengyuan Zhang ad47eee4d3
okhttp: add PerfMark tracing for okhttp transport (#6038)
* okhttp: add PerfMark tracing for okhttp transport

* change task for AsyncSink to give more accurate task description

* add final to field tag

* add PerfMark dependency in okhttp package bazel
2019-08-14 17:20:29 -07:00
Jannis Andrija Schnitzer 93898734c2 bazel: Fix java path separator bug on Windows (#6054) 2019-08-14 14:28:31 -07:00
Eric Anderson 6c7258b05e Upgrade gradle-errorprone-plugin to 0.8.1
This fixes the following warning when building grpc-android:
WARNING: API 'variant.getJavaCompiler()' is obsolete and has been replaced with 'variant.getJavaCompileProvider()'.
It will be removed at the end of 2019.
For more information, see https://d.android.com/r/tools/task-configuration-avoidance.
To determine what is calling variant.getJavaCompiler(), use -Pandroid.debug.obsoleteApi=true on the command line to display a stack trace.
2019-08-14 16:22:59 -05:00
Carl Mastrangelo 458f4533db
netty: migrate Server protocol negotiation to new style
* Revert "Revert "netty: change server to new protocol negotiator model" (#5798)"

This reverts commit 4e5e19f6fd.
2019-08-14 13:00:42 -07:00
ZHANG Dapeng ce53d0eac7
Update README etc to reference 1.23.0 2019-08-13 17:46:50 -07:00
Eric Anderson 9fcfb5b4f8
netty: Limit number of frames client can cause server to enqueue
Http2ControlFrameLimitEncoder is from Netty. It is copied here as a
temporary measure until we upgrade to the version of Netty that includes
the class.

See CVE-2019-9515
2019-08-13 12:24:15 -05:00
Dharmesh Jogadia 5790503d79 core,okhttp: removed GrpcUtil.IS_RESTRICTED_APPENGINE and dependent code (#6051) 2019-08-13 10:11:56 -07:00
ZHANG Dapeng 1949ebd7ef
grpclb: shuffle pick first index
Each new instance of GrpcLbBalancer will have a different pick first index.
2019-08-12 17:07:23 -07:00
Chengyuan Zhang d2307139c8
cronet: do not expose setTrafficStats* as public APIs (#6055) 2019-08-12 14:42:18 -07:00
Laurent Le Brun 503696aa9a bazel: Remove missing pattern from glob
There's no third_party directory.
This change makes the repository compatible with
Bazel change --incompatible_disallow_empty_glob.
2019-08-08 16:41:17 -07:00
Chengyuan Zhang 539f0400b6
core: handle removing partially-closed resources for throwing on close. Fixes #6002. (#6044) 2019-08-08 14:23:59 -07:00
Chengyuan Zhang c5317e4935
xds: do not add a new CallMetricRecorder instance to context if there is already one (#6042)
* xds: do not add a new CallMetricRecorder instance to context if there is already one

* save a local reference to CallMetricRecorder instance to allow ServerCall#close() being called in a different context

* added test coverage for having ServerInterceptor/ServerStreamTracerFactory both install CallMetricRecorder
2019-08-08 13:00:46 -07:00
Jihun Cho 4faad27078
netty: record ByteBuf access in Netty{Client,Server}Stream before calling MessageDeframer (#6027) 2019-08-02 16:25:08 -07:00
Kun Zhang 4e4d4d8ab5
core: allow setting custom Deadline.Ticker to InProcessServerBuilder (#6034)
ServerImpl uses that ticker to create incoming Deadlines. This feature is specifically restricted to in-process, as it can also customize ScheduledExecutorService, and them together can fake out the clock which is useful in tests. On the other hand, a fake Ticker won't work with Netty's ScheduledExecutorService.

Also improved mismatch detection, documentation and tests in Deadline.
2019-08-01 13:13:20 -07:00
Igor Bernstein 271cbff1b8 core: Migrate to new OpenCensus method & status tags (#5996)
Fixes #5593 and supersedes #5601

Now that https://github.com/census-instrumentation/opencensus-java/pull/1854 has been merged & released as 0.21.0. We can start using the method & status tags.

Background:
Opencensus introduced new tags for status and method (https://github.com/census-instrumentation/opencensus-java/pull/1115). The old views that used those tags were deprecated and new views were created that used the new tags. However grpc-java wasn't updated to use the new tags due to concern of breaking existing metrics. This resulted in the old views being deprecated while the new views were broken (goomics #50).

https://github.com/census-instrumentation/opencensus-java/pull/1854 added a compatibility layer to opencensus that would remap new tags to old tags for old views. This should unblock grpc to switching to the new tags while allowing old views to still be populated. That commit was released as part of opencensus 0.21, which grpc currently uses
2019-08-01 10:37:04 -07:00
Chengyuan Zhang b8933faae1
services: added even more (context-related) test cases for CallMetricRecorder (#6033) 2019-08-01 10:09:26 -07:00
Kun Zhang f9509694b9
context: allow creating Deadline with custom Ticker. (#6031)
This makes Deadline more test-friendly. Next step is to allow
ServerBuilder to take a custom Ticker and use it for creating
incoming Deadlines. With both changes in, application logic will be
able to verify the Deadlines they set.
2019-07-31 11:26:51 -07:00