Commit Graph

18359 Commits

Author SHA1 Message Date
Sahdev Zala
35801ddf02 Add an initial features doc
Add an overview and initial development guidelines. Restructured
the doc for a better readabiltiy and easier review, and per the
previous review feedback. The TODOs will be addressed iteratively.

Related #13775

Signed-off-by: Sahdev Zala <spzala@us.ibm.com>
2022-09-14 17:53:55 -04:00
Sahdev Zala
d38132e367 Add features dev and support policy doc
Addressed feedback with some added thoughts. Also, added
Unsafe features.

Related #13775

Signed-off-by: Sahdev Zala <spzala@us.ibm.com>
2022-09-10 16:46:00 -04:00
Sahdev Zala
e782619415 Add features dev and support policy doc
Related https://github.com/etcd-io/etcd/issues/13775

Signed-off-by: Sahdev Zala <spzala@us.ibm.com>
2022-09-07 11:15:10 -04: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
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