18669 Commits

Author SHA1 Message Date
Benjamin Wang
7f46da223d client: no need to getToken when dial specific endpoint for maintenance
The existing client may connect to different endpoint from the
specific endpoint to be maintained. Maintenance operations do not
go through raft at all, so it might run into issue if the server
hasn't finished applying the authentication request.

Let's work with an example. Assuming the existing client connects to
ep1, while the user wants to maintain ep2. If we getToken again, it
sends an authentication request, which goes through raft. When the
specific endpoint receives the maintenance request, it might haven't
finished previous authentication request, but the new token is already
carried in the context, so it will reject the maintenance request
due to invalid token.

We already have retry logic in `unaryClientInterceptor` and
`streamClientInterceptor`. When the token expires, it can automatically
refresh the token, so it should be safe to remove the `getToken`
logic in `maintenance.dial`

Signed-off-by: Benjamin Wang <wachao@vmware.com>
2022-11-03 04:39:42 +08:00
Benjamin Wang
f782891246 test: added auth test on maintenance API
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2022-11-03 04:39:42 +08:00
Benjamin Wang
1791ab5754 test: add common functions for auth test
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2022-11-03 04:39:42 +08:00
Benjamin Wang
c967715d93 auth: protect all maintainence APIs when auth is enabled
All maintenance APIs require admin privilege when auth is enabled,
otherwise, the request will be rejected. If auth isn't enabled,
then no such requirement any more.

Signed-off-by: Benjamin Wang <wachao@vmware.com>
2022-11-03 04:39:42 +08:00
Marek Siarkowicz
7ed4eda4c1
Merge pull request #14657 from fuweid/test-fix-TestDowngradeUpgradeClusterOf3
test: deflake TestDowngradeUpgradeClusterOf3 timeout
2022-11-02 16:51:24 +01:00
Wei Fu
3ddcb3ddef test: deflake TestDowngradeUpgradeClusterOf3 timeout
In the TestDowngradeUpgradeCluster case, the brand-new cluster is using
simple-config-changer, which means that entries has been committed
before leader election and these entries will be applied when etcdserver
starts to receive apply-requests. The simple-config-changer will mark
the `confState` dirty and the storage backend precommit hook will update
the `confState`.

For the new cluster, the storage version is nil at the beginning. And
it will be v3.5 if the `confState` record has been committed. And it
will be >v3.5 if the `storageVersion` record has been committed.

When the new cluster is ready, the leader will set init cluster version
with v3.6.x. And then it will trigger the `monitorStorageVersion` to
update the `storageVersion` to v3.6.x. If the `confState` record has
been updated before cluster version update, we will get storageVersion
record.

If the storage backend doesn't commit in time, the
`monitorStorageVersion` won't update the version because of `cannot
detect storage schema version: missing confstate information`.

And then we file the downgrade request before next round of
`monitorStorageVersion`(per 4 second), the cluster version will be
v3.5.0 which is equal to the `UnsafeDetectSchemaVersion`'s result.
And we won't see that `The server is ready to downgrade`.

It is easy to reproduce the issue if you use cpuset or taskset to limit
in two cpus.

So, we should wait for the new cluster's storage ready before downgrade
request.

Fixes: #14540

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2022-11-02 22:50:31 +08:00
Marek Siarkowicz
e25090f3fb
Merge pull request #14678 from ahrtr/go1.19.3
bump go version to 1.19.3 to address security fixes
2022-11-02 12:12:48 +01:00
Benjamin Wang
94e0c2410b bump go version to 1.19.3 to address security fixes
FYI. https://groups.google.com/g/golang-announce/c/dRtDK7WS78g

Signed-off-by: Benjamin Wang <wachao@vmware.com>
2022-11-02 09:07:22 +08:00
Marek Siarkowicz
2e790d2c4f
Merge pull request #14664 from spacewander/ra1
ci: ensure the generated code is up-to-date
2022-11-01 13:21:57 +01:00
Benjamin Wang
06ff2c905f
Merge pull request #14667 from cenkalti/range-panic
server: add more context to panic message
2022-11-01 17:39:03 +08:00
Cenk Alti
580a86ebe5
server: add more context to panic message
Signed-off-by: Cenk Alti <cenkalti@gmail.com>
2022-10-31 20:29:15 -04:00
spacewander
a774510a90 address review
Signed-off-by: spacewander <spacewanderlzx@gmail.com>
2022-10-31 21:23:48 +08:00
spacewander
e73a25a1d0 ci: ensure the generated code is up-to-date
See https://github.com/etcd-io/etcd/pull/14612#issue-1419792069
Signed-off-by: spacewander <spacewanderlzx@gmail.com>
2022-10-31 19:58:21 +08:00
Benjamin Wang
5073af6521
Merge pull request #14660 from clarkfw/new-cluster-accept-configuration-as-options
tests: TestRunner.NewCluster accepts options
2022-10-31 19:15:23 +08:00
Clark
fa9ee5cce9 tests: TestRunner.NewCluster accepts options
Signed-off-by: Clark <fwyongxing@gmail.com>
2022-10-31 15:26:08 +08:00
Benjamin Wang
a1018dbddf
Merge pull request #14604 from ahrtr/double_barrier
clientv3: fix the implementation of double barrier
2022-10-31 08:13:12 +08:00
Benjamin Wang
d1f7136a50
Merge pull request #14621 from ahrtr/functional_test_20221025
test: terminate functional test on failure and code cleanup
2022-10-31 07:42:29 +08:00
Benjamin Wang
0a19ee7a11
Merge pull request #14650 from mitake/changelog-14574
update changelogs of 3.4 and 3.5 for backporting PR 14574 and 14647
2022-10-29 13:47:34 +08:00
Hitoshi Mitake
d0f5f1ba20 update changelogs of 3.4 and 3.5 for backporting PR 14574 and 14647
Signed-off-by: Hitoshi Mitake <h.mitake@gmail.com>
2022-10-29 14:24:04 +09:00
Benjamin Wang
aeaa1f8b27
Merge pull request #14647 from mitake/auth-testrecover
server: add a unit test case for authStore.Reocver() with empty rangePermCache
2022-10-29 12:47:24 +08:00
Hitoshi Mitake
b7146f8f33 server: add a unit test case for authStore.Reocver() with empty rangePermCache
Signed-off-by: Hitoshi Mitake <h.mitake@gmail.com>
2022-10-29 12:54:34 +09:00
Marek Siarkowicz
d668b5ce92
Merge pull request #14644 from serathius/reviewers
remove inactive reviewers
2022-10-29 00:20:44 +02:00
Benjamin Wang
0713c79851
Merge pull request #14642 from nic-chen/update-warn-message
chore: update the warn message on startup when the server name is default
2022-10-29 05:59:04 +08:00
Benjamin Wang
de6b4b9a20
Merge pull request #14524 from dusk125/update-changelog
Update 3.4, 3.5, and 3.6 changelogs for adding configurable cipher list to gRPC proxy
2022-10-29 05:57:40 +08:00
Benjamin Wang
70c57c5651
Merge pull request #14646 from joycebrum/main
Fix error on Scorecard run by upgrading the action version
2022-10-29 05:29:13 +08:00
Joyce Brum
0bc8895d7b
fix: upgrade scorecard github action to avoid crashes
Signed-off-by: Joyce Brum <joycebrum@google.com>
2022-10-28 17:26:04 -03:00
Marek Siarkowicz
e0e8759bf5 remove inactive reviewers
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2022-10-28 12:24:57 -05:00
Allen Ray
514c8b2d5a Move grpc-proxy item from 3.6 to 3.5 changelog
Signed-off-by: Allen Ray <alray@redhat.com>
2022-10-28 13:07:59 -04:00
Marek Siarkowicz
ac1b07626d
Merge pull request #14625 from vivekpatani/main
.github: add govuln check
2022-10-28 15:52:51 +02:00
nic-chen
6f6275e1ab chore: update the warn message on startup when the server name is default
Signed-off-by: nic-chen <chenjunxu6@gmail.com>
2022-10-28 20:56:45 +08:00
Marek Siarkowicz
52cac17c24
Merge pull request #14639 from vivekpatani/upgrade-1.19.2
*: bump to go1.19.2 from 1.19.1
2022-10-28 05:04:19 +02:00
vivekpatani
680310a6c9 *: bump to go1.19.2 from 1.19.1
- update .github workflows
- update tests

Signed-off-by: vivekpatani <9080894+vivekpatani@users.noreply.github.com>
2022-10-27 18:45:02 -07:00
Benjamin Wang
1570dc9c43
Merge pull request #14574 from veshij/main
etcdserver: call refreshRangePermCache on Recover() in AuthStore.
2022-10-28 06:39:21 +08:00
Oleg Guba
fbed8cb645 etcdserver: call refreshRangePermCache on Recover() in AuthStore
Signed-off-by: Oleg Guba <oleg@dropbox.com>
2022-10-27 15:05:05 -07:00
Oleg Guba
b22e3ff4eb Allow passing client options to Client()
Signed-off-by: Oleg Guba <oleg@dropbox.com>
2022-10-27 14:08:23 -07:00
Marek Siarkowicz
c45f3388ac
Merge pull request #14632 from clarkfw/functional-options-pattern-of-cluster-config
tests: add a ClusterOption interface for ClusterSize in config.Cluster
2022-10-27 16:29:57 +02:00
Benjamin Wang
b9c0684981
Merge pull request #14637 from veshij/hashkv_fix
[e2e] don't pass --endpoints flag in test HashKV implementation
2022-10-27 18:12:01 +08:00
Oleg Guba
47c558e605 [e2e] don't pass --endpoints flag in test HashKV implementation
Signed-off-by: Oleg Guba <oleg@dropbox.com>
2022-10-27 02:02:58 -07:00
Benjamin Wang
c3fa71b960
Merge pull request #14635 from falser101/fix/14169
fix: close conn
2022-10-27 13:45:32 +08:00
jianfei.zhang
d75d1e575a fix: close conn
Signed-off-by: jianfei.zhang <jianfei.zhang@daocloud.io>
2022-10-27 11:09:14 +08:00
Benjamin Wang
1e124262bc
Merge pull request #14613 from nic-chen/fix/duplicate-cluster-name
fix: add a warning message on startup if the server name is default
2022-10-27 09:25:21 +08:00
vivekpatani
5c0d653958 .github: add govuln check
- add job for govuln job
- allow to continue on failure, until all issues are addressed
- address: https://github.com/etcd-io/etcd/issues/14449

Signed-off-by: vivekpatani <9080894+vivekpatani@users.noreply.github.com>
2022-10-26 17:25:35 -07:00
nic-chen
191fb306ef fix: apply review suggestion
Signed-off-by: nic-chen <chenjunxu6@gmail.com>
2022-10-27 08:23:22 +08:00
Benjamin Wang
9bc4a63a41
Merge pull request #14626 from chaochn47/auth_test_fix
common test: update auth test interface
2022-10-27 06:45:30 +08:00
Clark
e28b66f751 tests: add a ClusterOption interface for ClusterSize in config.ClusterConfig
Signed-off-by: Clark <fwyongxing@gmail.com>
2022-10-26 23:41:09 +08:00
nic-chen
d4fbfb8cfb fix: add a warning message on startup if the server name is default
Signed-off-by: nic-chen <chenjunxu6@gmail.com>
2022-10-26 23:30:25 +08:00
Chao Chen
f3c47d760c update auth test interface
Signed-off-by: Chao Chen <chaochn@amazon.com>
2022-10-26 09:56:22 -04:00
Benjamin Wang
5550041633
Merge pull request #14629 from clarkfw/fix-anti-pattern-naming
test: fix anti-pattern naming problem in config.ClusterConfig
2022-10-26 20:01:43 +08:00
Benjamin Wang
2fcf197e68
Merge pull request #14628 from ahrtr/withauth_default
test: define a default WithAuth to resolve Unresolved reference error
2022-10-26 18:44:44 +08:00
Benjamin Wang
5544f9ff61
Merge pull request #14630 from qsyqian/etcd-dump-db_enhance
etcd-dump-db: enhance metaDecoder
2022-10-26 17:55:37 +08:00