Commit Graph

17766 Commits

Author SHA1 Message Date
3c77c7fd3c Merge pull request #13591 from serathius/codeql
Remove CodeQL errors
2022-01-13 15:21:05 +01:00
4032d4f66a Remove CodeQL errors 2022-01-13 14:29:09 +01:00
e433d12656 Merge pull request #13594 from ahrtr/update_changelog_3.5_for_pull_13501
update CHANGELOG-3.5.md to cover the fix for issue 13494
2022-01-13 09:04:53 +01:00
6ef154e548 update CHANGELOG-3.5.md to cover the fix for issue 13494 2022-01-13 14:55:08 +08:00
f184dfd9dc Merge pull request #13590 from serathius/recordings
README: Cleanup community meetings video recordings
2022-01-12 18:43:59 +01:00
5e06fd40da README: Cleanup community meetings video recordings 2022-01-12 13:39:30 +01:00
eac6d71352 tests: Add integration test for revision monotonic under failure injection 2022-01-12 11:51:12 +01:00
e0a0fdc984 Merge pull request #13572 from microyahoo/update_lease_tools
update dump db tool
2022-01-12 10:33:28 +01:00
868c51b95a Merge pull request #13581 from spzala/versionsupport
Update supported versions and ref to the policy
2022-01-12 10:21:38 +01:00
ce086a4ba6 *: Bump to go 1.17.6
Signed-off-by: Manuel Rüger <manuel@rueg.eu>
2022-01-12 03:13:27 +01:00
746c0ea276 tests/Dockerfile: Update base to ubuntu 21.10
Signed-off-by: Manuel Rüger <manuel@rueg.eu>
2022-01-12 03:00:08 +01:00
cf7e8b3535 go.mod: Bump golang.org/x/net dependency; regenerate go.sum
Bumps golang.org/x/net dependency due to fix CVE-2021-44716
as requested in https://github.com/etcd-io/etcd/pull/13487#issuecomment-997065540

Signed-off-by: Manuel Rüger <manuel@rueg.eu>
2022-01-12 03:00:08 +01:00
9404d523b8 Build locally if docker-test container image does not exist
This should make it easier to bump the golang version
2022-01-12 03:00:08 +01:00
ce50f68166 *: Bump to go 1.17.5 2022-01-12 03:00:08 +01:00
6aac35dd32 v2auth: fix out of bounds in test 2022-01-10 19:06:07 +00:00
1e5bd39571 Update supported versions and ref to the policy
We support current release and two previous minor versions, and so
making changes accordingly. Also, adding link to the details of
the versioning.
2022-01-05 21:36:27 -05:00
a9652b4b4e fixing the leaks in TestStressWatchCancelClose 2022-01-04 17:57:19 -05:00
96a9fd0a1e Merge pull request #13574 from cunnie/defer_cancel
Golang Client docs: defer `cancel()`, avoid erroring
2022-01-03 20:03:22 -05:00
a96f5ee8a1 Merge pull request #13577 from sayap/auth-graceful-disable
Disable auth gracefully without impacting existing watchers
2022-01-03 20:02:21 -05:00
0cc789d81d update dump db tool
Signed-off-by: Liang Zheng <zhengliang0901@gmail.com>
2022-01-01 00:13:33 +08:00
17fd2e7282 Disable auth gracefully without impacting existing watchers
This attempts to fix a special case of the problem described in #12385,
where trying to do `clientv3.Watch` with an expired token would result
in `ErrGRPCPermissionDenied`, due to the failing authorization check in
`isWatchPermitted`. Furthermore, the client can't auto recover, since
`shouldRefreshToken` rightly returns false for the permission denied
error.

In this case, we would like to have a runbook to dynamically disable
auth, without causing any disruption. Doing so would immediately expire
all existing tokens, which would then cause the behavior described
above. This means existing watchers would still work for a period of
time after disabling auth, until they have to reconnect, e.g. due to a
rolling restart of server nodes.

This commit adds a client-side fix and a server-side fix, either of
which is sufficient to get the added test case to pass. Note that it is
an e2e test case instead of an integration one, as the reconnect only
happens if the server node is stopped via SIGINT or SIGTERM.

A generic fix for the problem described in #12385 would be better, as
that shall also fix this special case. However, the fix would likely be
a lot more involved, as some untangling of authn/authz is required.
2021-12-31 14:39:46 +07:00
5620a9c227 Golang Client docs: defer cancel(), avoid erroring
In the sample code demonstrating how to specify a client request
timeout, the `cancel()` is called immediately after the Put, but it
should be deferred instead, giving the Put enough time to complete.

In the canonical Golang context
[docs](https://pkg.go.dev/context#WithTimeout), the sample code sets a
`defer cancel()` immediately after context creation, and with this
commit we adhere to that convention.

fixes:
```json
{
  "level": "warn",
  "ts": "2021-12-29T09:56:42.439-0800",
  "logger": "etcd-client",
  "caller": "v3@v3.5.1/retry_interceptor.go:62",
  "msg": "retrying of unary invoker failed",
  "target": "etcd-endpoints://0xc000213340/localhost:2379",
  "attempt": 0,
  "error": "rpc error: code = Canceled desc = context canceled"
}
```
2021-12-29 14:10:36 -08:00
77bf0a5a9e update cobra version to 1.2.1
Signed-off-by: yankay <kay.yan@daocloud.io>
2021-12-29 17:35:25 +08:00
97d1f935f6 avoid always update meta term. 2021-12-29 11:23:38 +08:00
df8efd3853 Fix goroutine leaks in TestCommitPagination
raft: fix goroutine leaks in TestCommitPagination

The goroutine created with n.run() will leak if we forget to call n.Stop().

We can replay the goroutine leaks by using [goleak](https://github.com/uber-go/goleak):

```
$ cd raft &&  env go test -short -v -timeout=3m --race -run=TestCommitPagination.
... ...
raft2021/12/27 20:47:15 INFO: raft.node: 1 elected leader 1 at term 1
    leaks.go:78: found unexpected goroutines:
        [Goroutine 20 in state select, with go.etcd.io/etcd/raft/v3.(*node).run on top of the stack:
        goroutine 20 [select]:
        go.etcd.io/etcd/raft/v3.(*node).run(0xc00036f260)
                /home/yuanting/work/dev/goprojects/etcd/raft/node.go:344 +0xc1d
        created by go.etcd.io/etcd/raft/v3.TestCommitPagination
                /home/yuanting/work/dev/goprojects/etcd/raft/node_test.go:920 +0x554
        ]
--- FAIL: TestCommitPagination (0.45s)
FAIL
FAIL    go.etcd.io/etcd/raft/v3 0.508s
FAIL
```
2021-12-27 20:55:02 +08:00
e6f28dbeb2 Fix goroutine leaks in TestNodeProposeAddDuplicateNode
raft: fix goroutine leaks in TestNodeProposeAddDuplicateNode

The goroutine created with `n.run()` will leak if we forget to call `n.Stop()`
2021-12-27 20:36:26 +08:00
98b0d901e8 fixing goroutine leaks 2021-12-24 15:57:38 -05:00
f24e0234b3 Use Distroless as base image
Signed-off-by: yankay <kay.yan@daocloud.io>
2021-12-23 21:23:58 +08:00
661e0a91ef added a new flag --rev to make-mirror command to support incremental mirror 2021-12-22 16:59:44 +08:00
a45c73d9b1 resolve the conflict 2021-12-21 17:49:47 -05:00
69279532f4 Merge pull request #13540 from songlh-psu/fixing-3
fixing one panic and two goroutine leaks
2021-12-21 11:03:59 +01:00
1e4a345706 Merge pull request #13545 from dbussink/build-apple-m1
server/etcdmain: add build support for Apple M1
2021-12-21 11:00:58 +01:00
5b0bb07cb0 Merge pull request #13500 from ahrtr/reset_ci_after_reload_db
Set the backend again after recovering v3 backend from snapshot
2021-12-21 10:50:30 +01:00
0bdc660ec2 Merge pull request #13537 from songlh/main
fix potential goroutine leaks
2021-12-21 10:47:54 +01:00
246e7eba09 fixing the goroutine in two unit tests 2021-12-21 04:46:39 -05:00
7ff2c7714e Merge pull request #13546 from justaugustus/debian-base-bullseye
images: Use Kubernetes debian-base:bullseye-v1.1.0 as base image
2021-12-21 10:44:03 +01:00
5e8f50bb09 remove the extra stop 2021-12-17 20:03:19 -05:00
bbb187dcc0 images: Use Kubernetes debian-base:bullseye-v1.1.0 as base image
Signed-off-by: Stephen Augustus <foo@auggie.dev>
2021-12-17 16:06:37 -05:00
ddb9554eec server/etcdmain: add build support for Apple M1
This has been additionally verified by running the tests locally as a
basic smoke test. GitHub Actions doesn't provide MacOS M1 (arm64) yet,
so there's no good way to automate testing.

Ran `TMPDIR=/tmp make test` locally. The `TMPDIR` bit is needed so
there's no really long path used that breaks Unix socket setup in one of
the tests.
2021-12-17 17:35:36 +01:00
42840d0fda Merge pull request #13528 from ahrtr/update_test_remove_redundant_line
Remove the redundant line from test.sh
2021-12-16 11:47:39 +01:00
0098dbf350 fixing two goroutine leaks and one panic 2021-12-15 22:38:25 -05:00
0213b8baed fixing goroutine leaks in testServer 2021-12-15 02:43:49 -05:00
3ebd0a7d00 fixing the goroutine leak in TestBackendClose 2021-12-15 01:54:51 -05:00
d1194977eb fix potential goroutine leaks in TestTxnPanics 2021-12-15 01:22:56 -05:00
793e081a5b remove the redundant line from test.sh 2021-12-10 05:05:48 +08:00
29292aa7bd Merge pull request #13505 from LeoYang90/fix_watchable_runlock
fix watchablestore runlock bug
2021-12-03 12:21:30 +01:00
7be1464ef1 set the backend again after recovering v3 backend from snapshot 2021-12-03 05:52:12 +08:00
170d9b9d73 Merge pull request #13508 from serathius/checkpoints-fix
Lease Checkpoints fix
2021-12-02 16:08:40 +01:00
3e391f4fba Merge pull request #13513 from ahrtr/enhance_etcdctl_make_mirror_log
etcdctl: enhance the make-mirror command to return error asap when invalid flags are provided
2021-12-02 16:05:22 +01:00
48a7aab2bc server: Add lease checkpointing fix information to CHANGELOG 2021-12-02 14:36:57 +01:00