Benjamin Wang
75d2407fc0
Merge pull request #16990 from YaoC/backport-12890
...
[3.4] backport #12890 learner support snapshot RPC
2023-11-23 13:56:28 +00:00
Benjamin Wang
f3c0155f03
Merge pull request #16997 from chaochn47/release-3.4-upgrade-grpc-1.52.0
...
Release 3.4 upgrade grpc 1.52.0
2023-11-22 20:30:11 +00:00
Chao Chen
f549da33de
backport https://github.com/etcd-io/etcd/pull/12709 and https://github.com/etcd-io/etcd/pull/12801 to resolve gogo unmarshal errors
...
Signed-off-by: Chao Chen <chaochn@amazon.com>
2023-11-22 11:14:50 -08:00
Benjamin Wang
c750e01e37
etcdserver: add cluster id check for hashKVHandler
...
backport https://github.com/etcd-io/etcd/pull/15924 to 3.4
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2023-11-22 16:55:18 +00:00
tangcong
4ff558ee53
[3.4] backport #12890 learner support snapshot RPC
...
Signed-off-by: YaoC <chengyao09@hotmail.com>
2023-11-22 09:48:10 +00:00
Benjamin Wang
90e4d04c8e
etcdserver: guarantee order of requested progress notification
...
Progress notifications requested using ProgressRequest were sent
directly using the ctrlStream, which means that they could race
against watch responses in the watchStream.
This would especially happen when the stream was not synced - e.g. if
you requested a progress notification on a freshly created unsynced
watcher, the notification would typically arrive indicating a revision
for which not all watch responses had been sent.
This changes the behaviour so that v3rpc always goes through the watch
stream, using a new RequestProgressAll function that closely matches
the behaviour of the v3rpc code - i.e.
1. Generate a message with WatchId -1, indicating the revision for
*all* watchers in the stream
2. Guarantee that a response is (eventually) sent
The latter might require us to defer the response until all watchers
are synced, which is likely as it should be. Note that we do *not*
guarantee that the number of progress notifications matches the number
of requests, only that eventually at least one gets sent.
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-04-11 12:47:09 +08:00
J. David Lowe
cee78aca75
etcdserver: don't attempt to grant nil permission to a role
...
Prevent etcd from crashing when given a bad grant payload, e.g.:
$ curl -d '{"name": "foo"}' http://localhost:2379/v3/auth/role/add
{"header":{"cluster_id":"14841639068965178418", ...
$ curl -d '{"name": "foo"}' http://localhost:2379/v3/auth/role/grant
curl: (52) Empty reply from server
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
Signed-off-by: J. David Lowe <j.david.lowe@gmail.com>
2023-04-04 21:40:54 +09:00
Hitoshi Mitake
01c0d8b309
etcdserver: keep server side change of 14548
...
Signed-off-by: Hitoshi Mitake <h.mitake@gmail.com>
2023-03-28 21:43:17 +09:00
Hitoshi Mitake
c8f890cde1
Revert "*: handle auth invalid token and old revision errors in watch"
...
This reverts commit 0c6e466024ea2030380b13e3e2248b0b8fb879ca.
Signed-off-by: Hitoshi Mitake <h.mitake@gmail.com>
2023-03-21 22:13:17 +09:00
Kafuu Chino
ed10ca13f4
*: avoid closing a watch with ID 0 incorrectly
...
Signed-off-by: Kafuu Chino <KafuuChinoQ@gmail.com>
add test
1
1
1
2022-10-10 19:54:58 +08:00
Hitoshi Mitake
0c6e466024
*: handle auth invalid token and old revision errors in watch
...
Signed-off-by: Hitoshi Mitake <h.mitake@gmail.com>
2022-10-04 22:49:06 +09:00
Benjamin Wang
cc1b0e6a44
do not get previous K/V for create event
...
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2022-08-01 13:11:46 +08:00
Benjamin Wang
6071b1c523
Support configuring MaxConcurrentStreams for http2
...
Backport https://github.com/etcd-io/etcd/pull/14219 to 3.4
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2022-07-21 14:25:29 +08:00
Benjamin Wang
07d2b1d626
support linearizable renew lease for 3.4
...
Cherry pick https://github.com/etcd-io/etcd/pull/13932 to 3.4.
When etcdserver receives a LeaseRenew request, it may be still in
progress of processing the LeaseGrantRequest on exact the same
leaseID. Accordingly it may return a TTL=0 to client due to the
leaseID not found error. So the leader should wait for the appliedID
to be available before processing client requests.
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2022-07-19 13:34:55 +08:00
Hitoshi Mitake
757a8e8f5b
*: implement a retry logic for auth old revision in the client
2022-04-29 23:46:24 +09:00
Chris Wedgwood
656dc63eab
etcdserver: fix incorrect metrics generated when clients cancel watches
...
Manual cherry-pick of 9571325fe85173a60c89d6ac6ce3491c7b1ec7a4 for
release-3.4.
2021-03-31 22:59:29 -07:00
Gyuho Lee
e71e0c5c88
Merge pull request #12226 from jingyih/fix_backport_PR12216
...
*: add plog logging to the backport of PR12216
2020-08-18 08:48:09 -07:00
Gyuho Lee
299e0f17aa
Revert "etcdserver/api/v3rpc: "MemberList" never return non-empty ClientURLs"
...
This reverts commit 0372cfc7ab1052ac616ca34551f83657a8fd2e3e.
2020-08-18 08:45:38 -07:00
jingyih
75d5e78d1f
*: fix backport of PR12216
...
Fix bugs introduced in commit c60dabf
2020-08-16 15:01:18 +08:00
jingyih
c60dabf2f3
*: add experimental flag for watch notify interval
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-08-15 10:24:25 -07:00
Gyuho Lee
0372cfc7ab
etcdserver/api/v3rpc: "MemberList" never return non-empty ClientURLs
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
cr https://code.amazon.com/reviews/CR-29712724
2020-07-16 16:29:51 -07:00
Gyuho Lee
9bad82fee5
*: make sure snapshot save downloads SHA256 checksum
...
ref. https://github.com/etcd-io/etcd/pull/11896
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-05-17 17:38:42 -07:00
Changxin Miao
9c8554573f
etcdserver: watch stream got closed once one request is not permitted ( #11708 )
2020-04-06 07:06:57 -07:00
Gyuho Lee
e63db56cc9
etcdserver/api/v3rpc: handle api version metadata, add metrics
...
ref.
https://github.com/etcd-io/etcd/pull/11687
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-03-18 17:17:04 -07:00
Zeming YU
b6cfaf883b
v3rpc: fix a typo err
...
don't read return value in child goroutine which causes data race.
2019-08-06 15:09:47 -07:00
Gyuho Lee
6a0811a949
*: use new adt.IntervalTree interface
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-31 22:23:13 -07:00
Gyuho Lee
7cbe2f5dd6
etcdserver/api/v3rpc: use new "credentials" package
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-26 08:56:38 -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
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
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
c438f6db27
etcdserver: check IsMemberExist before IsLearner
...
If member does not exist in cluster, IsLearner will panic.
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
Jingyi Hu
23f1d02391
*: address comments
2019-05-15 15:58:46 -07:00
WizardCXY
a039f2efb8
clientv3, etcdctl: MemberPromote for learner
2019-05-15 13:48:52 -07:00
Jingyi Hu
44d935e90a
etcdserver: exclude learner from leader transfer
...
1. Maintenance API MoveLeader() returns ErrBadLeaderTransferee if
transferee does not exist or is raft learner.
2. etcdserver TransferLeadership() only choose voting member as
transferee.
2019-05-15 13:27:42 -07:00
WizardCXY
7f9479acc1
clientv3: add member promote
2019-05-15 13:27:42 -07:00
WizardCXY
ba9fd620e8
etcdserver: support MemberPromote for learner
2019-05-15 13:27:42 -07:00
Jingyi Hu
43ed94f769
etcdserver: filter rpc request to learner
...
Hardcoded allowed rpc for learner node. Added filtering in grpc
interceptor to check if rpc is allowed for learner node.
2019-05-15 13:15:20 -07:00
Jingyi Hu
355d0ab2a6
*: add learner field in endpoint status
...
Added learner field to endpoint status API.
2019-05-15 13:13:59 -07:00
Jingyi Hu
e1acf244c1
etcdserver: Add MemberAddAsLearner
...
Made changes to api/membership:
- Added MemberAddAsLearner
- Reverted changes to MemberAdd - removed input parameter isLearner
2019-05-14 18:18:10 -07:00
Jingyi Hu
604bc04f70
etcdserver: support MemberAdd for learner
...
Added IsLearner field to etcdserver internal Member type. Routed
learner MemberAdd request from server API to raft. Apply learner
MemberAdd result to server after the request is passed through Raft.
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
shivaramr
9150bf52d6
go modules: Fix module path version to include version number
2019-04-26 15:29:50 -07:00
lsytj0413
792aad932f
refactor(*): fix golint warning
2018-12-24 11:43:10 +08:00
nolouch
4de27039cb
server: drop read request if found leader changed
2018-09-14 15:58:35 +08:00
Gyuho Lee
0ef9ef3c74
*: rerun "gofmt"
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 18:25:39 -07:00
Gyuho Lee
1399bc69ce
etcdserver: update import paths to "go.etcd.io/etcd"
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 17:47:55 -07:00
Jingyi Hu
8d85259b56
etcdserver/api/v3rpc/interceptor: add log level checking
...
Check log level before generating and writing log info.
2018-08-17 16:12:05 -07:00