2a49b04f09
clientv3/integration: fix typos
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com >
2017-10-23 20:13:53 -07:00
b699c7cff7
Merge pull request #8737 from xiang90/fix_TestWatchKeepAlive
...
clientv3/integration: shorten keepalive timeout
2017-10-22 21:21:22 -07:00
97f0b28bdb
Merge pull request #8738 from gyuho/ccc
...
clientv3: fix balancer notify, stale endpoint handling, retry
2017-10-22 21:20:44 -07:00
f65575073a
clientv3/integration: match ErrTimeout in testNetworkPartitionBalancer
...
For put, etcd can return timeout errors from network partitions.
2017-10-22 18:44:35 -07:00
5943229921
clientv3: wait for current pin endpoint down on notify
2017-10-22 18:02:58 -07:00
3899f9e3c5
clientv3/integration: shorten keepalive timeout
2017-10-22 18:02:15 -07:00
59af91fc69
clientv3: use hostPortError in down function
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com >
2017-10-22 18:01:31 -07:00
63ab5addfa
clientv3: do not mark stale endpoints as unhealthy
2017-10-22 17:59:26 -07:00
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
5eef654c3c
Merge pull request #8734 from xiang90/testing_log
...
clientv3: disable server logging for client testing
2017-10-22 16:50:21 -07:00
6f0771d2f6
clientv3: disable server logging for client testing
2017-10-22 16:32:42 -07:00
06e591d526
clientv3/integration: skip retry test on txn read
2017-10-22 16:14:39 -07:00
439c97d465
clientv3: remove balancer interface
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com >
2017-10-20 16:31:02 -07:00
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
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
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
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
fecd26f141
clientv3: rename to isRepeatableStopError, isNonRepeatableStopError
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com >
2017-10-19 15:58:12 -07:00
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
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
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
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
2540859ee7
clientv3: separate readyWait for ConnectNotify
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com >
2017-10-19 13:07:22 -07:00
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
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
7f2b6a19d6
clientv3: fix typo in 'testNetworkPartitionBalancer'
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com >
2017-10-10 16:07:03 -07:00
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
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
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
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
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
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
bed5f388a8
clientv3: add pinned() method to 'balancer'
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com >
2017-10-06 15:28:21 -07:00
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
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
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
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
0199bdc266
*: fix 'ineffassign' issues
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com >
2017-10-03 10:14:33 -07:00
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
aac652009d
clientv3/integration: test leasing txn invalidates deleted cache
...
Test cache invalidating in txnLeasing.commitToCache function.
2017-09-30 13:04:06 +08:00
65ffb52e5f
clientv3/integration: add TestWatchKeepAlive
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com >
2017-09-28 15:35:29 -07:00
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
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
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
090c192517
clientv3: add debugging logs, warnings
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com >
2017-09-26 07:16:16 +09:00
49e5e78d0f
clientv3/integration: test endpoint switches on partitioned member
2017-09-16 13:55:39 -07:00
efd7800e0f
clientv3: try next endpoint point on unavailable error
2017-09-16 13:55:39 -07:00
e3deb9f482
clientv3: test health balancer gray listing
2017-09-15 14:24:46 -07:00
84db8fdaea
clientv3: health check balancer
2017-09-15 14:24:46 -07:00
6f6279075a
Merge pull request #8546 from heyitsanthony/receiver-ci
...
test: check for inconsistent receiver names
2017-09-12 13:59:52 -07:00