57640c0e6f
Allow storing alternate transport.ServerStream implementations in context ( #1904 )
2018-03-20 17:02:32 -07:00
fa28bef939
client: export types implementing CallOptions for access by interceptors ( #1902 )
2018-03-16 15:57:34 -07:00
13975c0702
stream: split per-attempt data from clientStream ( #1900 )
...
This is pre-work to implementing retry support. Each retry attempt will have its own csAttempt. The fields left in clientStream are the same across all attempts.
2018-03-12 13:27:54 -07:00
2c2d834e8e
stats: add BeginTime to stats.End ( #1907 )
2018-03-12 09:16:36 -07:00
9aba04495f
server: Convert all non-status errors to codes.Unknown ( #1881 )
...
- convertCode utilized errors that were not allowed by the library per 9d0bc30edb/doc/statuscodes.md
- Relevant issue: #1672
2018-03-08 13:46:26 -08:00
365770fcbd
streams: Stop cleaning up after orphaned streams ( #1854 )
...
This change introduces some behavior changes that should not impact users that
are following the proper stream protocol. Specifically, one of the following
conditions must be satisfied:
1. The user calls Close on the ClientConn.
2. The user cancels the context provided to NewClientStream, or its deadline
expires. (Note that it if the context is no longer needed before the deadline
expires, it is still recommended to call cancel to prevent bloat.) It is always
recommended to cancel contexts when they are no longer needed, and to
never use the background context directly, so all users should always be
doing this.
3. The user calls RecvMsg (or Recv in generated code) until a non-nil error is
returned.
4. The user receives any error from Header or SendMsg (or Send in generated
code) besides io.EOF. If none of the above happen, this will leak a goroutine
and a context, and grpc will not call the optionally-configured stats handler
with a stats.End message.
Before this change, if a user created a stream and the server ended the stream,
the stats handler would be invoked with a stats.End containing the final status
of the stream. Subsequent calls to RecvMsg would then trigger the stats handler
with InPayloads, which may be unexpected by stats handlers.
2018-02-08 10:51:16 -08:00
d09ec43545
Implement unary functionality using streams ( #1835 )
2018-02-05 12:54:13 -08:00
424e3e9894
Stream: do not cancel ctx created with service config timeout ( #1838 )
2018-02-02 10:35:15 -08:00
5ba054bf37
encoding: Introduce new method for registering and choosing codecs ( #1813 )
2018-01-23 11:39:40 -08:00
6913ad5cae
Document that all errors from RPCs are status errors ( #1782 )
2018-01-05 15:37:05 -08:00
c998149a22
Avoid copying headers/trailers in unary RPCs unless requested by CallOptions ( #1775 )
...
CPU profile shows that header copy takes a large proportion of CPU usage in a gRPC Call.
If the header is not needed, we don't need to pay the cost.
2018-01-03 09:13:06 -08:00
4e393e0b21
grpc: fix deprecation comments to conform to standard ( #1691 )
2017-12-18 09:23:42 -08:00
2ef021f78d
New grpclb implementation ( #1558 )
...
The new grpclb supports fallback to backends if remote balancer is unavailable
2017-11-27 11:16:26 -08:00
6253aa9397
set context timeout when Timeout value >= 0 ( #1678 )
...
To be consistent with call.go/invoke
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-20 13:49:49 -08:00
816fa5b06f
Add proper support for 'identity' encoding type ( #1664 )
2017-11-17 09:24:54 -08:00
8ff8683602
Implement transparent retries for gRFC A6 ( #1597 )
2017-11-06 13:45:11 -08:00
5db344a40a
Introduce new Compressor/Decompressor API ( #1428 )
2017-10-31 10:21:13 -07:00
a4ff4e29c4
Get method string from stream ( #1588 )
2017-10-26 16:03:44 -07:00
a5986a5c88
Add functions to ClientConn so it satisfies an interface for generated code ( #1599 )
2017-10-20 14:21:31 -07:00
4bbdf230d7
New implementation of roundrobin and pickfirst ( #1506 )
2017-10-02 09:22:57 -07:00
894322f00c
Dedicated goroutine for writing. ( #1498 )
2017-09-14 13:44:14 -07:00
8233e124e4
Add new Resolver and Balancer APIs (gRFC L9) ( #1408 )
...
- Add package balancer and resolver.
- Change ClientConn internals to new APIs and adds a wrapper for v1 balancer.
2017-08-31 10:59:09 -07:00
e60698345e
Fix context warnings from govet. ( #1486 )
...
Pre-req work for #1484
2017-08-29 11:04:15 -07:00
01089b2972
Remove buf copy when the compressor exist ( #1427 )
2017-08-25 12:26:38 -07:00
9d99afc2fd
Automatic WriteStatus for RecvMsg/SendMsg error on server side ( #1409 )
...
automatically WriteStatus if there's any error when RecvMsg/SendMsg on server side.
2017-08-14 12:24:23 -07:00
86ec6baad9
Populate callInfo.peer object for streaming RPCs ( #1356 )
2017-07-11 13:56:13 -07:00
41d9b6ea2a
Do not flush NewStream header on client side for unary RPCs and streaming RPCs with requests. ( #1343 )
...
If it's not client streaming, we should already have the request to be sent,
so we don't flush the header.
If it's client streaming, the user may never send a request or send it any
time soon, so we ask the transport to flush the header.
And flush header even without metadata
2017-07-05 16:51:14 -07:00
2f3320d9d6
Updated documentation of ClientStream. ( #1320 )
2017-06-23 13:57:58 -07:00
c6b9664180
Add goroutine safety doc on stream ( #1313 )
2017-06-15 15:24:17 -07:00
ddbf6c46a6
autofix license notice
2017-06-08 14:42:19 +02:00
6fecf2831a
Reopening: Server shouldn't Fatalf in case it fails to encode. ( #1276 )
...
* Server shouldn't Fatalf in case it fails to encode.
2017-06-02 12:32:37 -07:00
843116533a
Revert "Server shouldn't Fatalf in case it fails to encode. ( #1251 )" ( #1274 )
...
This reverts commit d5bc85c1e9a36225ecc02757efcc874e13962973.
2017-06-01 12:34:28 -07:00
d5bc85c1e9
Server shouldn't Fatalf in case it fails to encode. ( #1251 )
...
* Server shouldn't Fatalf in case it fails to encode.
* golint
* post-review update
2017-06-01 11:57:45 -07:00
4a7b4d033a
minor fix
2017-05-19 16:38:37 -07:00
27ae1472a3
remove some todo comments
2017-05-19 14:55:35 -07:00
d19bbe846e
change max message size functions name
2017-05-19 11:08:40 -07:00
35d77ea991
merge master, resolve conflicts
2017-05-15 13:54:22 -07:00
bdf9a640e4
add timeout test, add check or pointer filed in callOption, fix minor issues
2017-05-15 13:51:11 -07:00
88a73d35c9
Adding dial options for PerRPCCredentials ( #1225 )
...
* Adding dial options for PerRPCCredentials
* Added tests for PerRPCCredentials
* Post-review updates
* post-review updates
2017-05-11 11:07:38 -07:00
17760cfd5b
Calling handleRPC with context derived from the original ( #1227 )
...
* Calling handleRPC with different context derived from the original context
* change comment for tagRPC and stats fields
2017-05-10 17:54:49 -07:00
3ea287058c
Merge branch 'master' into service_config_pr
2017-05-07 16:49:32 -07:00
0914b46180
don't add defer func if stats handler is nil ( #1214 )
2017-05-02 10:16:45 -07:00
277e90a432
Client load report for grpclb. ( #1200 )
2017-04-27 10:43:38 -07:00
ecbc34aaca
move server defaults, delete defer cancel() in stream.go
2017-04-26 17:39:57 -07:00
9c5f260e67
make max size a pointer type and initialize function a CallOption
2017-04-26 15:50:58 -07:00
983d8372ea
update the merge of client api and sc
2017-04-21 16:18:59 -07:00
bab6b617b7
merge master
2017-04-21 16:07:34 -07:00
2d949be2fe
Make sure all in-flight streams close when ClientConn.Close() is called. ( #1136 )
...
* Make sure all in-flight streams close when ClientConn.Close() is called.
* added test
2017-04-21 15:03:04 -07:00
cb02ab4d25
change error message from InvalidArgument to ResourceExhausted
2017-04-13 16:51:56 -07:00
8788b75675
merge master resolve conflicts
2017-04-13 16:28:15 -07:00