jingyih
0344b70906
*: make MemberList linearizable
...
- Add linearizable field to etcdserverpb.MemberListRequest.
- Change behavior of clienv3 MemberList API. Now it is served with
linearizable guarantee.
2020-03-25 20:16:20 -07:00
Gyuho Lee
3ac7a11515
Merge pull request #11699 from tangcong/refactor-consistentindex
...
*: refactor consistentindex
2020-03-25 18:07:44 -07:00
tangcong
804070ce87
clientv3/snapshot: clean up initIndex
2020-03-25 10:59:19 +08:00
tangcong
7b2018683a
*: refactor consistent index
2020-03-25 10:59:15 +08:00
yoyinzyc
d8b9b54348
etcdserver: add downgrade rpc proto api.
2020-03-20 17:37:26 -07:00
Gyuho Lee
eeb371b7c1
clientv3: fix racy writes to context key
...
=== RUN TestWatchOverlapContextCancel
==================
WARNING: DATA RACE
Write at 0x00c42110dd40 by goroutine 99:
runtime.mapassign()
/usr/local/go/src/runtime/hashmap.go:485 +0x0
github.com/coreos/etcd/clientv3.metadataSet()
/go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/ctx.go:61 +0x8c
github.com/coreos/etcd/clientv3.withVersion()
/go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/ctx.go:47 +0x137
github.com/coreos/etcd/clientv3.newStreamClientInterceptor.func1()
/go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/client.go:309 +0x81
google.golang.org/grpc.NewClientStream()
/go/src/github.com/coreos/etcd/gopath/src/google.golang.org/grpc/stream.go:101 +0x10e
github.com/coreos/etcd/etcdserver/etcdserverpb.(*watchClient).Watch()
/go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/etcdserver/etcdserverpb/rpc.pb.go:3193 +0xe9
github.com/coreos/etcd/clientv3.(*watchGrpcStream).openWatchClient()
/go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/watch.go:788 +0x143
github.com/coreos/etcd/clientv3.(*watchGrpcStream).newWatchClient()
/go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/watch.go:700 +0x5c3
github.com/coreos/etcd/clientv3.(*watchGrpcStream).run()
/go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/watch.go:431 +0x12b
Previous read at 0x00c42110dd40 by goroutine 130:
reflect.maplen()
/usr/local/go/src/runtime/hashmap.go:1165 +0x0
reflect.Value.MapKeys()
/usr/local/go/src/reflect/value.go:1090 +0x43b
fmt.(*pp).printValue()
/usr/local/go/src/fmt/print.go:741 +0x1885
fmt.(*pp).printArg()
/usr/local/go/src/fmt/print.go:682 +0x1b1
fmt.(*pp).doPrintf()
/usr/local/go/src/fmt/print.go:998 +0x1cad
fmt.Sprintf()
/usr/local/go/src/fmt/print.go:196 +0x77
github.com/coreos/etcd/clientv3.streamKeyFromCtx()
/go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/watch.go:825 +0xc8
github.com/coreos/etcd/clientv3.(*watcher).Watch()
/go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/watch.go:265 +0x426
github.com/coreos/etcd/clientv3/integration.testWatchOverlapContextCancel.func1()
/go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/integration/watch_test.go:959 +0x23e
Goroutine 99 (running) created at:
github.com/coreos/etcd/clientv3.(*watcher).newWatcherGrpcStream()
/go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/watch.go:236 +0x59d
github.com/coreos/etcd/clientv3.(*watcher).Watch()
/go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/watch.go:278 +0xbb6
github.com/coreos/etcd/clientv3/integration.testWatchOverlapContextCancel.func1()
/go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/integration/watch_test.go:959 +0x23e
Goroutine 130 (running) created at:
github.com/coreos/etcd/clientv3/integration.testWatchOverlapContextCancel()
/go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/integration/watch_test.go:979 +0x76d
github.com/coreos/etcd/clientv3/integration.TestWatchOverlapContextCancel()
/go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/integration/watch_test.go:922 +0x44
testing.tRunner()
/usr/local/go/src/testing/testing.go:657 +0x107
==================
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-03-18 17:05:05 -07:00
Gyuho Lee
33907477dd
*: add "etcd_server_client_requests_total", tests
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-03-17 12:16:11 -07:00
Gyuho Lee
58ba322bb4
clientv3: embed API version
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-03-17 12:16:11 -07:00
Gyuho Lee
5cb1e0b342
clientv3: fix metadata overwrites in "WithRequireLeader"
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-03-17 12:16:11 -07:00
Joe Betz
221f0cc107
Merge pull request #11564 from eddycjy/balancer-error
...
clientv3: Fix grpc-go(v1.27.0) incompatible changes to balancer/resolver.
2020-03-06 10:35:22 -08:00
EDDYCJY
4258cdd2ef
clientv3: fix grpc-go(v1.27.0) incompatible changes to balancer/resolver.
2020-02-18 18:27:53 +08:00
Jingyi Hu
84ace97ad7
Merge pull request #11572 from lzhfromustc/API_Fatal_4
...
integration/clientv3: fix 4 API misusage in test functions
2020-02-14 00:27:41 -08:00
Ziheng Liu
f00394e384
integration/clientv3: fix 4 API misusage in test functions
2020-02-13 13:13:18 -05:00
Vern Burton
071e70cdc4
*: add a new API and command for checking auth status ( #11536 )
...
This changes have started at etcdctl under auth.go, and make changes to stub out everything down into the internal raft. Made changes to the .proto files and regenerated them so that the local version would build successfully.
2020-02-05 19:27:42 -08:00
Jingyi Hu
7395ed8e5d
Merge pull request #11578 from jingyih/set_zap_as_default_logger
...
*: set zap as default logger, remove capnslog
2020-02-04 22:58:45 -08:00
jingyih
725e09023a
*: set zap as default logger, remove capnslog
...
Set zap as default logger. Remove capnslog and deprecated logging
flags.
2020-02-04 04:57:49 -08:00
Gyuho Lee
a698ad65f5
Merge pull request #11574 from YoyinZyc/simpligy-grpc
...
clientv3: simplify grpc dialer usage.
2020-02-03 12:41:41 -08:00
yoyinzyc
b90d801beb
clientV3: simplify grpc dialer usage. Remove workaround #11184 after bumping grpc to 1.26.0.
2020-01-30 14:51:24 -08:00
sfzhu93
467e08c32a
in multiple packages: fixed goroutine leak bugs in tests (cont.d) ( #11570 )
2020-01-30 10:55:59 -08:00
sfzhu93
cad92706cf
in multiple packages: fixed goroutine leak bugs in tests ( #11569 )
2020-01-30 10:45:59 -08:00
Jingyi Hu
342c2464ae
Documentation: specify starting revision ( #11559 )
2020-01-27 10:18:27 -08:00
Gyuho Lee
993e82a85b
clientv3/integration: fix a typo in "TestLeasingTxnRangeCmp"
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-01-19 23:56:22 -08:00
Gyuho Lee
2669b83c68
clientv3/integration: fix typo in "TestLeasingRevGet"
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-01-19 10:20:23 -08:00
Gyuho Lee
091b84f154
clientv3/integration: fix "TestLeaseKeepAliveNotFound"
...
with "default" select, the failure case will never be selected
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-01-17 12:04:10 -08:00
Gyuho Lee
255944bf51
clientv3/integration: expect "ErrCompacted" in "TestKVCompact"
...
Making tests more strict
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-01-17 12:03:13 -08:00
Ted Yu
b95a465235
Auth: declare auth variable inside the loop ( #11476 )
...
Co-authored-by: yutedz <54038175+yutedz@users.noreply.github.com>
2020-01-13 19:23:00 -08:00
Jingyi Hu
5adad5e224
Merge pull request #11452 from tedyu/watch-grpc-send-err
...
clientv3: log warning in case of error sending request
2019-12-20 15:31:02 -08:00
Ted Yu
cb8bf089f8
clientv3: log warning in case of error sending request
2019-12-20 15:08:33 -08:00
Ted Yu
fb7703ab43
clientv3: remove ineffective nil check ( #11451 )
2019-12-15 21:38:25 -08:00
Jingyi Hu
ed5a01a48d
etcdserver: recover cluster version from backend
2019-12-05 16:25:13 -08:00
Xiang Li
b14c7cd448
concurrency: make lock more reliable
2019-12-02 10:54:30 -08:00
Gyuho Lee
5dc98c50d7
clientv3: fix retry/streamer error message
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-10-30 21:29:44 -07:00
Joe Betz
6aae90325c
Merge pull request #11211 from jpbetz/ipv6-endpoints
...
Replace endpoint.ParseHostPort with net.SplitHostPort to fix IPv6 client endpoints
2019-10-08 15:15:16 -07:00
Joe Betz
594354b886
Replace endpoint.ParseHostPort with net.SplitHostPort to fix IPv6 client endpoints
2019-10-08 14:53:49 -07:00
Gyuho Lee
340f0ac797
Merge pull request #11179 from YoyinZyc/trace
...
Add tracing to range request in etcd server.
2019-10-08 13:23:53 -07:00
yoyinzyc
401df4bb8e
etcdserver: add put request steps.
...
mvcc: add put request steps; add trace to KV.Write() as input parameter.
2019-10-01 14:08:06 -07:00
Joe Betz
97388ce454
clientv3: Set authority used in cert checks to host of endpoint
2019-09-25 15:14:23 -07:00
Jingguo Yao
e24564224a
clientv3: remove the redundant CancelFunc invocation
2019-09-18 23:06:49 +08:00
Jingguo Yao
e53298afb1
clientv3/concurrency: remove the unneeded slash
...
Since NewMutex will append a slash to pfx, there is no need to append a
slash beforehand.
2019-09-18 16:37:31 +08:00
Guangming Wang
6287052bd0
integration: fix bug in for loop, make it break properly
2019-09-17 11:27:31 +08:00
vimalk78
04ddfa8b8d
clientv3/concurrency: Added Mutex.TryLock()
...
TryLock locks the mutex if not already locked by another session.
If lock is held by another session, return immediately after attempting necessary cleanup
Added integration test
Fixes #10493
2019-09-09 20:16:07 -07:00
Xiang Li
dd2b88d0ed
Merge pull request #11066 from vimalk78/clientv3-fixes
...
clientv3: add nil checks in Client.Close()
2019-08-23 23:22:42 -07:00
Jingyi Hu
2680c2afe7
integration: fix TestKVPutError
...
Give backend quota enough overhead.
2019-08-21 19:56:38 -07:00
vimalk78
7f47de8414
clientv3: add nil checks in Close()
...
Added nil checks in Close() for Watcher and Lease fields
Added test case
2019-08-21 23:04:42 +01:00
Gyuho Lee
b5aa46486b
clientv3/integration: fix "mvcc.NewStore" call
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-15 11:48:53 -07:00
Joe Betz
9b51febaf5
*: Add experimental-compaction-batch-limit flag
2019-08-15 11:47:23 -07:00
Gyuho Lee
97fd40c587
clientv3: use Endpoints(), fix context creation
...
If overwritten, the previous context should be canceled first.
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-12 21:39:50 -07:00
Zeming YU
181419256d
integration: fix a data race about `err`
...
don't share `err` between goroutines
2019-08-06 14:58:15 -07:00
Gyuho Lee
9b385737f5
clientv3: deprecate "grpc.ErrClientConnClosing"
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-05 13:27:16 -07:00
Gyuho Lee
4b0af5b4ac
clientv3: document "WithBlock" dial option
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-04 23:52:17 -07:00
Gyuho Lee
ba42e65b59
clientv3/integration: give more time for balancer resolution
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-26 09:19:22 -07:00
Gyuho Lee
8c7c6ec0c1
clientv3/balancer: refactor
...
refactor + remove unused
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-26 09:19:19 -07:00
Gyuho Lee
3dc00ab615
clientv3: move auth token credential to "credentials" package
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-26 09:17:44 -07:00
Gyuho Lee
db61ee106c
clientv3/credentials: set dial target "Authority" with target address
...
Overwrite authority when it's IP.
When user dials with "grpc.WithDialer", "grpc.DialContext" "cc.parsedTarget"
update only happens once. This is problematic, because when TLS is enabled,
retries happen through "grpc.WithDialer" with static "cc.parsedTarget" from
the initial dial call.
If the server authenticates by IP addresses, we want to set a new endpoint as
a new authority. Otherwise
"transport: authentication handshake failed: x509: certificate is valid for 127.0.0.1, 192.168.121.180, not 192.168.223.156"
when the new dial target is "192.168.121.180" whose certificate host name is also "192.168.121.180"
but client tries to authenticate with previously set "cc.parsedTarget" field "192.168.223.156"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-26 09:17:40 -07:00
Gyuho Lee
db7231accc
clientv3: use new "credentials" package
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-26 08:56:33 -07:00
Gyuho Lee
324c876742
clientv3/credential: implement grpc/credentials.Bundle
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-26 08:56:05 -07:00
Gyuho Lee
12ab2ee3c4
clientv3: do not use pointer to TransportCredentials interface
...
Interface in Go is already reference
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-26 08:52:31 -07:00
Sahdev P. Zala
1cef112a79
etcdserver: do not allow creating empty role
...
Like user, we should not allow creating empty role.
Related #10905
2019-07-24 17:41:24 -04:00
Tobias Schottdorf
b9c051e7a7
raftpb: clean up naming in ConfChange
2019-07-23 10:40:03 +02:00
lzhfromustc
8194aa3f03
Fixed a missing block bug
...
Description: w.mu is locked at line 385 and unlocked at line 396. Among 5 return statements in this function, 4 are below line 396 but there is 1 return at line 387.
Fix: Add w.mu.Unlock() before that return at line 387.
2019-06-28 11:27:13 -07:00
Gyuho Lee
1caaa9ed4a
test: test update for Go 1.12.5 and related changes
...
Update to Go 1.12.5 testing. Remove deprecated unused and gosimple
pacakges, and mask staticcheck 1006. Also, fix unconvert errors related
to unnecessary type conversions and following staticcheck errors:
- remove redundant return statements
- use for range instead of for select
- use time.Since instead of time.Now().Sub
- omit comparison to bool constant
- replace T.Fatal and T.Fatalf in tests with T.Error and T.Fatalf respectively because the goroutine calls T.Fatal must be called in the same goroutine as the test
- fix error strings that should not be capitalized
- use sort.Strings(...) instead of sort.Sort(sort.StringSlice(...))
- use he status code of Canceled instead of grpc.ErrClientConnClosing which is deprecated
- use use status.Errorf instead of grpc.Errorf which is deprecated
Related #10528 #10438
2019-06-05 17:02:05 -04:00
Xiang Li
ea0f919cdc
Merge pull request #10775 from jingyih/integration_member_promote_failed_cases
...
clientv3/integration: add member promote failure test cases
2019-06-02 20:39:00 -07:00
Jingyi Hu
ec17872c98
integration: add member promote failure test cases
...
Add TestMemberPromoteMemberNotLearner and
TestMemberPromoteMemberNotExist.
2019-05-31 10:52:54 -07:00
Hitoshi Mitake
5a67dd788d
*: support creating a user without password
...
This commit adds a feature for creating a user without password. The
purpose of the feature is reducing attack surface by configuring bad
passwords (CN based auth will be allowed for the user).
The feature can be used with `--no-password` of `etcdctl user add`
command.
Fix https://github.com/coreos/etcd/issues/9590
2019-05-30 21:59:30 +09:00
Xiang Li
23a89b0f09
Merge pull request #10755 from wrfly/patch-3
...
fix #10754
2019-05-28 20:50:52 -07:00
Shaun
3754767dbc
clientv3: return getToken error when retryAuth
2019-05-29 10:15:22 +08:00
Jingyi Hu
6bf609b96d
integration: update TestMemberPromote test
...
Update TestMemberPromote to include both learner not-ready and learner
ready test cases.
Removed unit test TestPromoteMember, it requires underlying raft node to
be started and running. The member promote is covered by the integration
test.
2019-05-28 18:50:13 -07:00
Jingyi Hu
f8ad8ae4ad
etcdserver: use etcdserver ErrLearnerNotReady
...
If learner is not ready to be promoted, use etcdserver.ErrLearnerNotReady
instead of using membership.ErrLearnerNotReady.
2019-05-28 18:50:13 -07:00
宇慕
dfe296ac3c
etcdserver: add mayPromote check
2019-05-28 18:47:03 -07:00
Jingyi Hu
7a4d233bab
clientv3/integration: better way to deflake test
...
Use ReadyNotify instead of time.Sleep to wait for server ready.
2019-05-28 18:47:03 -07:00
Jingyi Hu
aa4cda2f5c
etcdserver: allow 1 learner in cluster
...
Hard-coded the maximum number of learners to 1.
2019-05-28 18:47:03 -07:00
Jingyi Hu
d0c1b3fa38
etcdserver: learner return Unavailable for unsupported RPC
...
Make learner return code.Unavailable when the request is not supported
by learner. Client balancer will retry a different endpoint.
2019-05-28 18:47:03 -07:00
Gyuho Lee
34bd797e67
*: revert module import paths
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-05-28 15:39:35 -07:00
Gyuho Lee
11d3f74c33
Merge pull request #10744 from philips/drop-readthedocs
...
*: move to etcd.io for docs
2019-05-27 03:02:01 -07:00
Inconnu08
2eaed14def
clientv3: fix typo in test filename
2019-05-27 13:53:58 +06:00
Brandon Philips
c5e5240004
*: move to etcd.io for docs
...
Remove all readthedocs references for https://etcd.io to ensure the SEO
goes to the right place.
2019-05-20 14:32:08 -07:00
Jingyi Hu
23f1d02391
*: address comments
2019-05-15 15:58:46 -07:00
Jingyi Hu
90d28c0de7
clientv3/integration: deflake TestKVForLearner
...
Adding delay in the test for the newly started learner member to catch
up applying config change entries in raft log.
2019-05-15 13:58:28 -07:00
Jingyi Hu
b23c8f3e8f
clientv3/integration: fix cluster tests
...
Fixes TestMemberAddForLearner and TestMemberPromoteForLearner.
2019-05-15 13:58:26 -07:00
WizardCXY
a039f2efb8
clientv3, etcdctl: MemberPromote for learner
2019-05-15 13:48:52 -07:00
WizardCXY
7f9479acc1
clientv3: add member promote
2019-05-15 13:27:42 -07:00
Jingyi Hu
57a11eb1e1
integration: add TestKVForLearner
...
Adding TestKVForLearner. Also adding test utility functions for clientv3
integration tests.
2019-05-15 13:27:38 -07:00
Jingyi Hu
2b76200f70
*: add MemberAddAsLearner to clientv3 Cluster API
...
Made changes to Clientv3 Cluster API:
- Added MemberAddAsLearner.
- Reverted changes to MemberAdd - removed input parameter isLearner.
2019-05-14 16:56:44 -07:00
Jingyi Hu
fc14608cb7
clientv3: support MemberAdd for learner
...
Added IsLearner flag to clientv3 MemberAdd API.
2019-05-14 13:10:22 -07:00
Jingyi Hu
a0d3c4d641
*: fix compilation after API change
...
Fixed compilation erros after API change for learner.
2019-05-14 13:10:22 -07:00
rohitsardesai83
42a7ea6d33
etcd: Replace ghodss/yaml with sigs.k8s.io/yaml
...
To remove the dependency on ghodss/yaml. Replaced this dependency with sigs.k8s.io/yaml.
This wil help to remove the ghodss/yaml dependency from main kubernetes repository.
xref: https://github.com/kubernetes/kubernetes/issues/77024
2019-05-02 12:34:36 +05:30
Gyuho Lee
e899023f3f
Merge pull request #10640 from shrajfr12/gomodulecompat
...
Fix module path to have the major version to comply with go modules specification.
2019-05-01 22:46:03 -07:00
Xiang Li
fc6936863a
Merge pull request #10582 from johncming/empty_update
...
clientv3/naming: ignore empty update.
2019-04-30 14:21:56 -07:00
Xiang Li
1bd02b2053
Merge pull request #10595 from johncming/locking
...
clientv3: modify lock type.
2019-04-30 14:19:02 -07:00
shivaramr
9150bf52d6
go modules: Fix module path version to include version number
2019-04-26 15:29:50 -07:00
Joe Betz
c7c6894527
Merge pull request #10551 from johncming/lbname
...
clientv3/balancer: change balancer name to builder name.
2019-04-10 16:16:51 -07:00
zhoulin xie
cc08c1bd2e
clientv3/integration/leasing_test.go: Fix t.Fatalf error message
...
Signed-off-by: zhoulin xie <zhoulin.xie@daocloud.io>
2019-04-10 13:19:50 -04:00
johncming
9b5c468dc6
clientv3: modify lock type.
2019-03-29 21:02:13 +08:00
johncming
cb39c97b22
clientv3/naming: ignore empty update.
2019-03-25 10:53:24 +08:00
mengjin
41f7142ff9
doc: fix document example error
2019-03-21 08:21:03 -04:00
Xiang Li
09d0844379
Merge pull request #10548 from jingyih/add_TestMemberAddWithExistingURLs
...
clientv3/integration: Add TestMemberAddWithExistingURLs
2019-03-19 15:23:15 -07:00
Jingyi Hu
9bd86a647f
clientv3: Add TestMemberAddWithExistingURLs
...
TestMemberAddWithExistingURLs ensures adding a new member with URLs
already being used in the cluster will not succeed.
2019-03-18 12:48:44 -07:00
johncming
ddff08ffad
clientv3/balancer: change balancer name to builder name.
2019-03-18 11:05:22 +08:00
johncming
662fd55084
clientv3: clean up unused code.
2019-03-18 10:34:41 +08:00
Xiang Li
e1ca3b4434
Merge pull request #10531 from JoeWrightss/patch-3
...
Fix some variable spelling errors
2019-03-12 12:09:09 -07:00