ZHANG Dapeng
6dad047126
core: add jndi timeout and dirContext.close
2018-07-02 17:36:05 -07:00
Eric Anderson
e3ff1ade07
core: Add support for List<EAG> in Subchannels
...
This avoids the needs to flatten to EAGs for cases like PickFirst,
making the Attributes in EAGs able to be used in communication with
core. See #4302 for some discussion on the topic.
2018-07-02 14:00:05 -07:00
Carl Mastrangelo
39d2dd0eaa
core: make InternalHandlerRegistry a HandlerRegistry
2018-06-29 13:01:25 -07:00
Nick Hill
b2dd6ae7f0
util: Improve RoundRobinLoadBalancer scalability with stickiness
...
- Rework stickiness picker logic to be non-blocking
- Stash `Subchannel` ref in an attribute rather than dedicated map
2018-06-29 09:49:23 -07:00
Marco Ferrer
ac55604527
fixed typo in round robin factory name const
...
Fixes : #4598
2018-06-29 09:16:30 -07:00
Eric Anderson
3e67a5be75
core: Avoid unnecessary unchecked cast in DnsNameResolver
2018-06-28 15:47:06 -07:00
Carl Mastrangelo
a74bb350b7
core: always do SRV record lookup in DnsNameResolver
...
Instead of failing after a a missing A/AAAA record, this change
makes the resolver keep going and try out SRV records too. This
is needed for use with ALTS, and is part of the gRPCLB spec.
This change also moved the JNDI code to a separate, reflectively
loaded file. This makes it easy to exclude the file and not worry
about the missing class references on Android. Additionally, if
javax.naming might be available on Android, this allows it to be
loaded. A key side effect of this is that DnsNameResolver is
smaller, and more cleanly tested.
2018-06-26 16:15:52 -07:00
Carl Mastrangelo
81da3eb95b
core: make Auto config load balancer not depend on service config
...
Also, add some tests
2018-06-26 13:36:02 -07:00
Doug Lawrie
ffd0f9feca
inprocess: add a toString for InProcessSocketAddress
...
The motivation here is in some cases we log the remote-addr that is set in the gRPC call attributes, and have to special case this type to support inprocess servers.
2018-06-22 10:32:42 -07:00
Kun Zhang
15786520f9
grpclb: use exponential back-off for retries of balancer RPCs ( #4525 )
2018-06-12 14:04:45 -07:00
Grant Oakley
defb955f3a
core: add clarification to ClientCall javadoc
...
* Improve ClientCall documentation. Clarify that some methods of ClientCall may be invoked from any thread. Adds @throws clauses to request().
2018-06-12 10:23:01 -07:00
ZHANG Dapeng
5ce10f0146
all: add gradle format checker
...
This PR adds an automatic gradle format checker and reformats all the *.gradle files. After this, new changes to *.gradle files will fail to build if not in good format, just like checkStyle failure.
2018-06-11 18:35:18 -07:00
Carl Mastrangelo
8f51c27319
core: fix lint
2018-06-06 17:14:58 -07:00
apolcyn
6dbe3921ed
core: fix SRV record parsing
...
* only unquote TXT data, so as to not remove spaces from SRV data
2018-06-04 18:59:15 -07:00
ZHANG Dapeng
c796901aca
core: channel tracing to log events for channel state change
2018-06-04 17:38:26 -07:00
ZHANG Dapeng
8a3e623be7
Start 1.14.0 development cycle
2018-06-04 16:08:31 -07:00
Bogdan Drutu
2a127ce3e7
core: update opencensus to 0.12.3. ( #4530 )
...
Changed calls to deprecated methods to the newly added methods.
2018-06-04 15:27:27 -07:00
ZHANG Dapeng
a0794d5a68
core: Implement channel tracing for some events
...
Includes
- API plumbing for channel tracing `+ManagedChannelBuilder.maxTraceEvents()`
- trace logging for channel/subchannel creation events and name resolving events.
Trace logging for all other events will be added in subsequent PRs.
2018-06-01 07:33:37 -07:00
zpencer
25a2ec1ef3
core: fix ServerBuilder.setBinaryLog javadoc ( #4514 )
...
The javadoc should refer to server not channel.
2018-05-31 18:14:44 -07:00
ZHANG Dapeng
608ce3d344
core: unit test for channel shutdown during retry backoff
2018-05-24 17:18:05 -07:00
zpencer
ff9aa39bb6
core,services: fix lints ( #4504 )
...
- Type parameters must be upper camel case
- constant case field must be final
2018-05-24 11:12:30 -07:00
Eric Anderson
e41e054776
Propagate CallCredentials.ATTR_SECURITY_LEVEL from transports
...
Previously no transport provided the key so CallCredentials would always
see the security as NONE.
2018-05-24 09:51:45 -07:00
zpencer
27439876f2
services,core: make BinaryLogSink visible, add setter ( #4503 )
...
* make BinaryLogSink public
* add io.grpc.BinaryLog to server/channel builder
2018-05-23 20:49:09 -07:00
zpencer
1f99fcdc82
move io.grpc.BinaryLogProvider to io.grpc.services ( #4501 )
...
Add internal accessors for ServerInterceptors and ClientInterceptors because some helpers were pkg private
Fix tests that were once creating BinaryLogProvider instances, they should now only create io.grpc.BinaryLog instances
2018-05-23 17:04:48 -07:00
zpencer
1aec994475
io.grpc.BinaryLog is now the fully functional API ( #4498 )
...
classes in internal now use the io.grpc.BinaryLog API,
io.grpc.BinaryLogProvider is an implementation of the API and will be
moved to io.grpc.services.
2018-05-23 15:58:37 -07:00
ZHANG Dapeng
6f2980e979
core: fix Attributes hashCode
2018-05-23 13:27:03 -07:00
Kun Zhang
68a462e447
noop: resolve lint warnings found at import. ( #4496 )
2018-05-23 11:58:19 -07:00
ZHANG Dapeng
451c412354
core: fix client does not detect truncated message
...
Resolves #3264
2018-05-21 13:51:15 -07:00
Jianwei Mao
10291d5ccc
core: fix missing comment for headers param
2018-05-21 13:10:58 -07:00
ZHANG Dapeng
f5f560ad36
all: TimeProvider to use nanos rather than millis
...
This is the same practice as #2833
2018-05-21 12:44:06 -07:00
zpencer
faffb09f0a
core: remove io.grpc core dependency on census ( #4461 )
...
io.grpc (core) does not strictly require census. Move the usages and
and remove census from BUILD.bazel .
2018-05-18 14:56:45 -07:00
zpencer
850249f9ca
core: fix lints from import ( #4472 )
...
The import surfaced a few linter issues.
2018-05-17 16:21:30 -07:00
ZHANG Dapeng
4d94163bbd
core: Add ChannelTracer
...
This is a class similar to `CallTracer`, to be used for Channel Tracing.
The constructor arg `maxEvents` is a param supposed to be provided by `ManagedChannelBuilder`.
2018-05-16 10:56:41 -07:00
zpencer
e806e387fe
core: put @ExperimentalApi on CallOptions.of() ( #4466 )
...
This marks the method as still experimental, to be clear to users that
they are using an experimental api.
2018-05-15 15:56:42 -07:00
ZHANG Dapeng
6a96656764
core: make channel stats' channel state consistent with subchannels
...
Moved `setState()` inside of `channelExecutor` runnable together with `setSubchannels`, otherwise the state may be inconsistent with subchannels, say channel state is the initial IDLE but subchannels is non-empty with active transports, or channel state is READY but subchannels is empty.
2018-05-15 15:48:57 -07:00
ZHANG Dapeng
bf4a00c6de
context/core/netty: Add @CheckReturnValue to Context
...
By adding inner class annotations without introducing external dependencies.
2018-05-15 13:14:30 -07:00
ZHANG Dapeng
561583be14
core,services: Add ChannelTracing data object
...
Added `ChannelTrace` as an inner class of `Channelz`.
This is in preparation for the implementation of [Channel Tracing](https://github.com/grpc/proposal/blob/master/A3-channel-tracing.md )
2018-05-15 11:33:44 -07:00
zpencer
04a90bcad2
core: stabilize custom CallOptions API ( #4457 )
...
Deprecate `of()` in favor of `create()` and
`createWithDefault()`. Emphasize that the name string is only for
debug purposes.
Fixes #1869
2018-05-15 10:03:46 -07:00
zpencer
21b73bbdc1
core: partially stabilize Attributes API ( #4458 )
...
Deprecate static builder method, Keys.of(), add a notice of plans to
remove keys(), emphasize that the name is only a debug label.
The `@ExperimentalAPI` is left on the class because there are still
issues around hashCode/equals.
2018-05-14 11:30:06 -07:00
zpencer
902baa0cde
core: do not use internal accessors in BinaryLogProvider ( #4454 )
...
Now that this class is in `io.grpc` the accessor is not needed.
2018-05-09 12:21:05 -07:00
zpencer
247a76ed93
core,netty,okhttp: make toString more consistent for channelz ( #4434 )
...
Use MoreObjects.toStringHelper and use only the log id's long value,
because the class name is already present in the toStringHelper.
2018-05-07 11:38:16 -07:00
zpencer
6f29b60dcf
core, services: make BinaryLog an explicit object that is passed into channels/servers ( #4431 )
...
remove SPI, io.grpc.BinaryLog is a public API that is passed into builders and must be
explicitly closed.
2018-05-07 07:41:42 -07:00
Carl Mastrangelo
60a0b0c471
all: normalize copyright header
2018-05-03 14:55:21 -07:00
Eric Anderson
894c815832
core: Document Metadata ownership passes to the Call{,Listener}
...
This was already clearly documented in ServerCall.Listener and
ClientCall.
2018-05-03 07:08:27 -07:00
Grant Oakley
6bf8e0c084
core: add @CheckReturnValue to CallOptions
2018-05-02 15:56:52 -07:00
ZHANG Dapeng
e19e8f7d40
core: populate effective deadline to ClientStream
...
Added `ClientStream.setDeadline(Deadline deadline)` method, which will set the timeout header.
Resolves #4412
2018-05-02 13:31:03 -07:00
ZHANG Dapeng
d50c191aca
core/stub: fix lint warnings
2018-05-02 10:37:32 -07:00
Grant Oakley
fcb48ff216
core,stub: Add toString() to ClientCallImpl and GrpcFuture
2018-05-01 16:49:56 -07:00
ZHANG Dapeng
b58e0f4059
core: stickiness for RoundRobinLoadBalancer
...
Add weak stickiness support for Round Robin lb.
2018-04-30 16:46:35 -07:00
zpencer
acfb3b9851
services,core: simplify CallId generation ( #4365 )
...
BinaryLog.java is the class that is responsible for intercepting
client and server calls. It now requires a CallId to be passed
in. The BinaryLogProviderImpl is responsible for generating a
CallId and passing it in.
2018-04-27 18:32:36 -07:00
zpencer
9ada30b25d
(low priority) core,netty,interop-testing: stabilize maxInboundMessageSize API ( #4399 )
...
On server side, `maxMessageSize` is deprecated for
`maxInboundMessageSize` to match the channel builder.
Update usages to use new setter.
2018-04-27 16:01:16 -07:00
zpencer
1a2d076aed
core,netty,okhttp,services,testing: expose security info to channelz ( #4300 )
...
Pull the TLS info from the SSLSession object for TLS, and AltsContext for ALTS.
2018-04-25 14:38:09 -07:00
zpencer
62e6e2de78
Start 1.13.0 development cycle ( #4383 )
2018-04-23 15:24:24 -07:00
Carl Mastrangelo
c37ea15830
core: also expose parser on JsonParser
2018-04-20 13:25:21 -07:00
ZHANG Dapeng
74532acce0
core: use List instead of Set for drainedSubstreams
...
This improves latency performance (retry enabled) for NETTY transport by about 2us. For INPROCESS, NETTY_LOCAL, OKHTTP transports, the improvement seems much less than 2us.
```
before
Benchmark (direct) (transport) Mode Cnt Score Error Units
TransportBenchmark.unaryCall1024 true NETTY sample 260801 76566.536 ± 189.439 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.00 true NETTY sample 60480.000 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.50 true NETTY sample 75264.000 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.90 true NETTY sample 85504.000 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.95 true NETTY sample 87424.000 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.99 true NETTY sample 100864.000 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.999 true NETTY sample 140800.000 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.9999 true NETTY sample 205547.469 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p1.00 true NETTY sample 3915776.000 ns/op
TransportBenchmark.unaryCall1024 false NETTY sample 208352 95865.619 ± 113.142 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.00 false NETTY sample 72576.000 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.50 false NETTY sample 93568.000 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.90 false NETTY sample 105728.000 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.95 false NETTY sample 109568.000 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.99 false NETTY sample 124544.000 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.999 false NETTY sample 161792.000 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.9999 false NETTY sample 230520.448 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p1.00 false NETTY sample 3997696.000 ns/op
```
```
after
Benchmark (direct) (transport) Mode Cnt Score Error Units
TransportBenchmark.unaryCall1024 true NETTY sample 269471 74104.666 ± 182.514 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.00 true NETTY sample 60992.000 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.50 true NETTY sample 70912.000 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.90 true NETTY sample 83584.000 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.95 true NETTY sample 85888.000 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.99 true NETTY sample 100224.000 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.999 true NETTY sample 142848.000 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.9999 true NETTY sample 489527.706 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p1.00 true NETTY sample 4300800.000 ns/op
TransportBenchmark.unaryCall1024 false NETTY sample 216000 92468.337 ± 90.229 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.00 false NETTY sample 68480.000 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.50 false NETTY sample 89472.000 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.90 false NETTY sample 103680.000 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.95 false NETTY sample 107008.000 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.99 false NETTY sample 120960.000 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.999 false NETTY sample 159232.000 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p0.9999 false NETTY sample 272076.493 ns/op
TransportBenchmark.unaryCall1024:unaryCall1024·p1.00 false NETTY sample 2662400.000 ns/op
```
2018-04-20 11:22:32 -07:00
Eric Anderson
ddf77f59cc
core: Fix experimental API issue for channel state API
...
The earlier issue was for the feature itself, not the stabilization.
2018-04-19 17:38:20 -07:00
zpencer
934c2e2fd7
core: clarify binlog API ( #4362 )
...
The interceptors are a part of the implementation and not meant for
callers.
Both methods for wrapping clients / servers can be `final`.
2018-04-19 17:32:45 -07:00
zpencer
ec95999124
core: remove unneeded binlog tests for ManagedChannelImpl ServerImpl ( #4361 )
...
Replace the tests with tests that just make sure binary log is
installed. Better tests exist today in BinaryLogProviderTest to make
sure the actual logic is correct.
2018-04-19 16:55:32 -07:00
ZHANG Dapeng
e67a61fa08
core: refactor ManagedChannelImplTest with a configurable builder
...
In previous code of `ManagedChannelImplTest`, new tests will have to add more and more custom args in `createChannel(...)`, and each time when a custom arg is needed all other default args need be repeatedly provided in `createChannel(...)`. In most cases those args are just builder attributes. So this PR makes ManagedChannelImplTest easier to stub by providing a builder field, then new tests will just set necessary builder attributes before calling `createChannel()`.
2018-04-19 10:06:39 -07:00
ZHANG Dapeng
f6a032d6b2
core: forward toString for forwarding classes
...
Forward `toString()` method for forwarding classes to improve debug information.
For example, `ForwardingManagedChannel.toString()` will return something like:
```
ForwardingManagedChannel{delegate=ManagedChannelImpl{logId=tag-13247, target=localhost:8080}}
```
2018-04-19 10:05:48 -07:00
Carl Mastrangelo
f754bff906
core: make JsonParser public
2018-04-18 18:49:08 -07:00
zpencer
30400e0e58
core: add sockets to subchannel stat ( #4345 )
...
This is info not being reported at the moment and is missing from the
display.
2018-04-16 11:33:28 -07:00
zpencer
c04278ea07
services: turn channelz null futures into Status.UNIMPLEMENTED ( #4346 )
...
Then channelz GUI will take this into account. This is particularly
useful for InProcessTransport, where I have decided we do not need
special support for in channelz. The server and channel stats are
already sufficient.
2018-04-16 09:54:35 -07:00
zpencer
791a29f63b
services: socket options were erroneously ignored if socket has no stats ( #4336 )
...
This fixes listen sockets. It is ok to have no data but report socket
options.
2018-04-13 14:59:35 -07:00
Carl Mastrangelo
e4502aca5d
stub: add docs clarifying readiness
2018-04-13 14:12:54 -07:00
Carl Mastrangelo
03465a7f45
core: don't warn on absent service config
...
Fixes #4333
2018-04-13 11:13:57 -07:00
ZHANG Dapeng
a6811d5bb1
all: add toString() to Server to improve debug info
2018-04-13 09:41:09 -07:00
ZHANG Dapeng
0eafb8e9ca
core: compare doubles with compare instead of ==
...
Always not compare equality for doubles with `==`.
2018-04-13 09:39:59 -07:00
Eric Anderson
0a598c053c
core: Fix lint, style, "good ideas" violations
2018-04-12 17:26:54 -07:00
ZHANG Dapeng
6d7e19cbe5
core: replumb RetryPolicy
...
- replumbed `RetryPolicy` with `MethodInfo` without breaking the existing `RetryPolicyTest`.
- moved `ServiceConfigInterceptor.MethodInfo.RetryPolicy` out as a top level class so that `RetriableStream` does not import `ServiceConfigInterceptor`.
2018-04-12 11:41:04 -07:00
Kun Zhang
3f63cd0ad4
core: always call StreamTracer.streamClosed() when stream is officially closed. ( #4331 )
...
Previously StreamTracer.streamClosed() is called in
ServerStream.close(), but it is not exactly when the stream is
officially closed. ServerStreamListener.closed() is guaranteed to be
called and it is the official end of the stream.
2018-04-12 09:05:48 -07:00
zpencer
137e759fda
core, netty: allow InputStream based certs ( #4316 )
...
Allow ServerBuilder to read certs from InputStream, not just from a
File.
2018-04-11 16:14:58 -07:00
zpencer
62cc2b1ae3
core,netty: add NettySocketSupport to populate TcpInfo ( #4306 )
...
NettySocketSupport is responsible for making the low level calls to
get and populate the TcpInfo structure.
2018-04-05 10:36:49 -07:00
Carl Mastrangelo
2df76cc710
core: apply service config
2018-04-04 17:45:12 -07:00
Carl Mastrangelo
9ed84258aa
core: don't reschedule idle timer if it is already active
...
Benchmark results (3 runs each)
non direct
```
Before:
50.0%ile Latency (in nanos): 157471
90.0%ile Latency (in nanos): 185927
95.0%ile Latency (in nanos): 195135
99.0%ile Latency (in nanos): 218815
99.9%ile Latency (in nanos): 1188735
100.0%ile Latency (in nanos): 18333695
QPS: 6126
50.0%ile Latency (in nanos): 160407
90.0%ile Latency (in nanos): 188551
95.0%ile Latency (in nanos): 197487
99.0%ile Latency (in nanos): 219575
99.9%ile Latency (in nanos): 390239
100.0%ile Latency (in nanos): 18338815
QPS: 6106
50.0%ile Latency (in nanos): 157831
90.0%ile Latency (in nanos): 186439
95.0%ile Latency (in nanos): 195815
99.0%ile Latency (in nanos): 216951
99.9%ile Latency (in nanos): 281167
100.0%ile Latency (in nanos): 5384447
QPS: 6235
After:
50.0%ile Latency (in nanos): 152255
90.0%ile Latency (in nanos): 180551
95.0%ile Latency (in nanos): 188943
99.0%ile Latency (in nanos): 209623
99.9%ile Latency (in nanos): 1184831
100.0%ile Latency (in nanos): 4351999
QPS: 6313
50.0%ile Latency (in nanos): 153663
90.0%ile Latency (in nanos): 181671
95.0%ile Latency (in nanos): 189991
99.0%ile Latency (in nanos): 210495
99.9%ile Latency (in nanos): 278895
100.0%ile Latency (in nanos): 18283519
QPS: 6300
50.0%ile Latency (in nanos): 152767
90.0%ile Latency (in nanos): 180839
95.0%ile Latency (in nanos): 189791
99.0%ile Latency (in nanos): 211719
99.9%ile Latency (in nanos): 280927
100.0%ile Latency (in nanos): 12231167
QPS: 6381
```
direct:
```
Before:
50.0%ile Latency (in nanos): 133943
90.0%ile Latency (in nanos): 153671
95.0%ile Latency (in nanos): 163655
99.0%ile Latency (in nanos): 188871
99.9%ile Latency (in nanos): 235791
100.0%ile Latency (in nanos): 7864575
QPS: 7134
50.0%ile Latency (in nanos): 131623
90.0%ile Latency (in nanos): 151863
95.0%ile Latency (in nanos): 162095
99.0%ile Latency (in nanos): 187719
99.9%ile Latency (in nanos): 234983
100.0%ile Latency (in nanos): 17836031
QPS: 7250
50.0%ile Latency (in nanos): 131223
90.0%ile Latency (in nanos): 150823
95.0%ile Latency (in nanos): 161311
99.0%ile Latency (in nanos): 187719
99.9%ile Latency (in nanos): 237471
100.0%ile Latency (in nanos): 4416255
QPS: 7273
After:
50.0%ile Latency (in nanos): 122751
90.0%ile Latency (in nanos): 140967
95.0%ile Latency (in nanos): 148911
99.0%ile Latency (in nanos): 173215
99.9%ile Latency (in nanos): 214823
100.0%ile Latency (in nanos): 18509823
QPS: 7774
50.0%ile Latency (in nanos): 124507
90.0%ile Latency (in nanos): 145855
95.0%ile Latency (in nanos): 156623
99.0%ile Latency (in nanos): 183111
99.9%ile Latency (in nanos): 235679
100.0%ile Latency (in nanos): 18289663
QPS: 7625
50.0%ile Latency (in nanos): 124295
90.0%ile Latency (in nanos): 145071
95.0%ile Latency (in nanos): 156439
99.0%ile Latency (in nanos): 183919
99.9%ile Latency (in nanos): 232447
100.0%ile Latency (in nanos): 3712383
QPS: 7632
```
2018-04-04 16:02:02 -07:00
Shohei Kamimori
8f01084bb3
core: add a `close` to InputBufferStream
...
Before:
`InputBufferStream.close()` does not close their buffer so the buffer will leak.
After:
Resolves #4198 .
Override the `close` for closing their buffer.
2018-04-03 16:11:19 -07:00
zpencer
b1d91b9f60
core,services: binary log should use real peer socket and call id ( #4266 )
...
The peer socket is read from TRANSPORT_ATTR_REMOTE_ADDR from the
stream attributes. We only log the peer on receive initial metadata.
The call id assumes census is available. The call ID read from the
context via SERVER_CALL_ID_CONTEXT_KEY on server side, and read from
CallOptions via CLIENT_CALL_ID_CALLOPTION_KEY on client side. The
value is copied from CONTEXT_SPAN_KEY which is set by census.
Pass around CallId with two longs, not a byte[].
2018-04-03 13:39:11 -07:00
zpencer
724e32fe57
core,netty,services: add server listen sockets to channelz proto service ( #4220 )
...
Server listen sockets differ from normal sockets in that they do not
have a remote address, do not have stats on calls started/failed/etc,
and do not have security info.
2018-04-03 10:05:47 -07:00
Shohei Kamimori
1d901a8de2
core: add tests for ReadableBuffers
2018-04-03 08:11:39 -07:00
zpencer
0067415811
core: document how to set up squid proxy for testing ( #4285 )
...
This makes it easier for a gRPC developer to validate the proxy code
using a real proxy.
2018-03-30 11:28:10 -07:00
zpencer
7c37f1d32b
core,netty,okhttp,services: expose socket options to channelz ( #4228 )
...
For okhttp, expose the standard options from the Socket object.
For netty, expose all the `io.netty.channel.ChannelOption`s of the
`channel.config()`.
2018-03-30 08:48:37 -07:00
Eric Anderson
4e82e62eaa
Fix compilation in Java 9
2018-03-28 17:13:39 -07:00
Shohei Kamimori
5af2515f3e
core,README: add docs about grpc-java-api-checker ( #4182 )
2018-03-28 15:34:18 -07:00
ZHANG Dapeng
db64c36af2
core: no retry on dropped PickResult
...
Address #3553 for normal retry. Not covering the unimplemented hedging case.
2018-03-26 14:57:12 -07:00
Eric Anderson
5f0ee3a725
Bump to Guava 20
...
Fixes #4176
2018-03-23 15:45:05 -07:00
Eric Anderson
7eab0d9468
netty: Add support for Conscrypt
2018-03-23 10:05:45 -07:00
zpencer
0955866d5a
core,services: implement binarylog Client and ServerInterceptor ( #4174 )
...
- To make unit tests easier, added the BinaryLogSinkWriter abstract
class, which allows verifying high level arguments rather than low
level protobufs.
- remove InputStream based marshaller (IDENTITY_MARSHALLER) in favor
of byte[] because retries will need to call serialize multiple
times. This is achieved with a special InputStream that lets us
access the internal byte[] without copying.
- Change ByteBuffer based internal methods to use byte[]
- Update unit tests to reflect the above
2018-03-23 09:29:24 -07:00
Eric Gribkoff
5337728fa7
core,netty: client sends rst stream when server half-closes ( #4222 )
2018-03-22 12:38:42 -07:00
Carl Mastrangelo
7c69c3a867
core: disable jndi lookups
2018-03-21 12:55:54 -07:00
ZHANG Dapeng
900b39635d
core: Fix java lint found during weekly import
2018-03-20 17:45:26 -07:00
Kun Zhang
1e0875dff7
core: re-enable panic mode after all affected internal tests have been fixed. ( #4245 )
2018-03-20 13:06:41 -07:00
ZHANG Dapeng
6836b31fb3
core: catch and log Throwable for jndiResolver.resolve(host)
...
JndiResolver.resolve may throw Error that could cause rpc to hang. Catch and log Throwable and keep using jdkResolver's result to prevent it.
2018-03-20 13:02:52 -07:00
ZHANG Dapeng
95917b8f28
core: parse retry policy from service config
2018-03-19 15:15:59 -07:00
zpencer
bb0c0e53c2
core: perform channelz obj removal before things that may throw ( #4235 )
...
This way we won't risk an exception making us fail to clean up.
For transportClosed only remove if we know this isn't a
duplicate call to close.
2018-03-18 12:18:09 -07:00
zpencer
ca99f80999
core,services: track server sockets in channelz ( #4226 )
...
Rather than querying the ServerImpl for its sockets, we register them
into channelz as with all the other entities, for consistency.
Error conditions are checked with `assert` statements, so we throw in
tests.
2018-03-16 17:21:25 -07:00
Carl Mastrangelo
2ce1d370a0
core: re-add back in orphan wrapper
2018-03-16 14:51:38 -07:00
Carl Mastrangelo
7daefd75a1
core: make ManagedChannel honor Service config LB
2018-03-16 14:47:25 -07:00
ZHANG Dapeng
26fc6324c4
core: fix typo in ClientCall.java javadoc
2018-03-15 10:07:30 -07:00
Carl Mastrangelo
2761bbb851
core: handle long dns txt records properly, parse service config, add tests
2018-03-13 17:37:04 -07:00
ZHANG Dapeng
6b9e090d70
core: rm unnecessary InternalNameResolverProvider
2018-03-13 10:21:40 -07:00