Граф коммитов

348 Коммитов

Автор SHA1 Сообщение Дата
Menghan Li d7d831d95e Do not create RoundRobin if balancer is not specified 2016-08-01 15:55:08 -07:00
Menghan Li 7c6eabc607 Make Dial() return original error 2016-08-01 15:55:08 -07:00
Menghan Li 1d0bea7943 Add addrConn tearDownError 2016-08-01 15:55:08 -07:00
Menghan Li e9e6ae6215 Make Dial() withblock error on bad certificates 2016-08-01 15:55:08 -07:00
Tamir Duberstein 5c7ed938f9
credentials: plumb cancellation into ClientHandshake
This is a minor breaking change to `TransportCredentials`, however
it should not be a problem in practice as not many users are using
custom implementations. In particular, users of `NewTLS` will not
be affected.

This change also replaces the earlier `Timeout` and `Cancel` fields
with a `context.Context`, which is plumbed all the way down from
`grpc.Dial`, laying the ground work for a user-provided context.

Also, support for Go 1.7 is added.
2016-08-01 16:29:56 -04:00
iamqizhao 21c5a43e47 fix a race condition causing http2Client.controller leaking 2016-08-01 11:51:20 -07:00
Menghan Li cbae5b1f01 Replace cc.newAddrConn with cc.resetAddrConn
When goaway is received by client, a new ac should replace the old ac.
Without this change, ac is removed first and a new one is added later,
ac.tearDown() and cc.newAddrConn are two functions called consecutively,
So there's a small chance that getTransport is called in between and
misses the new ac. After this change, the value in map conns is replaced
directly, and this issue should be resolved.
2016-07-29 16:03:53 -07:00
iamqizhao a09c6888cc fix another data race along with goaway 2016-07-28 19:47:38 -07:00
Menghan Li f255f72742 Merge pull request #784 from iamqizhao/race-fix
Fix a couple of races when goaway lives with connection shutdown.
2016-07-28 15:40:27 -07:00
Tamir Duberstein 096e703537
WithDialer doesn't support cancellation
This maintains cancellation for the default dialer, but external users
will have to opt in via a future API.
2016-07-28 17:00:23 -04:00
iamqizhao b128e7465a merge the conflict 2016-07-28 13:17:23 -07:00
iamqizhao cd4ca4d808 Tune transport Monitor, modify the test and add more comments 2016-07-28 11:07:42 -07:00
iamqizhao 1faf2ca61b fix the race on t.state 2016-07-27 19:46:34 -07:00
iamqizhao 63fcabeec5 some polish 2016-07-27 17:41:43 -07:00
iamqizhao 110450d45e fix races introduce by goaway 2016-07-27 17:27:10 -07:00
Tamir Duberstein 61f3f61ef0
cancel outgoing net.Dial when ClientConn is closed 2016-07-27 17:34:40 -04:00
Tamir Duberstein 2342e38669
test,transport: simplify 2016-07-27 17:20:55 -04:00
iamqizhao f1e4d3b180 allow multiple GoAways and retrying on illegal streams 2016-07-25 16:35:32 -07:00
iamqizhao 046e606dc5 clean up 2016-07-21 18:12:01 -07:00
iamqizhao 9ad4c58355 Make it work for streaming 2016-07-21 16:19:34 -07:00
iamqizhao 873cc272c2 support goaway 2016-07-20 18:48:49 -07:00
iamqizhao d2e79470cc client goaway support 2016-07-19 16:29:13 -07:00
iamqizhao f492622da4 rebase 2016-07-06 14:16:27 -07:00
Tamir Duberstein ebd9633b55
remove duplicate balancer field 2016-07-05 14:52:25 -04:00
iamqizhao be59d023f2 refactor error handling a bit 2016-06-29 15:21:44 -07:00
iamqizhao 213a20c4fe bug fix, typo fix and slight error refactoring 2016-06-28 16:08:19 -07:00
iamqizhao 01ef81a4d9 minor fix including removal of debugging logs, error code fix, etc. 2016-06-27 15:30:20 -07:00
iamqizhao 3e71fb360d Support fail-fast mode and make it the default 2016-06-27 14:36:59 -07:00
Qi Zhao 3efe7aef96 Merge pull request #713 from menghanl/split_authenticator_and_credentials
[API revision] Separate TransportAuthenticator and PerRPCCredentials
2016-06-09 14:57:55 -07:00
Menghan Li d9c8fb446d Change errCredentialsMisuse to errCredentialsConflict and errTransportCredentialsMissing 2016-06-08 13:53:41 -07:00
Menghan Li 59486d9c17 Rename TransportAuthenticator to TransportCredentials 2016-06-08 11:19:25 -07:00
Anthony Romano eada4fb145 clientconn: buffer waitC on Dial goroutine
Leaks a goroutine on dial timeout if unbuffered.
2016-06-07 15:47:54 -07:00
Menghan Li 3ffbd8e030 Rename Credentials to PerRPCCredentials 2016-06-06 17:28:10 -07:00
Menghan Li f0feaea314 Should be only one TransportAuthenticator 2016-06-06 16:35:41 -07:00
Menghan Li 6404c49192 Make TransportAuthenticator not embed Credentials 2016-06-06 16:24:46 -07:00
iamqizhao 3a6b72b858 add errNoAddr 2016-06-06 12:16:33 -07:00
iamqizhao 24a701cae7 revise the comments of WithTimeout 2016-06-06 12:13:00 -07:00
iamqizhao 404e9b67de dial time out 2016-06-06 12:08:11 -07:00
Dmitri Shuralyov e8316072cd Fix remaining instances of gRPC spelling.
According to http://www.grpc.io/faq/, the project is called gRPC. It's
already referred by that name in most places, except a few instances
where it's still "GRPC". Fix those to have consistency.
2016-06-02 18:00:07 -07:00
iamqizhao 2700f043b9 some small fixes 2016-06-01 14:09:21 -07:00
iamqizhao fca009f66f Fix some small comments 2016-05-26 15:11:33 -07:00
iamqizhao 817b48219c Fix a typo bug and handle stale addrConns 2016-05-26 14:20:31 -07:00
iamqizhao db887c9bcd rename controller 2016-05-25 18:17:23 -07:00
iamqizhao 9dc3da0633 make downErr for Balancer down closure 2016-05-25 11:28:45 -07:00
iamqizhao 0b1df3bca2 add BalancerGetOption 2016-05-24 17:19:44 -07:00
iamqizhao 5b484e4099 add Notify API; move the name resolving into Balancer 2016-05-23 19:25:01 -07:00
iamqizhao 5d62215b41 some minor fixes 2016-05-18 16:26:12 -07:00
iamqizhao 162d8d2d33 Tune Invoke behavior for the new Balancer. 2016-05-18 11:18:10 -07:00
iamqizhao e9e748b978 small fix and more comments 2016-05-17 17:18:54 -07:00
iamqizhao 65969fb499 lock optimization 2016-05-16 19:19:35 -07:00
iamqizhao 73ff8375a6 Remove debugging logs and add license. 2016-05-16 15:47:46 -07:00
iamqizhao aa532d5baf Fix some issues and remove garbbage files 2016-05-16 15:31:00 -07:00
iamqizhao 31ef3ef957 some touchups 2016-05-13 15:08:09 -07:00
iamqizhao f4b89fe44f some fixes 2016-05-13 13:27:35 -07:00
iamqizhao e3351672ba complete some unfinished error 2016-05-13 13:26:36 -07:00
iamqizhao 32eec1acef add comments 2016-05-12 18:52:24 -07:00
iamqizhao f93b6bbfb5 Merge branch 'master' of https://github.com/grpc/grpc-go 2016-05-12 17:43:51 -07:00
iamqizhao a1b60d7b43 Add the tests for balancer and resolver 2016-05-12 17:01:58 -07:00
Anthony Romano 46f2afd293 Interrupt retry Sleep() on client connection shutdown
Otherwise transportMonitor hangs around long enough after Close() that it
looks like a goroutine leak.
2016-05-12 13:14:22 -07:00
iamqizhao 19ded23951 graceful close and test 2016-05-10 19:29:44 -07:00
iamqizhao 9c2d8546bf load balancer 2016-05-06 15:47:09 -07:00
iamqizhao 9cec19a4d4 make setDefault(...) non-member function 2016-04-18 13:15:27 -07:00
Stephen J Day 8ef1dcabab backoff: make DefaultBackoffConfig a concrete value
To enforce immutability of the `DefaultBackoffConfig`, we've made it a
concrete value. While fields can still be set directly on the value,
taking a copy will not incidentally pull a reference to the variable.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2016-04-18 11:33:39 -07:00
Stephen J Day 9ff38e9093 backoff: set default values on BackoffConfig
Because most of the fields on `BackoffConfig` are unexported, correctly
using the config requires copying from the default. This sets the
defaults appropriately and falls back to a default if MaxDelay is
negative or zero.

Tests are added to ensure that the backoff is set correctly in common
use cases.

Signedroff-by: Stephen J Day <stephen.day@docker.com>
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2016-04-15 16:12:47 -07:00
Qi Zhao d07d0562ff Merge pull request #601 from stevvooe/backoff-strategy
backoff: allow configuration of backoff strategy
2016-04-11 10:32:33 -07:00
Stephen J Day 47b74a63a8 backoff: allow configuration of backoff strategy
The backoff function and parameters have been pulled up into an
interface `backoffStrategy`. The default parameters are now part of a
package variable `DefaultBackoffConfig`. The strategy is then plumbed
through `dialOptions`. As a result of this PR, the
maximum backoff delay can now be set using the `WithBackoffConfig` dial
option.

While the addition of strategy may seem premature, this allows one to
simply export `BackoffStrategy` and `WithBackoff` to allow arbirarily
configurable backoff strategies.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2016-04-07 20:17:57 -07:00
Tamir Duberstein 2a118f74a2 minor cleanup: simplify looping 2016-03-31 22:05:49 -04:00
Victor Vieux 047af78181 fix a few typos 2016-03-16 16:40:16 -07:00
iamqizhao 0be94ab3f5 fix a race between transport creation and wait returning 2016-02-22 16:26:15 -08:00
iamqizhao af8888dc8d remove Compressor/DecompressorGenerator 2016-01-29 14:38:20 -08:00
iamqizhao 61d7c39d4c comments and gofmt 2016-01-25 11:18:41 -08:00
iamqizhao da3bb0c9f7 Support compression 2016-01-22 18:21:41 -08:00
iamqizhao c1330e18aa some missing comments 2016-01-07 14:18:20 -08:00
iamqizhao f0ee5628a9 add more comments 2015-12-14 14:43:21 -08:00
iamqizhao 758cf3083a add comments to NotifyReset 2015-12-14 14:40:21 -08:00
iamqizhao 330d8f958c i) revise picker API and channel state API; ii) add unicastNamingPicker which supports custom name resolving. 2015-12-14 14:32:43 -08:00
Daniel Kwasnick 0fd544f256 Fix cc.Close() state race
Fix a race condition in which a Conn's state is set to TransientFailure after Close() has been invoked – Close() should irrevocably set state to Shutdown.
2015-11-10 14:02:38 -08:00
iamqizhao c0d1abc00e fix a comment 2015-10-08 14:22:00 -07:00
iamqizhao 390cd42894 revise Picker API 2015-10-08 11:05:59 -07:00
iamqizhao ec8414396c bug fix: stop busy wait on new transport 2015-10-08 09:09:06 -07:00
iamqizhao 9a7e50e3d9 remove unnecessary go statement 2015-10-02 16:04:55 -07:00
iamqizhao c01ea6e359 revise Picker API 2015-09-29 10:24:03 -07:00
iamqizhao 2899844430 fix a typo 2015-09-25 13:38:17 -07:00
iamqizhao 23fea5c44a comments 2015-09-25 13:32:35 -07:00
iamqizhao ec99a32572 redesign the API 2015-09-25 13:21:25 -07:00
iamqizhao ffbdf88f0f add more comments 2015-09-24 10:36:56 -07:00
iamqizhao 9afcd0c697 preliminary refactoring for custom naming and load balancing 2015-09-23 19:09:37 -07:00
Sameer Ajmani 980b4c6d05 grpc: restore changes after sync
Change-Id: I97f0c77f95086301202d0fe4ca477ae6e22dd0b5
2015-09-23 15:18:41 -04:00
iamqizhao e6b603d375 a bit clean up 2015-09-22 19:01:33 -07:00
iamqizhao ecf8201c7c remove a dead member var 2015-09-22 16:12:42 -07:00
iamqizhao dd992b3748 remove transportSeq 2015-09-21 18:17:49 -07:00
iamqizhao 804293ac57 Fix a reconnecting bug 2015-09-15 11:20:16 -07:00
Jeff Hodges b1c6afbc7f s/stated/started/ in Shutdown doc 2015-09-06 21:26:27 -07:00
iamqizhao 9ba820ef6a add tests 2015-08-28 13:50:04 -07:00
iamqizhao 87c361b5a5 check transport security when using oauth2-based credentials 2015-08-28 13:19:36 -07:00
iamqizhao 3b3b9b52cc polish 2015-08-27 22:03:38 -07:00
iamqizhao 456daaf3f1 extend ErrNoTransportSecurity message 2015-08-27 22:00:49 -07:00
iamqizhao 996538ab4b Insecure ClientConn made explicit 2015-08-27 17:21:52 -07:00
iamqizhao 7fbf442f72 gofmt -w 2015-08-03 13:24:14 -07:00
iamqizhao cf1376e56b revert some unnecessary changes 2015-08-03 13:18:25 -07:00
iamqizhao 8fc68cd569 small fix 2015-08-03 13:11:00 -07:00
iamqizhao 89ca9edced small fix 2015-08-03 11:45:42 -07:00
iamqizhao 08b3e19185 add a shortcut logic 2015-08-03 11:29:27 -07:00
iamqizhao 494b40089f polish the func comment 2015-08-03 11:19:25 -07:00
iamqizhao 14702f8b6a channel state API 2015-07-31 19:00:43 -07:00
iamqizhao 244bc75d79 Switch ALPN/NPN to advertise only h2 2015-07-31 14:16:02 -07:00
iamqizhao 923b849cb0 add a missing ClientConn state transition 2015-07-31 10:59:32 -07:00
iamqizhao f680d0b77d fix a typo 2015-07-30 15:36:59 -07:00
iamqizhao 76ef365255 Add ClientConn state 2015-07-30 15:30:26 -07:00
iamqizhao bce3d5e24b small fix 2015-07-28 11:24:31 -07:00
iamqizhao e35bf02914 revise reconnect backoff strategy 2015-07-28 11:12:07 -07:00
iamqizhao 611d960757 support user-agent and allow users attach their own application user agent string 2015-07-24 11:19:08 -07:00
iamqizhao 57b3fb41f6 add some more comments 2015-06-04 15:52:06 -07:00
iamqizhao e2677ad0f3 fix some comments 2015-06-04 15:47:02 -07:00
iamqizhao ec20a7b857 make dialing nonblocking by default. Add a DialOption to force blocking operation. 2015-06-04 15:45:06 -07:00
iamqizhao 8c6e829589 cleanup 2015-05-12 18:02:38 -07:00
iamqizhao 3617cd5ab3 revert handshaker changes 2015-05-12 17:59:20 -07:00
Peter Edge 7c025e8694 move log package references to grpclog 2015-05-09 11:43:59 +02:00
Peter Edge 101c1e1935 change log package references to grpc/log 2015-05-09 01:16:40 +02:00
iamqizhao 814627b32e add comments 2015-05-01 18:17:36 -07:00
iamqizhao 9d59a879e1 Add handshaker option to ClientConn 2015-05-01 18:10:40 -07:00
iamqizhao 5f7c0caeb4 modify the comment 2015-04-21 16:48:41 -07:00
iamqizhao 2cf2d0871b remove WithNetwork and add WithDialer to have more flexibility on dialing 2015-04-21 16:19:29 -07:00
iamqizhao 3259049490 fix some typos and run gofmt 2015-04-17 13:50:18 -07:00
iamqizhao c7b9fa27dc addressed some comments 2015-04-01 14:22:53 -07:00
iamqizhao 9a5de0e954 make Codec configurable when creating grpc.ClientConn and grpc.Server 2015-04-01 14:02:26 -07:00
iamqizhao e10de7abd1 fix some bugs 2015-03-13 00:16:18 -07:00
iamqizhao 5c27dd6a7a fix a bug 2015-03-05 09:45:50 -08:00
iamqizhao aae62e6051 remove unused import 2015-03-05 01:52:17 -08:00
iamqizhao 91a7361187 address some comments 2015-03-04 15:14:52 -08:00
iamqizhao 7bf60c1cd4 addressed some comments 2015-03-04 14:37:12 -08:00
iamqizhao 09fbfbf553 addressed some comments 2015-03-04 13:29:15 -08:00
iamqizhao 8d7b4ade87 addressed some comments 2015-03-04 13:23:39 -08:00
iamqizhao 28ad38be17 close ready when ClientConn closes 2015-03-04 13:00:47 -08:00
iamqizhao c73e40b804 address some review comments 2015-03-04 11:15:10 -08:00
iamqizhao 351e2d0297 add more tests for dial timeout and fix some bugs 2015-03-03 19:06:44 -08:00
iamqizhao a5ca6e56d2 Support timeout for grpc.Dial 2015-03-03 17:08:39 -08:00
iamqizhao 2b993cd479 rename the convenience function to set TLS creds 2015-02-25 22:57:07 -08:00
iamqizhao c42573b827 improve error logging 2015-02-25 16:33:12 -08:00
iamqizhao f63a4eec38 rename an error 2015-02-23 11:51:15 -08:00
iamqizhao 8a32815cd1 err := styple nits 2015-02-22 18:00:33 -08:00
Qi Zhao 2d61160597 rename an error string and desc. 2015-02-22 17:21:06 -08:00
Matt T. Proud a720ae6f48 Make error conveyance more idiomatic.
This commit applies two bulk changes to the grpc error reporting
mechanisms:

(1.) Error strings for errors that originate within grpc are prefixed
    with the package name for better clarity for where they originate
    since they could percolate up in the users call chains to the
    originator.

(2.) Errors that are, in fact, singletons have been converted from
    fmt.Errorf to errors.New and assigned as package-level variables.
    This bodes particularly well for enabling API customers to elect to
    handle these errors upon receipt via equality comparison.  This had
    been previous impossible with the original API.

Supplementarily, ``gofmt -w -s=true`` has been run on the repository to
cleanup residual defects, and it has detected and repaired a few.

TEST=Manual go test ./...
2015-02-19 13:17:17 +01:00
iamqizhao 634392a1c6 Remove the 2nd RecvProto in the generated code for client streaming 2015-02-18 22:18:01 -08:00
iamqizhao 6148d0a55d Migrated to the latest google.org/x/oauth2 package and added support for JWT. 2015-02-18 12:02:43 -08:00
David Symonds 416f68f4b3 Update import paths to use the new official location of the Go gRPC package. 2015-02-09 11:46:20 +11:00
David Symonds 9e789c396b Rename top level package from "rpc" to "grpc".
Also move the nascent package doc to doc.go.
2015-02-09 11:45:33 +11:00
David Symonds e71095e0ec Move source files up one level.
The top-level directory in this repository is going to be
the main "grpc" package.
2015-02-09 11:33:38 +11:00