86 Commits

Author SHA1 Message Date
1d27587e10 Change status package to deal with concrete types instead of interfaces (#1171) 2017-04-06 11:41:07 -07:00
b507112439 Add status package for reporting gRPC status and errors (#1156)
When an error implemented by the status package is returned from a service
handler, the server will transmit a rich status message in the
"grpc-status-details-bin" trailing metadata field if any detailed data is
attached to the error.  Client-side, we will decode them if present in the
server's response and return them to the user code performing the RPC.

This is backward compatible with the existing errors supported by the grpc
package.  However, the grpc.Errorf, grpc.Code and grpc.ErrorDesc functions for
managing errors are now deprecated; status.Errorf and status.Status type
asserions should be used instead.
2017-04-05 10:35:40 -07:00
a94b0948a3 Client should have a check on maximum size of received message size. 2017-03-09 16:58:23 -08:00
dfb494c6e5 post review update 2017-02-08 14:15:59 -08:00
794873f0a2 Added calloption to retrieve peer information 2017-02-07 10:41:32 -08:00
cb653e4b61 Change stats APIs (#1030)
Change stats API from one static handler to one handler per server or client.
2017-01-09 17:11:32 -08:00
09aecb094e Add the initial service config support (#1009)
* Add the initial service config support

* start scWatcher later

* remove timeoutCh

* address the comments

* deal with dial timeout

* defer cancel for the newly created context for correct lifetime management

* fix the defer order

* added other 2 missing cancels
2016-12-19 16:31:00 -08:00
deb01f422a add stats tagger APIs and connection stats. (#992)
* add stats.tagger APIs and connection stats.

* fix comments

use ac.ctx in http2client
change name and comments
small fixes stats_tests

* add a TODO to ConnTagInfo

* rename handle to handleRPC

* modify stats comments
2016-11-30 16:25:46 -08:00
5938492b60 fix comments 2016-11-07 15:16:52 -08:00
a4edc462a2 renaming 2016-11-07 15:16:52 -08:00
aa5b5c7e2a client side, use user context, and change sent time 2016-11-07 15:16:52 -08:00
1896a21fb3 fix review comments 2016-11-07 15:16:52 -08:00
1d2a929ae5 add stats.Begin and stats.End 2016-11-07 15:16:52 -08:00
c0087b3c91 add failfast option to stats 2016-11-07 15:16:52 -08:00
c698588285 Renaming types and variables 2016-11-07 15:16:52 -08:00
e42a66c81b add client stats 2016-11-07 15:16:52 -08:00
17ee5a3637 Add package stats, and export stats on server side. 2016-11-07 15:16:52 -08:00
4596c55b7a Use the correct error in defer call 2016-10-25 15:32:12 -07:00
52f6504dc2 Merge pull request #867 from iamqizhao/master
Support client side interceptor
2016-09-02 15:12:15 -07:00
5e734ab23e Avoid creating transport stream error outside of transport 2016-09-02 11:57:42 -07:00
1e47e17230 Support client side interceptor 2016-08-26 13:50:38 -07:00
c72b08a774 Change errors returned by ac.wait() 2016-08-16 16:56:16 -07:00
a4587cd3f0 Fix review comments 2016-08-02 21:07:00 -07:00
558ecfb3a6 Remove RPC non-fail-fast return 2016-08-01 15:55:08 -07:00
e9e6ae6215 Make Dial() withblock error on bad certificates 2016-08-01 15:55:08 -07:00
a4c08780d5 Merge branch 'master' of https://github.com/grpc/grpc-go 2016-07-29 10:10:58 -07:00
32df3a68d0 more fix 2016-07-28 18:32:51 -07:00
8c908a8c1d Reject over-sized requests on server 2016-07-26 16:44:49 -07:00
f1e4d3b180 allow multiple GoAways and retrying on illegal streams 2016-07-25 16:35:32 -07:00
1ea428008b add the missing close(s.done) 2016-07-15 16:55:51 -07:00
55b7bd0424 add the missing close(s.done) 2016-07-15 16:39:31 -07:00
07bf108290 fix Invoke to accommodate the change 2016-07-15 16:02:21 -07:00
ffdfb592e8 Fix type assertion error after rebase 2016-07-08 10:35:38 -07:00
be59d023f2 refactor error handling a bit 2016-06-29 15:21:44 -07:00
213a20c4fe bug fix, typo fix and slight error refactoring 2016-06-28 16:08:19 -07:00
01ef81a4d9 minor fix including removal of debugging logs, error code fix, etc. 2016-06-27 15:30:20 -07:00
3e71fb360d Support fail-fast mode and make it the default 2016-06-27 14:36:59 -07:00
9a14ca798d Add more comments 2016-05-25 17:18:05 -07:00
9dc3da0633 make downErr for Balancer down closure 2016-05-25 11:28:45 -07:00
8eab9cb6bf rewrite Balancer Get comments 2016-05-24 18:14:24 -07:00
0b1df3bca2 add BalancerGetOption 2016-05-24 17:19:44 -07:00
5b484e4099 add Notify API; move the name resolving into Balancer 2016-05-23 19:25:01 -07:00
5d62215b41 some minor fixes 2016-05-18 16:26:12 -07:00
162d8d2d33 Tune Invoke behavior for the new Balancer. 2016-05-18 11:18:10 -07:00
9c2d8546bf load balancer 2016-05-06 15:47:09 -07:00
11ef22ebfb make comment on invoke/sendmsg more clear 2016-04-01 10:47:25 -07:00
a294a45ba0 Don't treat StatusDesc() as a format string.
For example, if the error message contains "%v", then passing
StatusDesc() as the format string to Errorf() will replace "%v" with
"%!v(MISSING)".
2016-03-19 17:15:21 -07:00
110fd99e30 Fix crashes where transports returned errors unhandled by the message parser.
The http.Handler-based transport body reader was returning error types
not understood by the recvMsg parser. See #557 for some background and
examples.

Fix the http.Handler transport and add tests. I copied in a subset of
the http2 package's serverTest type, adapted slightly to work with
grpc. In the process of adding tests, I discovered that
ErrUnexpectedEOF was also not handled by the regular server
transport. Document the rules and fix that crash as well.

Unrelated stuff in this CL:

* make tests listen on localhost:0 instead of :0, to avoid Mac firewall
  pop-up dialogs.

* rename parser.s field to parser.r, to be more idiomatic that it's an
  io.Reader and not anything fancier. (it's not acting like type
  stream, even if that's the typical concrete type)

* move 5 byte temp buffer into parser, rather than allocating it for
  each new message. (drop in the bucket improvement in garbage; more
  to do later)

* rename http2RSTErrConvTab to http2ErrConvTab, per Qi's earlier
  CL. Also add the HTTP/1.1-required error mapping for completeness,
  not that it should ever arise with gRPC, also per Qi's earlier CL
  referenced in #557.
2016-02-24 15:09:17 -08:00
af8888dc8d remove Compressor/DecompressorGenerator 2016-01-29 14:38:20 -08:00
4258b32de7 Don't create buffer if compressor is nil 2016-01-25 11:47:04 -08:00