18359 Commits

Author SHA1 Message Date
Benjamin Wang
ed0730c02e update changelog for 3.4, 3.5 and 3.6 for the potential data loss in one-node cluster
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2022-09-06 05:19:45 +08:00
Benjamin Wang
3dc5348d94
Merge pull request #14419 from ahrtr/alarm_list_ci
Move consistent_index forward when executing alarmList operation
2022-09-06 03:50:58 +08:00
Benjamin Wang
73029fe89f
Merge pull request #14400 from ahrtr/one_member_data_loss_raft
[Second Solution] Fix the potential data loss for clusters with only one member (simpler solution)
2022-09-05 20:00:20 +08:00
Benjamin Wang
cc840336f0 move consistent_index forward when executing alarmList operation
The alarm list is the only exception that doesn't move consistent_index
forward. The reproduction steps are as simple as,

```
etcd --snapshot-count=5 &
for i in {1..6}; do etcdctl  alarm list; done
kill -9 <etcd_pid>
etcd
```

Signed-off-by: Benjamin Wang <wachao@vmware.com>
2022-09-05 10:05:55 +08:00
Benjamin Wang
4d57eb8d3b
Merge pull request #14360 from clarkfw/common-test-of-e2e-disable-strict-reconfig-check-by-default
tests: unify `--strict-reconfig-check` config of common framework
2022-09-05 03:24:07 +08:00
Clark
3f3149b15f tests: fix failed integration test cases after enabling --strict-reconfig-check by default
Signed-off-by: Clark <fwyongxing@gmail.com>
2022-09-03 15:56:51 +08:00
Benjamin Wang
3c79a4dc38
Merge pull request #14418 from lovehhf/update_goreman_install_comment
Procfiles: Update Goreman Installation Command
2022-09-03 15:18:10 +08:00
lovehhf
d8ddb2dc52 Procfiles: Update Goreman Installation Command
Starting in Go 1.17, Installing executables with go get is deprecated. go install may be used instead.

Refer to https://go.dev/doc/go-get-install-deprecation

Signed-off-by: Hongfei Huang <853885165@qq.com>
2022-09-03 10:34:19 +08:00
Clark
3beb25489d tests: enable --strict-reconfig-check by default and expose it to common framework
Signed-off-by: Clark <fwyongxing@gmail.com>
2022-08-31 22:21:23 +08:00
Benjamin Wang
5707147363
Merge pull request #14391 from cenkalti/revive
Add revive to the list of linters.
2022-08-31 16:38:51 +08:00
Benjamin Wang
30d5f0a8f9
Merge pull request #14392 from cenkalti/golangci-lint-github-action
Setup golangci-lint GitHub action
2022-08-31 16:21:15 +08:00
Benjamin Wang
a285b06d63
Merge pull request #14405 from Abirdcfly/main
chore: remove duplicate word in comments
2022-08-31 16:19:30 +08:00
Abirdcfly
858afba44e
chore: remove duplicate word in comments
Signed-off-by: Abirdcfly <fp544037857@gmail.com>
2022-08-30 20:00:26 +08:00
Benjamin Wang
2a10049e47 fix the potential data loss for clusters with only one member
For a cluster with only one member, the raft always send identical
unstable entries and committed entries to etcdserver, and etcd
responds to the client once it finishes (actually partially) the
applying workflow.

When the client receives the response, it doesn't mean etcd has already
successfully saved the data, including BoltDB and WAL, because:
   1. etcd commits the boltDB transaction periodically instead of on each request;
   2. etcd saves WAL entries in parallel with applying the committed entries.
Accordingly, it may run into a situation of data loss when the etcd crashes
immediately after responding to the client and before the boltDB and WAL
successfully save the data to disk.
Note that this issue can only happen for clusters with only one member.

For clusters with multiple members, it isn't an issue, because etcd will
not commit & apply the data before it being replicated to majority members.
When the client receives the response, it means the data must have been applied.
It further means the data must have been committed.
Note: for clusters with multiple members, the raft will never send identical
unstable entries and committed entries to etcdserver.

Signed-off-by: Benjamin Wang <wachao@vmware.com>
2022-08-30 15:29:20 +08:00
Marek Siarkowicz
cdd2b737f0
Merge pull request #14401 from ahrtr/ctx_error_20220830
[test] Fix test code compiling error due to not enough arguments
2022-08-30 09:18:21 +02:00
Benjamin Wang
e1c5d2a9ac fix test code compiling error due to not enough arguments in call to node0.Restart
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2022-08-30 13:15:04 +08:00
Piotr Tabor
77773c7798
Merge pull request #14374 from Comolli/main
Reduce redundant code and memory allocation.
2022-08-29 21:15:06 +02:00
Piotr Tabor
de41f83343
Merge pull request #14383 from serathius/context-e2e
tests: Add context to e2e cluster start
2022-08-29 21:12:12 +02:00
Marek Siarkowicz
f56e0d0e15
Merge pull request #14395 from ahrtr/SpawnCmdWithLogger_name
[test] add the missing parameter 'name' into SpawnCmdWithLogger for cov test
2022-08-29 09:02:07 +02:00
Benjamin Wang
fdf22b241a add the missing parameter 'name' into SpawnCmdWithLogger for cov test
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2022-08-29 13:37:23 +08:00
Cenk Alti
66d37aaf1d
Setup golangci-lint GitHub action.
Part of "Enhance the static-analysis workflow" issue. #14164

Signed-off-by: Cenk Alti <cenkalti@gmail.com>
2022-08-27 14:06:11 -04:00
Cenk Alti
f8b65d53ba
Add revive to the list of linters.
Part of "Enhance the static-analysis workflow" issue. #14164

Signed-off-by: Cenk Alti <cenkalti@gmail.com>
2022-08-27 13:41:14 -04:00
Benjamin Wang
eb25e433cd
Merge pull request #14390 from Abirdcfly/main
chore: remove duplicate word in comments
2022-08-27 15:38:03 +08:00
Abirdcfly
08a9d1da07
chore: remove duplicate word in comments
Signed-off-by: Abirdcfly <fp544037857@gmail.com>
2022-08-27 13:39:48 +08:00
Hitoshi Mitake
9c8326bb50
Merge pull request #14358 from vivekpatani/main
server/auth: refresh cache on each NewAuthStore
2022-08-27 11:13:59 +09:00
Benjamin Wang
a3f15645d8
Merge pull request #14386 from DevMayurJ/main
Readme: Removed unnecessary comma.
2022-08-26 19:05:55 +08:00
Benjamin Wang
dc4b810195
Merge pull request #14388 from niconorsk/fix/notify-systemd-when-cluster-ready-times-out
etcdmain: Honour ExperimentalWaitClusterReadyTimeout in startEtcd
2022-08-26 18:34:52 +08:00
Nicolai Moore
e15bdd9df1 etcdmain: Honour ExperimentalWaitClusterReadyTimeout in startEtcd
When we can't reach quorum, we were waiting forever and never sending
the systemd notify message. As a result, systemd would eventually time out
and restart the etcd process which likely would make the unhealthy cluster
in an even worse state

Improves #13785

Signed-off-by: Nicolai Moore <niconorsk@gmail.com>
2022-08-26 18:06:50 +10:00
Benjamin Wang
f00578c3cd
Merge pull request #14389 from ahrtr/cleanup_e2e_fields
Cleanup some e2e test configurations
2022-08-26 15:05:53 +08:00
Marek Siarkowicz
70de5c8937 tests: Add context to e2e cluster start
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2022-08-26 08:08:17 +02:00
Marek Siarkowicz
dd3cf97dfb
Merge pull request #14381 from serathius/context
Add context to tests common client interface
2022-08-26 08:06:16 +02:00
Benjamin Wang
17b83ea810 Cleanup some e2e test configurations
Notes:
1. compactPhysical in ctlCtx and withQuota aren't used at all, they are dead code.
2. quotaBackendBytes in ctlCtx isn't used either. Instead, users (test cases) set the QuotaBackendBytes directly.

Signed-off-by: Benjamin Wang <wachao@vmware.com>
2022-08-26 13:53:33 +08:00
Marek Siarkowicz
46fe4b8e1c tests: Rename common client lease methods to match
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2022-08-26 07:12:47 +02:00
Marek Siarkowicz
b7272df69f tests: Remove dummy client implementations
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2022-08-26 07:12:47 +02:00
Marek Siarkowicz
72bec6fbc2 tests: Add context to common client interface
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2022-08-26 07:12:45 +02:00
DevMayurJ
b39506b4e7 Update README.md
Signed-off-by: Mayur Jadhav <jadhav.mayur30@gmail.com>
2022-08-26 09:32:20 +05:30
Benjamin Wang
e40828540c
Merge pull request #14354 from biosvs/add-client-auto-sync-to-proxy
Added client-auto-sync-interval argument to the grpc-proxy
2022-08-26 05:36:01 +08:00
Vitalii Levitskii
be58a2539c Added client-auto-sync-interval argument to the grpc-proxy
Signed-off-by: Vitalii Levitskii <vitalii@uber.com>
2022-08-25 15:33:38 +03:00
Marek Siarkowicz
f36a8782f0
Merge pull request #14345 from nic-chen/tests/watch
tests: Migrate watch test to common framework
2022-08-25 13:35:34 +02:00
Benjamin Wang
96a2669839
Merge pull request #14380 from ahrtr/cleanup_etcdctl_mod
Cleanup the go.mod for etcdctl
2022-08-25 16:14:50 +08:00
Marek Siarkowicz
7086a06490
Merge pull request #14377 from tjungblu/flake_14333
Add ErrTimeoutDueToLeaderFail as expected error
2022-08-25 10:04:53 +02:00
Benjamin Wang
3196c2cb5f Cleanup the go.mod for etcdctl
etcdctl doesn't depend on the following packages at all,
1. go.etcd.io/etcd/client/v2
2. go.etcd.io/etcd/etcdutl/v3
3. go.etcd.io/etcd/raft/v3
4. go.etcd.io/etcd/server/v3

Signed-off-by: Benjamin Wang <wachao@vmware.com>
2022-08-25 13:30:55 +08:00
Benjamin Wang
82bf79d4ce
Merge pull request #14376 from biosvs/fix-expect-package
Fixed infinite loop in ExpectProcess.ExpectFunc
2022-08-25 05:29:30 +08:00
Marek Siarkowicz
e363480089
Merge pull request #14378 from spzala/removeircref
Remove IRC ref
2022-08-24 22:28:26 +02:00
Sahdev Zala
e3787ef706 Remove IRC ref
The IRC is not used and so removing it as per previous discussion
with the etcd team.

Signed-off-by: Sahdev Zala <spzala@us.ibm.com>
2022-08-24 15:52:05 -04:00
Vitalii Levitskii
71c5360f98 Fixed infinite loop in ExpectProcess.ExpectFunc
Signed-off-by: Vitalii Levitskii <vitalii@uber.com>
2022-08-24 16:46:24 +03:00
Thomas Jungblut
e1e92e9c0d Add ErrTimeoutDueToLeaderFail as expected error
This fixes ci flakes where timeouts are expected to happen in network
partitions.
issue: #14333

Signed-off-by: Thomas Jungblut <tjungblu@redhat.com>
2022-08-24 13:56:45 +02:00
vivekpatani
ae608da7e6 server,test: refresh cache on each NewAuthStore
- permissions were incorrectly loaded on restarts.
- https://github.com/etcd-io/etcd/issues/14355

Signed-off-by: vivekpatani <9080894+vivekpatani@users.noreply.github.com>
2022-08-23 20:11:47 -07:00
Benjamin Wang
c29dbf3400
Merge pull request #14367 from ahrtr/update_3.5_changelog_keepalive
Update changelog-3.5 to cover the change for refactoring the keepAliveListener and keepAliveConn
2022-08-24 10:14:42 +08:00
comolli
a5515171c3 Reduce redundant code and memory allocation.
Signed-off-by: comolli <liangweicheng2@gmail.com>
2022-08-24 09:15:34 +08:00