Xiang
63ab5addfa
clientv3: do not mark stale endpoints as unhealthy
2017-10-22 17:59:26 -07:00
Gyu-Ho Lee
725df70664
clientv3: only stop if EtcdError code is not Unavailable, retry with more error codes
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-22 17:54:14 -07:00
Xiang Li
5eef654c3c
Merge pull request #8734 from xiang90/testing_log
...
clientv3: disable server logging for client testing
2017-10-22 16:50:21 -07:00
Xiang
6f0771d2f6
clientv3: disable server logging for client testing
2017-10-22 16:32:42 -07:00
Xiang
06e591d526
clientv3/integration: skip retry test on txn read
2017-10-22 16:14:39 -07:00
Gyu-Ho Lee
439c97d465
clientv3: remove balancer interface
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-20 16:31:02 -07:00
Gyu-Ho Lee
54ef60d033
clientv3: remove redundant retries in Auth, set FailFast=true
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-19 16:03:12 -07:00
Gyu-Ho Lee
1fa60c9882
clientv3: add TODO for watch retry
...
Later we can do:
```diff
+// RetryWatchClient implements a WatchClient.
+func RetryWatchClient(c *Client) pb.WatchClient {
+ readRetry := c.newRetryWrapper(isReadStopError)
+ wc := pb.NewWatchClient(c.conn)
+ return &retryWatchClient{wc, readRetry}
+}
+
+type retryWatchClient struct {
+ pb.WatchClient
+ readRetry retryRPCFunc
+}
+
+func (rwc *retryWatchClient) Watch(ctx context.Context, opts ...grpc.CallOption) (stream pb.Watch_WatchClient, err error) {
+ err = rwc.readRetry(ctx, func(rctx context.Context) error {
+ stream, err = rwc.WatchClient.Watch(rctx, opts...)
+ return err
+ })
+ return stream, err
+}
- return NewWatchFromWatchClient(pb.NewWatchClient(c.conn))
+ return NewWatchFromWatchClient(RetryWatchClient(c))
```
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-19 16:02:01 -07:00
Gyu-Ho Lee
141170c1d4
clientv3: remove redundant retries in Maintenance, set FailFast=true
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-19 16:01:50 -07:00
Gyu-Ho Lee
c09a89d834
clientv3: remove redundant retries in Cluster, set FailFast=true
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-19 16:00:45 -07:00
Gyu-Ho Lee
fecd26f141
clientv3: rename to isRepeatableStopError, isNonRepeatableStopError
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-19 15:58:12 -07:00
Gyu-Ho Lee
b46ab2c36e
clientv3: remove redundant retries in KV, set FailFast=true
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-19 15:57:10 -07:00
Gyu-Ho Lee
f95f865060
clientv3: unexport pb.LeaseClient in lease client
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-19 15:02:19 -07:00
Gyu-Ho Lee
87fe8c12ae
clientv3: rename to repeatableRetry in lease client
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-19 14:58:54 -07:00
Gyu-Ho Lee
29aa4ce2a1
clientv3: remove redundant retries in Lease, set FailFast=true
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-19 14:53:01 -07:00
Gyu-Ho Lee
2540859ee7
clientv3: separate readyWait for ConnectNotify
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-19 13:07:22 -07:00
Gyu-Ho Lee
1549403dd2
clientv3: clean up logging, clarify var/field names
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-19 12:33:25 -07:00
Gyu-Ho Lee
ad24700252
clientv3: handle stale endpoint in health balancer
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-19 12:02:31 -07:00
Gyu-Ho Lee
7f2b6a19d6
clientv3: fix typo in 'testNetworkPartitionBalancer'
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-10 16:07:03 -07:00
Gyu-Ho Lee
500c2499f4
clientv3: reset unhealthy on updateAddrs
...
Otherwise, 'mayPin' incorrectly decides if an address
should be pinned or not.
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-10 12:28:57 -07:00
Gyu-Ho Lee
e9e17e3fe5
clientv3: pin any endpoint when all unhealthy
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-09 16:02:18 -07:00
Gyu-Ho Lee
8224c748c9
clientv3/integration: add balancer network partition tests
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-09 14:54:47 -07:00
Gyu-Ho Lee
fbed568b6a
clientv3/balancer: mark partitioned member as unhealthy
...
Previous behavior is when server returns errors, retry
wrapper does not do anything, while passively expecting
balancer to gray-list the isolated endpoint. This is
problematic when multiple endpoints are passed, and
network partition happens.
This patch adds 'endpointError' method to 'balancer' interface
to actively(possibly even before health-check API gets called)
handle RPC errors and gray-list endpoints for the time being,
thus speeding up the endpoint switch.
This is safe in a single-endpoint case, because balancer will
retry no matter what in such case.
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-09 13:40:03 -07:00
Gyu-Ho Lee
1704443c6d
clientv3: only health-check when timeout elapses since last failure
...
Otherwise network-partitioned member with active health-check
server would not be gray-listed, making health-balancer stuck
with isolated endpoint.
Also clarifies some log messages.
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-09 13:40:03 -07:00
lorneli
5096b4ed5d
clientv3/ordering: compare and update prevRev atomically
...
Several goroutines may call setPrevRev concurrently with different
revisions, all higher than prevRev. Previously all of these goroutines
could set prevRev, so prevRev may be replaced by older one.
If response's revision equals to prevRev, there's no need to call
setPrevRev.
2017-10-09 20:06:19 +08:00
Gyu-Ho Lee
bed5f388a8
clientv3: add pinned() method to 'balancer'
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-06 15:28:21 -07:00
Gyu-Ho Lee
1c6fbcd3d0
clientv3: add debugging lines to 'retry' paths
...
Helpful for debugging client balancer.
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-06 10:13:25 -07:00
Gyu-Ho Lee
05f96e8770
clientv3/yaml: add 'TrustedCAfile' field to replace 'CAfile'
...
To be consistent with etcdmain.
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-04 14:00:54 -07:00
Gyu-Ho Lee
b2f5393b64
clientv3/ordering: add missing 'errOrderViolation' error check
...
Fix https://github.com/coreos/etcd/issues/8641 .
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-03 18:04:36 -07:00
Gyu-Ho Lee
69031e3a6d
clientv3/ordering: acquire setPrevRev mutex only when needed
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-03 15:06:37 -07:00
Gyu-Ho Lee
0199bdc266
*: fix 'ineffassign' issues
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-03 10:14:33 -07:00
Gyu-Ho Lee
3f596db104
clientv3: add more health balancer debugging logs
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-02 15:38:36 -07:00
lorneli
aac652009d
clientv3/integration: test leasing txn invalidates deleted cache
...
Test cache invalidating in txnLeasing.commitToCache function.
2017-09-30 13:04:06 +08:00
Gyu-Ho Lee
65ffb52e5f
clientv3/integration: add TestWatchKeepAlive
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-28 15:35:29 -07:00
Gyu-Ho Lee
636815909d
clientv3/integration: match context errors to stopped server
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-27 13:12:08 -07:00
Gyu-Ho Lee
a439095697
clientv3: wait for ConnectNotify before sending RPCs
...
With slow CPU, gRPC can lag behind with RPCs being sent before
calling 'Up', returning 'no address available' on the first try.
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-27 13:12:08 -07:00
Gyu-Ho Lee
92f5746c54
clientv3/integration: fix license, minor nits in leasing_test.go
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-27 09:23:39 -07:00
Gyu-Ho Lee
090c192517
clientv3: add debugging logs, warnings
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-26 07:16:16 +09:00
Anthony Romano
49e5e78d0f
clientv3/integration: test endpoint switches on partitioned member
2017-09-16 13:55:39 -07:00
Anthony Romano
efd7800e0f
clientv3: try next endpoint point on unavailable error
2017-09-16 13:55:39 -07:00
Anthony Romano
e3deb9f482
clientv3: test health balancer gray listing
2017-09-15 14:24:46 -07:00
Anthony Romano
84db8fdaea
clientv3: health check balancer
2017-09-15 14:24:46 -07:00
Anthony Romano
6f6279075a
Merge pull request #8546 from heyitsanthony/receiver-ci
...
test: check for inconsistent receiver names
2017-09-12 13:59:52 -07:00
Xiang Li
10b731baa8
Merge pull request #8516 from purpleidea/feat/leaseid-okay
...
clientv3: Allow naked LeaseID or int64 for LeaseValue Compare's
2017-09-12 09:05:33 -07:00
Anthony Romano
4fa1dd196c
*: make receiver names consistent
2017-09-12 03:54:04 -07:00
Gyu-Ho Lee
9553afbb24
Merge pull request #8533 from gyuho/grpc
...
*: upgrade grpclog to LoggerV2
2017-09-12 03:53:04 -07:00
Gyu-Ho Lee
6f76d52a1a
*: deprecate grpc.Code, grpc.ErrorDesc
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-11 09:28:56 -07:00
Gyu-Ho Lee
0b2d8a6c96
*: fix minor typos
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-11 07:33:35 -07:00
Gyu-Ho Lee
d6c33367c4
clientv3: upgrade grpclog to LoggerV2
...
grpclog.Logger has been deprecated.
2017-09-08 15:25:32 -07:00
Gyu-Ho Lee
9a726b424d
*: fix leaky context creation with cancel
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-07 13:39:42 -07:00