Compare commits

...

2027 Commits

Author SHA1 Message Date
1db0fc5818 Merge pull request #19616 from mmorel-35/testifier/tests/integration
chore: use testify instead of testing in tests/integration
2025-03-24 15:57:36 +00:00
baeb60ab82 Merge pull request #19634 from fuweid/introduce-new-way-to-setup-cluster
e2e: add upgrade test for clusters set up by promoted members
2025-03-24 15:45:46 +00:00
473a5ffa05 Merge pull request #19650 from ahrtr/changelog_learner_20250324
Update 3.6 changelog for the fix to auto sync member in v3store
2025-03-24 15:09:39 +00:00
211f9e52cb e2e: add upgrade test for clusters set up by promoted members
Signed-off-by: Wei Fu <fuweid89@gmail.com>
2025-03-24 09:48:40 -04:00
f4a08f77d4 update 3.6 changelog for the fix to auto sync member in v3store
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-03-24 12:13:48 +00:00
6b76999f51 Merge pull request #19639 from ivanvc/release-notes-set-3.5.20-date
CHANGELOG-3.5: Set v3.5.20 release date
2025-03-22 16:08:45 +00:00
9c7ffc32f0 Merge pull request #19631 from joshjms/split-test-lib
Split `scripts/test_lib.sh`
2025-03-22 22:00:13 +08:00
fd4fc82d40 Merge pull request #19640 from ahrtr/cv_20250321
Returns the string representation of the `ClusterVersion`
2025-03-22 07:48:13 +00:00
ee2f4e0e9b return the string representative of the CurrentVersion value
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-03-21 22:00:06 +00:00
e55e55b1bb CHANGELOG-3.5: Set v3.5.20 release date
Add entries from pull requests that were released.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-03-21 13:25:31 -07:00
5e272463f7 Merge pull request #19637 from ahrtr/upgrade_refactor_20250321
minor refactor DowngradeUpgradeMembersByID to not block on waiting fo…
2025-03-21 18:33:04 +00:00
29878cf735 minor refactor DowngradeUpgradeMembersByID to not block on waiting for member to be ready
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-03-21 17:09:02 +00:00
dc45df0cad Merge pull request #19424 from ivanvc/remove-codecov-github-workflow
github/workflows: remove coverage workflow
2025-03-21 07:55:28 +00:00
fb53c4a376 Merge pull request #19625 from siyuanfoundation/doc
doc: update feature development guide.
2025-03-20 18:27:25 +00:00
343b14ba06 source test_utils.sh
Signed-off-by: joshjms <joshjms1607@gmail.com>

fix: update comments

Signed-off-by: joshjms <joshjms1607@gmail.com>
2025-03-20 10:34:59 +08:00
cd077a806d refactor: split test_lib.sh into test_utils.sh for basic functionalities and test_lib.sh
Signed-off-by: joshjms <joshjms1607@gmail.com>

fix shell scripts

Signed-off-by: joshjms <joshjms1607@gmail.com>
2025-03-20 10:34:59 +08:00
53b88df4a7 Merge pull request #19632 from ArkaSaha30/deps_mgmt_17_03_25
[2025-03-17] Manual Dependency Bump
2025-03-20 09:06:30 +13:00
495176a033 dependency: bump gotest.tools/gotestsum from 1.12.0 to 1.12.1
This commit will bump gotest.tools/gotestsum from 1.12.0 to 1.12.1

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-03-19 23:05:57 +05:30
dd233b46cd dependency: bump github.com/golangci/golangci-lint from 1.64.6 to 1.64.7
This commit will bump github.com/golangci/golangci-lint from 1.64.6 to 1.64.7

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-03-19 23:01:04 +05:30
4ea0bb6e46 dependency: bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.34.0 to 1.35.0
This commit will bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.34.0 to 1.35.0
Also, it bumps indirect dependency: go.opentelemetry.io/otel/exporters/otlp/otlptrace from 1.34.0 to 1.35.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-03-19 22:58:07 +05:30
bb855eb570 dependency: bump golang.org/x/time from 0.10.0 to 0.11.0
This commit will bump golang.org/x/time from 0.10.0 to 0.11.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-03-19 22:42:14 +05:30
2e568f6ff6 dependency: bump google.golang.org/grpc from 1.70.0 to 1.71.0
This commit will bump google.golang.org/grpc from 1.70.0 to 1.71.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-03-19 22:30:05 +05:30
4aee7f109b Merge pull request #19628 from henrybear327/devcontainer/drop-dev
Use go:1.24-bookworm for devcontainer
2025-03-20 00:08:25 +08:00
5eac5996f7 Use go:1.24-bookworm for devcontainer
Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2025-03-19 08:10:52 +01:00
3a6b064da3 doc: update feature development guide.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2025-03-18 08:40:55 -07:00
040e5ed65c Merge pull request #19585 from ArkaSaha30/deps_mgmt_10_03_25
[2025-02-10] Manual Dependency Bump
2025-03-17 07:41:32 +00:00
b988791c8e Merge pull request #19594 from ivanvc/rename-robustness-makefile
test/robustness: rename makefile.mk to Makefile
2025-03-16 12:59:27 +01:00
2555efddbf Merge pull request #19610 from henrybear327/robustness/fix_typo
Fix wrong error message in `loadKeyValueOperations`
2025-03-16 12:51:12 +01:00
d05b8b7611 chore: use testify instead of testing in tests/integration
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-03-15 19:29:30 +01:00
b692041b69 Fix wrong error message in loadKeyValueOperations
Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2025-03-15 13:33:13 +01:00
f07e2ae4ed Merge pull request #19609 from henrybear327/robustness/improve_readme
Update the robustness test README
2025-03-15 13:16:27 +01:00
49b4137746 Update the robustness test README
- wordsmithing
- fix broken links

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2025-03-15 10:42:03 +01:00
40f21b203b dependency: bump github.com/anishathalye/porcupine from v1.0.0 to v1.0.2
This commit will bump github.com/anishathalye/porcupine from v1.0.0 to v1.0.2

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-03-15 13:32:25 +05:30
a2eedb9093 Merge pull request #19582 from henrybear327/ci/update-devcontainer-1.24
Bump devcontainer version to 1.24
2025-03-15 07:43:52 +00:00
5122d43d87 Merge pull request #19596 from mmorel-35/usetesting/tests/robustness
tests/robustness: address Go 1.24 usetesting issues
2025-03-14 17:30:04 +00:00
d100da7431 Merge pull request #19595 from mmorel-35/usetesting/tests/framework
tests/framework: address Go 1.24 usetesting issues
2025-03-14 17:29:51 +00:00
e31514dc84 Merge pull request #19593 from mmorel-35/usetesting/tests/e2e
tests/e2e: address Go 1.24 usetesting issues
2025-03-14 17:29:38 +00:00
630fb0a43b Merge pull request #19592 from mmorel-35/usetesting/tests/common
tests/common:  address Go 1.24 usetesting issues
2025-03-14 17:29:23 +00:00
c571cff478 Merge pull request #19591 from mmorel-35/usetesting/etcdutl
etcdutl: address Go 1.24 usetesting issues
2025-03-14 17:29:12 +00:00
be3eee2597 test/robustness: rename makefile.mk to Makefile
Allow to execute make targets from the tests/robustness directory.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-03-14 09:44:03 -07:00
82a3e6fe27 Merge pull request #19603 from ahrtr/changelog_etcdctl_20250314
Update 3.5 changelog to cover the member promotion command not suppor…
2025-03-14 14:38:57 +00:00
c2701197fb Update 3.5 changelog to cover the member promotion command not support json output issue
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-03-14 13:03:06 +00:00
aedecad09f dependency: bump github.com/prometheus/client_golang from 1.21.0 to 1.21.1
This commit will bump github.com/prometheus/client_golang from 1.21.0 to 1.21.1

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-03-14 15:34:42 +05:30
5eeacec087 dependency: bump github.com/alexfalkowski/gocovmerge from 1.4.0 to 1.6.0
This commit will bump github.com/alexfalkowski/gocovmerge from 1.4.0 to 1.6.0
As an indirect dependency it also bumps,
- golang.org/x/crypto from 0.35.0 to 0.36.0
- golang.org/x/net from 0.36.0 to 0.37.0
- golang.org/x/sync from 0.11.0 to 0.12.0
- golang.org/x/text from 0.22.0 to 0.23.0
- golang.org/x/mod from 0.23.0 to 0.24.0
- golang.org/x/term from 0.29.0 to 0.30.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-03-14 15:34:42 +05:30
41cc8cd3f7 dependency: bump honnef.co/go/tools from 0.6.0 to 0.6.1
This commit will bump honnef.co/go/tools from 0.6.0 to 0.6.1

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-03-14 15:34:42 +05:30
a72780654d dependency: bump go.opentelemetry.io/otel/sdk from 1.34.0 to 1.35.0
This commit will bump go.opentelemetry.io/otel/sdk from 1.34.0 to 1.35.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-03-14 15:34:42 +05:30
75742cf025 dependency: bump golang.org/x/sys from 0.30.0 to 0.31.0
This commit will bump golang.org/x/sys from 0.30.0 to 0.31.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-03-14 15:34:29 +05:30
8b4c2cc11e Merge pull request #19590 from mmorel-35/usetesting/server
server: address Go 1.24 usetesting issues
2025-03-14 09:24:35 +00:00
ce5620760b Merge pull request #19589 from mmorel-35/usetesting/client
client: address Go 1.24 usetesting issues
2025-03-14 09:24:07 +00:00
a5bef1b837 Merge pull request #19572 from ahrtr/new_approver_20250311
Nominate @fuweid as a new approver
2025-03-13 22:07:02 +00:00
d87cb88d57 tests/common: address Go 1.24 usetesting issues
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-03-13 22:03:50 +01:00
175f18ee8e tests/framework: address Go 1.24 usetesting issues
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-03-13 20:18:20 +01:00
b92073d1cb tests/e2e: address Go 1.24 usetesting issues
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-03-13 20:16:52 +01:00
2717859dab tests/robustness: address Go 1.24 usetesting issues
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-03-13 20:11:57 +01:00
6c69b1a709 etcdutl: address Go 1.24 usetesting issues
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-03-13 19:59:09 +01:00
dc6db52c34 server: address Go 1.24 usetesting issues
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-03-13 19:53:48 +01:00
3e207cfda0 client: address Go 1.24 usetesting issues
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-03-13 19:48:50 +01:00
a3b17f5ba8 dependency: bump go.opentelemetry.io/otel from 1.34.0 to 1.35.0
This commit will bump go.opentelemetry.io/otel from 1.34.0 to 1.35.0
Also bumps,
- go.opentelemetry.io/otel/trace from 1.34.0 to 1.35.0
- go.opentelemetry.io/otel/metric from 1.34.0 to 1.35.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-03-13 14:45:35 +05:30
05d57531e4 Merge pull request #19576 from ivanvc/client-pkg-go-1.24-usetesting-errors
client/pkg: address Go 1.24 usetesting issues
2025-03-13 20:20:02 +13:00
6984bbe731 Merge pull request #19575 from ivanvc/pkg-go-1.24-usetesting-errors
pkg: address Go 1.24 usetesting issues
2025-03-13 20:19:42 +13:00
5eca42b3cf Bump devcontainer version to 1.24
According to the available image tag list [2],
the images for go 1.24 are all prefixed with
`dev-`. Thus, we are using the `dev-` prefixed
image version for now.

Reference:
[1] etcd-io#19524
[2] https://mcr.microsoft.com/v2/devcontainers/go/tags/list

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2025-03-12 21:43:39 +00:00
f4c40b7fd0 Merge pull request #19425 from Zanda256/tooling_markdown_lint
Tooling for markdown linting
2025-03-13 09:47:09 +13:00
3f20b705fe client/pkg: address Go 1.24 usetesting issues
Use the test package's provided Chdir function. Therefore, it's not
required to evaluate an error (it doesn't return one) or change
directories at the end.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-03-11 17:35:54 -07:00
619d949b8d pkg: address Go 1.24 usetesting issues
Replace Contexts with the one provided by the test package.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-03-11 16:50:13 -07:00
4804c48d8b Nominate @fuweid as a new approver
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-03-11 09:57:02 +00:00
ffb6ff9acf Merge pull request #19564 from etcd-io/dependabot/github_actions/github/codeql-action-3.28.11
build(deps): bump github/codeql-action from 3.28.10 to 3.28.11
2025-03-11 17:40:30 +13:00
6635bf633e build(deps): bump github/codeql-action from 3.28.10 to 3.28.11
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.10 to 3.28.11.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](b56ba49b26...6bb031afdd)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-10 18:02:53 +00:00
3c916bb258 Merge pull request #19554 from rsafonseca/fix_proxy_bug
fix: grpcproxy can get stuck in and endless loop causing high cpu usage
2025-03-10 10:17:08 +01:00
dc09500b8f Merge pull request #19555 from ivanvc/remove-experimental-max-learners
server: remove ExperimentalMaxLearners
2025-03-10 09:16:24 +00:00
06edd83d28 server: remove ExperimentalMaxLearners
ExperimentalMaxLearners was introduced in v3.6, so there's no need to
worry about deprecating, it can be migrated straight into a FeatureGate.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-03-07 22:22:43 -08:00
f4e1d0e1bc Add marckdowncli linting script, config file and makefile target to enable markdown linting
Signed-off-by: Sekiranda <sekirandahamza@gmail.com>
2025-03-07 16:35:02 +03:00
d0b8863552 Merge pull request #19552 from serathius/robustness-client-put-count
Use clientPutCount instead of persistedPutCount as not all client requests are persisted
2025-03-07 14:03:38 +01:00
85d90d9dd9 fix: grpcproxy can get stuck in and endless loop causing high cpu usage
Signed-off-by: Rafael da Fonseca <rafael.fonseca@wildlifestudios.com>
2025-03-07 11:11:59 +00:00
890990c32c Use clientPutCount instead of persistedPutCount as not all client requests are persisted
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2025-03-07 10:52:54 +01:00
22b5b78530 Merge pull request #19383 from joshuazh-x/issue-19303
fix: skip duplicated puts when calculating put return time
2025-03-07 10:35:15 +01:00
9f1709e015 Merge pull request #19546 from ivanvc/use-go-mod-instead-of-go-list-in-release-scripts
scripts/release: Use `go mod` instead of `go list`
2025-03-06 11:59:08 +01:00
8e4de789e5 Merge pull request #19440 from ivanvc/bump-go-to-1.24.0
Bump go toolchain to 1.24.1
2025-03-06 07:51:04 +00:00
7e66d3a9fc scripts/release: Use go mod instead of go list
Replace `go list -m` with `go mod edit -json`, as the latter can return
the same information. This will be helpful when the project migrates to
using a Go workspace, as it will return the current module defined in
go.mod rather than all the modules from the current directory (using a
workspace, the top-level go.mod will return all the child modules from
the repository).

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-03-05 22:50:15 -08:00
930bf4c41b Merge pull request #19543 from ivanvc/update-changelog-v3.5.19-v3.6.0-rc.2
Update changelog with v3.5.19 v3.6.0-rc.2 release dates
2025-03-06 19:18:07 +13:00
5dea90cc95 CHANGELOG: Set v3.6.0-rc.2 release date
Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-03-05 11:57:09 -08:00
b88df6ea53 CHANGELOG: Set v3.5.19 release date
Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-03-05 11:56:54 -08:00
f0a1ec501b Merge pull request #19538 from fuweid/deflaky-TestCompactionHash-in-integration
deflakey: TestCompactionHash in integration
2025-03-05 18:56:07 +00:00
7456d52dab Disable usetesting linter
The linter fails with several warnings from new Go 1.24 functions. Due
to the amount of changed lines, it will be better to address them in
several follow-up pull requests.

> 146 files changed, 1157 insertions(+), 1212 deletions(-)

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-03-05 09:06:14 -08:00
31650ab0c8 server: Fix TestLogRotation error message in Go 1.24
The embedded structure is now also part of the log message. The failure
from the tests is the following:

--- FAIL: TestLogRotation (0.00s)
    --- FAIL: TestLogRotation/invalid_logger_config (0.00s)
        config_test.go:868: test "invalid logger config", expected
        error: invalid log rotation config: json: cannot unmarshal
               bool into Go struct field logRotationConfig.maxsize
               of type int,
        got: invalid log rotation config: json: cannot unmarshal
             bool into Go struct field logRotationConfig.Logger.maxsize
             of type int
FAIL

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-03-05 09:05:57 -08:00
028773129a Bump go toolchain to 1.24.1
Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-03-05 09:00:05 -08:00
b58e9f522f deflakey: TestCompactionHash in integration
We should use WithCompactPhysical to wait for compaction to finish,
because 50ms sleep can't guarantee compaction is done.

Based on the log, the defragment is finished before compaction, which is
not expected. This patch is to make sure compaction should be finished
before assertation.

```
=========================== defragment ==============
    logger.go:146: 2025-02-27T07:57:18.652Z	INFO	m0	finished defragment	{"member": "m0"}
=====================================================

    logger.go:146: 2025-02-27T07:57:18.652Z	INFO	m0	grpc service status changed	{"member": "m0", "service": "", "status": "SERVING"}
    logger.go:146: 2025-02-27T07:57:18.653Z	INFO	grpc	[[core] [Channel #1457]Channel Connectivity change to SHUTDOWN]
    logger.go:146: 2025-02-27T07:57:18.653Z	INFO	grpc	[[core] [Channel #1457]Closing the name resolver]
    logger.go:146: 2025-02-27T07:57:18.653Z	INFO	grpc	[[core] [Channel #1457]ccBalancerWrapper: closing]
    logger.go:146: 2025-02-27T07:57:18.653Z	INFO	grpc	[[core] [Channel #1457 SubChannel #1458]Subchannel Connectivity change to SHUTDOWN]
    logger.go:146: 2025-02-27T07:57:18.653Z	INFO	grpc	[[core] [Channel #1457 SubChannel #1458]Subchannel deleted]
    logger.go:146: 2025-02-27T07:57:18.654Z	INFO	grpc	[[transport] [client-transport 0xc00237bd48] Closing: rpc error: code = Canceled desc = grpc: the client connection is closing]
    logger.go:146: 2025-02-27T07:57:18.654Z	INFO	grpc	[[transport] [client-transport 0xc00237bd48] loopyWriter exiting with error: rpc error: code = Canceled desc = grpc: the client connection is closing]
    logger.go:146: 2025-02-27T07:57:18.654Z	INFO	grpc	[[transport] [server-transport 0xc0006bb520] Closing: EOF]
    logger.go:146: 2025-02-27T07:57:18.654Z	INFO	grpc	[[core] [Channel #1457]Channel deleted]
    logger.go:146: 2025-02-27T07:57:18.654Z	INFO	grpc	[[transport] [server-transport 0xc0006bb520] loopyWriter exiting with error: transport closed by client]
    hash.go:82:
        	Error Trace:	/home/prow/go/src/github.com/etcd-io/etcd/server/storage/mvcc/testutil/hash.go:82
        	            				/home/prow/go/src/github.com/etcd-io/etcd/server/storage/mvcc/testutil/hash.go:44
        	Error:      	Not equal:
        	            	expected: testutil.KeyValueHash{Hash:0x94694091, CompactRevision:1278, Revision:2507}
        	            	actual  : testutil.KeyValueHash{Hash:0x58af47dc, CompactRevision:2488, Revision:2507}

        	            	Diff:
        	            	--- Expected
        	            	+++ Actual
        	            	@@ -1,4 +1,4 @@
        	            	 (testutil.KeyValueHash) {
        	            	- Hash: (uint32) 2489925777,
        	            	- CompactRevision: (int64) 1278,
        	            	+ Hash: (uint32) 1487882204,
        	            	+ CompactRevision: (int64) 2488,
        	            	  Revision: (int64) 2507
        	Test:       	TestCompactionHash
        	Messages:   	hashes do not match on rev 2488
    cluster.go:1423: ========= Cluster termination started =====================
    logger.go:146: 2025-02-27T07:57:18.655Z	INFO	grpc	[[core] [Channel #1377]Channel Connectivity change to SHUTDOWN]
    logger.go:146: 2025-02-27T07:57:18.655Z	INFO	grpc	[[core] [Channel #1377]Closing the name resolver]
    logger.go:146: 2025-02-27T07:57:18.655Z	INFO	grpc	[[core] [Channel #1377]ccBalancerWrapper: closing]
    logger.go:146: 2025-02-27T07:57:18.656Z	INFO	grpc	[[core] [Channel #1377 SubChannel #1378]Subchannel Connectivity change to SHUTDOWN]
    logger.go:146: 2025-02-27T07:57:18.656Z	INFO	grpc	[[core] [Channel #1377 SubChannel #1378]Subchannel deleted]
    logger.go:146: 2025-02-27T07:57:18.656Z	INFO	grpc	[[transport] [client-transport 0xc0025f2248] Closing: rpc error: code = Canceled desc = grpc: the client connection is closing]
    logger.go:146: 2025-02-27T07:57:18.656Z	INFO	grpc	[[transport] [client-transport 0xc0025f2248] loopyWriter exiting with error: rpc error: code = Canceled desc = grpc: the client connection is closing]
    logger.go:146: 2025-02-27T07:57:18.656Z	INFO	grpc	[[transport] [server-transport 0xc000b56ea0] Closing: EOF]

=========================== compaction ==============
    logger.go:146: 2025-02-27T07:57:18.656Z	INFO	m0	finished scheduled compaction	{"member": "m0", "compact-revision": 2488, "took": "129.590742ms", "hash": 2489925777, "current-db-size-bytes": 40960, "current-db-size": "41 kB", "current-db-size-in-use-bytes": 40960, "current-db-size-in-use": "41 kB"}
=====================================================
```

Fixes: #19497

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2025-03-05 11:56:36 -05:00
316991e8d1 Merge pull request #19523 from ArkaSaha30/deps_mgmt_5_2_25
[2025-02-03] Manual Dependency Bump
2025-03-05 23:32:30 +13:00
31ff0a9cc8 dependency: bump github.com/rogpeppe/go-internal from v1.13.1 to v1.14.1
This commit will bump inderect dependency(of github.com/golangci/golangci-lint)  github.com/rogpeppe/go-internal from v1.13.1 to v1.14.1

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-03-05 13:10:52 +05:30
b9ceba8c9f dependency: bump golang.org/x/net from v0.35.0 to v0.36.0
This commit will bump dependency golang.org/x/net from v0.35.0 to v0.36.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-03-05 13:10:52 +05:30
5da0dc0091 dependency: bump github.com/golangci/golangci-lint from 1.64.5 to 1.64.6
This commit will bump dependency github.com/golangci/golangci-lint from 1.64.5 to 1.64.6

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-03-05 13:10:52 +05:30
04710062d1 dependency: bump github.com/prometheus/client_golang from 1.20.5 to 1.21.0
This commit will bump dependency github.com/prometheus/client_golang from 1.20.5 to 1.21.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-03-05 13:10:52 +05:30
7c866508ef dependency: bump github.com/klauspost/compress from 1.17.9 to 1.18.0
This commit will bump dependency github.com/klauspost/compress from 1.17.9 to 1.18.0
which is an indirect dependency of the direct dependency: github.com/prometheus/client_golang

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-03-05 13:10:52 +05:30
fa3dca3f41 dependency: bump github.com/google/go-cmp from 0.6.0 to 0.7.0
This commit will bump dependency github.com/google/go-cmp from 0.6.0 to 0.7.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-03-05 13:10:43 +05:30
a9b24c6523 dependency: bump golang.org/x/crypto from 0.33.0 to 0.35.0
This commit will bump dependency golang.org/x/crypto from 0.33.0 to 0.35.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-03-05 13:10:42 +05:30
ceb11b7ce9 dependency: bump github.com/cheggaaa/pb/v3 from 3.1.6 to 3.1.7
This commit will bump dependency github.com/cheggaaa/pb/v3 from 3.1.6 to 3.1.7

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-03-05 13:10:42 +05:30
e69f9c78ac Merge pull request #19532 from ivanvc/update-changelog
Update CHANGELOGs with recent merged pull requests
2025-03-05 07:13:30 +00:00
bf9d6f588c Merge pull request #19520 from ivanvc/add-verity-released-assets-github-workflow
Add verify release assets GitHub workflow
2025-03-05 07:09:26 +00:00
fa9233bbbc Update CHANGELOGs with recent merged pull requests
Include notes from:

v3.4:
- #19529
- #19533

v3.5:
- #19528
- #19530

v3.6:
- #19495
- #19527
- #19531
- #19522

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-03-04 21:29:06 -08:00
215ab98a5f Add verify released binary assets GitHub workflow
Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-03-04 15:23:02 -08:00
3d381537cc Merge pull request #19521 from ahrtr/curl_watch_20250304
Fix the issue of etcdserver crashing on receiving REST watch stream requests
2025-03-04 19:52:50 +00:00
d23b0785c1 ensure google.golang.org/genproto/googleapis/rpc version consistent
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-03-04 18:14:13 +00:00
9fcb5f6ae4 re-generate api/etcdserverpb/gw/rpc.pb.gw.go
Executed ./scripts/genproto.sh

Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-03-04 18:08:28 +00:00
e2459c0323 Bump grpc-gateway to v2.26.3
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-03-04 18:00:03 +00:00
65691111dc Create an e2e test to reproduce the issue of etcdserver crashing on REST watch requests
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-03-04 14:00:25 +00:00
2f15f0859f Merge pull request #19517 from etcd-io/dependabot/github_actions/github/codeql-action-3.28.10
build(deps): bump github/codeql-action from 3.28.9 to 3.28.10
2025-03-04 13:19:27 +00:00
4523ff77c9 Merge pull request #19518 from etcd-io/dependabot/github_actions/ossf/scorecard-action-2.4.1
build(deps): bump ossf/scorecard-action from 2.4.0 to 2.4.1
2025-03-04 13:13:28 +00:00
edfb9b7565 Merge pull request #19519 from etcd-io/dependabot/github_actions/actions/upload-artifact-4.6.1
build(deps): bump actions/upload-artifact from 4.6.0 to 4.6.1
2025-03-04 13:12:54 +00:00
7c7f69e35a build(deps): bump actions/upload-artifact from 4.6.0 to 4.6.1
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.6.0 to 4.6.1.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](65c4c4a1dd...4cec3d8aa0)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-03 17:45:21 +00:00
25d8e7fb40 build(deps): bump ossf/scorecard-action from 2.4.0 to 2.4.1
Bumps [ossf/scorecard-action](https://github.com/ossf/scorecard-action) from 2.4.0 to 2.4.1.
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](62b2cac7ed...f49aabe0b5)

---
updated-dependencies:
- dependency-name: ossf/scorecard-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-03 17:45:18 +00:00
f9c68849ab build(deps): bump github/codeql-action from 3.28.9 to 3.28.10
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.9 to 3.28.10.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](9e8d0789d4...b56ba49b26)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-03 17:45:14 +00:00
4ef3b376b7 Merge pull request #19358 from ivanvc/remove-release-tests-workflow
github workflows: remove release tests
2025-03-03 09:38:36 +00:00
e99f20a639 Merge pull request #19504 from tcchawla/fix-19500
tests: deflakey TestLeaseGrantKeepAliveOnce
2025-03-03 09:36:10 +00:00
3e43e4594e tests: deflakey TestLeaseGrantKeepAliveOnce
Signed-off-by: tcchawla <tc.chawla2000@gmail.com>
2025-03-02 16:53:54 +05:30
4ce48cea70 Enable uploading coverage report from Prow
Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-02-28 17:18:44 -08:00
ed975c2677 github workflows: remove release tests
This workflow has already been migrated to the prow infrastructure as a
presubmit job.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-02-27 23:45:32 -08:00
3a2cece119 Merge pull request #19502 from ah8ad3/changelog_v3.7
Add change log 3.7
2025-02-28 07:31:49 +00:00
a6b3c93cb4 Add UsageFunc to deprecation section in 3.7 changelog.
Signed-off-by: Ahmad Zolfaghari <ah8ad3@gmail.com>
2025-02-27 20:29:16 +03:30
5c147c0144 Merge pull request #19498 from ashikjm/typo-fix
etcdserver: Fixing minor typos in v3election.proto and rpc.proto
2025-02-27 15:47:30 +00:00
9b31bdc7a8 Merge pull request #19496 from ivanvc/remove-grpcproxy-workflows
github/workflows: delete grpcproxy workflow
2025-02-27 14:50:20 +00:00
ac064e860c Merge pull request #19470 from beforetech/main
refactor: use a more straightforward return value
2025-02-27 13:39:58 +01:00
b9298ed950 Merge pull request #18356 from ah8ad3/move-cobra-from-pkg
etcdctl: move cobra helper of etcdctl from main pkg to etcdctl pkg
2025-02-27 12:21:40 +00:00
f5409c4227 etcdserver: Fixing minor typos in v3election.proto and rpc.proto
Signed-off-by: Ashik J M <ashikjm@gmail.com>
2025-02-27 17:50:02 +05:30
d42b0434a6 Copy cobra helper of etcdctl from main pkg to etcdctl pkg and add a deprecation note for UsageFunc.
Signed-off-by: ah8ad3 <ah8ad3@gmail.com>
2025-02-27 14:46:43 +03:30
a423349c07 Merge pull request #19488 from mmorel-35/golangci-lint/usetesting
chore: use usetesting instead of tenv
2025-02-27 07:50:17 +00:00
b1ecb206b4 github/workflows: delete grpcproxy workflow
This job is already running on the Prow infrastructure.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-02-26 22:26:24 -08:00
49fbd1ef95 Merge pull request #19452 from gangli113/featuregate
Add prometheus metric for server feature gate
2025-02-26 21:34:11 +00:00
d76671ca80 add prometheus metric
Signed-off-by: Gang Li <ganglica@google.com>
Signed-off-by: Gang Li <gangligit@gmail.com>
2025-02-26 10:37:08 -08:00
6ecb6fba34 Merge pull request #19486 from ivanvc/address-govet-1.24-errors
Address Go 1.24 govet errors
2025-02-26 12:17:21 +00:00
a8d8c1887f chore: use usetesting instead of tenv
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-02-26 07:54:22 +01:00
16b1460b5d Address Go 1.24 govet errors
Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-02-25 17:10:56 -08:00
47e764fd6b Merge pull request #19484 from jmhbnz/main
Add release date for `v3.4.36` and `v3.6.0-rc.1`
2025-02-25 20:57:00 +00:00
99683d59ac Add release date for v3.6.0-rc.1.
Signed-off-by: James Blair <mail@jamesblair.net>
2025-02-26 08:59:38 +13:00
db2213b70a Add release date for v3.4.36.
Signed-off-by: James Blair <mail@jamesblair.net>
2025-02-26 08:59:11 +13:00
66748c0d46 Merge pull request #19463 from ivanvc/use-go-mod-in-deps-check
scripts: Use go mod instead of go list to get dependencies
2025-02-25 19:37:06 +00:00
3763a67606 Merge pull request #19479 from ivanvc/release-note-CVE-2025-22869
changelog: add note from CVE-2025-22869
2025-02-25 18:26:20 +00:00
4a9ab7c380 Merge pull request #19473 from ahrtr/test_lease_20250224
Fix flaky `TestLeaseKeepAliveOneSecond`
2025-02-25 18:23:06 +00:00
78a7ca618e Merge pull request #19466 from henrybear327/dependency/2025_02_22
[2025-02-22] Bump dependency updates identified by dependabot
2025-02-25 18:00:53 +00:00
48fcef5b47 changelog: add note from CVE-2025-22869
Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-02-25 09:28:53 -08:00
6784151a1b dependency: bump github.com/golangci/golangci-lint from 1.63.4 to 1.64.5
Reference:
- https://github.com/etcd-io/etcd/pull/19435

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2025-02-25 14:01:36 +00:00
df26009e75 dependency: bump github.com/alexfalkowski/gocovmerge from 1.3.18 to 1.4.0
Reference:
- https://github.com/etcd-io/etcd/pull/19436

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2025-02-25 14:01:36 +00:00
5e89197c28 dependency: bump honnef.co/go/tools from 0.5.1 to 0.6.0 and bump golang.org/x/net from 0.34.0 to 0.35.0
Reference:
- https://github.com/etcd-io/etcd/pull/19434
= https://github.com/etcd-io/etcd/pull/19437

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2025-02-25 14:01:35 +00:00
f1af8b9e92 dependency: bump github.com/spf13/cobra from 1.8.1 to 1.9.1
Reference:
- https://github.com/etcd-io/etcd/pull/19438

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2025-02-25 14:01:35 +00:00
8e44d3ac65 Merge pull request #19476 from fuweid/fix-17504
tests: deflakey TestLeaseGrantTimeToLiveExpired
2025-02-25 09:40:19 +00:00
6d66d828b4 Merge pull request #19475 from henrybear327/ci/address_linter_issues
Address issues reported by golangci-lint after bumping the version to v1.64.5
2025-02-25 08:01:14 +00:00
628435abdb Merge pull request #19474 from fuweid/update-36-changelog
CHANGELOG: update 3.6 changelog with DowngradeInfo
2025-02-25 07:58:44 +00:00
c81fb870bb tests: deflakey TestLeaseGrantTimeToLiveExpired
The following change can reproduce the issue #17504 by
`TESTCASE=TestLeaseGrantTimeToLiveExpired/PeerAutoTLS make test-e2e`. We
can retry it to reduce flakey possibility, if there is leader change.

```diff
diff --git a/tests/common/lease_test.go b/tests/common/lease_test.go
index afb27c330..dea8459dc 100644
--- a/tests/common/lease_test.go
+++ b/tests/common/lease_test.go
@@ -16,6 +16,7 @@ package common

 import (
        "context"
+       "sync"
        "testing"
        "time"

@@ -139,6 +140,18 @@ func TestLeaseGrantTimeToLiveExpired(t *testing.T) {
                                require.NoError(t, err)
                                require.Equal(t, int64(1), getResp.Count)

+                               var wg sync.WaitGroup
+                               defer wg.Wait()
+
+                               wg.Add(1)
+                               go func() {
+                                       defer wg.Done()
+                                       time.Sleep(1000 * time.Millisecond)
+                                       clus.(interface {
+                                               MoveLeader(ctx context.Context, t testing.TB, i int) error
+                                       }).MoveLeader(ctx, t, (clus.WaitLeader(t)+1)%len(clus.Members()))
+                               }()
+
                                time.Sleep(3 * time.Second)

                                ttlResp, err := cc.TimeToLive(ctx, leaseResp.ID, config.LeaseOption{})

```

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2025-02-24 18:09:06 -05:00
498bbc5982 Merge pull request #19472 from etcd-io/wenjiaswe-patch-2
Add release team leads and additional release team members
2025-02-24 21:47:03 +00:00
43df62f6b9 Address issues reported by golangci-lint after bumping the version to v1.64.5
Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2025-02-24 21:35:34 +00:00
a081904832 CHANGELOG: update 3.6 changelog with DowngradeInfo
Signed-off-by: Wei Fu <fuweid89@gmail.com>
2025-02-24 16:15:57 -05:00
4cef06bad9 Fix flaky TestLeaseKeepAliveSeconds
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-02-24 14:23:36 +00:00
d83346bfe7 Add release leads and additional team members.
Thanks to @jmhbnz and @ivanvc 's long time leadership in the release team, adding them as official leads.

Also adding @siyuanfoundation and @fuweid as additional team members. 

Thanks everyone for your contribution!
2025-02-23 22:05:26 -08:00
f954f76012 refactor: use a more straightforward return value
Signed-off-by: beforetech <mail@before.tech>
2025-02-23 23:36:06 +08:00
022b9b22cf Merge pull request #19446 from ashikjm/18267-issue
etcdserver: Update description for count field in the RangeResponse message
2025-02-23 09:28:48 +00:00
d52bd901b4 Merge pull request #19461 from fuweid/fix-downgrade-issue
deflake: TestDowngradeCancellationAfterDowngrading1InClusterOf3
2025-02-22 15:37:46 +00:00
2de17bd396 deflake: TestDowngradeCancellationAfterDowngrading1InClusterOf3
Fixes: 65159a2b96 (*: Update cases related to Downgrade)

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2025-02-22 08:22:17 -05:00
cbc14d78e6 scripts: Use go mod instead of go list to get dependencies
Replace `go list -m` with `go mod edit -json`, as the latter can return
the same information. This will be helpful when the project migrates to
using a Go workspace, as it will return the current module defined in
go.mod rather than all the modules from the current directory (using a
workspace, the top-level go.mod will return all the child modules from
the repository).

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-02-21 20:48:15 -08:00
ac7d3e9335 Merge pull request #19451 from fuweid/add-downgrade-status
*: support DowngradeInfo field in maintenence.Status API
2025-02-21 21:02:20 +00:00
65159a2b96 *: Update cases related to Downgrade
1. Update DowngradeUpgradeMembersByID

If it's downgrading process, the desire version of cluster should be
target one.
If it's upgrading process, the desire version of cluster should be
determined by mininum binary version of members.

2. Remove AssertProcessLogs from DowngradeEnable

The log message "The server is ready to downgrade" appears only when the storage
version monitor detects a mismatch between the cluster and storage versions.

If traffic is insufficient to trigger a commit or if an auto-commit occurs right
after reading the storage version, the monitor may fail to update it, leading
to errors like:

```bash
"msg":"failed to update storage version","cluster-version":"3.6.0",
"error":"cannot detect storage schema version: missing confstate information"
```

Given this, we should remove the AssertProcessLogs statement.

Similar to #19313

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2025-02-21 13:45:41 -05:00
091b6ed718 etcdctl: support downgrade info in endpoint command
Signed-off-by: Wei Fu <fuweid89@gmail.com>
2025-02-21 11:50:25 -05:00
97c63c9fde etcdserver: Update description for count field in the RangeResponse message
To highlight that it doesn't honour the limit and filters (Min or Max, Create or Modify, Revisions)

Signed-off-by: Ashik J M <ashikjm@gmail.com>
2025-02-21 21:05:26 +05:30
6f86f4fbb0 fix: skip duplicated puts when calculating put return time
Signed-off-by: Joshua Zhang <joshua.x.zhang@gmail.com>
2025-02-21 03:25:23 +00:00
49f34c9751 Merge pull request #19340 from aladesawe/server-apply-unexported-return
Rename `applierMembership` to `ApplierMembership` to fix the `unexported-return` lint error
2025-02-20 09:28:54 +00:00
82c371a471 Merge pull request #19341 from aladesawe/server-storage-recorder-unexported-return
Rename `storageRecorder` to `StorageRecorder` to fix `unexported-return` lint error
2025-02-20 09:28:27 +00:00
a29b97ab8c Merge pull request #19450 from jmhbnz/main
Simplify release permissions process
2025-02-20 08:39:32 +00:00
8575de3bab v3rpc: add DowngradeInfo in status API
Signed-off-by: Wei Fu <fuweid89@gmail.com>
2025-02-19 17:18:08 -05:00
9d57554c4c proto: add DowngradeProcessInfo in statusResponse
Signed-off-by: Wei Fu <fuweid89@gmail.com>
2025-02-19 17:17:59 -05:00
cf6f4fbb94 Simplify release permissions process.
Signed-off-by: James Blair <mail@jamesblair.net>
2025-02-20 08:16:53 +13:00
ef65923cf7 Merge pull request #19431 from joshjms/main
Update CHANGELOG for version bump to go 1.23.6
2025-02-19 08:01:24 +00:00
deb9178089 Merge pull request #19342 from aladesawe/server-alarm-unexported-return
Move interface `AlarmBackend` from `server/etcdserver/api/v3alarm` to `server/storage/schema` to fix the `unexported-return` lint error
2025-02-18 17:58:03 +00:00
1e3710a90f Merge pull request #19432 from 1911860538/feat/server-lease
perf: use RLock in Demoted method for read-only access to expiry
2025-02-18 09:14:20 +01:00
e10f01edfe perf: use RLock in Demoted method for read-only access to expiry
Signed-off-by: huangzw <huangzw@2345.com>
2025-02-17 16:09:34 +08:00
d86775c276 changelog: update entries for v3.4.36 and v3.5.19 to reflect 1.23.6 update
Signed-off-by: joshjms <joshjms1607@gmail.com>
2025-02-17 14:44:14 +08:00
e37cdc66c4 Rename applierMembership struct to fix unexported-return
Signed-off-by: adeyemi <adeyemi.aladesawe@gmail.com>
2025-02-16 21:35:18 -08:00
6f27da2aee Move AlarmBackend interface to fix unexported-return
Signed-off-by: adeyemi <adeyemi.aladesawe@gmail.com>
2025-02-16 21:22:53 -08:00
c0c9f7c344 Create an StorageRecorder interface to fix unexported-return
Signed-off-by: adeyemi <adeyemi.aladesawe@gmail.com>
2025-02-16 21:02:19 -08:00
eb7607bd8b Merge pull request #19421 from ivanvc/remove-contrib-mixin-github-workflow
github/workflows: remove contrib workflow
2025-02-16 16:05:43 +00:00
c86bb08fa9 Merge pull request #19422 from ivanvc/remove-fuzzing-github-workflow
github/workflows: remove fuzzing workflow.
2025-02-16 12:06:09 +01:00
189eb92e3c github/workflows: remove coverage workflow
This workflow has already been migrated to the Prow infrastructure.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-02-15 14:47:43 -08:00
c733872ea3 github/workflows: remove fuzzing workflow.
This job is already running in the Prow infrastructure.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-02-14 14:13:23 -08:00
0bbc42a3de github/workflows: remove contrib workflow
This job is already running in the Prow infrastructure.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-02-14 14:10:02 -08:00
14cf6694e9 Merge pull request #19418 from ivanvc/fix-release-script-prerelease-github-template-release
Fix release script prerelease GitHub template release
2025-02-14 19:20:32 +00:00
5c9db9c840 scripts/release: fix typo in "flag"
Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-02-14 09:23:08 -08:00
b1e513cfe9 scripts/release: fix getting version minor for prereleases
The GitHub release templates had the wrong version minor when there's a
prerelease part in the version (i.e., v3.6.0-rc.0). It cut until the
last dot, leaving a wrong minor version (i.e., v3.6.0-rc).

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-02-14 09:23:06 -08:00
8c52b414f3 CHANGELOG-3.6: Set v3.6.0-rc.0 release date
Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-02-13 12:36:25 -08:00
91762ccd4f Merge pull request #19413 from henrybear327/feat/add_flag
Migrate --experimental-set-member-localaddr to using feature flag
2025-02-13 17:08:06 +00:00
5fa8c1f6b8 Migrate --experimental-set-member-localaddr to using feature flag
Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
Co-authored-by: Benjamin Wang <benjamin.wang@broadcom.com>
2025-02-13 16:02:10 +00:00
865ed4a0b6 Merge pull request #19412 from ahrtr/changelog_20250213
Add the fix of the performance regression due to uncertain compaction…
2025-02-13 13:31:30 +01:00
fb2cdc31c7 Add the fix of the performance regression due to uncertain compaction sleep interval
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-02-13 11:03:09 +00:00
3bd966d6b5 Merge pull request #19410 from ahrtr/compact_20250213
Fix a performance regression due to uncertain compaction sleep interval
2025-02-13 10:36:58 +00:00
de10fd6565 Fix a peformance regression due to uncertain compaction sleep interval
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-02-13 09:40:04 +00:00
075fb1058a Merge pull request #19407 from ivanvc/changelog-3.6-19403-deprecation
CHANGELOG-3.6: Add note from #19404
2025-02-13 07:55:18 +00:00
b77a28cbb5 Merge pull request #19408 from ivanvc/more-v3.6-deprecation-comments
Fix more v3.6 deprecation comments
2025-02-13 07:51:33 +00:00
8af64f886c CHANGELOG-3.6: Add note from #19404
Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-02-12 17:06:16 -08:00
9c30af2ff5 Standardize help deprecated messages
Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-02-12 16:29:40 -08:00
eea79ca9a5 Properly deprecate ExperimentalInitialCorruptCheck
Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-02-12 16:14:34 -08:00
fe81901c74 Properly deprecate ExperimentalStopGRPCServiceOnDefrag
Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-02-12 16:03:07 -08:00
e37615a483 Properly deprecate ExperimentalTxnModeWriteWithSharedBuffer
Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-02-12 15:57:57 -08:00
7073c4140f Merge pull request #19403 from ivanvc/remove-server-deprecated-new-zap-core-logger-builder
server: Remove deprecated NewZapCoreLoggerBuilder
2025-02-12 21:22:52 +00:00
8b99f8e025 server/embed: Remove deprecated NewZapCoreLoggerBuilder
Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-02-12 11:20:50 -08:00
dd6791c560 Merge pull request #19401 from ivanvc/fix-deprecation-notices
Fix v3.6 deprecation notices
2025-02-12 19:10:47 +00:00
1f4b3cdf52 Fix deprecation comments in server/features
Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-02-12 10:05:52 -08:00
7ba8929e7b Fix deprecation comments in server/embed
Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-02-12 10:05:03 -08:00
95efe44ae0 Fix rpctypes.ErrClusterIdMismatch deprecation comment
It was pointing to ErrGRPCClusterIDMismatch rather than
ErrClusterIDMismatch.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-02-12 10:02:33 -08:00
f30cbaac11 Merge pull request #19398 from ahrtr/downgrade_test_20250212
[test] Correct the expected version in downgrade test case
2025-02-12 15:56:47 +00:00
57dc6f375a Correct the expected version in downgrade test case
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-02-12 11:02:48 +00:00
c0e7e8c873 Merge pull request #19370 from shashwat010/visualize
Remove passing of anonymous visualize function
2025-02-12 10:45:14 +01:00
5414dbab4a Merge remote-tracking branch 'etcd/main' into visualize 2025-02-12 11:36:26 +05:30
1709422e21 Remove passing of anonymous visualize function
Signed-off-by: shashwat-jain <shashwat.jain@salesforce.com>
2025-02-12 11:26:10 +05:30
fefce5498f Merge pull request #19386 from ivanvc/release-3.4-changelog-19197
CHANGELOG-3.4: Add entry from #19197
2025-02-11 22:13:03 +00:00
0dfc7ab52c Merge pull request #19388 from ahrtr/refactor_20250211
Minor refacotr on the e2e test framework
2025-02-11 22:00:27 +00:00
5703e6b387 Minor refacotr on the e2e test framework
Also resolved the review comment in https://github.com/etcd-io/etcd/pull/19352

Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-02-11 20:32:21 +00:00
53d44f0f9c Merge pull request #19352 from ajaysundark/migrate-experimental-snapshot-catch-up-entries
migrate experimental-snapshot-catchup-entries flag to snapshot-catchup-entries
2025-02-11 20:15:17 +00:00
5802231328 migrate experimental-snapshot-catchup-entries flag to snapshot-catchup-entries
Signed-off-by: Ajay Sundar Karuppasamy <ajaysundar@google.com>
2025-02-11 19:17:17 +00:00
f197f44537 Merge pull request #19385 from ahrtr/tracing_20250211
Migrate experimental distributed tracing flags to non-experimental flags
2025-02-11 18:04:28 +00:00
b746159a22 CHANGELOG-3.4: Add entry from #19197
Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-02-11 09:32:01 -08:00
a9b8cba602 Migrate experimental distributed tracing flags to non-experimental flags
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-02-11 15:29:16 +00:00
1ea4f435cc Merge pull request #19381 from henrybear327/dependency/2025_02_10
[2025-02-10] Bump dependency updates identified by dependabot
2025-02-11 07:50:59 +00:00
ad3301099a Merge pull request #19350 from aladesawe/server-wal-version-unexported-return
Migrate WALVersion to fix unexported-return of walVersion
2025-02-10 21:42:13 +00:00
fa2926adb0 Merge pull request #19375 from etcd-io/dependabot/github_actions/github/codeql-action-3.28.9
build(deps): bump github/codeql-action from 3.28.8 to 3.28.9
2025-02-10 21:27:41 +00:00
04cce9759b dependency: bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.26.0 to 2.26.1, bump google.golang.org/genproto/googleapis/rpc from v0.0.0-20250115164207-1a7da9e5054f to v0.0.0-20250204164813-702378808489, and google.golang.org/protobuf from v1.36.4 to v1.36.5
Reference:
- https://github.com/etcd-io/etcd/pull/19374
- https://github.com/etcd-io/etcd/pull/19380

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2025-02-10 21:20:45 +00:00
b31311ebb0 dependency: bump golang.org/x/crypto from 0.32.0 to 0.33.0 and bump golang.org/x/text from 0.21.0 to 0.22.0
Reference:
- https://github.com/etcd-io/etcd/pull/19378
- https://github.com/etcd-io/etcd/pull/19379

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2025-02-10 21:20:45 +00:00
2cffac9916 dependency: bump golang.org/x/time from 0.9.0 to 0.10.0
Reference:
- https://github.com/etcd-io/etcd/pull/19377

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2025-02-10 21:20:45 +00:00
ab88026649 dependency: bump golang.org/x/sys from 0.29.0 to 0.30.0
Reference:
- https://github.com/etcd-io/etcd/pull/19376

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2025-02-10 21:20:45 +00:00
2908d45333 dependency: bump gotest.tools/v3 from 3.5.1 to 3.5.2
Reference:
- https://github.com/etcd-io/etcd/pull/19373

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2025-02-10 21:20:45 +00:00
948a464f16 dependency: bump github.com/google/yamlfmt from 0.15.0 to 0.16.0
Reference:
- https://github.com/etcd-io/etcd/pull/19372

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2025-02-10 21:20:45 +00:00
e499f01400 Merge pull request #19364 from ivanvc/improve-coverage-upload
codecov: improve coverage upload
2025-02-10 20:01:40 +01:00
097be8cff3 build(deps): bump github/codeql-action from 3.28.8 to 3.28.9
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.8 to 3.28.9.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](dd746615b3...9e8d0789d4)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-10 17:44:33 +00:00
38bb52acd3 Merge pull request #19367 from henrybear327/e2e/fix_downgrade_node_election_log
Fix a log formatting bug in the e2e downgrade tests
2025-02-10 11:51:41 +00:00
89dd13f93b Fix a log formatting bug in the e2e downgrade tests
Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
Co-authored-by: Benjamin Wang <benjamin.wang@broadcom.com>
2025-02-10 10:44:25 +00:00
94758c1760 Migrate WALVersion, and reuse in schema.go
Signed-off-by: adeyemi <adeyemi.aladesawe@gmail.com>
2025-02-07 17:48:10 -08:00
6c866548dc codecov: improve coverage upload
Align running the code coverage upload with other workflows by
executing it from a Makefile target.

Update the current GitHub workflow to call this new target.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-02-07 14:21:26 -08:00
9de211ddf8 Merge pull request #19362 from siyuanfoundation/lease-checkpoint
migrate experimental-peer-skip-client-san-verification flag to peer-skip-client-san-verification
2025-02-07 19:55:19 +00:00
a3a467bf39 migrate experimental-peer-skip-client-san-verification flag to peer-skip-client-san-verification
Co-authored-by: wodeyoulai <106662970@qq.com>

Signed-off-by: Siyuan Zhang <sizhang@google.com>
2025-02-07 10:35:03 -08:00
e25d605687 Merge pull request #19361 from ahrtr/changelog_20250207
Update 3.6 changelog to cover the etcdutl status command change
2025-02-07 16:42:24 +00:00
b2d352b787 Merge pull request #19359 from ahrtr/test_20250207
Add more debug info into waitTillSnapshot
2025-02-07 15:24:16 +00:00
969fd548dc Update 3.6 changelog to cover the etcdutl status command change
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-02-07 15:23:20 +00:00
a747fdebbc Merge pull request #19344 from jxustc/fix/etcdutl-key-count
etcdutl: use map to count unique user keys in snapshot status
2025-02-07 15:15:18 +00:00
a090db470b Merge pull request #19356 from siyuanfoundation/lease-checkpoint
migrate experimental-enable-lease-checkpoint and experimental-enable-lease-checkpoint-persist flag to feature gate.
2025-02-07 15:14:40 +00:00
34546e9aa0 Add more debug info into waitTillSnapshot
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-02-07 12:14:49 +00:00
2d377000ff etcdutl: use map to count unique user keys in snapshot status
The new implementation:
- Uses map to track unique keys for accurate counting
- Excludes internal built-in keys from total count
- Improves code maintainability

Although this approach uses additional memory for the map, the trade-off
is acceptable since:
- Status() is not in hot path
- Correctness takes priority over performance optimization
- Simpler code is easier to maintain

Fixes #19253

Signed-off-by: Xiang Ji <johnsmith.jix@gmail.com>
2025-02-07 19:56:06 +08:00
3db34683c9 Merge pull request #19052 from aladesawe/server-auth-unexported-return
server: fix unexported-return lint issue
2025-02-07 07:51:55 +00:00
db05deaf02 server: fix unexported-return using interfaces
Signed-off-by: adeyemi <adeyemi.aladesawe@gmail.com>
2025-02-06 15:21:20 -08:00
2cd8fcce5d migrate experimental-enable-lease-checkpoint and experimental-enable-lease-checkpoint-persist flag to feature gate.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2025-02-06 14:31:00 -08:00
8e0ea3461e Merge pull request #19351 from ajaysundark/migrate-experimental-compaction-sleep-interval
migrate experimental-compaction-sleep-interval flag to compaction-sleep interval
2025-02-06 19:52:42 +00:00
8c263d2b43 Merge pull request #19353 from fuweid/fix-19179-robustness
test: update robustness doc and new case to reproduce 19179
2025-02-06 19:49:11 +00:00
e5b39f85a4 migrate experimental-compaction-sleep-interval flag to compaction-sleep-interval
Signed-off-by: Ajay Sundar Karuppasamy <ajaysundar@google.com>
2025-02-06 18:54:32 +00:00
299bca3afa Merge pull request #19328 from ajaysundark/migrate-experimental-downgrade-check-time
migrate experimental-downgrade-checktime to downgrade-checktime
2025-02-06 17:58:37 +00:00
8866fce73f test: update robustness doc and new case to reproduce 19179
NOTE: It's still hard to reproduce it. It may take 5 minutes or few
hours.

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2025-02-06 10:24:52 -05:00
f1d09c0e6b Merge pull request #19348 from gangli113/downgradetest
increase timeout for MemberDowngradeUpgrade test
2025-02-06 13:07:19 +00:00
c6b9e9e927 Merge pull request #19338 from marcelfranca/issue/19333-changelog-1.22.12
changelog: update GO entry to reflect 1.22.12 update
2025-02-06 09:38:17 +00:00
80a8a82bbd migrate experimental-downgrade-check-time to downgrade-check-time
Signed-off-by: Ajay Sundar Karuppasamy <ajaysundar@google.com>
2025-02-06 00:05:04 +00:00
3b3243bbb9 increase timeout for MemberDowngradeUpgrade test
Signed-off-by: Gang Li <ganglica@google.com>
2025-02-05 23:58:46 +00:00
4abcda49e0 Merge pull request #19349 from ahrtr/dep_20250205
Bump bbolt to v1.4.0 and raft to v3.6.0
2025-02-05 19:50:17 +00:00
70ef8a549f Bump raft to v3.6.0
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-02-05 18:53:09 +00:00
60a83e2330 Bump bbolt to v1.4.0
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-02-05 18:50:37 +00:00
ac7d13dee0 Merge pull request #19346 from henrybear327/dependency/2025_02_05
[2025-02-05] Bump dependency updates identified by dependabot
2025-02-05 18:47:50 +00:00
14b90f79ba changelog: update GO entry to reflect 1.22.12 update
Signed-off-by: Marcel Franca <marcel@marcelfranca.com>
2025-02-05 14:42:54 -03:00
0108677e86 dependency: bump github.com/spf13/pflag from 1.0.5 to 1.0.6
Reference:
- https://github.com/etcd-io/etcd/pull/19321

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2025-02-05 14:34:36 +00:00
b17b6fe726 Merge pull request #19335 from marcelfranca/issue/19333-main
Update golang toolchain to 1.23.6
2025-02-05 10:11:19 +00:00
85931e1d8b Merge pull request #19332 from mmorel-35/testifier/tests
chore: use testify instead of testing in tests/integration
2025-02-05 09:37:07 +00:00
7f8d40d568 bumping go to version 1.23.6
Signed-off-by: Marcel Franca <marcel@marcelfranca.com>
2025-02-04 19:15:39 -03:00
d62cdeee48 Merge pull request #19254 from serathius/align-defaults
Align NewConfig with AddFlags defaults
2025-02-04 20:35:18 +01:00
3842a5afc2 Merge pull request #19252 from henrybear327/e2e/downgrade_cancellation_partial
Add downgrade cancellation e2e tests
2025-02-04 19:27:43 +00:00
837285c34d Merge pull request #19331 from ivanvc/changelog-3.5-19280
CHANGELOG(3.5): Add entry for #19280
2025-02-04 19:25:56 +00:00
d1adc37597 chore: use testify instead of testing in tests/integration
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-02-04 20:22:56 +01:00
ade8edd8f6 Merge pull request #19329 from ahrtr/learner_log_20250204
Add learner id into log when being promoted
2025-02-04 18:47:02 +00:00
84b5c89b52 CHANGELOG(3.5): Add entry for https://github.com/etcd-io/etcd/pull/19280
Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-02-04 10:11:24 -08:00
4d1a20730c Complete partial downgraded cluster cancellation
Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2025-02-04 17:31:43 +00:00
dfbdd8853c Add learner id into log when being promoted
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-02-04 13:10:42 +00:00
e13196b2a2 Merge pull request #19326 from redwrasse/redwrasse/redundant-continue-removematchfile
fileutil: removes redundant continue statement in RemoveMatchFile
2025-02-04 10:43:32 +00:00
2eca8972ca Merge pull request #19323 from etcd-io/dependabot/github_actions/github/codeql-action-3.28.8
build(deps): bump github/codeql-action from 3.28.5 to 3.28.8
2025-02-04 10:41:23 +00:00
cd7de9bada Merge pull request #19325 from gangli113/downgradetest
fix test.sh to download correct binary for mac os
2025-02-04 07:50:02 +00:00
cf258b83aa Squashed commit of the following:
commit 1897d8af05b3627ac4374f1d2fb285fb7af5199e
Author: Gang Li <gangligit@gmail.com>
Date:   Mon Feb 3 16:35:20 2025 -0800

    use uname -s to get os name

    Signed-off-by: Gang Li <gangligit@gmail.com>

commit 889dd974d5873b8c5e7ccd55732279146db1bcc3
Author: Gang Li <gangligit@gmail.com>
Date:   Mon Feb 3 11:34:13 2025 -0800

    download correct binary for mac os

    Signed-off-by: Gang Li <gangligit@gmail.com>

Signed-off-by: Gang Li <gangligit@gmail.com>
2025-02-03 16:51:09 -08:00
0f97c9712c fileutil: removes redundant continue statement in RemoveMatchFile
Signed-off-by: redwrasse <mail@redwrasse.io>
2025-02-03 13:30:37 -08:00
3cc3dafded Merge pull request #19282 from jmao-dd/jmao/19061-migrate-mlock3
migrate experimental-memory-mlock flag to memory-mlock
2025-02-03 18:13:18 +00:00
9c078bbdfc build(deps): bump github/codeql-action from 3.28.5 to 3.28.8
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.5 to 3.28.8.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](f6091c0113...dd746615b3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-03 17:39:35 +00:00
f6713f8466 Merge pull request #19315 from mmorel-35/testifier/pkg
fix: use testify instead of t.Fatal or t.Error in pkg package
2025-02-03 15:25:58 +00:00
d4173b280d Merge pull request #18971 from mmorel-35/testifier/server
fix: use testify instead of t.Fatal or t.Error in server package (part 1)
2025-02-03 14:54:11 +00:00
e6e4edd14b Merge pull request #18820 from mmorel-35/tests/integration/testifier/require-error
fix: use require instead of t.Fatal(err) in tests/integration package
2025-02-03 14:45:23 +00:00
2abdba6f81 Merge pull request #18860 from mmorel-35/testifier/tests/common
fix: use testify instead of t.Fatal in tests/common package (part 2)
2025-02-03 14:32:44 +00:00
2bddcd4801 Merge pull request #19317 from siyuanfoundation/downgrade-robust-1
Remove some HealthInterval to reduce the time to run DowngradeUpgradeMembers
2025-02-03 10:22:08 +01:00
de82ea2036 Merge pull request #19319 from fuweid/fix-19292
*: introduce (*Op) Limit() interface for robustness
2025-02-03 10:21:11 +01:00
136dfbe5b5 *: introduce (*Op) Limit() interface for robustness
Since #19137, kubernetes traffic profile is unable to send List request
with page size, because limit in option is not accessable. To fix it,
this fix is to introduce Limit() interface.

Fixes: #19292

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2025-02-02 22:16:22 -05:00
6b0a9cd763 Remove some HealthInterval to reduce the time to run DowngradeUpgradeMembers.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2025-02-02 14:54:29 -08:00
cad3fce1a0 fix: use testify instead of t.Fatal or t.Error in pkg package
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-02-02 16:30:18 +01:00
0795f6b957 migrate experimental-memory-mlock flag to memory-mlock
Signed-off-by: Jiayin Mao <jiayin.mao@datadoghq.com>
2025-02-01 22:57:54 +00:00
b197332b13 Merge pull request #19313 from fuweid/deflaky-TestSnapshotStatus
deflaky: TestSnapshotStatus
2025-01-31 21:14:58 +00:00
12bbee7c1c deflaky: TestSnapshotStatus
Root Cause

The backend commits pending changes into boltdb per 100 ms by default.
When brand-new member starts, that member will save member into
backend by `MustSaveMemberToBackend`. However, it doesn't force change
into boltdb. It depends on backend's auto-commit per 100ms.

If auto-commit happens after `UpdateStorageVersion`, the `UpdateStorageVersion`
will fail on `missing confstate information`. The confstate information
is handled by commit-prehook. Once `UpdateStorageVersion` fails,
`TestSnapshotStatus` won't have another chance to do that because that
server has been closed. So without storage version information, hash of boltdb
data is not expected.

How to reproduce it?

```diff
diff --git a/etcdutl/snapshot/v3_snapshot_test.go b/etcdutl/snapshot/v3_snapshot_test.go
index c2b3d5202..cd88ff995 100644
--- a/etcdutl/snapshot/v3_snapshot_test.go
+++ b/etcdutl/snapshot/v3_snapshot_test.go
@@ -141,6 +141,7 @@ func createDB(t *testing.T, generateContent func(*etcdserver.EtcdServer)) string
        t.Helper()

        cfg := embed.NewConfig()
+       cfg.BackendBatchInterval = 5 * time.Second
        cfg.LogLevel = "fatal"
        cfg.Dir = t.TempDir()
```

```bash
➜  snapshot git:(deflaky-TestSnapshotStatus) ✗ go test -v -run "^TestSnapshotStatus$" -count 1 ./
=== RUN   TestSnapshotStatus
    v3_snapshot_test.go:47:
                Error Trace:    /home/weifu/workspace/etcd/etcdutl/snapshot/v3_snapshot_test.go:47
                Error:          Not equal:
                                expected: 0x62132b4d
                                actual  : 0x6bf96324
                Test:           TestSnapshotStatus
--- FAIL: TestSnapshotStatus (0.14s)
FAIL
FAIL    go.etcd.io/etcd/etcdutl/v3/snapshot     0.154s
FAIL
```

How to fix?

Change `BackendBatchLimit` to `1` so that we can force-commit during
`MustSaveMemberToBackend`.

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2025-01-31 15:06:14 -05:00
d52bceb2f1 Merge pull request #19192 from wodeyoulai/main
Correct compaction period comments
2025-01-31 18:45:31 +00:00
05f700fa77 Merge pull request #19305 from ivanvc/test-prow-job
scripts/test_images.sh: refactor to import job into the prow infrastructure
2025-01-31 17:56:30 +00:00
497d9b5f0e Merge pull request #19311 from ahrtr/changelog_grpc_prom_20250131
Update 3.6 changelog to cover the go-grpc-middleware/providers/promet…
2025-01-31 17:55:29 +00:00
83ff4fff1f Merge pull request #19195 from dims/switch-from-grpc-ecosystem/go-grpc-prometheus-to-grpc-ecosystem/go-grpc-middleware/providers/prometheus-take-2
Switch from grpc-ecosystem/go-grpc-prometheus to grpc-ecosystem/go-grpc-middleware/providers/prometheus
2025-01-31 17:55:18 +00:00
49c22492ee Update 3.6 changelog to cover the go-grpc-middleware/providers/prometheus change
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-31 15:04:51 +00:00
6d8c6af06a Update the import items
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-31 14:40:32 +00:00
1f33bafd01 Remove the integration test case TestAllMetricsGenerated
Refer to https://github.com/etcd-io/etcd/pull/19195#issuecomment-2627486682

Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-31 14:31:27 +00:00
3648220e22 incorporate feedback from review
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2025-01-31 06:44:29 -05:00
1216d08769 Merge pull request #19297 from jmhbnz/main
Mark etcd-local-tester as deprecated so we can remove it in future
2025-01-31 10:37:58 +00:00
51820dfd3f Merge pull request #19310 from ivanvc/fix-goword-errors
Fix goword errors
2025-01-31 07:46:22 +00:00
df6ecb2b23 Merge pull request #19300 from sebastiangaiser/main
fix(alerts): set severity of 'ectdMembersDown' from 'critical' to 'wa…
2025-01-31 07:44:26 +00:00
c136d5a73c Fix goword errors
For some reason, the goword check has been passing while the file
`tests/integration/embed/embed_proxy_test.go` has an error in the godoc.
Update it so it doesn't show the error anymore.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-01-30 22:41:07 -08:00
91c07650ec fix: use require instead of t.Fatal(err) in tests/integration package
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-01-30 22:30:51 +00:00
0ac24a804d Refactor scripts/test_images.sh
* Wrap script in functions, add a main function, and call them from it.
* Make environment variables local inside the function scope to avoid
  unexpected behaviors by the running environment-supplied variables.
* Fix the typo in the "REPOSITORY" environment variable.
* Rename the input "IMAGE" to "TEST_IMAGE" to avoid clashing with the
  environment variable from the Prow infrastructure.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-01-30 13:24:51 -08:00
488f21564f Merge pull request #19308 from ahrtr/http_20250130
[test] Close the http response body
2025-01-30 15:00:31 +00:00
73700e30c4 Close the http response body
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-30 14:05:44 +00:00
c3e4df6de1 Switch from grpc-ecosystem/go-grpc-prometheus to grpc-ecosystem/go-grpc-middleware/providers/prometheus
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2025-01-30 08:43:53 -05:00
575b484ba0 fix(alerts): set severity of 'ectdMembersDown' from 'critical' to 'warning'
Downgraded severity of 'etcdMembersDown' from 'critical' to 'warning' as a single etcd member being not available should not be a problem for etcd's quorum. If the quorum would not be fulfilled, 'etcdInsufficientMembers' should fire. In addition the 'for' interval was extended from '10m' to '20m' as e.g. a node reboot with a big physical node takes usually longer than 10 minutes.

Signed-off-by: Sebastian Gaiser <sebastiangaiser@users.noreply.github.com>
2025-01-30 09:51:19 +00:00
f5973c9c27 Merge pull request #19302 from ahrtr/metrics_20250129
Add e2e metrics test case to ensure no any metrics missing in future PRs
2025-01-30 09:13:39 +00:00
93e90721a6 Align NewConfig with AddFlags defaults
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2025-01-30 09:38:14 +01:00
c4a424a5b3 add e2e metrics test case to ensure no any metrics missing in future PRs
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-29 21:01:40 +00:00
dd60559a8b Merge pull request #19294 from ivanvc/changelog-3.5.18-dependencies
changelog: add entries regarding 3.5.18 dependency updates
2025-01-29 19:31:25 +00:00
037de81526 Merge pull request #19298 from gangli113/experimentalFlag
migrate to use max-learners flag
2025-01-29 18:58:36 +00:00
f3ba625119 Merge pull request #19291 from ivanvc/changelog-3.5-19275
changelog: add mixed rw performance evaluation backport
2025-01-29 17:49:10 +00:00
d5b5679c46 Merge pull request #19293 from henrybear327/dependency/25_01_28
[2025-01-28] Bump dependency updates identified by dependabot
2025-01-29 16:40:16 +00:00
6ed344fc71 Merge pull request #19301 from ahrtr/metrics_format_20250129
Format all prometheus metrics to ensure nice indent
2025-01-29 14:34:59 +00:00
614640f1c2 format all prometheus metrics to ensure nice indent
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-29 13:42:14 +00:00
27d9978c8e migrate to use max-learners flag
Signed-off-by: Gang Li <gangligit@gmail.com>
2025-01-28 17:23:51 -08:00
b2fba0290d Mark etcd-local-tester as deprecated so we can remove it in future.
Signed-off-by: James Blair <mail@jamesblair.net>
2025-01-29 11:23:21 +13:00
c6f911a0a4 changelog: add entries regarding 3.5.18 dependency updates
Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-01-28 11:11:37 -08:00
ff76d1800a dependency: bump github.com/prometheus/common from 0.61.0 to 0.62.0
Reference:
- https://github.com/etcd-io/etcd/pull/19283

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2025-01-28 16:40:58 +00:00
c5544044b3 dependency: bump google.golang.org/grpc from 1.69.4 to 1.70.0
Reference:
- https://github.com/etcd-io/etcd/pull/19284

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2025-01-28 16:40:58 +00:00
2400016a5e dependency: bump github.com/cheggaaa/pb/v3 from 3.1.5 to 3.1.6 and github.com/mattn/go-colorable from 0.1.13 to 0.1.14
Reference:
- https://github.com/etcd-io/etcd/pull/19286

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2025-01-28 16:40:58 +00:00
70c2e17031 dependency: bump google.golang.org/protobuf from 1.36.3 to 1.36.4
Reference:
- https://github.com/etcd-io/etcd/pull/19287

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2025-01-28 16:40:58 +00:00
60e8485b48 dependency: bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.25.1 to 2.26.0
Reference:
- https://github.com/etcd-io/etcd/pull/19288
- https://github.com/etcd-io/etcd/pull/19285

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2025-01-28 16:40:35 +00:00
35d20d1e08 Merge pull request #19244 from henrybear327/e2e/downgrade_cancellation_e2e
Add downgrade cancellation e2e tests
2025-01-28 13:41:05 +00:00
2e41777edb Introduce ValidateMemberVersions
Signed-off-by: Chun-Hung Tseng <henrybear327@users.noreply.github.com>
2025-01-28 12:47:53 +00:00
a3c072c3e8 Add missing error checking after calling DowngradeUpgradeMembers
Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
Signed-off-by: Chun-Hung Tseng <henrybear327@users.noreply.github.com>
2025-01-28 12:35:45 +00:00
e25eca27e3 Add downgrade cancellation e2e tests
Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
Co-authored-by: Benjamin Wang <benjamin.wang@broadcom.com>
Signed-off-by: Chun-Hung Tseng <henrybear327@users.noreply.github.com>
2025-01-28 12:35:45 +00:00
291353bc09 Merge pull request #19281 from AwesomePatrol/fix-kubernetes-interface-docs
Fix documentation of List method of Kubernetes interface
2025-01-28 10:29:39 +01:00
62bbf2866b Fix documentation of List method of kubernetes interface
It wrongly asked the API user to use the last key of previous response
when they should append "\x00" to exclude the last key from the contents
of the next requested page.

Signed-off-by: Aleksander Mistewicz <amistewicz@google.com>
2025-01-28 09:30:54 +01:00
2895b19f53 Merge pull request #19289 from etcd-io/dependabot/github_actions/actions/setup-go-5.3.0
build(deps): bump actions/setup-go from 5.2.0 to 5.3.0
2025-01-27 20:58:05 +00:00
acc390844b Merge pull request #19290 from etcd-io/dependabot/github_actions/github/codeql-action-3.28.5
build(deps): bump github/codeql-action from 3.28.1 to 3.28.5
2025-01-27 20:48:40 +00:00
ee32f70eef Merge pull request #19276 from ahrtr/downgrad_test_20250126
[Solution 2] Add `DowngradeVersionTestRequest` for Downgrade or migration test only
2025-01-27 20:23:06 +00:00
8a1a396222 changelog: add mixed rw performance evaluation backport
Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-01-27 11:29:13 -08:00
a3bbf74dea build(deps): bump github/codeql-action from 3.28.1 to 3.28.5
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.1 to 3.28.5.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](b6a472f63d...f6091c0113)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-27 17:52:44 +00:00
5ebd47f7e7 build(deps): bump actions/setup-go from 5.2.0 to 5.3.0
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5.2.0 to 5.3.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](3041bf56c9...f111f3307d)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-27 17:52:35 +00:00
e757a45d1d Merge pull request #19269 from fuweid/test-robustness-list
tests/robustness: continue should ignore last key
2025-01-27 12:53:25 +01:00
f98fa31fa0 Merge pull request #19255 from AwesomePatrol/add-version-to-robustness-model
Add Version field to the robustness model
2025-01-27 12:07:12 +01:00
7b4b96d1dc Update unit test to verify WAL versions
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-27 09:52:13 +00:00
d741e69263 Update MinimalEtcdVersion to read DowngradeVersionTest.Ver as WAL version
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-27 09:52:13 +00:00
1036e4e7e5 Update etcdserve apply workflow to process DowngradeVersionTestRequest
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-27 09:52:13 +00:00
2eca68e345 Add DowngradeVersionTestRequest as a field into InternalRaftRequest
Executed both scripts below again,
- ./scripts/genproto.sh
- ./scripts/update_proto_annotations.sh

Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-27 09:52:05 +00:00
63fe0f2851 Add DowngradeVersionTestRequest into api/etcdserverpb/rpc.proto for test purpose only
Executed both scripts below,
- ./scripts/genproto.sh
- ./scripts/update_proto_annotations.sh

Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-27 09:39:41 +00:00
f7a36a5566 Merge pull request #19279 from ahrtr/test_regression_20250126
Fix addMemberAsLearnerAndPromote to avoid error 'etcdserver: can only…
2025-01-27 09:49:57 +01:00
c578649854 Fix addMemberAsLearnerAndPromote to avoid error 'etcdserver: can only promote a learner member'
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-26 18:30:34 +00:00
532c60142f Merge pull request #19272 from jmao-dd/jmao/19216-flakey-promote-learner-test
tests: Add retry if promote member fails.
2025-01-26 11:27:37 +01:00
692947a621 tests: Add retry if promote member fails.
To handle the case of learner not being ready when being promoted, add
retry with some delay to improve the stability of e2e tests.

Signed-off-by: Jiayin Mao <jiayin.mao@datadoghq.com>
2025-01-26 00:54:41 +00:00
8731c3151a Merge pull request #19267 from gangli113/experimentalFlag
migrate to use bootstrap-defrag-threshold-megabytes flag
2025-01-25 08:16:47 +00:00
564e362408 tests/robustness: continue should ignore last key
Signed-off-by: Wei Fu <fuweid89@gmail.com>
2025-01-24 18:55:06 -05:00
267020e940 migrate to use bootstrap-defrag-threshold-megabytes flag
Signed-off-by: Gang Li <gangligit@gmail.com>
2025-01-24 13:21:48 -08:00
65a17224ce Merge pull request #19266 from ghouscht/changelog-release-3.5.18
docs(CHANGELOG): add release date of etcd v3.5.18
2025-01-25 10:13:09 +13:00
05e5aad2a6 docs(CHANGELOG): add release date of etcd v3.5.18
Signed-off-by: Thomas Gosteli <thomas.gosteli@protonmail.ch>
2025-01-24 20:42:45 +01:00
2ee7e34cbc Merge pull request #19264 from gangli113/experimentalFlag
migrate to use warning-apply-duration flag
2025-01-24 19:21:17 +00:00
7f1d3b017b migrate to use warning-apply-duration flag
Signed-off-by: Gang Li <gangligit@gmail.com>
2025-01-24 10:23:29 -08:00
1c840f8435 Merge pull request #19263 from ahrtr/cluster_ver_20250123
Remove the code of checking ClusterVersionSet in MinimalEtcdVersion
2025-01-24 15:14:21 +00:00
3e5e79dea0 Remove the code of checking ClusterVersionSet in MinimalEtcdVersion
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-24 14:23:53 +00:00
e289ba3078 Merge pull request #19265 from redwrasse/redwrasse/rm-random-seed-robustness
Remove explicit random seed in robustness tests
2025-01-24 10:52:53 +01:00
43c6316420 robustness: remove explicit random seed in robustness tests.
Signed-off-by: redwrasse <mail@redwrasse.io>
2025-01-23 16:02:02 -08:00
b16b8dc6f3 migrate flag experimental-watch-progress-notify-interval to use watch-progress-notify-interval (#19248)
migrate flag experimental-watch-progress-notify-interval to use watch-progress-notify-interval

Signed-off-by: Gang Li <gangligit@gmail.com>
2025-01-23 21:08:30 +00:00
32cfd45182 Merge pull request #19232 from mmorel-35/gomodguard/jwt/v5
build(deps): bump github.com/golang-jwt/jwt from v4 to v5
2025-01-23 16:29:39 +00:00
589981d464 Merge pull request #19257 from ahrtr/race-20250117_final
Refactoring the error handlers concurrent control implementation
2025-01-23 16:25:04 +00:00
c8646cdd6c Merge pull request #19242 from dims/test-for-etcd-metrics
Test for etcd metrics
2025-01-23 16:20:48 +00:00
19d405ceb1 Test for etcd metrics
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2025-01-23 10:30:18 -05:00
3dbe62fb02 Add Version field to the robustness model
It helps perform Txn before Compact in the same way
as it is done in Kubernetes.

Signed-off-by: Aleksander Mistewicz <amistewicz@google.com>
2025-01-23 14:11:23 +01:00
2471e419c2 Merge pull request #19260 from fuweid/update-changelog-for-19179
CHANGELOG: update backport info for #19179
2025-01-22 19:25:07 +00:00
2bdbeb0254 CHANGELOG: update backport info for #19179
Signed-off-by: Wei Fu <fuweid89@gmail.com>
2025-01-22 13:08:53 -05:00
f330406bff refactor the error handler
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-22 17:35:29 +00:00
363b166319 Merge pull request #19259 from ahrtr/changelog_race_20250122
Update 3.5 changelog to cover the race condition fix
2025-01-22 16:18:17 +00:00
ece0c3918e Update 3.5 changelog to cover the race condition fix
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-22 15:15:02 +00:00
b74bc0792b Merge pull request #19245 from serathius/test-hardcoded-flags
Add tests for hardcoded flags in TestEtcdServerProcessConfig
2025-01-22 16:06:35 +01:00
43431bd6f8 Merge pull request #19221 from ahrtr/race-20250117
Fix race condition (also a regression of the PR 19139)
2025-01-22 14:44:21 +00:00
c9045d650e Merge pull request #19086 from gojoy/readyz-learner
etcdserver: add learner check to readyz
2025-01-22 11:05:42 +01:00
8c1547bc59 Merge pull request #19247 from serathius/match-defaults
Add tests for NewConfig matching AddFlags defaults
2025-01-22 10:55:33 +01:00
4e77d69ef8 Merge pull request #19246 from henrybear327/dependency/25_1_21
[2025-01-21] Bump dependency updates identified by dependabot
2025-01-22 07:50:21 +00:00
989c556645 etcdserver: add learner check to readyz
Signed-off-by: GitHub <noreply@github.com>
2025-01-22 02:12:44 +00:00
1106969a48 dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.58.0 to 0.59.0
Reference:
- https://github.com/etcd-io/etcd/pull/19235

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2025-01-21 20:38:33 +00:00
7166571b57 dependency: bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.33.0 to 1.34.0, and other related ones
Also bumped:
- go.opentelemetry.io/otel from v1.33.0 to v1.34.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace from v1.33.0 to v1.34.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from v1.33.0 to v1.34.0
- go.opentelemetry.io/otel/metric from v1.33.0 to v1.34.0
- go.opentelemetry.io/otel/sdk from v1.33.0 to v1.34.0
- go.opentelemetry.io/otel/trace from v1.33.0 to v1.34.0
- google.golang.org/genproto/googleapis/api from v0.0.0-20250102185135-69823020774d to v0.0.0-20250115164207-1a7da9e5054f
- google.golang.org/genproto/googleapis/rpc from v0.0.0-20250102185135-69823020774d to v0.0.0-20250115164207-1a7da9e5054f

Reference:
- https://github.com/etcd-io/etcd/pull/19234
- https://github.com/etcd-io/etcd/pull/19236
- https://github.com/etcd-io/etcd/pull/19237

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2025-01-21 20:37:43 +00:00
dd1d3ad435 dependency: bump google.golang.org/protobuf from 1.36.2 to 1.36.3
Reference:
- https://github.com/etcd-io/etcd/pull/19227

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2025-01-21 20:37:32 +00:00
79a45192a4 dependency: bump github.com/alexfalkowski/gocovmerge from 1.3.17 to 1.3.18
Reference:
- https://github.com/etcd-io/etcd/pull/19241

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2025-01-21 20:37:03 +00:00
83771ffb13 Merge pull request #19105 from manthanguptaa/tests-unexported-return
tests: address bridge unexported return issue
2025-01-21 20:27:15 +00:00
ce545613bd Add tests for hardcoded flags in TestEtcdServerProcessConfig
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2025-01-21 19:57:10 +01:00
6ddc4a2861 Add tests for NewConfig matching AddFlags defaults
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2025-01-21 17:39:51 +01:00
201568ac45 add commment to clarify the etcd shutting down workflow
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-21 15:46:15 +00:00
7c56ef2c0d Merge pull request #19233 from AwesomePatrol/add-compaction-to-kubernetess-robustness-tests
Add compaction to kubernetes robustness tests
2025-01-21 12:23:59 +01:00
845a330e46 Implement Kubernetes like compaction
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2025-01-21 12:03:04 +01:00
86a31702c4 Ensure all goroutines created by StartEtcd to complete before closing the errc
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-21 10:52:35 +00:00
3527b3b224 Enhance method (*serveCtx) serve to wait for all goroutines to complete before it returns
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-21 10:52:35 +00:00
0dcd015147 Merge pull request #19239 from etcd-io/dependabot/github_actions/github/codeql-action-3.28.1
build(deps): bump github/codeql-action from 3.28.0 to 3.28.1
2025-01-21 08:07:33 +00:00
9f9d2c1d6c Merge pull request #19240 from etcd-io/dependabot/github_actions/actions/upload-artifact-4.6.0
build(deps): bump actions/upload-artifact from 4.5.0 to 4.6.0
2025-01-21 07:52:34 +00:00
5ccbeec769 Merge pull request #19218 from serathius/fix-selecting-experimental-flag
Fix passing compaction-batch-limit to etcd v3.4 and v3.5
2025-01-20 18:45:38 +01:00
06f77b96fb build(deps): bump actions/upload-artifact from 4.5.0 to 4.6.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.5.0 to 4.6.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](6f51ac03b9...65c4c4a1dd)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-20 17:29:34 +00:00
8127b0da9e build(deps): bump github/codeql-action from 3.28.0 to 3.28.1
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.0 to 3.28.1.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](48ab28a6f5...b6a472f63d)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-20 17:29:30 +00:00
8c989a1e37 Fix passing compaction-batch-limit to etcd v3.4 and v3.5
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2025-01-20 17:14:21 +01:00
52061becca build(deps): bump github.com/golang-jwt/jwt from v4 to v5
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>

Co-authored-by: Benjamin Wang <benjamin.wang@broadcom.com>
2025-01-20 11:42:40 +00:00
83cf7bb4fc Merge pull request #19188 from fuweid/fix-19179
mvcc: restore tombstone index if it's first revision
2025-01-20 09:18:24 +00:00
bae527c3cd Merge pull request #19230 from ahrtr/test_20250118
wait for the member to get started
2025-01-20 09:26:43 +01:00
d8b4192574 mvcc: restore tombstone index if it's first revision
The tombstone could be the only one available revision in database.
It happens when all historical revisions have been deleted in previous
compactions. Since tombstone revision is still in database, we should
restore it as valid key index. Otherwise, we lost that event.

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2025-01-19 18:12:25 -05:00
88b39386b4 Merge pull request #19152 from mmorel-35/revive/superfluous-else
chore: enable early-return and superfluous-else from revive
2025-01-19 08:49:14 +00:00
bc4669c90d wait for the member to get started
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-18 18:50:47 +00:00
7da675a327 docs: correct compaction period comments for 24-hour window
Update compaction period logic in periodic compactor to consistently
use 24-hour intervals instead of 1-hour. This fixes incorrect time
calculations where:
- Compaction period now correctly uses 24-hour instead of 1-hour
- Revision recording interval updated to 144-minute (1/10 of 24-hour)
  instead of 6-minute
- Retry interval on compaction failure adjusted to 144-minute to
  match the new period

This ensures consistent time-based compaction behavior for 24-hour
windows as originally intended.

Fixes #[issue-19017]

Signed-off-by: wodeyoulai <106662970@qq.com>
2025-01-18 17:39:30 +08:00
2f37f4841e Merge pull request #19201 from arturmelanchyk/optimise-mem-alloc
flags: optimise memory allocation
2025-01-18 08:52:06 +00:00
10d7cea552 chore: enable early-return and superfluous-else from revive
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>

Co-authored-by: Iván Valdés Castillo <iv@nvald.es>
2025-01-18 09:44:58 +01:00
831fa7a38e Merge pull request #19198 from callthingsoff/reuse_addr_in_TCPProxy_Run
server/proxy/tcpproxy: reuse addr in TCPProxy.Run
2025-01-18 08:44:26 +00:00
6187c95689 Merge pull request #19214 from ajaysundark/bump-etcd-golang-toolchain-1.23.5
Update golang toolchain to 1.23.5
2025-01-18 08:40:25 +00:00
74ffe2e783 etcd: update golang toolchain to 1.23.5
Signed-off-by: ajaysundar.k <ajaysundar.k@gmail.com>
2025-01-18 00:08:48 +00:00
ecd7cfc072 Merge pull request #19226 from siyuanfoundation/downgrade-robust-2
robustness: do not panic when parsing unknown versions.
2025-01-17 19:27:48 +00:00
2fb77c0ff1 Merge pull request #19224 from ivanvc/changelog-go-1.22.11
changelog: update Go entry to reflect 1.22.11 update
2025-01-17 19:23:51 +00:00
b4e9d81fdd Merge pull request #19209 from henrybear327/dependencies/25_01_16
[2025-01-16] Bump dependency updates identified by dependabot
2025-01-17 18:22:43 +00:00
672ba742ff robustness: do not panic when parsing unknown versions.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2025-01-17 09:47:01 -08:00
1898aeceb8 changelog: update Go entry to reflect 1.22.11 update
Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-01-17 09:35:28 -08:00
5d47d7fc2e Merge pull request #19093 from serathius/snapshot-leak
Prevent leaking file descriptor during snapshotting and provide better logging of errors
2025-01-17 14:50:34 +01:00
c504fed58c Prevent leaking file descriptor during snapshotting and provide better logging of errors
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2025-01-17 10:41:26 +01:00
9da01a8275 Merge pull request #19196 from gangli113/main
migrate flag experimental-compaction-batch-limit to use compaction-batch-limit
2025-01-17 07:43:22 +00:00
b33855055a dependency: bump go.opentelemetry.io/proto/otlp from 1.4.0 to 1.5.0, google.golang.org/genproto/googleapis/api from v0.0.0-20241219192143-6b3ec007d9bb to v0.0.0-20250102185135-69823020774d, and google.golang.org/genproto/googleapis/rpc from v0.0.0-20241219192143-6b3ec007d9bb to v0.0.0-20250102185135-69823020774d
Reference:
- https://github.com/etcd-io/etcd/pull/19182

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2025-01-16 22:27:52 +01:00
ca1b6560ff dependency: bump google.golang.org/protobuf from 1.36.1 to 1.36.2
Reference:
- https://github.com/etcd-io/etcd/pull/19184

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2025-01-16 22:27:52 +01:00
9b30e122e5 dependency: bump google.golang.org/grpc from 1.69.2 to 1.69.4
Reference:
- https://github.com/etcd-io/etcd/pull/19185

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2025-01-16 22:27:52 +01:00
0686a239fd dependency: bump github.com/google/yamlfmt from 0.14.0 to 0.15.0
Reference:
- https://github.com/etcd-io/etcd/pull/19186

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2025-01-16 22:27:52 +01:00
ab819b5a4b Merge pull request #19207 from ahrtr/migrate_command_20250116
Minor refactor on the etcdutl migrate command
2025-01-16 15:17:11 +00:00
76aadeff38 Merge pull request #19169 from jmao-dd/jmao/robusttest-18089
Add Robustness test to reproduce issue 18089
2025-01-16 16:08:07 +01:00
39ccd99efb Minor refactor on the etcdutl migrate command
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-16 13:24:38 +00:00
7590a7ebae tests: Reproduce #18089 in robustness tests
1) Use SleepBeforeSendWatchResponse failpoint to simulate slow watch
2) Decrease compact period from 200ms to 100ms to increase the probability of compacting on Delete
3) Introduce a new traffic pattern of 50/50 Put and Delete

With these three changes the `make test-robustness-issue18089` command can reproduce issue 18089.

Signed-off-by: Jiayin Mao <jiayin.mao@datadoghq.com>
2025-01-16 12:49:05 +00:00
1ef973c27e fix lint error
Signed-off-by: Gang Li <gangligit@gmail.com>
2025-01-15 15:10:12 -08:00
92673d196c Merge pull request #19200 from ahrtr/cluster_20250115
Minor refactor on RaftCluster.Recover()
2025-01-15 21:35:40 +00:00
2dbb689433 Merge pull request #19120 from mmorel-35/golangci-lint/revive/use-any
chore: enable use-any rule from revive
2025-01-16 08:25:00 +13:00
1346f36388 Merge pull request #19199 from ahrtr/etcdutl_test_20250115
Rename migrate_command_test.go to common_test.go
2025-01-15 19:02:32 +00:00
dcbd309945 flags: optimise memory allocation
Signed-off-by: Artur Melanchyk <arturmelanchyk@imail.name>
2025-01-15 19:39:00 +01:00
8d0f165fd5 Minor refactor on RaftCluster.Recover()
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-15 16:26:47 +00:00
a908d35544 Rename migrate_command_test.go to common_test.go
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-15 16:21:29 +00:00
88a1bc3170 server/proxy/tcpproxy: reuse addr in TCPProxy.Run
"addr" is the result of net.JoinHostPort which supports IPv6 address.

Rather than ranging "tp.Endpoints" again, it's better to reuse
"addr" in the first loop to collect "eps".

See #7942 and #7943 for context.

Signed-off-by: Jes Cok <xigua67damn@gmail.com>
2025-01-15 22:08:23 +08:00
ce4b4e533d Merge pull request #19125 from siyuanfoundation/downgrade-robust-2
add MemberDowngradeUpgrade failpoint
2025-01-15 10:30:00 +01:00
99aab24cd5 Merge pull request #19194 from fuweid/update-robustness-traffic
tests/robustness/traffic: should use rev=0 for create
2025-01-15 10:16:38 +01:00
8f51613574 add MemberDowngradeUpgrade failpoint
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2025-01-15 01:06:39 +00:00
33d65fc90b TestConfigFileDeprecatedOptions
Signed-off-by: Gang Li <gangligit@gmail.com>
2025-01-14 16:26:50 -08:00
d9d60be322 tests/robustness/traffic: should use rev=0 for create
Signed-off-by: Wei Fu <fuweid89@gmail.com>
2025-01-14 14:08:30 -05:00
76d836f2cc Merge pull request #19187 from etcd-io/dependabot/docker/distroless/static-debian12-3f2b64ef97bd285e36132c684e6b2ae8f2723293d09aae046196cca64251acac
build(deps): bump distroless/static-debian12 from `5c7e2b4` to `3f2b64e`
2025-01-14 13:36:37 +00:00
b3c065ad37 Merge pull request #19170 from callthingsoff/simplify_MergeOutputPaths
client/pkg/logutil: simplify MergeOutputPaths function
2025-01-14 13:05:25 +00:00
2386cd49b6 client/pkg/logutil: simplify MergeOutputPaths function
This patch follows #19181.

Signed-off-by: Jes Cok <xigua67damn@gmail.com>
2025-01-14 19:59:19 +08:00
5813dce9ad Merge pull request #19156 from gangli113/experimentalFlag
migrate flag experimental-corrupt-check-time to use corrupt-check-time
2025-01-14 09:35:15 +01:00
ccda73aa3d Merge pull request #19171 from joshuazh-x/changelog
Update 3.4/3.5 CHANGELOG with fix for deadlock in etcd.Close
2025-01-14 07:47:37 +00:00
c3fb7954ee fix: use testify instead of t.Fatal or t.Error in server package
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-01-14 08:12:46 +01:00
c6f817eb66 add experimental-corrupt-check-time into testcase TestConfigFileDeprecatedOptions
Signed-off-by: Gang Li <gangligit@gmail.com>
2025-01-13 12:04:39 -08:00
f4e7157ff1 migrate to use corrupt-check-time flag
Signed-off-by: Gang Li <gangligit@gmail.com>

add entry for --corrupt-check-time in help.go

Signed-off-by: Gang Li <gangligit@gmail.com>

remove a space

Signed-off-by: Gang Li <gangligit@gmail.com>

fix format

Signed-off-by: Gang Li <gangligit@gmail.com>

fix cluster.go

Signed-off-by: Gang Li <gangligit@gmail.com>

Add test in e2e for experimental corrupt check time flag

Signed-off-by: Gang Li <gangligit@gmail.com>

fix comment

Signed-off-by: Gang Li <gangligit@gmail.com>

fix comment

Signed-off-by: Gang Li <gangligit@gmail.com>
2025-01-13 11:58:40 -08:00
b00316e031 build(deps): bump distroless/static-debian12 from 5c7e2b4 to 3f2b64e
Bumps distroless/static-debian12 from `5c7e2b4` to `3f2b64e`.

---
updated-dependencies:
- dependency-name: distroless/static-debian12
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-13 17:33:45 +00:00
ebb2b06b1c Merge pull request #19181 from callthingsoff/add_test_for_MergeOutputPaths
client/pkg/logutil: add test for MergeOutputPaths
2025-01-13 15:13:06 +01:00
5890801f6e Merge pull request #19148 from mansoor17syed/issue_19066
fix for #19066 Print warnings when deprecated options are configured in config file
2025-01-13 15:11:03 +01:00
381ff52038 client/pkg/logutil: add test for MergeOutputPaths
Signed-off-by: Jes Cok <xigua67damn@gmail.com>
2025-01-13 21:25:17 +08:00
ad11af73ae Merge pull request #19174 from ahrtr/migrate_test_20250111
Enhance test case TestEtctlutlMigrate to support multiple member cluster
2025-01-13 12:19:01 +00:00
5c0f709c82 test: fix TestConfigFileDeprecatedOptions
Use minimal config struct for YAML marshaling.
Replace custom mapToSortedSlice with standard library functions.
Fix flag verification for deprecated experimental options.

Fixes etcd-io#19066

Signed-off-by: mansoora <syed.mansoor_a@nokia.com>
2025-01-13 15:13:26 +05:30
9eb85ee6d5 Merge pull request #19165 from henrybear327/dependencies/25_01_10
[2025-01-10] Bump dependency updates identified by dependabot
2025-01-13 09:26:24 +00:00
abf65dde01 Merge pull request #19176 from jmao-dd/jmao/increase-limiter-burst
tests: use high burst value in limiter.
2025-01-13 10:20:55 +01:00
a03bdaabd2 Merge pull request #19175 from jmao-dd/jmao/fix-typo
tests: fix wrong number in comment.
2025-01-13 10:05:18 +01:00
efff68999f Merge pull request #19173 from ahrtr/migrate_20250111
Move getLatestWALSnap into etcdutl/common.go
2025-01-13 10:02:07 +01:00
1430c1d8c1 dependency: bump github.com/jonboulle/clockwork from 0.4.0 to 0.5.0
Bumping this dependency also require fixing func newFakeClock() to
return a pointer to the struct (*clockwork.FakeClock)

Reference:
- https://github.com/etcd-io/etcd/pull/19131

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2025-01-12 21:20:16 +01:00
bc16650c10 dependency: bump golang.org/x/time from 0.8.0 to 0.9.0
Reference:
- https://github.com/etcd-io/etcd/pull/19129

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2025-01-12 21:19:19 +01:00
d3e4a4e2f2 dependency: bump golang.org/x/net from 0.33.0 to 0.34.0, golang.org/x/sys from 0.28.0 to 0.29.0, and golang.org/x/crypto from 0.31.0 to 0.32.0
These 3 bumps need to be performed together.

Reference:
- https://github.com/etcd-io/etcd/pull/19130
- https://github.com/etcd-io/etcd/pull/19132
- https://github.com/etcd-io/etcd/pull/19133

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2025-01-12 21:19:19 +01:00
7b6786efbc dependency: bump github.com/golangci/golangci-lint from 1.62.2 to 1.63.4
Reference:
- https://github.com/etcd-io/etcd/pull/19134

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2025-01-12 21:19:19 +01:00
47bd258fc8 tests: use high burst value in limiter.
Use the highest MaximalQPS of all traffic profiles as burst otherwise actual traffic may be accidentally limited.
For example, if burst is set to 200 it is unlikely traffic can achieve higher than 200.

Signed-off-by: Jiayin Mao <jiayin.mao@datadoghq.com>
2025-01-11 21:15:32 +00:00
5702d87501 tests: fix wrong number in comment.
The expected sum of weights should be 100, not 1000.

Signed-off-by: Jiayin Mao <jiayin.mao@datadoghq.com>
2025-01-11 21:07:44 +00:00
c2025cb75a Enhance test case TestEtctlutlMigrate to support multiple member cluster
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-11 18:00:19 +00:00
83749666fe Move getLatestWALSnap into etcdutl/common.go
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-11 17:52:10 +00:00
cc49fa8f33 Update 3.4/3.5 CHANGELOG with fix for deadlock in etcd.Close
Signed-off-by: Joshua Zhang <joshua.x.zhang@gmail.com>
2025-01-11 14:12:45 +00:00
9db8dcb44b Merge pull request #19112 from aladesawe/rafthttp-error-messaging
rafthttp: Improve warn message in checkClusterCompatibilityFromHeader
2025-01-10 09:49:01 +00:00
a228c1280d Merge pull request #19160 from siyuanfoundation/downgrade-robust-1
robustness: only run MemberDowngrade test for high SnapshotCatchUpEntries
2025-01-10 10:01:48 +01:00
08e4d6d9c2 robustness: only run MemberDowngrade test for high SnapshotCatchUpEntries.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2025-01-09 16:12:02 -08:00
ea50139411 chore: enable use-any rule from revive
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-01-09 22:38:58 +01:00
0edc5c0ee8 Merge pull request #19153 from ivanvc/fix-release-notes-missing-space
Fix release_notes.tpl.txt by adding a space between Docker image name and version
2025-01-09 20:53:59 +00:00
519a2e3a27 Update release_notes.tpl.txt
Add space between ${ETCD_VER} and Path

Co-authored-by: sunfeilong <31331079+sunfeilong@users.noreply.github.com>
Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-01-09 11:47:06 -08:00
0f172d4a24 Merge pull request #19151 from fuweid/update-changelog
CHANGELOG: update CHANGELOG-3.5.md
2025-01-09 18:22:17 +00:00
df209baaa4 CHANGELOG: update CHANGELOG-3.5.md
* add item: support custom content check offline in v2store

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2025-01-09 17:10:23 +00:00
0e45288d9f Merge pull request #19128 from ahrtr/etcdutl_migrate_20250106
Update etcdutl migrate command: load wal records from the latest snapshot
2025-01-09 16:41:15 +00:00
6277dbecc9 Merge pull request #19126 from callthingsoff/modernize_map_op
all: simplify and clean up
2025-01-09 16:00:01 +00:00
ec52e35871 Update etcdutl migrate command: load wal records from the latest snapshot
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-09 14:39:27 +00:00
75f2ae1b62 Merge pull request #19139 from joshuazh-x/fix-embed-close-deadlock
Avoid deadlock in etcd.Close when stopping during bootstrapping
2025-01-09 10:50:26 +00:00
3d562c357f Merge pull request #19137 from AwesomePatrol/use-new-interface-in-robustness-tests
Use new interface in robustness tests
2025-01-09 11:27:20 +01:00
f9ce13e7ee Avoid deadlock in etcd.Close when stopping during bootstrapping
Signed-off-by: Joshua Zhang <joshua.x.zhang@gmail.com>
2025-01-09 05:31:35 +00:00
a1a9149bbb Fix typo in typo fix
Signed-off-by: adeyemi <adeyemi.aladesawe@gmail.com>
2025-01-08 10:54:00 -08:00
3388e2bf09 Merge pull request #19146 from AwesomePatrol/revert-19069-to-reduce-flakiness
Revert "Update the allowedErrors" to reduce e2e test flakiness
2025-01-08 16:08:51 +01:00
d5231c7498 Revert "Update the allowedErrors in TestNoErrorLogsDuringNormalOperations"
This reverts commit 425e5b8176.

Signed-off-by: Aleksander Mistewicz <amistewicz@google.com>
2025-01-08 15:17:38 +01:00
00e5b654a1 Merge pull request #19095 from ahrtr/wal_20241221
Still return continuous WAL entries when running into ErrSliceOutOfRange
2025-01-08 14:14:19 +00:00
2415c826c2 all: simplify and clean up
This patch modernizes the for-range-loop code to copy a map with
"maps.Clone" and "maps.Copy", also eliminates "copyFloats" with
"slices.Clone".

Also simplify "aggSort" and "sortMap" with slices and maps functions.

Signed-off-by: Jes Cok <xigua67damn@gmail.com>
2025-01-08 21:35:32 +08:00
8335e70304 Migrate all OldTxn calls to Txn
Signed-off-by: Aleksander Mistewicz <amistewicz@google.com>
2025-01-08 11:48:26 +01:00
7c7d3ce8ae Migrate all OldGet calls to Get
Signed-off-by: Aleksander Mistewicz <amistewicz@google.com>
2025-01-08 11:48:26 +01:00
524afd20d1 Set GetOnFailure=true to better simulate k8s traffic
Signed-off-by: Aleksander Mistewicz <amistewicz@google.com>
2025-01-08 11:48:26 +01:00
3247bc42bb Make traffic robustness test use kubernetes.Interface
Signed-off-by: Aleksander Mistewicz <amistewicz@google.com>
2025-01-08 11:48:26 +01:00
70a172696d Merge pull request #19140 from ahrtr/mix_version_test_20250107
Fix mixVersion test case: ensure a snapshot to be sent out
2025-01-08 10:10:53 +00:00
3ee0d4f2e9 Fix mixVersion test case: ensure a snapshot to be sent out
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-07 16:21:56 +00:00
aac7ef6bcc Merge pull request #19136 from ahrtr/member_promote_test_20250107
Fix the inconsistent between listen peerURL and advertise peerURL
2025-01-07 13:58:16 +00:00
e78cec8e52 Fix the inconsistent between listen peerURL and advertise peerURL
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-01-07 12:31:33 +00:00
fce823ac28 Merge pull request #19121 from ArkaSaha30/deps_mgmt_30_12_24
[2024-12-30] Manual Dependency Bump
2025-01-03 09:03:08 +00:00
c551be9ef5 dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.57.0 to 0.58.0
This commit will bump dependency go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.57.0 to 0.58.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-01-02 15:44:49 +05:30
f307354986 Merge pull request #19038 from siyuanfoundation/downgrade-robust-2
Add MemberDowngrade failpoint
2024-12-31 12:45:58 +00:00
6c4e7dfb04 Merge pull request #19108 from ArkaSaha30/deps_mgmt_23_12_24
[2024-12-23] Manual Dependency Bump
2024-12-28 21:55:18 +13:00
3782b6709d Merge pull request #19111 from jverce/fix/links-in-contrib-guide
docs(contributing): fix links and build tool list
2024-12-28 21:48:47 +13:00
05ff6333a9 Rephrase warn messaging
Signed-off-by: adeyemi <adeyemi.aladesawe@gmail.com>
2024-12-27 21:15:14 -08:00
7577a56c1f Update misleading warn message when versions mismatch
Signed-off-by: adeyemi <adeyemi.aladesawe@gmail.com>
2024-12-27 09:49:22 -08:00
38739fc8bc docs(contributing): fix links and build tool list
* Fix a couple of broken links related to code styling and linting
* Add `jq` and `xz` to the list of build tools (needed when running
  `make verify`)
* Add links to the website of all the listed build tools

Signed-off-by: Jay Vercellone <juanjov@gmail.com>
2024-12-27 08:35:09 -08:00
d76cdc2141 dependency: bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.32.0 to 1.33.0
This commit will bump dependency go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.32.0 to 1.33.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-12-27 15:33:46 +05:30
d0f78d0442 dependency: bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.24.0 to 2.25.1
This commit will bump dependency github.com/grpc-ecosystem/grpc-gateway/v2 from 2.24.0 to 2.25.1

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-12-27 15:31:45 +05:30
63ff2e37ed dependency: bump google.golang.org/protobuf from 1.36.0 to 1.36.1
This commit will bump dependency google.golang.org/protobuf from 1.36.0 to 1.36.1

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-12-27 15:23:38 +05:30
a869bdf8e6 dependency: bump google.golang.org/grpc from 1.69.0 to 1.69.2
This commit will bump dependency google.golang.org/grpc from 1.69.0 to 1.69.2

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-12-27 15:17:56 +05:30
bf3bb6d8be dependency: bump golang.org/x/net from 0.32.0 to 0.33.0
This commit will bump dependency golang.org/x/net from 0.32.0 to 0.33.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-12-27 15:01:04 +05:30
a37bee012a Merge pull request #19102 from etcd-io/dependabot/github_actions/actions/upload-artifact-4.5.0
build(deps): bump actions/upload-artifact from 4.4.3 to 4.5.0
2024-12-24 22:29:07 +13:00
ecf98969d3 Merge pull request #19103 from etcd-io/dependabot/github_actions/github/codeql-action-3.28.0
build(deps): bump github/codeql-action from 3.27.9 to 3.28.0
2024-12-24 09:27:17 +00:00
0f6a30fb04 tests: address bridge unexported return issue
Signed-off-by: Manthan Gupta <manthangupta109@gmail.com>
2024-12-24 08:23:57 +05:30
747ef5f5fe Add MemberDowngrade failpoint
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-12-23 13:08:13 -08:00
e22d809bff build(deps): bump github/codeql-action from 3.27.9 to 3.28.0
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.27.9 to 3.28.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](df409f7d92...48ab28a6f5)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-23 17:22:28 +00:00
fdde37d11f build(deps): bump actions/upload-artifact from 4.4.3 to 4.5.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.4.3 to 4.5.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](b4b15b8c7c...6f51ac03b9)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-23 17:22:19 +00:00
e30a4abc75 Merge pull request #19078 from ishan16696/migrate/flagTofeatureGate
migrate `--experimental-txn-mode-write-with-shared-buffer` flag to feature gate.
2024-12-21 19:20:55 +00:00
c73b3d1e8f migrate experimental-txn-mode-write-with-shared-buffer flag to feature gate.
Signed-off-by: ishan16696 <ishan.tyagi@sap.com>
2024-12-21 23:46:11 +05:30
44073ed85d fix: use testify instead of t.Fatal in tests/common package (part 2)
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-12-21 16:51:26 +01:00
152de1fa7e Still return continuous WAL entries when running into ErrSliceOutOfRange
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-12-21 15:33:14 +00:00
40b856edff Merge pull request #18967 from mmorel-35/testifier/client
fix: use testify instead of t.Fatal or t.Error in client package (part 1)
2024-12-21 14:23:06 +00:00
9fa35e53f4 Merge pull request #19080 from ArkaSaha30/deps_mgmt_16_12_24
[2024-12-16] Manual Dependency Bump
2024-12-19 23:34:25 +13:00
9db12c6d02 Merge pull request #19081 from ahrtr/log_migrage_20241218
Add more info in the error message in downgrade detection
2024-12-19 09:41:23 +00:00
ce511f6ce8 dependency: bump google.golang.org/protobuf from 1.35.2 to 1.36.0
This commit will bump dependency google.golang.org/protobuf from 1.35.2 to 1.36.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-12-19 14:12:22 +05:30
8359b320d1 dependency: bump go.opentelemetry.io/otel from 1.32.0 to 1.33.0
This commit will bump dependency go.opentelemetry.io/otel from 1.32.0 to 1.33.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-12-19 14:11:12 +05:30
e4d1da73e1 Merge pull request #19077 from srujangit123/remove-nil-checks
backend: Remove logger nil checks
2024-12-19 09:07:30 +01:00
21021b2e31 Merge pull request #19085 from ivanvc/remove-receiver-name-check
scripts: remove receiver name check
2024-12-19 09:05:04 +01:00
d2d1678f13 scripts: remove receiver name check
This check is duplicated as the project uses revive's receiver-naming,
which is more robust, as the current check may have false positives.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-12-18 22:48:40 -08:00
b53107151a Merge pull request #19082 from ahrtr/etcd-logs_20241218
[tools/etcd-dump-logs] Fix the usage of --start-index in etcd-dump-logs
2024-12-18 17:06:18 +00:00
2830237e33 Add more info in the error message in downgrade detection
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-12-18 15:23:12 +00:00
76f436c09b Fix the usage of --start-index in etcd-dump-logs
Currently if users explicitly set --start-index=0, it will
be ignored. It isn't expected, we should respect it as long
as users explicitly set it.

Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-12-18 15:18:41 +00:00
0966b4d68e Merge pull request #18970 from mmorel-35/testifier/pkg
fix: use testify instead of t.Fatal or t.Error in pkg package (part 1)
2024-12-18 23:10:28 +13:00
a4e744aed3 Merge pull request #19079 from ivanvc/remove-duplicate-bom-fix-in-make-fix
scripts: remove duplicate bom fix in fix make target
2024-12-18 09:33:55 +00:00
1dede5f9b3 scripts: remove duplicate bom fix in fix make target
The BOM fix is called from the fix-bom target, which is also a
prerequisite for the fix target. Therefore, running `make fix` runs the
BOM fix twice.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-12-17 21:52:53 -08:00
5398519dc9 backend: remove ugly nil checks
To remove the ugly nil checks by instantiating the logger with a no-op logger if it is nil.

Signed-off-by: Srujan Bharadwaj <srujanbharadwaj44@gmail.com>
2024-12-18 03:04:12 +00:00
b5c620a75d Merge pull request #19053 from siyuanfoundation/fg
migrate experimental-compact-hash-check-enabled to feature gate.
2024-12-17 19:07:14 +00:00
85363bda32 migrate experimental-compact-hash-check-enabled to feature gate.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-12-17 09:44:53 -08:00
b4450d510d Merge pull request #19076 from etcd-io/dependabot/github_actions/github/codeql-action-3.27.9
build(deps): bump github/codeql-action from 3.27.6 to 3.27.9
2024-12-16 21:30:55 +00:00
ef9c57bed1 Merge pull request #19075 from etcd-io/dependabot/github_actions/actions/setup-go-5.2.0
build(deps): bump actions/setup-go from 5.1.0 to 5.2.0
2024-12-16 21:22:19 +00:00
139fca117e build(deps): bump github/codeql-action from 3.27.6 to 3.27.9
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.27.6 to 3.27.9.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](aa57810251...df409f7d92)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-16 18:00:10 +00:00
4494135ff9 build(deps): bump actions/setup-go from 5.1.0 to 5.2.0
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](41dfa10bad...3041bf56c9)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-16 18:00:02 +00:00
e0bbea994f Merge pull request #19069 from ahrtr/storageversion_error_20241216
Update the allowedErrors in TestNoErrorLogsDuringNormalOperations
2024-12-16 14:55:33 +00:00
425e5b8176 Update the allowedErrors in TestNoErrorLogsDuringNormalOperations
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-12-16 14:01:42 +00:00
66b09ea353 Merge pull request #19067 from ahrtr/wal_error_20241216
Add more debug info when running into ErrSliceOutOfRange when reading WAL
2024-12-16 13:56:05 +00:00
3acf3e5de9 Merge pull request #19068 from serathius/wait-cluster-version
Wait for cluster version to non-default value to remove errors when cluster is bootstrapping.
2024-12-16 14:38:54 +01:00
e7df5bf830 Wait for cluster version to non-default value to remove errors when cluster is bootstrapping.
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-12-16 13:27:06 +01:00
9143bef424 Add more debug info when running into ErrSliceOutOfRange when reading WAL
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-12-16 10:36:30 +00:00
3241803d35 Merge pull request #18969 from mmorel-35/testifier/etcdctl
fix: use testify instead of t.Fatal or t.Error in etcdctl packages
2024-12-16 10:16:02 +00:00
9ab8c239a2 Merge pull request #19060 from ghouscht/ignore-missing-err-confstate
fix(e2e): ignore error log about failed storage update
2024-12-15 16:06:41 +00:00
c75703d8b8 Merge pull request #19065 from ArkaSaha30/deps_mgmt_9_12_24
[2024-12-13] Manual Dependency Bump
2024-12-15 12:50:08 +13:00
e9bc263eec dependency: bump google.golang.org/grpc from 1.68.1 to 1.69.0
This commit will bump dependency google.golang.org/grpc from 1.68.1 to 1.69.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-12-14 21:32:38 +05:30
3f0ee0e1b6 dependency: bump github.com/alexfalkowski/gocovmerge from 1.3.16 to 1.3.17
This commit will bump dependency github.com/alexfalkowski/gocovmerge from 1.3.16 to 1.3.17

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-12-14 21:24:28 +05:30
b29d08623e Merge pull request #19045 from ivanvc/scripts-simplify-shellws-pass
scripts: fix shellws pass
2024-12-14 08:11:55 +00:00
3b8b0b48ec fix: use testify instead of t.Fatal or t.Error in etcdctl packages
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-12-13 22:06:41 +01:00
fad495ad32 scripts: fix shellws check
Originally this was intended to be a clean up. But after further
investigation the original code didn't work. It didn't detect tabs in
shell scripts.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-12-13 12:10:40 -08:00
07fd512f3c fix(e2e): ignore error log about failed storage update
Signed-off-by: Thomas Gosteli <thomas.gosteli@protonmail.ch>
2024-12-13 16:28:16 +01:00
25dfc8231e Merge pull request #19057 from ahrtr/ready_notify_20241213
Remove duplicated <-s.ReadyNotify()
2024-12-13 13:56:53 +00:00
16ccfc9537 Remove duplicated <-s.ReadyNotify()
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-12-13 10:44:14 +00:00
026bbecd25 Merge pull request #19048 from ArkaSaha30/deps_mgmt_9_12_24
[2024-12-09] Manual Dependency Bump
2024-12-13 08:01:42 +00:00
50e97f8963 Merge pull request #19041 from ahrtr/serve_20241211
Do not wait for ready notify if the server is stopping
2024-12-13 07:50:42 +00:00
93b01af668 Do not wait for ready notify if the server is stopping
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-12-12 21:45:28 +00:00
2cf717251e Merge pull request #19046 from ahrtr/disable_patch_status_20241212
Set a 80% threshold for the codecov status.patch
2024-12-12 21:38:09 +00:00
6d8428778d Set a 80% threshold for the codecov status.patch
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-12-12 20:13:51 +00:00
8f447cfe6e Merge pull request #19047 from ahrtr/comment_storageversion_20241212
Add a TODO comment for UnsafeDetectSchemaVersion on how to simplify t…
2024-12-12 16:30:52 +00:00
3262da49d8 dependency: bump github.com/golangci/golangci-lint from 1.61.0 to 1.62.2
This commit will bump dependency github.com/golangci/golangci-lint from 1.61.0 to 1.62.2

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-12-12 20:34:12 +05:30
5c976cfed7 dependency: bump github.com/prometheus/common from 0.60.1 to 0.61.0
This commit will bump dependency github.com/prometheus/common from 0.60.1 to 0.61.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-12-12 20:34:12 +05:30
39fad3bbcf dependency: bump github.com/alexfalkowski/gocovmerge from 1.3.14 to 1.3.16
This commit will bump dependency github.com/alexfalkowski/gocovmerge from 1.3.14 to 1.3.16

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-12-12 20:34:12 +05:30
cd06ddd03b dependency: bump google.golang.org/grpc from 1.68.0 to 1.68.1
This commit will bump dependency google.golang.org/grpc from 1.68.0 to 1.68.1

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-12-12 20:34:12 +05:30
bc9239a189 dependency: bump golang.org/x/net from 0.31.0 to 0.32.0
This commit will bump dependency golang.org/x/net from 0.31.0 to 0.32.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-12-12 20:34:11 +05:30
2c7504fd80 dependency: bump golang.org/x packages
This commit will bump dependency
- golang.org/x/crypto from 0.29.0 to 0.31.0
- golang.org/x/sys from 0.27.0 to 0.28.0
- golang.org/x/text from 0.20.0 to 0.21.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-12-12 20:32:50 +05:30
50e7f9f697 Add a TODO comment for UnsafeDetectSchemaVersion on how to simplify the implementation
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-12-12 14:49:14 +00:00
f03dee9066 Merge pull request #19042 from ivanvc/update-go-mod-tidy-pass-to-use-diff
scripts: simplify mod tidy pass
2024-12-12 09:16:48 +00:00
fe14e244f8 Merge pull request #19034 from manthanguptaa/consistent_go_version_doc
Documentation: consistent way to manage go version
2024-12-11 22:23:45 +00:00
9d8f2fa157 scripts: simplify mod tidy pass
The original go mod tidy pass implementation was done before the `--diff`
go mod option existed. This simplifies the implementation, as temporary
files are no longer needed.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-12-11 13:29:18 -08:00
3cf550d3a4 Merge pull request #19036 from ahrtr/maxsnapshot_20241210
Mark --max-snapshots as deprecated in 3.6 and will be decommissioned …
2024-12-11 12:48:46 +00:00
1ba4f32e95 docs: consistent way to manage go version
Signed-off-by: Manthan Gupta <manthangupta109@gmail.com>
2024-12-11 14:39:05 +05:30
99f99cbb2f fix: use testify instead of t.Fatal or t.Error in client package (part 1)
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-12-11 07:58:17 +01:00
0a71106a68 fix: use testify instead of t.Fatal or t.Error in pkg package (part 1)
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-12-11 07:57:37 +01:00
4bdf0d233e Mark --max-snapshots as deprecated in 3.6 and will be decommissioned in 3.7
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-12-10 12:15:53 +00:00
39d9cd707a Merge pull request #18968 from mmorel-35/testifier/contrib
fix: use testify instead of t.Fatal or t.Error in contrib package
2024-12-10 08:05:49 +00:00
854bdd646c Merge pull request #19032 from ahrtr/memberadd_test_20241209
Update TestMemberAdd's context timeout by adding 5 more seconds
2024-12-09 12:34:24 +00:00
99be181902 Update TestMemberAdd's context timeout by adding 5 more seconds
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-12-09 11:12:03 +00:00
801dfc3964 Format the 3.5 changelog (#19031)
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-12-07 16:51:59 +00:00
bbe48b3778 Update Changelog of 3.5 and 3.4 (#19028)
* Update changelog for both 3.4 and 3.5 to cover the go version bumping

Signed-off-by: Anurag De <anuragde2004@gmail.com>

---------

Signed-off-by: Anurag De <anuragde2004@gmail.com>
2024-12-07 10:48:35 +00:00
675c2e3b25 Merge pull request #19019 from etcd-io/dependabot/github_actions/github/codeql-action-3.27.6
build(deps): bump github/codeql-action from 3.27.5 to 3.27.6
2024-12-06 15:00:18 -07:00
7bb55966d9 Merge pull request #19006 from ahrtr/v2_deprecation_20241204
Deprecate `--v2-deprecation` and schedule to remove it in 3.8
2024-12-06 14:24:07 +00:00
f128d89cea Merge pull request #19016 from ivanvc/update-release-documentation-for-pre-releases
docs: Add note on releasing a pre-release
2024-12-06 09:20:19 +00:00
654495c4dc Merge pull request #19011 from ivanvc/fix-release-script-for-main-branch-releases
release: Allow "v" prefix when specifying release version
2024-12-06 08:04:42 +00:00
476e6b44f1 build(deps): bump github/codeql-action from 3.27.5 to 3.27.6
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.27.5 to 3.27.6.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](f09c1c0a94...aa57810251)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-06 08:03:35 +00:00
27a7c1a678 Merge pull request #18992 from mmorel-35/dependabot/tools
chore: group tools/mod updates and update only direct dependencies
2024-12-06 08:02:55 +00:00
5a378e7a55 docs: Add note on releasing a pre-release
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-12-05 16:22:51 -08:00
e1e1787faf release: allow to specify version with the "v" prefix
The script currently fails if the version provided has the "v" prefix
(i.e., v3.6.0). Allow receiving the prefix and continue with the
process.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-12-05 15:27:27 -08:00
ad76095f2d group tools/mod updates and update only direct dependencies
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-12-05 22:39:23 +01:00
c1171dac78 Merge pull request #19013 from mmorel-35/fix-golangcilint-yaml
fix: golangci-lint yamllint
2024-12-05 11:18:48 +00:00
71d55fe94f fix: golangci-lint yamllint
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-12-05 09:25:43 +00:00
da807d750f Merge pull request #18973 from mmorel-35/golangci-lint@v1.62.2
fix: enable gosimple linter
2024-12-04 19:51:47 +00:00
2b323071a8 Merge pull request #19008 from ahrtr/changelog_3.5_v2store_20241204
Update 3.5 changelog to cover the warning message for the deprecated v2 flags if set
2024-12-04 16:33:54 +00:00
a45cc4961e Merge pull request #19003 from deanurag/main-go-1.23.4-update
Bump go toolchain to 1.23.4
2024-12-04 15:38:10 +00:00
f54c8f55d3 Deprecate --v2-deprecation and schedule to remove it in 3.8
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-12-04 14:44:18 +00:00
e89c8ed84b Update 3.5 changelog to cover the warning message for the deprecated v2 flags if set
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-12-04 14:02:58 +00:00
084d8726ff Update the comments for the v2 deprecation levels to make them clearer
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-12-04 12:58:42 +00:00
7e04bd2de9 Merge pull request #18897 from tjungblu/CL_tlsmin3
GRPC Proxy TLS version Changelog updates
2024-12-04 12:56:15 +00:00
fbac2a064c Merge pull request #19002 from ArkaSaha30/deps_mgmt_2_12_24
[2024-12-02] Manual Dependency Bump
2024-12-04 03:19:57 -07:00
e9300c0ab2 GRPC Proxy TLS version Changelog updates
Signed-off-by: Thomas Jungblut <tjungblu@redhat.com>
2024-12-04 11:19:35 +01:00
51cab64e22 Merge pull request #18966 from mmorel-35/testifier/api
fix: use testify instead of t.Fatal or t.Error in api package
2024-12-04 09:34:19 +00:00
715c12dec7 Merge pull request #18998 from ahrtr/snapshot_count_20241203
Mark --snapshot-count as deprecated in v3.6 and will be decommissioned in 3.7
2024-12-04 08:11:49 +00:00
fb42ae06b8 etdc main: updated go version from 1.23.3 to 1.23.3
Signed-off-by: Anurag De <anuragde2004@gmail.com>
2024-12-04 13:26:05 +05:30
8965987257 dependency: bump go.opentelemetry.io/proto/otlp from 1.3.1 to 1.4.0
This commit will bump dependency go.opentelemetry.io/proto/otlp from 1.3.1 to 1.4.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-12-04 11:46:41 +05:30
8bc42d9075 Mark --snapshot-count as deprecated in v3.6 and will be decommissioned in v3.7
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-12-03 15:02:17 +00:00
647f1621d6 fix: enable gosimple linter
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-12-03 07:32:22 +01:00
b0387393a2 Merge pull request #18982 from etcd-io/dependabot/docker/distroless/static-debian12-5c7e2b465ac6a2a4e5f4f7f722ce43b147dabe87cb21ac6c4007ae5178a1fa58
build(deps): bump distroless/static-debian12 from `f4a57e8` to `5c7e2b4`
2024-12-02 17:12:36 -07:00
06c07362ba Merge pull request #18991 from serathius/reuse-grpc-overhead
Reuse grpcOverheadBytes calculation by creating a function for that
2024-12-02 21:00:39 +01:00
c77ea65979 Reuse grpcOverheadBytes calculation by creating a function for that
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-12-02 19:04:38 +01:00
6fa7342669 Merge pull request #17563 from serathius/sync-reuse
Reuse events used for syncing watchers
2024-12-02 19:01:08 +01:00
a76ad4f92e build(deps): bump distroless/static-debian12 from f4a57e8 to 5c7e2b4
Bumps distroless/static-debian12 from `f4a57e8` to `5c7e2b4`.

---
updated-dependencies:
- dependency-name: distroless/static-debian12
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-02 17:56:17 +00:00
348c0cb2be Reuse events between sync loops
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-12-02 18:07:25 +01:00
1f4439c2eb Extract rangeEvents function
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-12-02 18:06:59 +01:00
afb5c1d85b Merge pull request #18977 from serathius/robustness-non-linearized-member-list
Handle non-linearized MemberList in v3.4 for robustness tests
2024-12-02 15:32:27 +01:00
f2472d4b80 Handle non-linearized MemberList in v3.4 for robustness tests
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-12-02 14:32:38 +01:00
78885f634b Merge pull request #18976 from serathius/watch-sync-refactor
Watch sync refactor
2024-12-02 14:22:01 +01:00
2269d60609 Merge pull request #18821 from mmorel-35/tests/e2e/testifier/require-error
fix: use require instead of t.Fatal(err) in tests/e2e package
2024-12-02 13:14:18 +00:00
f560fe1507 fix: use require instead of t.Fatal(err) in tests/e2e package
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-12-01 21:38:03 +00:00
d714b904e9 fix: use testify instead of t.Fatal or t.Error in api package
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-12-01 21:37:17 +00:00
7f9efcfe52 fix: use testify instead of t.Fatal or t.Error in contrib package
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-12-01 21:36:39 +00:00
3741000161 Use number of revisions instead of batches to configure TestWatchBatchUnsynced
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-12-01 21:02:48 +01:00
2a415cc62b Add scenario for 1 events per revison TestWatchBatchUnsynced
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-12-01 21:02:48 +01:00
e88802ac2a Use table tests for TestWatchBatchUnsynced
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-12-01 21:02:48 +01:00
1e655bf039 Make batching in TestWatchBatchUnsynced explicit
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-12-01 21:02:48 +01:00
8c5e42d41b Use assert in TestWatchBatchUnsynced
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-12-01 21:02:48 +01:00
06a5cd6eb3 Simplify TestSyncWatchers to make recepie for more tests
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-12-01 21:02:48 +01:00
52ea2f83c5 Use constructor in tests
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-12-01 21:02:48 +01:00
3d46df15f7 Merge pull request #18979 from serathius/fix-gofump
Fix gofump error due to merge race
2024-12-01 20:59:48 +01:00
093df6f4d2 Fix gofump error due to merge race
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-12-01 20:03:34 +01:00
278a9a2682 Merge pull request #18964 from jmhbnz/main
Add a threshold for codecov failure
2024-11-30 11:30:24 +01:00
e476f728a2 Merge pull request #18956 from mmorel-35/gofumpt/pkg
fix: enable gofumpt instead of gofmt linter globally
2024-11-30 09:39:56 +00:00
46127e7ea5 Merge pull request #18961 from ArkaSaha30/deps_mgmt_25_11_24
[2024-11-25] Manual Dependency Bump
2024-11-29 20:09:47 -07:00
977cee362b Add a threshold for codecov failure.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-11-30 16:03:36 +13:00
4068189d88 Merge pull request #18825 from serathius/snapshot-separate
Run a separate in memory snapshot to reduce number of entries stored in raft memory storage
2024-11-29 23:29:06 +01:00
6e8b3e3cde Merge pull request #18962 from serathius/benchmark-indexing
Fix benchmark indexing
2024-11-29 23:25:52 +01:00
18f85aedf4 Fix benchmark indexing
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-29 20:51:01 +01:00
4989834049 Use assert in TestSnapshot tests
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-29 20:49:55 +01:00
6cebf973a1 Run a separate in memory snapshot to reduce number of entries stored in raft memory storage
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-29 20:40:02 +01:00
cfe958de6a Cleanup triggerSnapshot function and rename it to snapshotIfNeededAndCompactRaftLog
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-29 20:39:09 +01:00
d907ecdffd Separate memory and disk snapshot indexes
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-29 20:39:07 +01:00
9d55044494 Move updating snapshot index just after we safe snapshot to disk
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-29 20:38:20 +01:00
152973425a Rename snapshot variables to explicitly mention using disk
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-29 14:18:31 +01:00
4cce12a724 Fix genproto annotations
* Please add etcd_version annotation in *.proto file with next etcd version
* Run ./scripts/genproto.sh
push_pin
* Run ./scripts/update_proto_annotations.sh

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-11-29 16:39:53 +05:30
f75f4022c2 fix: enable gofumpt instead of gofmt linter globally
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-11-29 11:01:35 +01:00
8f91eb1627 Merge pull request #18954 from mmorel-35/gofumpt/server
fix: enable gofumpt instead of gofmt linter in server
2024-11-29 09:24:38 +00:00
41fdb1fdeb Merge pull request #18953 from mmorel-35/gofumpt/tests
fix: enable gofumpt instead of gofmt linter in tests
2024-11-29 09:22:45 +00:00
527c1337e3 dependency: bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.23.0 to 2.24.0
This commit will bump dependency github.com/grpc-ecosystem/grpc-gateway/v2 from 2.23.0 to 2.24.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-11-29 14:46:03 +05:30
6fd6bd812f dependency: bump github.com/stretchr/testify from 1.9.0 to 1.10.0
This commit will bump dependency github.com/stretchr/testify from 1.9.0 to 1.10.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-11-29 12:38:16 +05:30
75cd1369a5 fix: enable gofumpt instead of gofmt linter in tests
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-11-28 21:08:42 +01:00
b0f8da5768 Merge pull request #17008 from serathius/translate-v2-v3
Translate v2 requests into v3 ClusterMemberAttrSetRequest and ClusterVersionSetRequest
2024-11-28 11:48:11 +01:00
99749280fb Merge pull request #18951 from ktalg/main
CHANGELOG: Fix runtime panic that occurs when KeepAlive is called with a Context implemented by an uncomparable type #18893
2024-11-27 09:30:30 +00:00
69efe31ea0 fix: enable gofumpt instead of gofmt linter in server
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-11-27 07:22:36 +01:00
KT
438f9fa0fc CHANGELOG: fix runtime panic that occurs when KeepAlive is called with a Context implemented by an uncomparable type #18893
Signed-off-by: KT <416432526@qq.com>
2024-11-26 22:01:50 +08:00
2abb334103 Merge pull request #18893 from ktalg/fix-comparing-ctx
fix runtime error: comparing uncomparable type
2024-11-26 10:32:06 +00:00
978985d42e Merge pull request #18941 from etcd-io/dependabot/github_actions/aquasecurity/trivy-action-0.29.0
build(deps): bump aquasecurity/trivy-action from 0.28.0 to 0.29.0
2024-11-25 12:36:34 -07:00
d802629163 build(deps): bump aquasecurity/trivy-action from 0.28.0 to 0.29.0
Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.28.0 to 0.29.0.
- [Release notes](https://github.com/aquasecurity/trivy-action/releases)
- [Commits](915b19bbe7...18f2510ee3)

---
updated-dependencies:
- dependency-name: aquasecurity/trivy-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-25 18:46:37 +00:00
52e053571c Merge pull request #18942 from etcd-io/dependabot/github_actions/github/codeql-action-3.27.5
build(deps): bump github/codeql-action from 3.27.4 to 3.27.5
2024-11-25 11:45:55 -07:00
d28783b28d build(deps): bump github/codeql-action from 3.27.4 to 3.27.5
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.27.4 to 3.27.5.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](ea9e4e3799...f09c1c0a94)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-25 17:11:29 +00:00
0fcf6e80b4 Merge pull request #18928 from serathius/robustness-qps-150
Reduce QPS requirement to 100
2024-11-24 23:16:46 -07:00
fe45307dd4 Merge pull request #18905 from serathius/robustness-duplicated-puts-3
Robustness duplicated puts 3
2024-11-24 11:20:29 +01:00
fd025894b2 Merge pull request #18939 from ArkaSaha30/bump-raft-3.6.0-beta.0
dependency: bump go.etcd.io/raft/v3 v3.6.0-beta.0
2024-11-23 20:15:31 +00:00
7961fb33c5 dependency: bump go.etcd.io/raft/v3 v3.6.0-beta.0
Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-11-23 14:39:21 +05:30
f77fa903cb Merge pull request #17757 from fuweid/should-fatal-if-panic
storage/backend: fatal if there is panic during defrag
2024-11-22 23:38:45 +01:00
KT
8176118978 fix runtime error: comparing uncomparable type
Signed-off-by: KT <416432526@qq.com>
2024-11-22 22:13:53 +08:00
b1aa16462a Merge pull request #18932 from ArkaSaha30/deps_mgmt_18_11_24
[2024-11-18] Manual Dependency Bump
2024-11-22 02:19:13 -07:00
9c82a17a75 Fix genproto annotations
* Please add etcd_version annotation in *.proto file with next etcd version
* Run ./scripts/genproto.sh
push_pin
* Run ./scripts/update_proto_annotations.sh

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-11-21 15:11:47 +05:30
880d5ada5f dependency: bump google.golang.org/protobuf from 1.35.1 to 1.35.2
This commit will bump dependency google.golang.org/protobuf from 1.35.1 to 1.35.2

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-11-21 11:19:16 +05:30
8f2153097b dependency: bump golang.org/x/net from 0.30.0 to 0.31.0
dependency: bump golang.org/x/net from 0.30.0 to 0.31.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-11-21 11:15:43 +05:30
f8cfb43ba8 dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.56.0 to 0.57.0
This commit will bump dependency go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.56.0 to 0.57.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-11-21 10:58:51 +05:30
6b8198e85e dependency: bump golang.org/x/crypto from 0.28.0 to 0.29.0
This commit will bump dependency golang.org/x/crypto from 0.28.0 to 0.29.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-11-21 10:53:48 +05:30
b85c6ba7b4 Reduce QPS requirement to 100
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-20 20:49:56 +01:00
14f4df4019 Merge pull request #18930 from serathius/robustness-jitter
Add jitter to failpoint injection to cover periodily executed compaction
2024-11-20 20:47:03 +01:00
ce130791cc Merge pull request #18908 from serathius/robustness-test-return-time
Multiply return time by 100 in tests to detect off by one differences
2024-11-20 20:02:59 +01:00
d961c81813 Add jitter to failpoint injection to cover periodily executed compaction
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-20 19:58:01 +01:00
41862836f9 Merge pull request #18923 from etcd-io/dependabot/github_actions/github/codeql-action-3.27.4
build(deps): bump github/codeql-action from 3.27.1 to 3.27.4
2024-11-18 15:02:06 -07:00
e4270051f0 Merge pull request #18918 from etcd-io/dependabot/docker/distroless/static-debian12-f4a57e8ffd7ba407bdd0eb315bb54ef1f21a2100a7f032e9102e4da34fe7c196
build(deps): bump distroless/static-debian12 from `cc226ca` to `f4a57e8`
2024-11-18 13:41:46 -07:00
280ea9e722 build(deps): bump github/codeql-action from 3.27.1 to 3.27.4
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.27.1 to 3.27.4.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](4f3212b617...ea9e4e3799)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-18 18:24:51 +00:00
40abc3c843 build(deps): bump distroless/static-debian12 from cc226ca to f4a57e8
Bumps distroless/static-debian12 from `cc226ca` to `f4a57e8`.

---
updated-dependencies:
- dependency-name: distroless/static-debian12
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-18 17:49:20 +00:00
3d33c09c46 Multiply return time by 100 in tests to detect off by one differences
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-17 21:55:30 +01:00
668834b7df Allow duplicated put requests
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-17 21:51:45 +01:00
6da6781803 Use client put count for uniqness
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-17 21:51:44 +01:00
c414a7d842 Unify functions for calculating return time
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-17 21:51:44 +01:00
ef393acbeb Reorder returnTime functions
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-17 21:51:44 +01:00
dbb1ddc819 Use persisted request count to determine if request was persisted
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-17 21:51:44 +01:00
7315fcee8e Count number of client puts and don't patch duplicated puts
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-17 21:51:44 +01:00
ee789c933e Merge pull request #18904 from serathius/robustness-duplicated-puts-2
Robustness duplicated puts 2
2024-11-17 21:51:08 +01:00
3507061f84 Merge pull request #18901 from ivanvc/update-3.5-changelog
changelog: add GO-2024-3250 remediation entry
2024-11-17 09:42:54 +00:00
6d00e7be5a Extract isUniqueOps function
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-16 23:41:31 +01:00
4c2bd31b35 Refactor watch response util functions for unit tests
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-16 23:41:31 +01:00
430741ec8c Use int for value stored in precomputed maps
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-16 23:41:06 +01:00
fc84b8ac95 Unify operation refereces by using keyValue as key for put operation
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-16 23:36:55 +01:00
cfdd69fede Merge pull request #18903 from serathius/robustness-refactor-patch-operations
Robustness refactor patch operations
2024-11-16 23:15:18 +01:00
4a1855ecd6 Use switch for matching operations
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-16 17:34:45 +01:00
c51e18d4d9 Introduce separate bool variable for peristed
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-16 17:32:42 +01:00
6d2d7ec707 Move matching persisted operation into the for loop
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-16 17:31:05 +01:00
30a6585cef Move matching event handling to the loop
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-16 17:29:45 +01:00
d42ecfc3fe Merge for loops for transaction
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-16 17:26:33 +01:00
daa00b5d15 Use continue instead of nest loop
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-16 17:26:12 +01:00
b6b6f4d416 Defractor the functions for future merging
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-16 17:25:35 +01:00
e761905fa8 Don't validate watch patching time as we no longer use watch to decide to discard
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-16 17:25:25 +01:00
8f806e7e37 changelog: add GO-2024-3250 remediation entry
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-11-15 17:33:06 -07:00
6de50f934e Merge pull request #18891 from alexandear/readme-logo-dark-theme
Fix displaying etcd logo in README on a dark theme
2024-11-15 21:19:52 +01:00
2c7345a046 Merge pull request #18900 from serathius/robustness-track-record
Add robustness track record section to make tracking easier
2024-11-15 13:11:26 -07:00
7a81c5f8c6 Add robustness track record section to make tracking easier
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-15 15:43:14 +01:00
dd578f49c3 Fix displaying etcd logo in README on a dark theme
Signed-off-by: Oleksandr Redko <oleksandr.red+github@gmail.com>
2024-11-15 14:14:51 +02:00
e1b4ffb969 Merge pull request #18889 from ArkaSaha30/deps_mgmt_11_11_24
[2024-11-11] Manual Dependency Bump
2024-11-14 21:28:56 +00:00
52188b57ab Merge pull request #18894 from jmhbnz/main
Add ivanvc as approver for .github, scripts and tools/rw-heatmaps
2024-11-14 21:19:30 +01:00
be5982a7ad Merge pull request #18816 from tjungblu/mintls_grpcproxy
add tls min/max version to grpc proxy
2024-11-14 16:18:28 +00:00
f26f65784a Add ivanvc as approver for .github, scripts and tools/rw-heatmaps.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-11-15 04:47:52 +13:00
e67a4cdceb dependency: bump go.opentelemetry.io/otel/exporters/otlp/otlptrace from 1.31.0 to 1.32.0
This commit will bump dependency go.opentelemetry.io/otel/exporters/otlp/otlptrace from 1.31.0 to 1.32.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-11-14 14:27:11 +05:30
790994b927 dependency: bump google.golang.org/grpc from 1.67.1 to 1.68.0
This commit will bump dependency google.golang.org/grpc from 1.67.1 to 1.68.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-11-14 11:28:05 +05:30
04914cc97e dependency: bump golang.org/x/sync from 0.8.0 to 0.9.0
This commit will bump dependency golang.org/x/sync from 0.8.0 to 0.9.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-11-14 11:28:05 +05:30
bc9fac7a02 dependency: bump go.opentelemetry.io/otel from 1.31.0 to 1.32.0
This commit will bump dependency go.opentelemetry.io/otel from 1.31.0 to 1.32.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-11-14 11:27:55 +05:30
eaeeebd2bb dependency: bump golang.org/x/time from 0.7.0 to 0.8.0
This commit will bump dependency golang.org/x/time from 0.7.0 to 0.8.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-11-13 15:32:20 +05:30
19aa0dbe8f Merge pull request #18887 from ivanvc/update-release-documentation
docs(release): update GitHub release related instructions
2024-11-13 07:55:39 +00:00
b7ad87f65e Merge pull request #18099 from fuweid/fix-17780
tests: add robustness test for issue 17780
2024-11-13 06:55:01 +01:00
d27054614e docs(release): update GitHub release related instructions
As noted in 2024-11-12 releases:

1. Add instructions on how to verify that GitHub authentication works.
2. Detail the steps on how to release the GitHub release.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-11-12 16:25:13 -07:00
1316f3a9d4 Merge pull request #18884 from ArkaSaha30/update-release-3.4.35-release-date
CHANGELOG: Add release date of etcd v3.4.35
2024-11-12 12:11:09 -07:00
af188f7cca Merge pull request #18883 from ghouscht/3.5.17-release-date
CHANGELOG: Add release date of etcd v3.5.17
2024-11-12 12:10:51 -07:00
fdfb5c0851 tests: add robustness test for issue 17780
Closes #17780

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2024-11-12 19:08:02 +00:00
204aa59781 docs(CHANGELOG): add release date of etcd v3.5.17
Signed-off-by: Thomas Gosteli <thomas.gosteli@protonmail.ch>
2024-11-12 18:50:42 +01:00
91e8ff68b4 CHANGELOG: set release 3.4.35 date
Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-11-12 23:05:29 +05:30
617f3578be add tls min/max version to grpc proxy
This adds the min and max TLS version support from #13506 and #15156 to the grpc proxy.

Fixes #13506

Signed-off-by: Thomas Jungblut <tjungblu@redhat.com>
2024-11-12 18:08:33 +01:00
7ab761246c Merge pull request #18874 from etcd-io/dependabot/github_actions/github/codeql-action-3.27.1
build(deps): bump github/codeql-action from 3.27.0 to 3.27.1
2024-11-11 22:19:40 -07:00
16714deab1 Merge pull request #18875 from jmhbnz/main
Remove actuated badge from README.md
2024-11-11 14:56:15 -07:00
89a70e4503 Remove actuated badge from README.md
Signed-off-by: James Blair <mail@jamesblair.net>
2024-11-12 07:33:40 +13:00
8d5b84555a build(deps): bump github/codeql-action from 3.27.0 to 3.27.1
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.27.0 to 3.27.1.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](662472033e...4f3212b617)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-11 17:59:19 +00:00
b7812513ce Translate v2 requests into v3 ClusterMemberAttrSetRequest and ClusterVersionSetRequest
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-11-11 17:30:41 +01:00
12b47c2b93 Merge pull request #18862 from henrybear327/fix/docs
Fix a format error in dependency_management.md
2024-11-11 07:33:08 +13:00
d44897cbc6 Fix a format error in dependency_management.md
Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-11-10 16:43:11 +01:00
7ae5c75209 Merge pull request #18858 from mmorel-35/gofumpt/tools
fix: enable gofumpt instead of gofmt linter in tools
2024-11-10 08:24:13 +00:00
c6d922104b fix: enable gofumpt instead of gofmt linter in tools
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-11-09 19:32:11 +01:00
0f9c128b4b Merge pull request #18754 from mmorel-35/contrib/golangci-lint/gofumpt
fix: enable gofumpt instead of gofmt linter in contrib, etcdctl and etcdutl
2024-11-09 14:22:38 +00:00
39bff2a699 Merge pull request #18856 from ghouscht/changelog-defrag-close
docs(CHANGELOG): update 3.4/3.5 changelog with defrag close fix
2024-11-09 14:18:51 +00:00
3ef69d2681 fix: enable gofumpt instead of gofmt linter in contrib, etcdctl and etcdutl
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-11-09 00:37:14 +01:00
1ee6598f3d Merge pull request #18857 from ghouscht/fix-govet-shadow
build: fix govet shadow err
2024-11-09 10:19:14 +13:00
97d19b6e26 build: fix govet shadow err
Signed-off-by: Thomas Gosteli <thomas.gosteli@protonmail.ch>
2024-11-08 12:35:42 +01:00
07fe74505c docs(CHANGELOG): update 3.4/3.5 changelog with defrag close fix
Signed-off-by: Thomas Gosteli <thomas.gosteli@protonmail.ch>
2024-11-08 09:22:35 +01:00
b12540977a Merge pull request #18852 from ivanvc/go-1.22.9-release-note
changelog: update go version for 3.4.35 and 3.5.17
2024-11-08 09:48:30 +13:00
694ace21d5 Merge pull request #18851 from ghouscht/issue-18841
fix(defrag): close temp file in case of error
2024-11-07 20:12:54 +00:00
2cc2b8ccc5 changelog: update go version for 3.4.35 and 3.5.17
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-11-07 11:58:34 -08:00
a19d4087cc fix(defrag): close temp file in case of error
Signed-off-by: Thomas Gosteli <thomas.gosteli@protonmail.ch>
2024-11-07 15:18:39 +01:00
1472b61bdd Merge pull request #18826 from mmorel-35/golangci-lint/usestdlibvars
fix: enable usestdlibvars linter
2024-11-07 12:49:15 +00:00
86c6b5f2da fix: enable usestdlibvars linter
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-11-07 10:28:48 +00:00
4ad9261194 Merge pull request #18844 from ghouscht/changelog-update-defrag-fixes
docs(CHANGELOG): update 3.4/3.5 changelogs with defrag fixes
2024-11-07 07:59:28 +00:00
456063c99f docs(CHANGELOG): update 3.4/3.5 changelogs with defrag fixes
Signed-off-by: Thomas Gosteli <thomas.gosteli@protonmail.ch>
2024-11-07 08:20:01 +01:00
95fc61b3fe Merge pull request #18848 from ivanvc/main-go-1.23.3-update
Bump go toolchain to 1.23.3
2024-11-07 17:37:06 +13:00
b1fb361eca Bump go toolchain to 1.23.3
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-11-06 17:13:26 -08:00
c438fcbafd storage/backend: fatal if there is panic during defrag
We should exit as soon as possible if there is panic during defrag.
Because that tx might be closed. The inflight request might use invalid
tx and then panic as well. However, the real panic might be shadowed by
new panic. It's related to goroutine schedule. So, we should fatal here.

How to reproduce bbolt#715:

```diff
diff --git a/server/etcdserver/api/v3rpc/maintenance.go b/server/etcdserver/api/v3rpc/maintenance.go
index 4f55c7c74..0a91b4225 100644
--- a/server/etcdserver/api/v3rpc/maintenance.go
+++ b/server/etcdserver/api/v3rpc/maintenance.go
@@ -89,7 +89,13 @@ func NewMaintenanceServer(s *etcdserver.EtcdServer, healthNotifier notifier) pb.
 func (ms *maintenanceServer) Defragment(ctx context.Context, sr *pb.DefragmentRequest) (*pb.DefragmentResponse, error) {
        ms.lg.Info("starting defragment")
        ms.healthNotifier.defragStarted()
-       defer ms.healthNotifier.defragFinished()
+       defer func() {
+               ms.healthNotifier.defragFinished()
+               if rerr := recover(); rerr != nil {
+                       time.Sleep(30 * time.Second)
+                       panic(rerr)
+               }
+       }()
        err := ms.bg.Backend().Defrag()
        if err != nil {
                ms.lg.Warn("failed to defragment", zap.Error(err))
```

```bash
$ make gofail-enable
$ make
$ GOFAIL_HTTP="127.0.0.1:1234" bin/etcd

$ New Terminal
$ curl http://127.0.0.1:1234/defragBeforeRename -XPUT -d'panic()'
$ bin/etcdctl defrag

$ Old Terminal
{"level":"info","ts":"2024-04-09T23:28:54.084434+0800","caller":"v3rpc/maintenance.go:90","msg":"starting defragment"}
{"level":"info","ts":"2024-04-09T23:28:54.087363+0800","caller":"backend/backend.go:509","msg":"defragmenting","path":"default.etcd/member/snap/db","current-db-size-bytes":20480,"current-db-size":"20 kB","current-db-size-in-use-bytes":16384,"current-db-size-in-use":"16 kB"}
{"level":"info","ts":"2024-04-09T23:28:54.091229+0800","caller":"v3rpc/health.go:62","msg":"grpc service status changed","service":"","status":"SERVING"}
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xbb2553]

goroutine 156 [running]:
go.etcd.io/bbolt.(*Tx).Bucket(...)
        go.etcd.io/bbolt@v1.4.0-alpha.0/tx.go:112
go.etcd.io/etcd/server/v3/storage/backend.(*baseReadTx).UnsafeRange(0xc00061ac80, {0x12b7780, 0x1a73420}, {0x1a113e8, 0xe, 0xe}, {0x0, 0x0, 0x0}, 0x1)
        go.etcd.io/etcd/server/v3/storage/backend/read_tx.go:103 +0x233
go.etcd.io/etcd/server/v3/storage/schema.UnsafeReadStorageVersion({0x7f6280613618?, 0xc00061ac80?})
        go.etcd.io/etcd/server/v3/storage/schema/version.go:35 +0x5d
go.etcd.io/etcd/server/v3/storage/schema.UnsafeDetectSchemaVersion(0xc000334b80, {0x7f6280613618, 0xc00061ac80})
        go.etcd.io/etcd/server/v3/storage/schema/schema.go:94 +0x47
go.etcd.io/etcd/server/v3/storage/schema.DetectSchemaVersion(0xc000334b80, {0x12b77f0, 0xc00061ac80})
        go.etcd.io/etcd/server/v3/storage/schema/schema.go:89 +0xf2
go.etcd.io/etcd/server/v3/etcdserver.(*EtcdServer).StorageVersion(0xc000393c08)
        go.etcd.io/etcd/server/v3/etcdserver/server.go:2216 +0x105
go.etcd.io/etcd/server/v3/etcdserver.(*serverVersionAdapter).GetStorageVersion(0x0?)
        go.etcd.io/etcd/server/v3/etcdserver/adapters.go:77 +0x16
go.etcd.io/etcd/server/v3/etcdserver/version.(*Monitor).UpdateStorageVersionIfNeeded(0xc00002df70)
        go.etcd.io/etcd/server/v3/etcdserver/version/monitor.go:112 +0x5d
go.etcd.io/etcd/server/v3/etcdserver.(*EtcdServer).monitorStorageVersion(0xc000393c08)
        go.etcd.io/etcd/server/v3/etcdserver/server.go:2259 +0xa8
go.etcd.io/etcd/server/v3/etcdserver.(*EtcdServer).GoAttach.func1()
        go.etcd.io/etcd/server/v3/etcdserver/server.go:2440 +0x59
created by go.etcd.io/etcd/server/v3/etcdserver.(*EtcdServer).GoAttach in goroutine 1
        go.etcd.io/etcd/server/v3/etcdserver/server.go:2438 +0xf9
```

REF: https://github.com/etcd-io/bbolt/issues/715

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2024-11-06 23:56:54 +00:00
75274b24e2 Merge pull request #18840 from ArkaSaha30/deps_mgmt_4_11_24
[2024-11-04] Manual Dependency Bump
2024-11-06 17:30:55 +00:00
9250982e1a Merge pull request #18822 from ghouscht/issue-18810
fix(defrag): handle no space left error
2024-11-06 13:00:39 +00:00
04c042ceac fix(defrag): handle defragdb failure
Signed-off-by: Thomas Gosteli <thomas.gosteli@protonmail.ch>
2024-11-06 12:43:51 +01:00
7b70b5f6ae Merge pull request #18812 from ivanvc/fix-cwd-in-release-script
release: properly change working dir if tmp location already exists
2024-11-06 10:32:43 +00:00
22ce068164 Merge pull request #18827 from mmorel-35/testifylint/go-require
fix: enable go-require rule from testifylint
2024-11-06 10:28:23 +00:00
35cab80e1f fix(defrag): handle no space left error
Signed-off-by: Thomas Gosteli <thomas.gosteli@protonmail.ch>
2024-11-06 11:01:17 +01:00
8c6076219b dependency: bump github.com/google/yamlfmt from 0.13.0 to 0.14.0
This commit will bump dependency github.com/google/yamlfmt from 0.13.0 to 0.14.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-11-06 15:23:51 +05:30
447bec1bf3 dependency: bump go.etcd.io/bbolt from 1.4.0-alpha.1 to 1.4.0-beta.0
This commit will bump dependency go.etcd.io/bbolt from 1.4.0-alpha.1 to 1.4.0-beta.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-11-06 15:23:51 +05:30
f43c6815b1 dependency: bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.22.0 to 2.23.0
This commit will bump dependency github.com/grpc-ecosystem/grpc-gateway/v2 from 2.22.0 to 2.23.0

fixes genproto error as per: https://github.com/etcd-io/etcd/blob/main/Documentation/contributor-guide/dependency_management.md#troubleshooting

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-11-06 15:23:08 +05:30
fed92fa7ff dependency: bump github.com/golang-jwt/jwt/v4 from 4.5.0 to 4.5.1
This commit will bump dependency github.com/golang-jwt/jwt/v4 from 4.5.0 to 4.5.1

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-11-05 18:11:05 +05:30
bd8896364a Merge pull request #18823 from mmorel-35/tests/common/testifier/require-error
fix: use require instead of t.Fatal(err) in tests/common package
2024-11-05 07:10:57 +00:00
7e7b7d5fa2 fix: enable go-require rule from testifylint
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-11-03 22:55:30 +01:00
995027f5c1 Merge pull request #18818 from mmorel-35/golangci-lint/errorlint
fix: enable errorlint linter
2024-11-03 20:00:46 +00:00
4dbc7e943f Merge pull request #18814 from mmorel-35/testifylint/require-error
fix: enable require-error rule from testifylint
2024-11-03 19:57:10 +00:00
98e53e5aaa Merge pull request #18824 from ahrtr/changelog_20241101
Update 3.4 changelog to cover the goroutine leakage issue
2024-11-03 21:49:46 +13:00
36a5e40fba fix: use require instead of t.Fatal(err) in tests/common package
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-11-03 09:32:58 +01:00
6fad04a5ef Merge pull request #18819 from ghouscht/issue-17329-add-tls-tests
chore(e2e): extend TestNoErrorLogsDuringNormalOperations with different TLS configs
2024-11-02 13:15:46 +01:00
3bacd02ab2 Update 3.4 changelog to cover the goroutine leakage issue
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-11-01 13:25:24 +00:00
68bd17d637 chore(e2e): extend TestNoErrorLogsDuringNormalOperations with different TLS configs
Signed-off-by: Thomas Gosteli <thomas.gosteli@protonmail.ch>
2024-11-01 10:06:05 +01:00
3de0018dc4 Merge pull request #18817 from henrybear327/dependencies/10_31_24
[2024-10-31] Bump dependency updates identified by dependabot
2024-10-31 19:10:17 +00:00
e5a63483ff fix: enable errorlint linter
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-10-31 18:54:59 +01:00
df15a7fe4c dependency: bump github.com/prometheus/common from 0.60.0 to 0.60.1
Reference:
- https://github.com/etcd-io/etcd/pull/18796

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-10-31 22:43:48 +08:00
ee88ecc1f6 Merge pull request #18813 from mmorel-35/etcd-tl/errorlint
fix: enable errorlint in etcdctl and etcdutl directories
2024-10-31 08:52:30 +00:00
5858a08f1b fix: enable require-error rule from testifylint
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-10-31 08:33:34 +01:00
ff632e45f8 fix: enable errorlint in etcdctl and etcdutl directories
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-10-31 08:00:36 +01:00
4763cb10f0 release: properly change working dir if tmp location already exists
Currently, the script won't change directories into the previously
cloned repository if the temporary location exists. This may be an issue
when testing first with a dry run and later with the actual release.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-10-30 16:43:51 -07:00
6883308899 Merge pull request #18800 from mmorel-35/testifylint/require-error
fix: enable require-error rule from testifylint in client, pkg and server packages
2024-10-30 23:03:01 +00:00
c2bfbe860f Merge pull request #18782 from mmorel-35/tests/testifier/require-error
fix: use require instead of t.Fatal(err) in tests/robustness package
2024-10-30 22:59:17 +00:00
8ec90c6088 Merge pull request #18780 from mmorel-35/server/errorlint
fix: enable errorlint in server directory
2024-10-30 22:55:43 +00:00
a654cdea27 Merge pull request #18808 from ahrtr/refactor_snapshot_20240927
Refactor Etcdserver.snapshot to extract compaction into a separate method
2024-10-30 10:15:10 +00:00
10de4d6351 Merge pull request #18806 from ghouscht/issue-17329
chore(e2e): extend logging test to 3 node cluster
2024-10-30 09:41:50 +00:00
694b0fbdb6 refactor Etcdserver.snapshot to extract compaction into a separate method
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-10-30 09:25:54 +00:00
36d785d180 Merge pull request #18804 from ahrtr/changelog_20241029
Update 3.5 changelog to cover two major fixes
2024-10-30 08:50:26 +00:00
cb19f64b18 chore(e2e): extend logging test to 3 node cluster
Signed-off-by: Thomas Gosteli <thomas.gosteli@protonmail.ch>
2024-10-30 08:47:19 +01:00
11cc8bb9f2 Update 3.5 changelog to cover to major fixes
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-10-29 08:42:51 +00:00
3696b32411 Merge pull request #18795 from etcd-io/dependabot/github_actions/actions/checkout-4.2.2
build(deps): bump actions/checkout from 4.2.1 to 4.2.2
2024-10-29 21:04:25 +13:00
56326a57ce build(deps): bump actions/checkout from 4.2.1 to 4.2.2
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.1 to 4.2.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](eef61447b9...11bd71901b)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-29 06:50:43 +00:00
66d632eae4 Merge pull request #18794 from etcd-io/dependabot/github_actions/github/codeql-action-3.27.0
build(deps): bump github/codeql-action from 3.26.13 to 3.27.0
2024-10-29 19:50:10 +13:00
9b27e737ba Merge pull request #18793 from etcd-io/dependabot/github_actions/actions/setup-go-5.1.0
build(deps): bump actions/setup-go from 5.0.2 to 5.1.0
2024-10-29 19:49:30 +13:00
9567d69fb7 Merge pull request #18798 from etcd-io/dependabot/docker/distroless/static-debian12-cc226ca14d17d01d4b278d9489da930a0dd11150df10ae95829d13e6d00fbdbf
build(deps): bump distroless/static-debian12 from `69830f2` to `cc226ca`
2024-10-29 19:48:42 +13:00
3a3115122e fix: enable require-error rule from testifylint in client, pkg and server packages
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-10-28 21:02:58 +01:00
fca20dd601 build(deps): bump distroless/static-debian12 from 69830f2 to cc226ca
Bumps distroless/static-debian12 from `69830f2` to `cc226ca`.

---
updated-dependencies:
- dependency-name: distroless/static-debian12
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-28 17:41:03 +00:00
4a8871225b build(deps): bump github/codeql-action from 3.26.13 to 3.27.0
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.13 to 3.27.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](f779452ac5...662472033e)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-28 17:26:19 +00:00
26866680c2 build(deps): bump actions/setup-go from 5.0.2 to 5.1.0
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5.0.2 to 5.1.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](0a12ed9d6a...41dfa10bad)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-28 17:26:06 +00:00
7cded36ba8 Merge pull request #18786 from henrybear327/dependencies/10_27_24
[2024-10-20] Bump dependency updates identified by dependabot #18755
2024-10-27 18:53:19 +13:00
5cce245df5 dependency: bump github.com/prometheus/client_golang from 1.20.4 to 1.20.5
Reference:
- https://github.com/etcd-io/etcd/pull/18758

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-10-27 12:43:19 +09:00
3abdf612b3 fix: enable errorlint in server directory
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-10-26 08:16:47 +02:00
4017ebaed6 fix: use require instead of t.Fatal(err) in tests/robustness package
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-10-26 08:15:37 +02:00
18eb5c6881 Merge pull request #18748 from mmorel-35/golangci-lint/gofumpt
fix: enable gofumpt instead of gofmt linter in client
2024-10-25 12:25:33 +01:00
a594a62eab Merge pull request #18649 from ivanvc/use-gh-to-publish-releases
release: use GitHub's gh to create GitHub release
2024-10-25 11:57:27 +01:00
510b9b1dc9 Merge pull request #18781 from ahrtr/err_20241024
Fix e2e/ctl_v3_auth_test.go:123:5: declaration of err shadows declara…
2024-10-25 10:19:52 +01:00
c2bf879a2e Merge pull request #18771 from serathius/robustness-compaction-evenly
Ensure compaction is executed at even intervals to avoid overload
2024-10-25 09:45:23 +02:00
6ef1c8c023 Fix e2e/ctl_v3_auth_test.go:123:5: declaration of err shadows declaration at line 106
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-10-24 17:06:14 +01:00
2f36df8233 Merge pull request #18753 from mmorel-35/tests/testifier/require-error
fix: use require.NoError instead of t.Fatal(err) in tests package (part 1)
2024-10-24 14:26:45 +02:00
4da20aa06c fix: use require.NoError instead of t.Fatal(err) in tests package (part 1)
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-10-24 09:47:52 +00:00
6d2b23224c Merge pull request #18739 from veshij/leak_fix
etcdserver: terminate recvLoop on serverWatchStream.close()
2024-10-24 11:29:43 +02:00
38c27a4f8d Merge pull request #18749 from shyamjvs/fix-partial-txn-risk
Fix risk of a partial write txn being applied
2024-10-24 11:25:08 +02:00
aae197cd19 Merge pull request #18776 from mmorel-35/testifylint/float-compare
fix: enable float-compare rule from testifylint
2024-10-24 10:49:40 +02:00
c2261efc06 Merge pull request #18774 from mmorel-35/golangci-lint/tenv
fix: enable tenv linter
2024-10-24 10:49:06 +02:00
3fd35fc811 Merge pull request #18634 from redwrasse/redwrasse/tests/remaining-errors-is
tests: remaining errors.Is conversions
2024-10-24 08:14:19 +01:00
4c8a41cd24 fix: enable float-compare rule from testifylint
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-10-24 08:47:46 +02:00
048fd57df6 fix: enable tenv linter
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-10-24 07:52:17 +02:00
2ea1fb55d4 Merge pull request #18770 from serathius/robustness-remove-brackets
Remove brackets from failpoint name
2024-10-24 00:15:56 +02:00
5bd72b7651 Merge pull request #18708 from serathius/robustness-document
Improve documentation of robustness test adding key concepts used in the test
2024-10-24 00:12:09 +02:00
16221d58b7 Ensure compaction is executed at even intervals to avoid overload
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-10-23 23:19:16 +02:00
bd0d1a61eb Improve documentation of robustness test adding key concepts used in the test
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-10-23 23:12:44 +02:00
105782f95b Remove brackets from failpoint name
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-10-23 20:54:38 +02:00
867bd2689f Merge pull request #18746 from mmorel-35/golangci-lint/thelper
fix: enable thelper linter in client directory
2024-10-23 07:57:03 +01:00
4b59ec10ff Merge pull request #18766 from ahrtr/f_functions_20241022
Add comment to clarify non-f-functions on golang standard lib
2024-10-23 07:56:39 +01:00
8a0fd66db3 Fix risk of a partial write txn being applied
Signed-off-by: Shyam Jeedigunta <jeedigv@amazon.com>
2024-10-22 12:32:33 -07:00
9060226892 Add comment to clarify non-f-functions on golang standard lib
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-10-22 06:24:16 +01:00
bb381d473c Merge pull request #18760 from etcd-io/dependabot/github_actions/aquasecurity/trivy-action-0.28.0
build(deps): bump aquasecurity/trivy-action from 0.27.0 to 0.28.0
2024-10-22 06:16:10 +01:00
a7dcfdb839 Merge pull request #18741 from ghouscht/testifylint-formatter
fix: enable formatter rule from testifylint
2024-10-22 06:15:27 +01:00
77607356d9 [serverWatchStream] terminate recvLoop on sws.close()
Signed-off-by: Oleg Guba <oleg.guba@gmail.com>
2024-10-21 12:09:27 -07:00
2be8e12b00 build(deps): bump aquasecurity/trivy-action from 0.27.0 to 0.28.0
Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.27.0 to 0.28.0.
- [Release notes](https://github.com/aquasecurity/trivy-action/releases)
- [Commits](5681af892c...915b19bbe7)

---
updated-dependencies:
- dependency-name: aquasecurity/trivy-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-21 17:42:35 +00:00
55de68d18c Merge pull request #18722 from mmorel-35/api/errorlint
fix: enable errorlint in api, client and pkg
2024-10-20 09:16:30 +01:00
44c39184eb Merge pull request #18755 from henrybear327/dependencies/10_20_24
[2024-10-20] Bump dependency updates identified by dependabot
2024-10-20 09:04:21 +01:00
8c538cd81c dependency: bump bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.30.0 to 1.31.0, github.com/rogpeppe/go-internal from v1.12.0 to v1.13.1, and google.golang.org/genproto/googleapis/api from v0.0.0-20240924160255-9d4c2d233b61 to v0.0.0-20241007155032-5fefd90f89a9
Also addressed inconsistent versions for dependency: github.com/rogpeppe/go-internal and google.golang.org/genproto/googleapis/api

Reference:
- https://github.com/etcd-io/etcd/pull/18736

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-10-20 13:37:57 +08:00
940777e201 dependency: bump google.golang.org/protobuf from 1.34.2 to 1.35.1 and google.golang.org/genproto/googleapis/rpc from v0.0.0-20240924160255-9d4c2d233b61 to v0.0.0-20241007155032-5fefd90f89a9
Also addressed inconsistent versions for dependency: google.golang.org/genproto/googleapis/rpc

Reference:
- https://github.com/etcd-io/etcd/pull/18729

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-10-20 13:37:57 +08:00
ee972bab8c dependency: bump go.opentelemetry.io/otel from 1.30.0 to 1.31.0 and bump go.opentelemetry.io/otel/trace from 1.30.0 to 1.31.0
Reference:
- https://github.com/etcd-io/etcd/pull/18732
- https://github.com/etcd-io/etcd/pull/18735

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-10-20 13:37:57 +08:00
894b618a8d dependency: bump google.golang.org/protobuf from 1.34.2 to 1.35.1
Reference:
- https://github.com/etcd-io/etcd/pull/18729

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-10-20 13:37:57 +08:00
522edd56b7 dependency: bump golang.org/x/net from 0.29.0 to 0.30.0
Reference:
- https://github.com/etcd-io/etcd/pull/18730

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-10-20 13:37:57 +08:00
d275172c4c dependency: bump golang.org/x/time from 0.6.0 to 0.7.0
Reference:
- https://github.com/etcd-io/etcd/pull/18738

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-10-20 13:37:57 +08:00
3869f0e77d Merge pull request #18752 from mmorel-35/tools/testifier/require-error
fix: use require.NoError instead of t.Fatal(err) in contrib and tools packages
2024-10-18 20:43:51 +01:00
c09b07f87b Merge pull request #18747 from ahrtr/changelog_20241017
Update changelog-3.6 to cover the new flags for etcdctl
2024-10-18 17:31:01 +01:00
c0c57d5584 Merge pull request #18750 from mingqing/fix-typo-in-server-embed
embed: fix typo client-listen-x to listen-client-x
2024-10-18 13:57:13 +01:00
63dad79245 fix: use require.NoError instead of t.Fatal(err) in contrib and tools packages
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-10-18 13:06:48 +02:00
960a8be3fa Update changelog-3.6 to cover the new flags for etcdctl
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-10-18 08:10:15 +01:00
0bec6a8efc embed: fix typo client-listen-x to listen-client-x
Signed-off-by: mingqing <mingqing@henji.org>
2024-10-18 11:42:54 +08:00
906247c8f9 fix: enable gofumpt instead of gofmt linter in client
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-10-17 22:29:59 +02:00
ff4a8df3aa fix: enable formatter rule from testifylint
Signed-off-by: Thomas Gosteli <thomas.gosteli@protonmail.ch>
2024-10-17 14:10:35 +02:00
3d6ff97709 Merge pull request #18720 from mmorel-35/testifylint/expected-actual
fix: enable expected-actual rule from testifylint
2024-10-17 12:22:08 +01:00
6165f60419 fix: enable expected-actual rule from testifylint
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-10-17 09:17:59 +00:00
19028af29f Merge pull request #18718 from Direktor799/main
feat(etcdctl): add --max-send-bytes and --max-recv-bytes options
2024-10-17 09:32:47 +01:00
f30a3ccce7 Merge pull request #18716 from mmorel-35/testifylint/error-nil
fix: enable error-nil rule from testifylint
2024-10-17 09:14:04 +01:00
7ecb72a2b4 fix: enable error-nil rule from testifylint
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-10-17 07:22:40 +02:00
97c8869184 fix: enable thelper linter in client directory
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-10-17 00:06:06 +02:00
ac3d5d77ea Merge pull request #18740 from ghouscht/testifylint-error-is-as
fix: enable error-is-as rule from testifylint
2024-10-16 18:14:14 +01:00
ed9f61df28 feat(etcdctl): add --max-send-bytes and --max-recv-bytes options
Signed-off-by: Direktor799 <priceclaptrap@hotmail.com>
2024-10-16 19:54:41 +08:00
499196dfb0 fix: enable error-is-as rule from testifylint
Signed-off-by: Thomas Gosteli <thomas.gosteli@protonmail.ch>
2024-10-16 12:55:25 +02:00
6779a89a82 Merge pull request #18742 from ahrtr/refactor_cfg_20241015
Update `endpointsFromCluster` to reuse `clientConfigFromCmd`
2024-10-16 09:09:43 +01:00
264d329321 Merge pull request #18743 from ivanvc/update-changelog-with-go-1.22.8-update
CHANGELOG: add go 1.22.8 entry for 3.4 and 3.5
2024-10-16 07:33:06 +01:00
482eac31e4 CHANGELOG: add go 1.22.8 entry for 3.4 and 3.5
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-10-15 14:50:47 -07:00
1c825ad7e7 tests: remaining errors.Is conversions
Signed-off-by: redwrasse <mail@redwrasse.io>
2024-10-15 14:28:16 -07:00
b757772ebc Update endpointsFromCluster to reuse clientConfigFromCmd
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-10-15 14:06:16 +01:00
54db7f0530 Merge pull request #18723 from ahrtr/refactor_cfg_20241014
Update `epHealthCommandFunc` to reuse `clientConfigFromCmd`
2024-10-15 13:56:28 +01:00
4957e5670e update epHealthCommandFunc to reuse clientConfigFromCmd
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-10-15 09:48:12 +01:00
48d43ebae2 Merge pull request #18733 from etcd-io/dependabot/github_actions/actions/upload-artifact-4.4.3
build(deps): bump actions/upload-artifact from 4.4.1 to 4.4.3
2024-10-15 15:18:04 +13:00
fa89ee0c3b Merge pull request #18731 from etcd-io/dependabot/github_actions/github/codeql-action-3.26.13
build(deps): bump github/codeql-action from 3.26.12 to 3.26.13
2024-10-15 12:01:31 +13:00
bcbf00ddf9 Merge pull request #18734 from etcd-io/dependabot/github_actions/aquasecurity/trivy-action-0.27.0
build(deps): bump aquasecurity/trivy-action from 0.24.0 to 0.27.0
2024-10-15 11:48:04 +13:00
ebe341b352 build(deps): bump aquasecurity/trivy-action from 0.24.0 to 0.27.0
Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.24.0 to 0.27.0.
- [Release notes](https://github.com/aquasecurity/trivy-action/releases)
- [Commits](6e7b7d1fd3...5681af892c)

---
updated-dependencies:
- dependency-name: aquasecurity/trivy-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-14 17:45:19 +00:00
d70835de9e build(deps): bump actions/upload-artifact from 4.4.1 to 4.4.3
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.4.1 to 4.4.3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](604373da63...b4b15b8c7c)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-14 17:45:16 +00:00
e57cffc20b build(deps): bump github/codeql-action from 3.26.12 to 3.26.13
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.12 to 3.26.13.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](c36620d31a...f779452ac5)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-14 17:45:12 +00:00
04efee294e Merge pull request #18684 from serathius/robustness-dir-cleanup
Robustness dir cleanup
2024-10-14 10:37:06 +02:00
b281a3c4fa fix: enable errorlint in api, client and pkg
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-10-13 19:43:20 +02:00
d6412f468e Merge pull request #18717 from mmorel-35/deprecated-assert
deprecate testutil/assert.go
2024-10-13 13:23:54 +01:00
f8962c6746 Merge pull request #18721 from mmorel-35/errorlint/etcd/client/v2
fix: enable errorlint in module `go.etcd.io/etcd/client/v2`
2024-10-13 13:23:27 +01:00
c9f6dc723a fix: enable errorlint in module go.etcd.io/etcd/client/v2
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-10-12 12:39:00 +02:00
40b4715ca3 Merge pull request #18715 from mmorel-35/testifylint/compares
fix: enable compares and negative-positive rules from testifylint
2024-10-12 11:55:04 +13:00
88d2d2472c release: use GitHub's gh to create GitHub release
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-10-11 13:24:16 -07:00
e4aa904060 fix: enable compares and negative-positive rules from testifylint
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-10-11 22:10:36 +02:00
8c29d78b69 deprecate testutil/assert.go
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-10-11 20:46:28 +02:00
f0187c38d1 Merge pull request #18689 from mmorel-35/testifylint/nil-compare
fix: enable nil-compare rule from testifylint
2024-10-11 09:41:28 +01:00
ab1e6aebee Merge pull request #18713 from mmorel-35/whitespace
fix: enable gofmt and whitespace linters
2024-10-11 09:39:54 +01:00
e67407beb6 Merge pull request #18714 from ivanvc/remove-arm-integration-github-workflows
github/workflows: remove ARM integration jobs
2024-10-11 20:23:34 +13:00
9e6341f5c4 github/workflows: remove ARM integration jobs
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-10-10 22:35:34 -07:00
de2c95dcba fix: enable nil-compare rule from testifylint
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-10-11 07:10:03 +02:00
33d7f2d53e fix: enable gofmt and whitespace linters
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-10-11 07:03:18 +02:00
133918e23a Merge pull request #18712 from mmorel-35/testifylint/empty+len
fix: enable empty and len rules from testifylint
2024-10-11 12:04:44 +13:00
e06fb81713 fix: enable empty and len rules from testifylint
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-10-10 11:07:21 +00:00
5e238a0c4f Merge pull request #18705 from mmorel-35/testifier/require-error
fix: use require.NoError instead of t.Fatal(err) in client package
2024-10-10 10:08:44 +01:00
6ffa69e2af Merge pull request #18710 from ahrtr/release_1password_20241009
Update release steps on how to share quay.io password
2024-10-09 21:02:07 +01:00
bca44f5f52 Update release steps on how to share quay.io password
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-10-09 19:19:02 +01:00
3343dc894a fix: use require.NoError instead of t.Fatal(err) in client package
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-10-09 08:29:38 +02:00
f5acd17796 Merge pull request #18706 from henrybear327/dependencies/10_08_24
[2024-10-08] Bump dependency updates identified by dependabot
2024-10-09 12:37:28 +13:00
68e33d4a5d Merge pull request #18697 from etcd-io/dependabot/github_actions/actions/upload-artifact-4.4.1
build(deps): bump actions/upload-artifact from 4.4.0 to 4.4.1
2024-10-08 19:46:00 +01:00
36f0f659a2 dependency: bump golang.org/x/crypto from 0.27.0 to 0.28.0 and bump golang.org/x/text from 0.18.0 to 0.19.0
golang.org/x/text is bumped automatically alongside golang.org/x/crypto
as its dependency

Reference:
- https://github.com/etcd-io/etcd/pull/18692
- https://github.com/etcd-io/etcd/pull/18690

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-10-08 19:55:05 +02:00
3520d32235 dependency: bump github.com/prometheus/common from 0.59.1 to 0.60.0
Reference:
- https://github.com/etcd-io/etcd/pull/18691

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-10-08 19:55:05 +02:00
c256db1065 dependency: bump golang.org/x/sys from 0.25.0 to 0.26.0
Reference:
- https://github.com/etcd-io/etcd/pull/18693
- https://github.com/etcd-io/etcd/pull/18698

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-10-08 19:55:05 +02:00
f0d5967877 dependency: bump google.golang.org/grpc from 1.67.0 to 1.67.1
Reference:
- https://github.com/etcd-io/etcd/pull/18694

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-10-08 19:55:05 +02:00
bc5512a40b Merge pull request #18695 from etcd-io/dependabot/github_actions/actions/checkout-4.2.1
build(deps): bump actions/checkout from 4.2.0 to 4.2.1
2024-10-08 14:53:57 +01:00
feba5444f9 build(deps): bump actions/checkout from 4.2.0 to 4.2.1
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.0 to 4.2.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](d632683dd7...eef61447b9)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-08 03:02:10 +00:00
f1aefa5e90 Merge pull request #18696 from etcd-io/dependabot/github_actions/github/codeql-action-3.26.12
build(deps): bump github/codeql-action from 3.26.10 to 3.26.12
2024-10-08 16:01:22 +13:00
cb1cf6cfdc build(deps): bump actions/upload-artifact from 4.4.0 to 4.4.1
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.4.0 to 4.4.1.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](50769540e7...604373da63)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-07 17:19:21 +00:00
f66637b6a3 build(deps): bump github/codeql-action from 3.26.10 to 3.26.12
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.10 to 3.26.12.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](e2b3eafc8d...c36620d31a)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-07 17:19:17 +00:00
17fb7524cc Merge pull request #18686 from mmorel-35/testifylint/bool-compare
fix: enable bool-compare rule from testifylint
2024-10-07 12:49:02 +13:00
b23947b604 fix: enable bool-compare rule from testifylint
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-10-06 09:47:02 +02:00
8cf1121584 Move scenarios to subpackage
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-10-05 13:02:38 +02:00
279ffd57af Move watch util to client package.
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-10-05 13:02:37 +02:00
5fe3781b2e Move images to subdirectory
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-10-05 13:02:37 +02:00
448fb7e36c Merge pull request #18672 from ivanvc/use-ecr-public-mirror-for-trivy-scan-action
github/workflows: use ECR mirror for Trivy's DB
2024-10-05 09:51:47 +01:00
7b429f9678 Merge pull request #18677 from serathius/context-remove-3
Remove context from appliers
2024-10-04 22:52:01 +02:00
08d54bc5a8 Remove context from appliers
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-10-04 18:14:25 +02:00
620a00b9e6 Merge pull request #18676 from serathius/context-remove-2
Remove context from dispatch
2024-10-04 18:14:06 +02:00
7537341861 Remove context from dispatch
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-10-04 16:56:16 +02:00
db61a6cbe3 Merge pull request #18675 from serathius/remove-context
Remove context from top level apply
2024-10-04 16:55:42 +02:00
ffdf5f2d06 Remove context from top level apply
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-10-04 16:06:55 +02:00
9aec291e76 Merge pull request #18660 from etcd-io/dependabot/docker/distroless/static-debian12-69830f29ed7545c762777507426a412f97dad3d8d32bae3e74ad3fb6160917ea
build(deps): bump distroless/static-debian12 from `b033683` to `69830f2`
2024-10-04 14:05:13 +01:00
073b968522 Merge pull request #18673 from henrybear327/dependencies/10_03_24
[2024-10-03] Bump dependency updates identified by dependabot
2024-10-04 12:07:22 +01:00
d012386222 Merge pull request #18606 from monogon-dev/fix-islearner-panic
etcdserver: fix panic when checking IsLearner of removed member
2024-10-04 10:50:12 +01:00
4e57e4705f Merge pull request #18645 from ivanvc/api-unexported-return
api: address revive unexported-return issues
2024-10-04 10:05:39 +02:00
d1c83d1cfc dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.54.0 to 0.55.0
Reference:
- https://github.com/etcd-io/etcd/pull/18662

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-10-04 08:16:42 +02:00
3654d03c1e api: address revive unexported-return issues
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-10-03 14:21:43 -07:00
50a876cf60 dependency: bump github.com/alexfalkowski/gocovmerge from 1.3.13 to 1.3.14
Reference:
- https://github.com/etcd-io/etcd/pull/18656

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-10-03 19:56:17 +02:00
c1976a6717 Merge pull request #18617 from redwrasse/redwrasse/server/remaining-errors-is
server: remaining errors.Is conversions
2024-10-03 14:47:01 +02:00
951fc964c5 Merge pull request #18668 from ghouscht/issue-17487
fix(v3compactor): flaky TestPeriodicSkipRevNotChange test by increasing timeout
2024-10-03 11:42:34 +02:00
3cc3341fd8 Merge pull request #18663 from ghouscht/issue-18585
fix(tests/common): increase token ttl to fix flaky TestAuthLeaseTimeToLive test
2024-10-03 11:41:42 +02:00
7fa778660c Merge pull request #18651 from ghouscht/issue-18650
docs(contributing): document how to install stress tool
2024-10-03 10:09:19 +01:00
1af428aaa4 github/workflows: use ECR mirror for Trivy's DB
GitHub Container Registry is returning a TOOMANYREQUESTS error. Switch
to AWS ECR mirror, as suggested in
https://github.com/aquasecurity/trivy-action/issues/389.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-10-02 12:52:49 -07:00
5a01649082 Merge pull request #18664 from ghouscht/issue-18412
fix(tests/e2e): ensure spawned cmds are closed
2024-10-02 19:14:05 +01:00
4e9ed2cff3 Merge pull request #18666 from PyAgni/agni/bump-go-1.23.2
Bump go version to 1.23.2
2024-10-02 13:01:36 +01:00
4284a71a6c fix(v3compactor): flaky TestPeriodicSkipRevNotChange test by increasing timeout
Signed-off-by: Thomas Gosteli <thomas.gosteli@protonmail.ch>
2024-10-02 10:36:37 +00:00
bea695dc53 docs(contributing): document how to install stress tool
Signed-off-by: Thomas Gosteli <thomas.gosteli@protonmail.ch>
2024-10-02 07:37:04 +02:00
8650df2868 Bump go version to 1.23.2
Signed-off-by: Agni <bhattacharyya.agni@gmail.com>
2024-10-02 03:34:11 +05:30
2c97110926 Merge pull request #18658 from etcd-io/dependabot/github_actions/actions/checkout-4.2.0
build(deps): bump actions/checkout from 4.1.7 to 4.2.0
2024-10-01 14:37:35 +01:00
a2f5ffa815 build(deps): bump actions/checkout from 4.1.7 to 4.2.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.7 to 4.2.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](692973e3d9...d632683dd7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-01 12:01:12 +00:00
0189ec83d1 Merge pull request #18659 from etcd-io/dependabot/github_actions/github/codeql-action-3.26.10
build(deps): bump github/codeql-action from 3.26.8 to 3.26.10
2024-10-01 13:00:20 +01:00
ddf0ac2dc2 fix(tests/e2e): ensure spawned cmds are closed
Signed-off-by: Thomas Gosteli <thomas.gosteli@protonmail.ch>
2024-10-01 11:54:19 +00:00
83f75e1bf3 fix(tests/common): increase token ttl to fix flaky TestAuthLeaseTimeToLive test
Signed-off-by: Thomas Gosteli <thomas.gosteli@protonmail.ch>
2024-10-01 10:59:25 +02:00
1968199fa1 build(deps): bump distroless/static-debian12 from b033683 to 69830f2
Bumps distroless/static-debian12 from `b033683` to `69830f2`.

---
updated-dependencies:
- dependency-name: distroless/static-debian12
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-30 17:22:26 +00:00
f385c27726 build(deps): bump github/codeql-action from 3.26.8 to 3.26.10
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.8 to 3.26.10.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](294a9d9291...e2b3eafc8d)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-30 17:12:43 +00:00
3374e27f19 etcdserver: fix panic when checking IsLearner of removed member
There was a concurrency bug when accessing the IsLearner
property of a member, which will panic with a nil pointer access error
if the member is removed between the IsMemberExist() and Member() calls.

Signed-off-by: Jan Schär <jan@monogon.tech>
2024-09-30 11:13:23 +02:00
0739142ee3 server: errors.Is conversions
Signed-off-by: redwrasse <mail@redwrasse.io>
2024-09-29 05:23:47 -07:00
68e712276b Merge pull request #18644 from henrybear327/go/1.23.0
[main] Bump go toolchain to 1.23.1
2024-09-28 10:31:13 +12:00
dcdfead770 Bump go toolchain to 1.23.1
Reference:
- https://github.com/etcd-io/etcd/issues/18543
- https://github.com/kubernetes/release/issues/3650

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-09-26 22:38:57 +02:00
c86c93ca29 Merge pull request #18636 from henrybear327/dependencies/09_25_24
[2024-09-25] Bump dependency updates identified by dependabot
2024-09-26 09:35:11 +10:00
79f31c7a5d dependency: bump go.opentelemetry.io/otel from 1.29.0 to 1.30.0
In summary, the bump is performed for the following dependencies:
- go.opentelemetry.io/otel/exporters/otlp/otlptrace from v1.29.0 to v1.30.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from v1.29.0 to v1.30.0
- go.opentelemetry.io/otel/metric from v1.29.0 to v1.30.0
- go.opentelemetry.io/otel/sdk from v1.29.0 to v1.30.0
- go.opentelemetry.io/otel/trace from v1.29.0 to v1.30.0

This commit also addressed the following issues
FAIL: inconsistent versions for dependency: google.golang.org/genproto/googleapis/api
  - google.golang.org/genproto/googleapis/api@v0.0.0-20240822170219-fc7c04adadcd (indirect) from: go.etcd.io/etcd/client/v3
  - google.golang.org/genproto/googleapis/api@v0.0.0-20240822170219-fc7c04adadcd (indirect) from: go.etcd.io/etcd/etcdctl/v3
  - google.golang.org/genproto/googleapis/api@v0.0.0-20240822170219-fc7c04adadcd from: go.etcd.io/etcd/api/v3
  - google.golang.org/genproto/googleapis/api@v0.0.0-20240924160255-9d4c2d233b61 (indirect) from: go.etcd.io/etcd/etcdutl/v3
  - google.golang.org/genproto/googleapis/api@v0.0.0-20240924160255-9d4c2d233b61 (indirect) from: go.etcd.io/etcd/tests/v3
  - google.golang.org/genproto/googleapis/api@v0.0.0-20240924160255-9d4c2d233b61 (indirect) from: go.etcd.io/etcd/tools/v3
  - google.golang.org/genproto/googleapis/api@v0.0.0-20240924160255-9d4c2d233b61 (indirect) from: go.etcd.io/etcd/v3
  - google.golang.org/genproto/googleapis/api@v0.0.0-20240924160255-9d4c2d233b61 from: go.etcd.io/etcd/server/v3
  - google.golang.org/genproto/googleapis/api@v0.0.0-20240924160255-9d4c2d233b61 (indirect) from: go.etcd.io/etcd/tools/v3
FAIL: inconsistent versions for dependency: google.golang.org/genproto/googleapis/rpc
  - google.golang.org/genproto/googleapis/rpc@v0.0.0-20240903143218-8af14fe29dc1 (indirect) from: go.etcd.io/etcd/api/v3
  - google.golang.org/genproto/googleapis/rpc@v0.0.0-20240903143218-8af14fe29dc1 (indirect) from: go.etcd.io/etcd/client/v3
  - google.golang.org/genproto/googleapis/rpc@v0.0.0-20240903143218-8af14fe29dc1 (indirect) from: go.etcd.io/etcd/etcdctl/v3
  - google.golang.org/genproto/googleapis/rpc@v0.0.0-20240903143218-8af14fe29dc1 (indirect) from: go.etcd.io/etcd/pkg/v3
  - google.golang.org/genproto/googleapis/rpc@v0.0.0-20240903143218-8af14fe29dc1 (indirect) from: go.etcd.io/etcd/tools/testgrid-analysis/v3
  - google.golang.org/genproto/googleapis/rpc@v0.0.0-20240924160255-9d4c2d233b61 (indirect) from: go.etcd.io/etcd/etcdutl/v3
  - google.golang.org/genproto/googleapis/rpc@v0.0.0-20240924160255-9d4c2d233b61 (indirect) from: go.etcd.io/etcd/server/v3
  - google.golang.org/genproto/googleapis/rpc@v0.0.0-20240924160255-9d4c2d233b61 (indirect) from: go.etcd.io/etcd/tests/v3
  - google.golang.org/genproto/googleapis/rpc@v0.0.0-20240924160255-9d4c2d233b61 (indirect) from: go.etcd.io/etcd/tools/v3
  - google.golang.org/genproto/googleapis/rpc@v0.0.0-20240924160255-9d4c2d233b61 (indirect) from: go.etcd.io/etcd/v3
  - google.golang.org/genproto/googleapis/rpc@v0.0.0-20240924160255-9d4c2d233b61 (indirect) from: go.etcd.io/etcd/tools/v3
FAIL: inconsistent dependencies

Reference:
- https://github.com/etcd-io/etcd/pull/18629
- https://github.com/etcd-io/etcd/pull/18630
- https://github.com/etcd-io/etcd/pull/18626
- https://github.com/etcd-io/etcd/pull/18627

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-09-26 00:40:27 +02:00
4d4008164e dependency: bump google.golang.org/grpc from 1.66.0 to 1.67.0
Reference:
- https://github.com/etcd-io/etcd/pull/18628

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-09-25 22:43:51 +02:00
d77c9ac5c2 dependency: bump github.com/prometheus/client_golang from 1.20.3 to 1.20.4
Reference:
- https://github.com/etcd-io/etcd/pull/18631

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-09-25 22:43:51 +02:00
1a08fb2809 Merge pull request #18614 from redwrasse/redwrasse/client/rest-of-errors-is
client: remaining errors.Is conversions
2024-09-26 04:09:31 +10:00
5704c6148d Merge pull request #18605 from lucasrod16/use-single-function-to-create-WAL-files
Add function to create WAL files
2024-09-24 19:44:39 +01:00
680eadf0d6 Add function to create WAL files
Signed-off-by: Lucas Rodriguez <lucas.rodriguez9616@gmail.com>
2024-09-24 12:55:24 -05:00
59cfd7a61d Merge pull request #18612 from Kamandlou/km-dev
update: `cobra.ExactValidArgs` method is deprecated
2024-09-24 10:05:29 +01:00
acb1b176ac Merge pull request #18633 from ivanvc/remove-build-github-workflows
github: remove build job
2024-09-24 10:04:42 +01:00
6619b9f84c Merge pull request #18580 from myrat92/fix-issue-184113
docs: fix description of WatchResponse.canceled
2024-09-24 09:51:53 +01:00
c79c7d5440 Merge pull request #18625 from redwrasse/redwrasse/ep-command-errors-is
command: Use errors.Is for error equality check in ep_command.go
2024-09-24 09:32:12 +01:00
7e04b33349 Merge pull request #18624 from etcd-io/dependabot/github_actions/github/codeql-action-3.26.8
build(deps): bump github/codeql-action from 3.26.7 to 3.26.8
2024-09-24 17:11:37 +10:00
204ef59f81 build(deps): bump github/codeql-action from 3.26.7 to 3.26.8
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.7 to 3.26.8.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](8214744c54...294a9d9291)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-24 02:36:34 +00:00
fd83aba9b9 Merge pull request #18623 from etcd-io/dependabot/docker/distroless/static-debian12-b033683de7de51d8cce5aa4b47c1b9906786f6256017ca8b17b2551947fcf6d8
build(deps): bump distroless/static-debian12 from `95eb83a` to `b033683`
2024-09-24 12:35:32 +10:00
3ec8d3fd0b build(deps): bump distroless/static-debian12 from 95eb83a to b033683
Bumps distroless/static-debian12 from `95eb83a` to `b033683`.

---
updated-dependencies:
- dependency-name: distroless/static-debian12
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-23 23:41:27 +00:00
3347d985ec github: remove build job
This job was migrated to the prow infrastructure in May
(https://github.com/kubernetes/test-infra/pull/32672). Deleting the
GitHub workflow to remove duplicate jobs should be fine.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-09-23 14:50:01 -07:00
6767e1ff64 command: Use errors.Is for error equality check in ep_command.go
Signed-off-by: redwrasse <mail@redwrasse.io>
2024-09-23 10:12:40 -07:00
063627e42f update: cobra.ExactValidArgs method is deprecated
Signed-off-by: Kamandlou <ahkamandlou@gmail.com>
2024-09-23 17:22:05 +03:30
bd93a0060a Merge pull request #18610 from henrybear327/dependencies/09_18_24
[2024-09-19] Bump dependency updates identified by dependabot
2024-09-23 15:09:33 +10:00
ecc2c5e471 client modules: remaining errors.Is conversions for error equality and inequality checks.
Signed-off-by: redwrasse <mail@redwrasse.io>
2024-09-22 17:43:01 -07:00
112e6a32ef Merge pull request #18615 from redwrasse/redwrasse/etcdctl/rest-of-errors-is
etcdctl: remaining errors.Is conversions
2024-09-22 19:37:53 +01:00
75ed4ef83b Merge pull request #18616 from redwrasse/redwrasse/contrib/rest-of-errors-is
contrib: remaining errors.Is conversions
2024-09-22 19:37:29 +01:00
2791941d1d Merge pull request #18619 from redwrasse/redwrasse/ioutil/remaining-errors-is
ioutil: remaining errors.Is conversions
2024-09-22 19:34:06 +01:00
35edbf91ad dependency: bump github.com/golangci/golangci-lint from 1.60.3 to 1.61.0 and google.golang.org/genproto/googleapis/rpc from v0.0.0-20240822170219-fc7c04adadcd to v0.0.0-20240903143218-8af14fe29dc1
Also fix the inconsistent version issue.

Reference:
- https://github.com/etcd-io/etcd/pull/18596

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-09-22 17:50:56 +02:00
1199fa89a0 dependency: bump golang.org/x/net from 0.28.0 to 0.29.0
Reference:
- https://github.com/etcd-io/etcd/pull/18597

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-09-22 17:50:12 +02:00
2f9532bfca Merge pull request #18608 from srivastav-abhishek/periodic-compaction-flake-fix
Fixed periodic compaction tests
2024-09-22 09:17:13 +01:00
c568ce621b ioutil: remaining errors.Is conversions
Signed-off-by: redwrasse <mail@redwrasse.io>
2024-09-20 15:57:00 -07:00
f6278ef2a9 contrib: remaining errors.Is conversions
Signed-off-by: redwrasse <mail@redwrasse.io>
2024-09-20 15:44:13 -07:00
0a355d3fbd etcdctl: remaining errors.Is conversions for error equality and inequality checks
Signed-off-by: redwrasse <mail@redwrasse.io>
2024-09-20 15:38:46 -07:00
d59fa331c5 Replaces rest of error equality checks with errors.Is
Signed-off-by: redwrasse <mail@redwrasse.io>
2024-09-20 15:06:10 -07:00
6ea81c1a34 Merge pull request #18600 from ivanvc/update-release-doc-after-observations-from-3.4.34
docs: update release.md with improvements from v3.4.34 release
2024-09-20 10:42:34 +01:00
1820d3b7d5 Merge pull request #18510 from redwrasse/redwrasse/errors-is
Use errors.Is for error equality checks
2024-09-20 09:02:40 +02:00
b8cb654be6 Use strict synchronization for revision getter to minimize flaky result caused by time racing.
Signed-off-by: Joshua Zhang <joshuazh@microsoft.com>

Addressed review comments

Co-authored-by: Abhishek Kr Srivastav <Abhishek.kr.srivastav@ibm.com>
Signed-off-by: Abhishek Kr Srivastav <Abhishek.kr.srivastav@ibm.com>
2024-09-19 17:34:24 +05:30
9fc3b2ad40 Merge pull request #18590 from henrybear327/ci/fix
Add tools/mod to module_dirs
2024-09-19 10:36:12 +01:00
ce07474c0b Merge pull request #18603 from lekaf974/feat/rename-module-exp
Rename modules_exp to modules_for_bom to improve code and clarity
2024-09-19 10:00:30 +02:00
5b2faec983 fea: Remane modules_exp to modules_for_bom to improve code and clarity
Signed-off-by: mevrin <matthieu.evrin@gmail.com>
2024-09-18 21:45:07 -04:00
fc901bd019 Add tools/mod to module_dirs
As `tools/mod` also contains the `go.mod` file. We should add it to the
`module_dirs` variable, so that when executing `./scripts/fix.sh`, the
proper checks and fixes can be applied.

To address the issue of broken unit tests and code coverage due to the
directory's lack of Go code, we've introduced a new doc.go file. This
file acts as a placeholder, enabling tools like golangci-lint and
go test to function correctly.

---

Discovered when working on https://github.com/etcd-io/etcd/pull/18575

The directories are checked against the following:
- Command: `find . -type f -name go.mod -exec dirname {} \;`
- Output:
```
./etcdutl
.
./tools/testgrid-analysis
./tools/rw-heatmaps
./tools/mod
./etcdctl
./tests
./server
./api
./client/internal/v2
./client/v3
./client/pkg
./pkg
```

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-09-18 14:33:13 +02:00
4155d8bb5b docs: fix description of WatchResponse.canceled
Signed-off-by: Myrat92 <zjsegzhf@gmail.com>
2024-09-18 15:10:07 +08:00
7e3901fb04 docs: update release.md with improvements from v3.4.34 release
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-09-17 13:57:20 -07:00
2ed418c191 Merge pull request #18574 from lucasrod16/18571-ensure-consistent-permissions-for-broken-WAL-files
Ensure consistent file permissions on broken WAL files
2024-09-17 09:54:59 +02:00
4b8655ea00 Merge pull request #18598 from etcd-io/dependabot/github_actions/github/codeql-action-3.26.7
build(deps): bump github/codeql-action from 3.26.6 to 3.26.7
2024-09-17 06:08:57 +10:00
d12bb7e0fb Ensure consistent file permissions on broken WAL
Signed-off-by: Lucas Rodriguez <lucas.rodriguez9616@gmail.com>
2024-09-16 14:07:16 -05:00
2d5e1858cd build(deps): bump github/codeql-action from 3.26.6 to 3.26.7
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.6 to 3.26.7.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](4dd16135b6...8214744c54)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-16 17:47:08 +00:00
7f399ee50c Merge pull request #18592 from jmhbnz/main
Ensure commits are signed in `scripts/release.sh`
2024-09-16 14:09:51 +01:00
7e8e0bf1f9 Ensure commits are signed in scripts/release.sh.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-09-16 11:31:30 +12:00
6c1fe4a92a Merge pull request #18575 from henrybear327/dependencies/09_11_24
[2024-09-11] Bump dependency updates identified by dependabot
2024-09-15 17:28:45 +10:00
14d54893e0 dependency: bump golang.org/x/crypto from 0.26.0 to 0.27.0
golang.org/x/sys and golang.org/x/text version inconsistency are also
addressed:
- bump golang.org/x/sys from 0.24.0 to 0.25.0
- bump golang.org/x/text from 0.17.0 to 0.18.0

Reference:
- https://github.com/etcd-io/etcd/pull/18563
- https://github.com/etcd-io/etcd/pull/18558
- https://github.com/etcd-io/etcd/pull/18566
- https://github.com/etcd-io/etcd/pull/18565

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-09-14 22:29:31 +02:00
a976ba136d dependency: bump github.com/prometheus/client_golang from 1.20.2 to 1.20.3
Reference:
- https://github.com/etcd-io/etcd/pull/18564
- https://github.com/etcd-io/etcd/pull/18559

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-09-14 22:10:04 +02:00
636f191368 dependency: bump github.com/prometheus/common from 0.57.0 to 0.59.1
Reference:
- https://github.com/etcd-io/etcd/pull/18562
- https://github.com/etcd-io/etcd/pull/18567

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-09-14 21:48:11 +02:00
981061a495 Merge pull request #18577 from ivanvc/update-release-3.4.34-release-date
CHANGELOG: set release 3.4.34 date
2024-09-12 07:32:08 +10:00
94e5502112 CHANGELOG: set release 3.4.34 date
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-09-11 13:27:10 -07:00
fdbde77a92 Merge pull request #18444 from henrybear327/go/1.23.0
[main] Bump go toolchain to 1.22.7
2024-09-12 04:23:50 +10:00
29f3bc2222 Bump go toolchain to 1.22.7
Reference:
- https://github.com/etcd-io/etcd/issues/18443
- https://github.com/etcd-io/etcd/issues/18548#issuecomment-2343061825

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-09-11 15:32:52 +02:00
5088131f51 Merge pull request #18572 from ArkaSaha30/release-doc-update
Improve release documentation
2024-09-11 09:40:45 +01:00
c7b536c016 Merge pull request #18573 from ivanvc/update-release-3.5.16-release-date
CHANGELOG: Update release date for v3.5.16
2024-09-11 07:46:54 +10:00
96e17d38e2 Update release date for v3.5.16
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-09-10 13:43:19 -07:00
00f8a47d22 Improve release documentation
This commit will improve the release documentation guide by incorporating the following points:
1. Step 5 can be simplified to do a single-branch checkout
2. Step 6 should clarify that the release directory is in /tmp/etcd-release-${VERSION}/etcd/release/
3. Step 8 mention to add the "Release" label to the announcement message

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-09-11 00:37:41 +05:30
4997a2bf93 Merge pull request #18568 from etcd-io/dependabot/docker/distroless/static-debian12-95eb83a44a62c1c27e5f0b38d26085c486d71ece83dd64540b7209536bb13f6d
build(deps): bump distroless/static-debian12 from `ce46866` to `95eb83a`
2024-09-10 17:10:49 +10:00
f928344bcf Merge pull request #18556 from JalinWang/chore/update-changelog
CHANGELOG: add note for the CompactionSleepInterval flag(PR 18514)
2024-09-10 14:16:30 +10:00
4e82d9b20e Merge pull request #18555 from lucasrod16/18538-fix-races-in-TestLessorRenewExtendPileup
Fix races in TestLessorRenewExtendPileup
2024-09-09 19:59:51 +01:00
eb100511a6 build(deps): bump distroless/static-debian12 from ce46866 to 95eb83a
Bumps distroless/static-debian12 from `ce46866` to `95eb83a`.

---
updated-dependencies:
- dependency-name: distroless/static-debian12
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-09 17:37:08 +00:00
42dd29877f Merge pull request #18539 from ahrtr/scan_db_20240902
Support scan-keys command to scan the key space starting a specific revision
2024-09-09 16:49:34 +01:00
a042354947 Fix races in TestLessorRenewExtendPileup
Signed-off-by: Lucas Rodriguez <lucas.rodriguez9616@gmail.com>
2024-09-09 10:39:44 -05:00
7fcc3cfefe CHANGELOG: add note for the CompactionSleepInterval flag(PR 18514)
Signed-off-by: Jalin Wang <JalinWang@outlook.com>
2024-09-09 10:17:31 +08:00
f89dfed2dc Merge pull request #18545 from qsyqian/benchmark_support_skip_tls_verify
benchmark: support InsecureSkipVerify
2024-09-08 12:39:21 +01:00
bf63f91705 Merge pull request #18553 from ivanvc/update-changelog-to-reflect-go-update-to-1.22.7
CHANGELOG: add note regarding updating to go 1.22.7
2024-09-06 14:34:29 +01:00
e3bade81e7 CHANGELOG: add note regarding updating to go 1.22.7
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-09-05 20:57:49 -07:00
cb2f7b7a63 Support scan-keys command to scan the key space starting a specific revision
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-09-05 08:46:22 +01:00
46cf1e6e8c benchmark: support insecure-skip-tls-verify
Signed-off-by: qsyqian <qsyqian@gmail.com>
2024-09-05 15:13:21 +08:00
4a11ca6c89 Merge pull request #18536 from henrybear327/dependency_update/9_3_24
[2024-09-03] Bump dependency updates identified by dependabot
2024-09-04 19:04:18 +01:00
d4df7a902e Replaces a number of error equality checks with errors.Is
Signed-off-by: redwrasse <mail@redwrasse.io>
2024-09-03 16:02:24 -07:00
b3a0047c80 dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.53.0 to 0.54.0
Reference:
- https://github.com/etcd-io/etcd/pull/18525

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-09-03 16:33:50 +02:00
bd246ea174 dependency: bump github.com/prometheus/common from 0.55.0 to 0.57.0
Reference:
- https://github.com/etcd-io/etcd/pull/18529
- https://github.com/etcd-io/etcd/pull/18523

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-09-03 16:30:25 +02:00
2cd46694b9 dependency: bump google.golang.org/grpc from 1.65.0 to 1.66.0
Reference:
- https://github.com/etcd-io/etcd/pull/18530
- https://github.com/etcd-io/etcd/pull/18524

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-09-03 16:27:55 +02:00
c00593bbd4 Merge pull request #18531 from etcd-io/dependabot/github_actions/actions/upload-artifact-4.4.0
build(deps): bump actions/upload-artifact from 4.3.6 to 4.4.0
2024-09-03 23:23:45 +12:00
b39b7c9213 Merge pull request #18532 from etcd-io/dependabot/github_actions/github/codeql-action-3.26.6
build(deps): bump github/codeql-action from 3.26.5 to 3.26.6
2024-09-03 09:24:01 +01:00
516776a900 build(deps): bump github/codeql-action from 3.26.5 to 3.26.6
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.5 to 3.26.6.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](2c779ab0d0...4dd16135b6)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-02 17:44:09 +00:00
b0e914837c build(deps): bump actions/upload-artifact from 4.3.6 to 4.4.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.6 to 4.4.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](834a144ee9...50769540e7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-02 17:43:56 +00:00
4bb9392289 Merge pull request #18515 from henrybear327/dependencies/08_29_24
[2024-08-29] Bump dependency updates identified by dependabot
2024-08-31 08:32:23 +01:00
06a6da0ea1 dependency: bump google.golang.org/genproto/googleapis/rpc from v0.0.0-20240814211410-ddb44dafa142 to v0.0.0-20240822170219-fc7c04adadcd
Due to bumping go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.27.0 to 1.29.0

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-08-30 23:03:32 +02:00
d6b5693f91 dependency: bump google.golang.org/genproto/googleapis/api from v0.0.0-20240814211410-ddb44dafa142 to v0.0.0-20240822170219-fc7c04adadcd
Due to bumping go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.27.0 to 1.29.0

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-08-30 23:01:23 +02:00
c2d4f2b694 dependency: bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.27.0 to 1.29.0
Reference:
- https://github.com/etcd-io/etcd/pull/18515

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-08-30 22:58:26 +02:00
c0291f881f Merge pull request #18360 from serathius/kubernetes-call-options
Fix passing default grpc call options in Kubernetes client
2024-08-30 15:53:08 +02:00
a69829bae3 Address linter issues
Log:

integration/metrics_test.go:139:4: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck)
			t.Fatalf(err.Error())
			^
integration/clientv3/lease/lease_test.go:410:4: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck)
			t.Fatalf(errMsg)

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-08-29 22:16:48 +02:00
077817058f dependency: bump github.com/prometheus/client_golang from 1.20.0 to 1.20.2
Reference:
- https://github.com/etcd-io/etcd/pull/18492

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-08-29 22:12:13 +02:00
40fc67e88a dependency: bump go.opentelemetry.io/otel/sdk from 1.28.0 to 1.29.0
Reference:
- https://github.com/etcd-io/etcd/pull/18497

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-08-29 22:12:13 +02:00
7ef38ee7ec dependency: bump go.opentelemetry.io/otel from 1.28.0 to 1.29.0 and bump go.opentelemetry.io/otel/trace from 1.28.0 to 1.29.
Reference:
- https://github.com/etcd-io/etcd/pull/18499
- https://github.com/etcd-io/etcd/pull/18498

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-08-29 22:12:13 +02:00
f56a0a4e82 dependency: bump github.com/google/btree from 1.1.2 to 1.1.3
Reference:
- https://github.com/etcd-io/etcd/pull/18500

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-08-29 22:12:13 +02:00
bcc229a254 dependency: bump github.com/golangci/golangci-lint from 1.59.1 to 1.60.3
Reference:
- https://github.com/etcd-io/etcd/pull/18504

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-08-29 22:12:13 +02:00
2bcaed1e09 Fix passing default grpc call options in Kubernetes client
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-08-29 16:46:00 +02:00
fe796ab1aa Merge pull request #18512 from akshaym-3255/update-changelog
CHANGELOG: Add entries for bbolt dependency bump
2024-08-29 12:33:54 +01:00
961b1cd93c CHANGELOG: update changes for issue 18480
Signed-off-by: akshaym-3255 <mohiteakshay2020@gmail.com>
2024-08-29 12:04:48 +05:30
2c53be7c5d etcdserver: rename defaultCompactionSleepInterval var (#18495)
* etcdserver: rename `minimumBatchInterval`  to `defaultCompactionSleepInterval` and `defaultCompactBatchLimit` to `defaultCompactionBatchLimit`

Signed-off-by: Jalin Wang <JalinWang@outlook.com>
2024-08-27 14:36:06 +01:00
03fcba2940 Merge pull request #18506 from etcd-io/dependabot/github_actions/github/codeql-action-3.26.5
build(deps): bump github/codeql-action from 3.26.3 to 3.26.5
2024-08-27 11:49:03 +12:00
f96347a0c7 build(deps): bump github/codeql-action from 3.26.3 to 3.26.5
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.3 to 3.26.5.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](883d8588e5...2c779ab0d0)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-26 17:52:33 +00:00
4d42c0f86a Merge pull request #18490 from henrybear327/dependency_update/8_24_24
[2024-08-24] Bump dependency updates identified by dependabot
2024-08-25 16:03:44 +12:00
190a5c7994 dependency: bump honnef.co/go/tools from 0.4.7 to 0.5.1
Reference:
- https://github.com/etcd-io/etcd/pull/18463

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-08-24 16:58:35 +02:00
e794407f3f dependency: bump github.com/prometheus/client_golang from 1.19.1 to 1.20.0
Reference:
- https://github.com/etcd-io/etcd/pull/18469
- https://github.com/etcd-io/etcd/pull/18466

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-08-24 03:10:29 +02:00
8a9670d046 dependency: bump google.golang.org/genproto/googleapis/rpc from v0.0.0-20240723171418-e6d459c13d2a to v0.0.0-20240814211410-ddb44dafa142
Due to the dependency bump of github.com/grpc-ecosystem/grpc-gateway/v2,
we would also need to bump google.golang.org/genproto/googleapis/rpc.

Before:
./etcdutl/go.mod:       google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect
./go.mod:       google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect
./tools/testgrid-analysis/go.mod:       google.golang.org/genproto/googleapis/rpc v0.0.0-20240723171418-e6d459c13d2a // indirect
./tools/mod/go.mod:     google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect
./etcdctl/go.mod:       google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect
./tests/go.mod: google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect
./server/go.mod:        google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect
./api/go.mod:   google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect
./client/v3/go.mod:     google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect
./pkg/go.mod:   google.golang.org/genproto/googleapis/rpc v0.0.0-20240723171418-e6d459c13d2a // indirect

After:
./etcdutl/go.mod:       google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect
./go.mod:       google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect
./tools/testgrid-analysis/go.mod:       google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect
./tools/mod/go.mod:     google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect
./etcdctl/go.mod:       google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect
./tests/go.mod: google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect
./server/go.mod:        google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect
./api/go.mod:   google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect
./client/v3/go.mod:     google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect
./pkg/go.mod:   google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-08-24 03:10:29 +02:00
d23c2c7a16 dependency: bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.21.0 to 2.22.0
Reference:
- https://github.com/etcd-io/etcd/pull/18470
- https://github.com/etcd-io/etcd/pull/18467

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-08-24 03:10:29 +02:00
93a245aed6 Merge pull request #18478 from liangyuanpeng/fg_skipClientSan
KEP-4578: migrate experimental-initial-corrupt-check flag to feature gate.
2024-08-23 08:09:10 +01:00
a966c07165 migrate experimental-initial-corrupt-check flag to feature gate.
Signed-off-by: Lan Liang <gcslyp@gmail.com>
2024-08-22 14:42:18 +00:00
5485c71067 Merge pull request #18482 from fuweid/update-changelog
CHANGELOG: update changes for issue 18089
2024-08-22 09:59:35 +01:00
8db31b6663 CHANGELOG: update changes for issue 18089
Signed-off-by: Wei Fu <fuweid89@gmail.com>
2024-08-22 15:58:33 +08:00
cb0cd4b218 Merge pull request #18453 from fuweid/revert-18213-patch
Revert "Disable robustness test detection of #18089 to allow detecting other issues
2024-08-21 15:46:55 +02:00
4dab7850fb Merge pull request #18468 from etcd-io/dependabot/github_actions/github/codeql-action-3.26.3
build(deps): bump github/codeql-action from 3.26.0 to 3.26.3
2024-08-21 21:51:07 +12:00
bcf9ac1b36 build(deps): bump github/codeql-action from 3.26.0 to 3.26.3
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.0 to 3.26.3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](eb055d739a...883d8588e5)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-19 17:35:44 +00:00
f402c2ae2b Merge pull request #18454 from ivanvc/delete-e2e-github-actions
github/workflows: remove e2e jobs
2024-08-19 18:59:57 +12:00
7593e79dc3 Merge pull request #18460 from mello369/update-changelog-3.6
CHANGELOG: Add entry for etcdutl hashkv command.
2024-08-19 18:59:02 +12:00
e653d1ed30 CHANGELOG: Add entry for etcdutl hashkv command.
Signed-off-by: Naman Singh <namansingh269@gmail.com>
2024-08-18 12:20:41 +05:30
fbd4fa46fe github/workflows: remove e2e jobs
These jobs have been long-running on the prow infrastructure, thanks to
the work from the pull request kubernetes/test-infra#31257. Since they
are required (kubernetes/test-infra#33330), it should be safe to remove
the GitHub actions.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-08-16 15:33:38 -07:00
6cf872972f Revert "Disable robustness test detection of #18089 to allow detecting other issues"
This reverts commit 4fe227c46c.

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2024-08-16 21:37:53 +08:00
62e443301b Merge pull request #18450 from ahrtr/lease_5members_20240816
test: extend leaseRevoke and leaseRenew test to support 5 members cluster
2024-08-16 13:24:35 +01:00
c8e0d1e82f Merge pull request #18449 from TheInvincibleRalph/theinvincible
deleted infra-guide
2024-08-16 23:14:31 +12:00
84533d5e85 test: extend leaseRevoke and leaseRenew test to support 5 members cluster
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-08-16 11:04:06 +01:00
56e5b1d5b7 deleted infra-guide
Signed-off-by: TheInvincible <adesegunraphaeladeoye@gmail.com>
2024-08-16 10:58:30 +01:00
1d0a6b3978 Merge pull request #18274 from fuweid/fix-event-loss-caused-by-compact
*: keep tombstone if revision == compactAtRev
2024-08-16 08:16:04 +01:00
39b711fc55 Merge pull request #18442 from serathius/robustness-reduce-flakes
Reduce number of concurrent clients to 8 and compactions to avoid flakes
2024-08-15 15:15:57 +02:00
f194f4723c Reduce number of concurrent clients to 8 and compactions to avoid flakes
Not hitting minimal QPS is expected to be caused by introduction of
compation. Let's avoid it for high throughput test cases.

Reducing number of clients to avoid linearization timeouts.

Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-08-15 13:57:06 +02:00
3aa56a76bd Merge pull request #18441 from ahrtr/improve_leaseRenew_20240814_changelog
Update changelog for the performance regression caused by ensureLeadership in leaseRenew
2024-08-14 21:33:40 +01:00
a8b30b19bd Merge pull request #18428 from ahrtr/improve_leaseRenew_20240809
Skip leadership check if the etcd instance is active processing heartbeats
2024-08-14 15:58:04 +01:00
4b8e784607 Update changelog for the performance regression caused by ensureLeadership in leaseRenew
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-08-14 15:51:35 +01:00
c147425c51 Merge pull request #18434 from etcd-io/dependabot/github_actions/actions/upload-artifact-4.3.6
build(deps): bump actions/upload-artifact from 4.3.5 to 4.3.6
2024-08-13 09:39:26 +12:00
9d8000f374 Merge pull request #18435 from etcd-io/dependabot/github_actions/github/codeql-action-3.26.0
build(deps): bump github/codeql-action from 3.25.15 to 3.26.0
2024-08-13 08:39:28 +12:00
7f1e86055b build(deps): bump github/codeql-action from 3.25.15 to 3.26.0
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.15 to 3.26.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](afb54ba388...eb055d739a)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-12 17:44:47 +00:00
d6cb7ba038 build(deps): bump actions/upload-artifact from 4.3.5 to 4.3.6
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.5 to 4.3.6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](89ef406dd8...834a144ee9)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-12 17:44:37 +00:00
9fd94de2c4 Merge pull request #18431 from ArkaSaha30/add-deps-mgmt-doc
Add `genproto` error troubleshoot step for manual bumps
2024-08-12 13:05:56 +01:00
58ec6b2bdb Add genproto error troubleshoot step for manual bumps
This commit will add the troubleshooting step in case of `genproto`
errors while performing manual dependency bumps of `grpc-*`

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
Co-authored-by: Benjamin Wang <benjamin.wang@broadcom.com>
Co-authored-by: James Blair <mail@jamesblair.net>
2024-08-12 16:03:40 +05:30
ad942b7118 Merge pull request #18399 from jmhbnz/main
Keep release process documentation up to date
2024-08-11 21:35:55 +12:00
24df5bca85 Merge pull request #18427 from henrybear327/dependencies/08_08_25
[2024-08-09] Bump dependency updates identified by dependabot
2024-08-10 07:21:00 +01:00
b8b0cf83d1 Skip leadership check if the etcd instance is active processing heartbeat
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-08-09 17:02:02 +01:00
6208673ebf dependency: bump golang.org/x/sys from 0.23.0 to 0.24.0
Reference:
- https://github.com/etcd-io/etcd/pull/18426
- https://github.com/etcd-io/etcd/pull/18425

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-08-09 10:17:01 +02:00
df4e472a2d Merge pull request #18423 from henrybear327/go/1.21.13_changelog
Update release-3.4 and release-3.5 CHANGELOG with go version bump
2024-08-09 10:17:11 +12:00
7fba2ab3d0 Update release-3.4 and release-3.5 CHANGELOG with go version bump
Reference: https://github.com/etcd-io/etcd/issues/18419

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
Co-authored-by: Iván Valdés Castillo <iv@nvald.es>
2024-08-08 23:14:24 +02:00
9c187ef337 Merge pull request #18420 from henrybear327/go/1.22.6
go version bump from 1.22.5 to 1.22.6
2024-08-08 22:02:17 +01:00
d57a793b8c Merge pull request #18418 from henrybear327/dependencies/08_08_24
[2024-08-08] Bump dependency updates identified by dependabot
2024-08-08 22:00:04 +01:00
fe9218d294 dependency: bump golang.org/x/text from 0.16.0 to 0.17.0
Due to bumping github.com/alexfalkowski/gocovmerge

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-08-08 21:47:10 +02:00
8eb943d2af dependency: bump golang.org/x/net from 0.27.0 to 0.28.0
Due to bumping github.com/alexfalkowski/gocovmerge

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-08-08 21:43:41 +02:00
5c290d110d dependency: bump golang.org/x/crypto from 0.25.0 to 0.26.0
Due to bumping github.com/alexfalkowski/gocovmerge

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-08-08 21:40:19 +02:00
794d1b64f7 go version bump from 1.22.5 to 1.22.6
Reference: https://github.com/etcd-io/etcd/issues/18419
Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-08-08 21:30:09 +02:00
f071fde896 dependency: bump golang.org/x/sys from 0.22.0 to 0.23.0
Reference:
- https://github.com/etcd-io/etcd/pull/18406

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-08-08 21:24:07 +02:00
cfe806aab7 dependency: bump golang.org/x/time from 0.5.0 to 0.6.0
Reference:
- https://github.com/etcd-io/etcd/pull/18401

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-08-08 21:24:07 +02:00
47f73f4464 dependency: bump golang.org/x/sync from 0.7.0 to 0.8.0
Reference:
- https://github.com/etcd-io/etcd/pull/18405

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-08-08 21:24:07 +02:00
4de9054fff dependency: bump github.com/alexfalkowski/gocovmerge from v1.3.9 to v.1.3.13
In tools/mod directory, I executed the following instructions to
- go get github.com/alexfalkowski/gocovmerge@none
- Set `go 1.22` in the go.mod file
- go get github.com/alexfalkowski/gocovmerge@v1.3.13
- go mod tidy

Reference:
- https://github.com/etcd-io/etcd/pull/18418#discussion_r1709929410
- https://github.com/alexfalkowski/gocovmerge/pull/87
- https://github.com/alexfalkowski/gocovmerge/releases/tag/v1.3.12

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-08-08 21:24:07 +02:00
bb62635a4d Merge pull request #18417 from jmhbnz/remove-arm64-robustness-actions
Remove arm64 robustness github actions workflows
2024-08-08 12:51:42 +01:00
1c95754dfc Remove arm64 robustness workflows.
These have now migrated to prow.

Signed-off-by: James Blair <mail@jamesblair.net>
2024-08-08 13:52:05 +12:00
e34a101914 Merge pull request #18359 from siyuanfoundation/fg-2
migrate experimental-stop-grpc-service-on-defrag flag to feature gate.
2024-08-07 17:50:59 +02:00
bbdc94181a *: keep tombstone if revision == compactAtRev
Before this patch, the tombstone can be deleted if its revision is equal
compacted revision. It causes that the watch subscriber won't get this
DELETE event. Based on Compact API[1], we should keep tombstone revision
if it's not less than the compaction revision.

> CompactionRequest compacts the key-value store up to a given revision.
> All superseded keys with a revision less than the compaction revision
> will be removed.

[1]: https://etcd.io/docs/latest/dev-guide/api_reference_v3/

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2024-08-07 21:56:20 +08:00
ee33652775 *: update tests for watch API when compact on tombstone revision
Signed-off-by: Wei Fu <fuweid89@gmail.com>
2024-08-07 21:28:10 +08:00
8b1b69b1e2 Merge pull request #18408 from etcd-io/dependabot/github_actions/actions/upload-artifact-4.3.5
build(deps): bump actions/upload-artifact from 4.3.4 to 4.3.5
2024-08-06 09:49:01 +12:00
bd228cf6d1 migrate experimental-stop-grpc-service-on-defrag flag to feature gate.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-08-05 13:46:51 -07:00
30e2985ff9 build(deps): bump actions/upload-artifact from 4.3.4 to 4.3.5
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.4 to 4.3.5.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](0b2256b8c0...89ef406dd8)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-05 17:57:24 +00:00
bb6ce7865a Merge pull request #18183 from ah8ad3/etcdctl-doc
Add examples to `etcdctl snapshot` command's help
2024-08-05 16:34:56 +12:00
16fb3f6527 Create util for etcdctl, move helper of cobra from main package to
etcdctl util, create normalizer of examples in util, add some more
examples, change indent of etcdctl from "\t" to "  "

Signed-off-by: ah8ad3 <ah8ad3@gmail.com>
2024-08-04 13:37:22 +03:30
2221d46689 Keep release process up to date.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-08-03 20:53:56 +12:00
e758ffc25a Merge pull request #18397 from serathius/robustness-gofail-branch
Ensure proper gofail package version in robustness tests
2024-08-02 15:09:03 +02:00
44b6c03ec0 Ensure proper gofail package version in robustness tests
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-08-02 09:24:49 +02:00
8ac9ce8324 Merge pull request #18392 from serathius/robustness-deflake-watch-progress
Remove flake caused failpoint in watch disrupting progress notifies
2024-08-02 08:25:17 +02:00
fdf8fde387 Remove flake caused failpoint in watch disrupting progress notifies
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-08-01 21:19:03 +02:00
ca2d91c2bd Merge pull request #18383 from etcd-io/wenjiaswe-patch-1
Update release.md to reflect notes taken during 3.5.15 release
2024-08-01 15:57:59 +01:00
b7f08e01fa Update release.md to move the space limitation to the correct line
Signed-off-by: Wenjia Zhang <wenjiazhang@google.com>
2024-08-01 14:06:57 +00:00
5340b2b0f2 Merge pull request #18387 from fuweid/case-update
tests/e2e: check compactOnRev > tombstoneRevs[0]
2024-08-01 12:20:22 +01:00
182639c401 tests/e2e: check compactOnRev > tombstoneRevs[0]
Follow-up: https://github.com/etcd-io/etcd/pull/18369#discussion_r1698144827

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2024-08-01 18:00:55 +08:00
4488f2c9b6 Merge pull request #18252 from fykaa/reduce-concurrency-high-traffic
Reduce client concurrency for high traffic robustness tests
2024-07-31 17:35:37 +02:00
04fb588cf0 Merge pull request #18384 from ArkaSaha30/deps_mgmt_29_7_24
[2024-07-29] Manual Dependency Bump
2024-07-31 13:31:15 +01:00
6a17ce3ff7 fix genproto after *.proto file update
Update genproto after *.proto change:
* Please rerun genproto.sh after changing *.proto file
* Run ./scripts/genproto.sh

Error encountered:
[0;31mFAIL: 'genproto' FAILED at Wed Jul 31 07:09:08 UTC 2024
make: *** [Makefile:134: verify-genproto] Error 255

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-07-31 15:06:45 +05:30
984100b3a6 dependency: bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.20.0 to 2.21.0
This commit will bump dependency bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.20.0 to 2.21.0 raised by dependabot.

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-07-31 14:16:18 +05:30
739a9b60b0 Merge pull request #18369 from fuweid/add-hashkv-test
tests/e2e: add test cases related to HashKV
2024-07-31 09:34:50 +02:00
cdb59b9ef4 Update release.md based on 3.5.15 release: https://github.com/etcd-io/etcd/issues/18247#issuecomment-2240080965
Signed-off-by: Wenjia Zhang <wenjiazhang@google.com>
2024-07-31 05:41:57 +00:00
6f93af85d2 tests/e2e: add test cases related to HashKV
Signed-off-by: Wei Fu <fuweid89@gmail.com>
2024-07-30 21:01:58 +08:00
f181ced1ca Merge pull request #18373 from redwrasse/redwrasse/wait-time-leq
Fix wait time docs, tests to indicate trigger deadline geq to wait deadline.
2024-07-30 08:30:48 +01:00
c02dfcd910 Merge pull request #18379 from etcd-io/dependabot/github_actions/github/codeql-action-3.25.15
build(deps): bump github/codeql-action from 3.25.13 to 3.25.15
2024-07-30 18:39:03 +12:00
4474ea55c9 Merge pull request #18380 from etcd-io/dependabot/github_actions/ossf/scorecard-action-2.4.0
build(deps): bump ossf/scorecard-action from 2.3.3 to 2.4.0
2024-07-30 17:54:28 +12:00
cb1bcb7174 build(deps): bump ossf/scorecard-action from 2.3.3 to 2.4.0
Bumps [ossf/scorecard-action](https://github.com/ossf/scorecard-action) from 2.3.3 to 2.4.0.
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](dc50aa9510...62b2cac7ed)

---
updated-dependencies:
- dependency-name: ossf/scorecard-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-29 17:34:26 +00:00
3d8a0c9b71 build(deps): bump github/codeql-action from 3.25.13 to 3.25.15
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.13 to 3.25.15.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](2d790406f5...afb54ba388)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-29 17:34:21 +00:00
7a826062d4 update wait_test indices
Signed-off-by: redwrasse <mail@redwrasse.io>
2024-07-29 13:33:28 +00:00
f58fb592c9 Merge pull request #18371 from ivanvc/delete-tests-dockerfile
tests: remove Dockerfile
2024-07-29 09:40:21 +02:00
1e1ed85429 Merge pull request #18368 from ivanvc/set-default-permissions-to-approve-workflow
github/workflows: set read-only default permissions to approve workflow
2024-07-29 09:38:25 +02:00
5f782c350f fix wait_time docs, tests for trigger deadline greater than or equal to wait deadline
Signed-off-by: redwrasse <mail@redwrasse.io>
2024-07-27 21:41:40 +00:00
ce916fbb38 tests: remove Dockerfile
The tests/Dockerfile was outdated (using an obsolete Ubuntu
distribution), and it's not being used by any workflow or prow job. This
Dockerfile was the only one using `scripts/install-marker.sh`, which
used a vendorized binary generated by the etcd project. This is not
needed anymore, as marker releases now provide the binaries.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-07-26 15:31:38 -07:00
9f59ef8ead Merge pull request #18365 from siyuanfoundation/fg-1
Add config file field for feature-gates flag.
2024-07-26 10:11:43 +02:00
b8ac5eab86 Merge pull request #18367 from ivanvc/pin-robustness-github-actions-dependencies
github/workflows: pin robutness tests dependencies
2024-07-26 07:47:52 +01:00
94d47449ed Merge pull request #18366 from ivanvc/update-golang.org-x-image-to-0.18.0
dependency: Bumps golang.org/x/image from 0.11.0 to 0.18.0
2024-07-26 07:46:14 +01:00
5a02298ad5 github/workflows: set read-only default permissions to approve workflow
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-07-25 15:39:08 -07:00
2e30c83406 github/workflows: pin robutness tests dependencies
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-07-25 15:23:14 -07:00
89551e13c4 dependency: Bumps golang.org/x/image from 0.11.0 to 0.18.0
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-07-25 15:13:20 -07:00
94077fc7ca Merge pull request #18361 from ArkaSaha30/deps_mgmt_22_7_24
[2024-07-22] Manual Dependency Bump
2024-07-25 18:16:42 +12:00
3261667647 dependency: bump gotest.tools/gotestsum from 1.11.0 to 1.12.0
This commit will bump dependency gotest.tools/gotestsum from 1.11.0 to 1.12.0 raised by dependabot.

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-07-24 17:34:36 +05:30
9a6c9aeeab Merge pull request #18283 from clement2026/change-snapshot-and-compact-into-sync-operation
etcdserver: change the snapshot + compact into sync operation
2024-07-24 10:43:03 +02:00
0e77563e35 Add config file field for feature-gates flag.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-07-23 15:27:07 -07:00
24ff469d4b Merge pull request #16333 from serathius/kubernetes
Introduce Kubernetes interface to etcd client
2024-07-23 16:43:02 +02:00
3b4e2f4668 Merge pull request #18279 from siyuanfoundation/fg-1
Add "server-feature-gates" flag.
2024-07-23 15:27:35 +02:00
6c98a96866 Introduce Kubernetes KV interface to etcd client
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-07-23 14:53:09 +02:00
e84ba1cc64 Merge pull request #18355 from jmhbnz/main
CHANGELOG: Update release date for v3.5.15
2024-07-23 08:48:00 +01:00
378207da51 Update release date for v3.5.15.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-07-23 09:56:26 +12:00
9f58999f1b Merge pull request #18354 from etcd-io/dependabot/github_actions/github/codeql-action-3.25.13
build(deps): bump github/codeql-action from 3.25.12 to 3.25.13
2024-07-23 09:29:05 +12:00
f00ceb6c01 build(deps): bump github/codeql-action from 3.25.12 to 3.25.13
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.12 to 3.25.13.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](4fa2a79536...2d790406f5)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-22 17:47:22 +00:00
d6c0127d26 Merge pull request #18321 from fuweid/mvcc-test/should-not-allow-duplicate-keys-in-one-txn
mvcc/*_test.go: should not use duplicate revision.Main for one key
2024-07-20 06:13:03 +01:00
010d462c0f Merge pull request #18342 from ArkaSaha30/deps_mgmt_15_7_24
[2024-07-15] Manual Dependency Bump
2024-07-19 17:25:56 +12:00
7b355141d9 Add "server-feature-gates" flag.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-07-18 13:20:30 -07:00
8d61855cd6 dependency: bump go.opentelemetry.io/otel/sdk from 1.27.0 to 1.28.0
This commit will bump dependency go.opentelemetry.io/otel/sdk from 1.27.0 to 1.28.0 raised by dependabot.

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-07-18 20:49:52 +05:30
1dac90c226 dependency: bump golang.org/x/net from 0.26.0 to 0.27.0
This commit will bump dependency golang.org/x/net from 0.26.0 to 0.27.0 raised by dependabot.

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-07-18 20:39:39 +05:30
27e13a996f dependency: bump golang.org/x/crypto from 0.24.0 to 0.25.0
This commit will bump dependency golang.org/x/crypto from 0.24.0 to 0.25.0 raised by dependabot.

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-07-18 20:27:06 +05:30
80f6f71970 dependency: bump github.com/alexfalkowski/gocovmerge from 1.3.8 to 1.3.9
This commit will bump dependency github.com/alexfalkowski/gocovmerge from 1.3.8 to 1.3.9 raised by dependabot.

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-07-17 22:27:26 +05:30
e7f572914d Merge pull request #18318 from ivanvc/verify-marker-with-released-artifact
marker(markdown linter): use released binary when running markdown lint
2024-07-16 08:36:04 +12:00
9864607c1b Merge pull request #18333 from etcd-io/dependabot/github_actions/github/codeql-action-3.25.12
build(deps): bump github/codeql-action from 3.25.11 to 3.25.12
2024-07-16 08:35:26 +12:00
806eaa771c Merge pull request #18332 from etcd-io/dependabot/github_actions/actions/setup-go-5.0.2
build(deps): bump actions/setup-go from 5.0.1 to 5.0.2
2024-07-16 08:33:51 +12:00
6158097ad4 Merge pull request #18331 from etcd-io/dependabot/github_actions/aquasecurity/trivy-action-0.24.0
build(deps): bump aquasecurity/trivy-action from 0.23.0 to 0.24.0
2024-07-16 08:33:14 +12:00
88410bc460 build(deps): bump github/codeql-action from 3.25.11 to 3.25.12
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.11 to 3.25.12.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](b611370bb5...4fa2a79536)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-15 17:49:30 +00:00
0db3e50121 build(deps): bump actions/setup-go from 5.0.1 to 5.0.2
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5.0.1 to 5.0.2.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](cdcb360436...0a12ed9d6a)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-15 17:49:19 +00:00
f4e6f0bad1 build(deps): bump aquasecurity/trivy-action from 0.23.0 to 0.24.0
Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.23.0 to 0.24.0.
- [Release notes](https://github.com/aquasecurity/trivy-action/releases)
- [Commits](7c2007bcb5...6e7b7d1fd3)

---
updated-dependencies:
- dependency-name: aquasecurity/trivy-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-15 17:49:14 +00:00
b433760ca7 Merge pull request #17564 from redwrasse/redwrasse/purge-fnames-logic
fileutil: improve control flow readability of purgeFile function
2024-07-15 20:47:58 +12:00
993a1f7c3e Merge pull request #18316 from mohamedawnallah/changelog-3.4-fmtgRPCMetadata
CHANGELOG/CHANGELOG-3.4.md: update changelog for gRPC metadata printing
2024-07-14 12:12:39 +01:00
180cd424e6 Merge pull request #18317 from mohamedawnallah/changelog-3.5-fmtgRPCMetadata
CHANGELOG/CHANGELOG-3.5.md: update changelog for gRPC metadata printing
2024-07-14 12:12:01 +01:00
45a81f9547 Merge pull request #18320 from ahrtr/changelog_log_20240714
CHANGELOG Differentiate the warning message for rejected client and peer connections for release-3.5
2024-07-14 11:03:23 +01:00
163917d856 CHANGELOG/CHANGELOG-3.5.md: update changelog
In this commit, we update the changelog for gRPC
metadata printing in release 3.5 which is mainly
a backport from PR #18312.

Signed-off-by: Mohamed Awnallah <mohamedmohey2352@gmail.com>
2024-07-14 13:02:20 +03:00
4bf1861cb1 CHANGELOG/CHANGELOG-3.4.md: update changelog
In this commit, we update the changelog for gRPC
metadata printing in release 3.4 which is mainly
a backport from PR #18311.

Signed-off-by: Mohamed Awnallah <mohamedmohey2352@gmail.com>
2024-07-14 13:01:00 +03:00
5e178e2288 mvcc/*_test.go: should not use duplicate revision.Main for one key
In commit [[1]], the newTestKeyIndex function creates one key with two
Revision{Main: 14} revisions. However, starting from version [[2]], etcd server
does not allow duplicate keys in a single transaction. This update to
newTestKeyIndex is to avoid confusion and ensure consistency with the
latest etcd server behavior.

REF:

[1]: be80d11948
[2]: https://github.com/etcd-io/etcd/pull/4376

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2024-07-14 17:30:47 +08:00
2f9225a2ab Update 3.5 changelog to cover the separated warning message for rejected client and peer connections
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-07-14 08:59:23 +01:00
f0612bb221 Merge pull request #18313 from ahrtr/log_20240712
Differentiate the warning message for rejected client and peer connections
2024-07-14 08:43:15 +01:00
4f9cd336a6 marker: use released binary when running markdown lint
The markdown linter, marker, now publishes a released version with the
tool. Given that this project is written in Rust, running this check can
now be done by using the statically compiled binary without having the
Rust local environment.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-07-13 15:54:46 -07:00
b6c5262026 Differentiate the warning message for rejected client and peer connections
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-07-13 19:28:21 +01:00
eeeb7e05b3 Merge pull request #18314 from ivanvc/remove-amd64-test-github-actions
github: remove amd64 test actions
2024-07-13 19:06:56 +12:00
6325cce0ac github: remove amd64 test actions
The pull-etcd-unit-test-amd64, pull-etcd-unit-test-386,
pull-etcd-integration-1-cpu-amd64, pull-etcd-integration-2-cpu-amd64
and pull-etcd-integration-8-cpu-amd64 jobs are already running on the
prow infrastructure. It is safe to remove these duplicated workloads
from GitHub actions.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-07-12 22:41:05 -07:00
bc9801f3f7 Merge pull request #18310 from ArkaSaha30/deps_mgmt_8_7_24
[2024-07-08] Manual Dependency Bump
2024-07-13 08:38:58 +12:00
13e0d925b3 Merge pull request #18308 from mohamedawnallah/useFmtForMapPrinting
client/v3/watch.go: use `fmt` go pkg for metadata map printing
2024-07-12 09:46:02 +01:00
8ee17ed4be Merge pull request #18304 from etcd-io/dependabot/docker/distroless/static-debian12-ce46866b3a5170db3b49364900fb3168dc0833dfb46c26da5c77f22abb01d8c3
build(deps): bump distroless/static-debian12 from `4197211` to `ce46866`
2024-07-12 18:32:18 +12:00
3dda3b849b dependency: bump golang.org/x/sys from 0.21.0 to 0.22.0
This commit will bump dependency golang.org/x/sys from 0.21.0 to 0.22.0 raised by dependabot.

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-07-10 23:46:20 +05:30
e62ee34b88 dependency: bump github.com/sivchari/tenv from 1.7.1 to 1.10.0
This commit will bump dependency github.com/sivchari/tenv from 1.7.1 to 1.10.0 raised by dependabot.

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-07-10 23:46:20 +05:30
3b269c59fc dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.52.0 to 0.53.0
This commit will bump dependency go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.52.0 to 0.53.0 raised by dependabot.

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-07-10 23:46:20 +05:30
cf5d692425 dependency: bump go.opentelemetry.io/otel from 1.27.0 to 1.28.0
This commit will bump dependency go.opentelemetry.io/otel from 1.27.0 to 1.28.0 raised by dependabot.

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-07-10 23:46:03 +05:30
8cd82fd375 dependency: bump google.golang.org/grpc from 1.64.0 to 1.64.1
This commit will bump dependency google.golang.org/grpc from 1.64.0 to 1.64.1 raised by dependabot.

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-07-10 19:36:05 +05:30
1e620edf28 client/v3/watch_test.go: test fmt metadata print
Signed-off-by: Mohamed Awnallah <mohamedmohey2352@gmail.com>
Co-authored-by: Benjamin Wang <ahrtr>
2024-07-10 15:33:54 +03:00
4286d6fdf7 client/v3/watch.go: use fmt for metadata printing
Signed-off-by: Mohamed Awnallah <mohamedmohey2352@gmail.com>
2024-07-10 12:51:48 +03:00
4d9dcebd61 Merge pull request #18302 from etcd-io/dependabot/github_actions/actions/download-artifact-4.1.8
build(deps): bump actions/download-artifact from 4.1.7 to 4.1.8
2024-07-09 15:16:04 +12:00
63c2f36b63 Merge pull request #18301 from etcd-io/dependabot/github_actions/actions/upload-artifact-4.3.4
build(deps): bump actions/upload-artifact from 4.3.3 to 4.3.4
2024-07-09 15:15:13 +12:00
2ea3d1193a build(deps): bump distroless/static-debian12 from 4197211 to ce46866
Bumps distroless/static-debian12 from `4197211` to `ce46866`.

---
updated-dependencies:
- dependency-name: distroless/static-debian12
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-08 17:42:55 +00:00
25431d6b49 build(deps): bump actions/download-artifact from 4.1.7 to 4.1.8
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4.1.7 to 4.1.8.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](65a9edc588...fa0a91b85d)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-08 17:24:27 +00:00
c42bc86105 build(deps): bump actions/upload-artifact from 4.3.3 to 4.3.4
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.3 to 4.3.4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](65462800fd...0b2256b8c0)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-08 17:24:24 +00:00
24e05998c6 Merge pull request #18287 from fuweid/update-goleak
client/pkg/testutil: update interestingGoroutines
2024-07-06 08:15:27 +02:00
ccaea7edae client/pkg/testutil: update interestingGoroutines
The Go runtime uses runtime Finalizer to delete cert [[1]]. The
interestingGoroutines is able to collect stack like,

```plain
leak.go:103: Found leaked goroutined BEFORE test appears to have leaked :
        sync.(*Map).LoadAndDelete(0xc00031e180, {0xe07320, 0xc00009fde0})
                /usr/local/go/src/sync/map.go:272 +0x192
        sync.(*Map).Delete(...)
                /usr/local/go/src/sync/map.go:297
        crypto/tls.(*certCache).evict(...)
                /usr/local/go/src/crypto/tls/cache.go:73
        crypto/tls.(*certCache).active.func1(0x0?)
                /usr/local/go/src/crypto/tls/cache.go:65 +0x67
```

It's caused by GC instead of leaky goroutine. interestingGoroutines
should skip it.

[1]: 8e1fdea831/src/crypto/tls/cache.go (L63)

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2024-07-05 22:24:37 +08:00
d820cd2b56 etcdserver: change the snapshot + compact into sync operation
Signed-off-by: Clement <gh.2lgqz@aleeas.com>
2024-07-05 01:27:30 +08:00
c9fdc609bb Merge pull request #18277 from siyuanfoundation/rbst
robustness: remove head rev match in validateGotAtLeastOneProgressNotify
2024-07-04 16:00:03 +02:00
1b251939e6 Merge pull request #18282 from thedtripp/changelogBumpGoVersion
CHANGELOG: Update  to reflect go version 1.21.12 bump
2024-07-04 13:33:07 +01:00
8a3d833950 Merge pull request #18278 from ahmetb/patch-1
Update CHANGELOG-3.5 with backported commit
2024-07-04 09:20:50 +02:00
241dc9ed1e Merge pull request #18281 from harshitasao/scorecard-badge-link
changed the scorecard badge link to the standard format
2024-07-04 09:19:57 +02:00
059371a02f Merge pull request #18250 from jmhbnz/main
Remove gsutil acl command for bucket permissions from release.sh
2024-07-04 13:43:54 +12:00
345501c1df Merge pull request #18280 from ivanvc/check-tools-mod-in-verify-deps
make: Include tools/mod when checking dependency versions
2024-07-04 13:29:49 +12:00
9b87477ded changelog: udpate changelog to reflect go version 1.21.12 bump.
Signed-off-by: D Tripp <38776199+thedtripp@users.noreply.github.com>
2024-07-04 00:30:12 +00:00
ddfa70fb55 dependency: bump tools/mod google.golang.org/genproto/googleapis/rpc to v0.0.0-20240520151616-dc85e6b867a5
Use the same version across all the modules from the project.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-07-03 15:24:25 -07:00
ba4b2bffeb make: Include tools/mod when checking dependency versions
As tools/mod is not part of the test library's modules, the check to verify
consistent dependency versions ignored it. Explicitly get the dependencies from
this module when running verify-dep.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-07-03 15:21:31 -07:00
6dce6631de changed the scorecard badge link to the standard format
Signed-off-by: harshitasao <harshitasao@gmail.com>
2024-07-04 01:59:59 +05:30
dcef14a32f Merge pull request #18273 from ArkaSaha30/deps_mgmt_1_7_24
Follow up manual Dependency Bump
2024-07-03 20:14:40 +01:00
c467a57838 Update CHANGELOG-3.5
Mention the 0a960a2 backported to 3.5 release in the changelog.

Signed-off-by: Ahmet Alp Balkan <ahmet@linkedin.com>
2024-07-03 18:13:51 +00:00
cded6b0ac6 robustness: remove head rev match in validateGotAtLeastOneProgressNotify
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-07-03 09:03:54 -07:00
5a8e77ffc2 dependency: bump github.com/prometheus/common from 0.54.0 to 0.55.0
This commit bumps github.com/prometheus/common from 0.54.0 to 0.55.0 in tools/mod.

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-07-03 14:30:59 +05:30
0f24953852 Merge pull request #18266 from ArkaSaha30/deps_mgmt_1_7_24
[2024-07-03] Manual Dependency Bump
2024-07-03 07:33:30 +01:00
0a5d905209 Merge pull request #18270 from thedtripp/main-go-2024-2963
Bump Go version to 1.22.5: GO-2024-2963 fix.
2024-07-03 07:29:55 +01:00
8f974669c5 Bump Go version to 1.22.5: GO-2024-2963 fix.
Signed-off-by: D Tripp <38776199+thedtripp@users.noreply.github.com>
2024-07-03 05:07:03 +00:00
fc33323a5d dependency: bump github.com/prometheus/common from 0.54.0 to 0.55.0
This commit will bump the dependency github.com/prometheus/common from 0.54.0 to 0.55.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-07-03 00:58:28 +05:30
708c3d8cf4 dependency: bump github.com/bgentry/speakeasy from 0.1.0 to 0.2.0
This commit will bump dependency github.com/bgentry/speakeasy from 0.1.0 to 0.2.0
raised by dependabot.

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-07-03 00:56:44 +05:30
37cbd6cd97 Merge pull request #18233 from jcferretti/etcdctl-minmaxcreatemod
etcdctl: add support for filtering by {min,max} x {create,mod} x {revision}
2024-07-02 18:55:09 +01:00
07b35dd7e3 etcdctl: add support for filtering by {min,max} x {create,mod} x {revision}
Signed-off-by: Cristian Ferretti <jcferretti2020@gmail.com>
2024-07-02 12:48:00 -04:00
bf78a233ff Merge pull request #18245 from ahmetb/ahmet/supress-log
Suppress noisy basic auth token deletion log
2024-07-02 09:41:52 +02:00
2af08e0642 Merge pull request #18256 from etcd-io/dependabot/github_actions/github/codeql-action-3.25.11
build(deps): bump github/codeql-action from 3.25.10 to 3.25.11
2024-07-02 06:47:36 +12:00
7ed3359a89 build(deps): bump github/codeql-action from 3.25.10 to 3.25.11
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.10 to 3.25.11.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](23acc5c183...b611370bb5)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-01 17:04:16 +00:00
c26156d080 move fileutil.readDirWithSuffix to normal function
Signed-off-by: redwrasse <mail@redwrasse.io>
2024-06-29 22:16:13 -07:00
854010f412 fileutil: improve control flow readability of purgeFile function
Signed-off-by: redwrasse <mail@redwrasse.io>
2024-06-29 22:16:13 -07:00
04082b7672 Merge pull request #18249 from ivanvc/remove-govulncheck-github-workflow
github: remove govulncheck action
2024-06-30 05:13:39 +12:00
e97bc39060 Reduce client concurrency for high traffic robustness tests
Signed-off-by: Faeka Ansari <faeka6@gmail.com>
2024-06-29 15:00:04 +05:30
f0246a9f84 Remove gsutil acl command for bucket permissions.
The bucket is already fully public so new releases don't need to run this command.

This will prevent significant terminal spam during the release process as there are thousands of objects in the bucket.

Signed-off-by: James Blair <mail@jamesblair.net>
2024-06-29 17:39:06 +12:00
34361a1a81 github: remove govulncheck action
This job has already been migrated to prow.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-06-28 22:07:01 -07:00
8e20ad03ac Merge pull request #18246 from ivanvc/update-3.4.33-release-date
changelog/3.4: set 3.4.33 release date
2024-06-29 11:54:03 +12:00
396e2918f7 changelog/3.4: set 3.4.33 release date
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-06-28 15:30:56 -07:00
ec289a8129 Suppress noisy basic auth token deletion log
Right now the basic auth tokens that are deleted after `--auth-token-ttl`
cause info-level logs to be emitted. Change this to debug. This helps with
the issue at #18244 where calling `/readyz` frequently pollutes the etcd server
logs with this log message.

Fixes #18244.

Signed-off-by: Ahmet Alp Balkan <ahmet@linkedin.com>
2024-06-28 12:12:01 -07:00
1c22e7b36b Merge pull request #18243 from masonyc/cleanup-unneeded-logger-check
etcd-client: Clean up unnecessary nil Logger check
2024-06-28 21:42:11 +12:00
3cd044f4bd Merge pull request #18201 from MadhavJivrajani/e2e-issue-18089
tests/e2e: add e2e test to reproduce issue 18089
2024-06-28 09:43:10 +01:00
7dec366acd etcdclient: Clena up unnecessary nil Logger check
Clean up unnecessary nil Logger for listener.go as pointed out in issue
#18084

Signed-off-by: Mason Chen <mason.yunchen@gmail.com>
2024-06-28 20:11:44 +12:00
9d04ab24b8 Merge pull request #18241 from serathius/robustness-failpoint-name
Add failpoint name to test name allowing us to track a per failpoint failures in testgrid
2024-06-27 19:41:48 +02:00
c41e02f7b6 Add failpoint name to test name allowing us to track a per failpoint failures in testgrid
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-06-27 18:35:04 +02:00
ebf2cac6bd tests/e2e: add e2e test to reproduce issue 18089
The goal is to reproduce a DELETE event being dropped in a watch after a compaction
occurs on the revision where the deletion took place. In order to reproduce this, we
perform the following sequence (steps for reproduction thanks to @ahrtr):
  - PUT k v2 (assume returned revision = r2)
  - PUT k v3 (assume returned revision = r3)
  - PUT k v4 (assume returned revision = r4)
  - DELETE k (assume returned revision = r5)
  - PUT k v6 (assume returned revision = r6)
  - COMPACT r5
  - WATCH rev=r5

We should get the DELETE event (r5) followed by the PUT event (r6). However, currently we only
get the PUT event with returned revision of r6 (key=k, val=v6).

Signed-off-by: Madhav Jivrajani <madhav.jiv@gmail.com>
2024-06-27 14:51:12 +05:30
21e5876f7f Merge pull request #18219 from lhy1024/add-etcd-log
[3.5] CHANGELOG: support multiple values for allowed client and peer …
2024-06-26 12:16:19 +12:00
38535c2dd8 Merge pull request #18228 from henrybear327/dependency_update/6_24_24
[2024-06-24] Bump dependency updates identified by dependabot
2024-06-26 10:06:48 +12:00
917ded9eda Merge pull request #18214 from serathius/robustness-separate-persisted
Separate persisted responses without knowing their revision to prevent duplicating state during linearization
2024-06-25 23:22:36 +02:00
e7f51cbd5f [3.5] CHANGELOG: support multiple values for allowed client and peer TLS identities
Signed-off-by: lhy1024 <admin@liudos.us>
2024-06-25 20:49:56 +08:00
a897676d54 Merge pull request #18210 from rleungx/update-changelog
Update release-3.6 changelog
2024-06-25 13:22:46 +01:00
5be397a6a8 Fix a linter issue
golangci-lint reports the following issue:
storage/mvcc/kvstore.go:312:27: (*store).restore - result 0 (error) is always nil (unparam)

It's due to the fact that both Attach() and compactLockfree() within the
function restore() are able to return an error, but we only log them in
the current implementation. Thus, the return value restore() is always
nil, hence the linter warning.

We have agreed to suppress the linter warning for now [1].

Reference:
[1] https://github.com/etcd-io/etcd/pull/18228#issuecomment-2187309957

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-06-25 11:45:53 +02:00
bfc4dc6206 dependency: bump github.com/google/yamlfmt from 0.12.1 to 0.13.0
Reference:
- https://github.com/etcd-io/etcd/pull/18222

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-06-25 11:23:58 +02:00
bca81b9450 dependency: bump github.com/golangci/golangci-lint from 1.59.0 to 1.59.1
Reference:
- https://github.com/etcd-io/etcd/pull/18223

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-06-25 11:23:58 +02:00
d80d0f0c8b Merge pull request #18226 from etcd-io/dependabot/github_actions/aquasecurity/trivy-action-0.23.0
build(deps): bump aquasecurity/trivy-action from 0.22.0 to 0.23.0
2024-06-25 09:40:47 +12:00
1870222f41 Separate persisted responses without knowing their revision to prevent duplicating state during linearization
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-06-24 21:38:27 +02:00
0dd79f4e18 Merge pull request #18227 from serathius/robustness-test-patch-history
Add tests for patching history to check output and return values
2024-06-24 21:38:18 +02:00
35f4556b59 Add tests for patching history to check output and return values
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-06-24 20:41:32 +02:00
6414e74486 build(deps): bump aquasecurity/trivy-action from 0.22.0 to 0.23.0
Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.22.0 to 0.23.0.
- [Release notes](https://github.com/aquasecurity/trivy-action/releases)
- [Commits](595be6a0f6...7c2007bcb5)

---
updated-dependencies:
- dependency-name: aquasecurity/trivy-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-24 17:56:43 +00:00
74ca64116f Merge pull request #18217 from jmhbnz/main
Bump shellcheck to latest v0.10.0 release
2024-06-25 04:51:51 +12:00
b96b6ba04c Merge pull request #18220 from ahrtr/ep__sync_verify_20240624
Add verification on `client.Sync` to ensure the returned endpoints never empty
2024-06-24 17:19:15 +01:00
281f177345 add verification on client.Sync to ensure the returned endpoints never empty
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-06-24 10:07:36 +01:00
9314ef760d Merge pull request #18213 from serathius/robustness-disable-18089
Disable robustness test detection of #18089 to allow detecting other issues
2024-06-24 09:56:32 +02:00
893f93e2bc add embed.Config.GRPCAdditionalServerOptions into changelog
Signed-off-by: Ryan Leung <rleungx@gmail.com>
2024-06-24 13:59:43 +08:00
67a6dbdb7c Merge pull request #18218 from andyxning/changelog_for_bugfix_18164_prometheus_metric_register_of_walWriteSec
add changelog for bugfix 18164 prometheus metric register of walWriteSec
2024-06-24 06:43:02 +01:00
37fe67b329 add changelog for bugfix 18164 prometheus metric register of walWriteSec
Signed-off-by: Andy Xie <andy.xning@gmail.com>
2024-06-24 11:06:47 +08:00
29b4ff2fd8 Bump shellcheck to latest 2024 release.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-06-24 11:24:31 +12:00
4fe227c46c Disable robustness test detection of #18089 to allow detecting other issues
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-06-22 11:01:47 +02:00
16ed0fe86e Merge pull request #18212 from Willhow-Gao/main
mvcc: fix typo
2024-06-22 20:10:26 +12:00
c0076a788e mvcc: fix typo
Signed-off-by: MR_G <2044783677@qq.com>
2024-06-22 00:17:13 +08:00
1d13fc58ff Merge pull request #14066 from rleungx/add-config
embed: add `GRPCAdditionalServerOptions` config
2024-06-21 06:40:32 +01:00
00a609751a Merge pull request #18206 from henrybear327/dependencies/06_19_24
[2024-06-19] Bump dependency update
2024-06-20 07:31:27 +12:00
866b8ddc8a Merge pull request #18205 from ivanvc/add-make-verify-dep-versions
make: fix `verify-dep` target
2024-06-20 07:30:45 +12:00
a016567398 dependency: bump google.golang.org/genproto/googleapis/api to v0.0.0-20240520151616-dc85e6b867a5
Set the same version for google.golang.org/genproto/googleapis/api
across the submodules.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-06-19 09:02:17 -07:00
4f13e7c2b7 dependency(client): bump golang.org/x/sys from v0.19.0 to v0.21.0
Ensure that golang.org/x/sys is at the same version across the modules
from the project.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-06-19 09:02:17 -07:00
dfda61bbbf make: fix verify-dep
Makefile's target `verify-dep` current behavior is to use `go list` to
check consistent dependency versions from direct dependencies. Ignoring
indirect dependencies in a multi-module project could lead to version
mismatches. If module A imports module B, module B's dependency will be
an indirect dependency in module A. Which can potentially have a version
mismatch. Therefore, use `go mod edit` with indirect dependencies, too.
So it can work with all dependencies defined in go.mod.

Fix displaying dependencies with mismatches, as the old code was
searching with grep just for the prefix, which would show other
dependencies that shared the same prefix.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-06-19 09:02:17 -07:00
a043da50fe Merge pull request #18062 from stackbaek/main
featuregate: adds EtcdServer.FeatureEnabled interface.
2024-06-19 09:35:54 +01:00
97a4068342 Merge pull request #18204 from henrybear327/make/robustness
Use $(MAKE) instead of make
2024-06-19 08:58:27 +02:00
9e7b94dea9 dependency: bump go.etcd.io/gofail from v0.1.1-0.20240517100945-baefa9867390 to v0.2.0
Reference:
- https://github.com/etcd-io/gofail/issues/72

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-06-19 08:49:31 +02:00
908d31a6fe Merge pull request #18203 from ahrtr/metrics_url_20240618
Update the error message when client certificate isn't provided for secure metrics url
2024-06-19 05:40:11 +01:00
f21f074baa Use $(MAKE) instead of make
Recursive make commands should always use the variable MAKE, as
the value of this variable is the file name with which make was invoked

Reference:
- https://www.gnu.org/software/make/manual/html_node/MAKE-Variable.html

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-06-18 19:16:30 +02:00
692e44a80b Update the error message when client certificate isn't provided for secure metrics url
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-06-18 14:03:39 +01:00
9c59b28086 Merge pull request #18186 from gyuho/enforce-non-empty-client-tls-if-metrics-url-scheme-is-https
fix(server): enforce listen-metrics-urls client TLS info when its scheme is https/unixs
2024-06-18 13:59:21 +01:00
3e86af6843 remove unnecessary wait call
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2024-06-18 18:18:54 +08:00
7dadc328f3 Merge pull request #18202 from MadhavJivrajani/fix-vairable-access
tests/robustness: fix access of ChoiceWeight
2024-06-18 11:25:04 +02:00
5c2422ba05 tests/robustness: fix access of ChoiceWeight
Signed-off-by: Madhav Jivrajani <madhav.jiv@gmail.com>
2024-06-18 13:44:40 +05:30
c70e0e4f55 Merge pull request #18181 from serathius/robustness-compact-lazyfs
Avoid sending Compact request when LazyFS is enabled
2024-06-18 09:26:41 +02:00
2deefb081b Merge pull request #18060 from siyuanfoundation/robust
robustness: change mixedVersionOption to use ChoiceWeight.
2024-06-18 08:49:47 +02:00
2e04ee77b6 Avoid sending Compact request when LazyFS is enabled
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-06-18 08:36:24 +02:00
dd7a2a6237 Merge pull request #17680 from serathius/issue-17529
Reproduce #17529 in robustness tests
2024-06-18 08:32:40 +02:00
497f1a45a3 license
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2024-06-18 07:28:43 +08:00
fff58bb809 robustness: change mixedVersionOption to use ChoiceWeight.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-06-17 15:53:47 -07:00
047b440ba9 Merge pull request #18182 from ivanvc/add-makefile-verify-govulncheck
Add run-govulncheck Makefile target
2024-06-18 10:42:14 +12:00
fcc834fb18 Merge pull request #18199 from henrybear327/dependency_update/6_17_24
[2024-06-17] Bump dependency updates identified by dependabot
2024-06-18 10:33:06 +12:00
381bca7e3c Merge pull request #18198 from etcd-io/dependabot/github_actions/github/codeql-action-3.25.10
build(deps): bump github/codeql-action from 3.25.8 to 3.25.10
2024-06-18 09:57:58 +12:00
45e7d5bab9 build(deps): bump github/codeql-action from 3.25.8 to 3.25.10
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.8 to 3.25.10.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](2e230e8fe0...23acc5c183)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-17 20:39:34 +00:00
a7fdc2336d Merge pull request #18197 from etcd-io/dependabot/github_actions/actions/checkout-4.1.7
build(deps): bump actions/checkout from 4.1.6 to 4.1.7
2024-06-18 08:38:51 +12:00
166d26b4e4 dependency: bump github.com/spf13/cobra from 1.8.0 to 1.8.1
Reference:
- https://github.com/etcd-io/etcd/pull/18190

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-06-17 22:09:15 +02:00
a947aa0d3f dependency: bump go.opentelemetry.io/proto/otlp from 1.2.0 to 1.3.1
Reference:
- https://github.com/etcd-io/etcd/pull/18191

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-06-17 22:09:15 +02:00
3899de4eef dependency: bump github.com/alexfalkowski/gocovmerge from 1.3.4 to 1.3.8
Reference:
- https://github.com/etcd-io/etcd/pull/18194

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-06-17 22:09:15 +02:00
e60bccd4cf dependency: bump github.com/google/yamlfmt from 0.11.0 to 0.12.1
Reference:
- https://github.com/etcd-io/etcd/pull/18195

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-06-17 21:51:40 +02:00
fa835658e3 dependency: bump google.golang.org/protobuf from 1.34.1 to 1.34.2
Reference:
- https://github.com/etcd-io/etcd/pull/18196

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-06-17 21:49:52 +02:00
1bff41630e build(deps): bump actions/checkout from 4.1.6 to 4.1.7
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.6 to 4.1.7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](a5ac7e51b4...692973e3d9)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-17 17:31:10 +00:00
22f20a827b test(e2e): add a case where client tls is missing for https metrics url
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2024-06-17 21:09:24 +08:00
a657f069a1 fix(server/embed): enforce non-empty client TLS if scheme is https/unixs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2024-06-17 18:21:38 +08:00
043096067f Add run-govulncheck Makefile target
Add a `Makefile` target to run govuln across the submodules. So, it can
be imported into a prow job.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-06-15 15:47:13 -07:00
debc8fb00b Merge pull request #15979 from cenkalti/snapshot-status
Improve snapshot status
2024-06-16 08:53:27 +12:00
5e42ed9b22 Reproduce issue #17529
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-06-15 19:40:23 +02:00
93873708a9 Upgrade gofail for sleep to not block deactivation
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-06-15 19:25:35 +02:00
ea46253b42 Improve snapshot status
Signed-off-by: Cenk Alti <cenkalti@gmail.com>
2024-06-15 10:11:34 -04:00
15f9a59547 Merge pull request #18179 from siyuanfoundation/lazyfs
robustness: Separate compaction and LazyFS test scenario for cluster size 1
2024-06-15 10:49:14 +02:00
f01f23dab0 Merge pull request #18177 from ArkaSaha30/rm-robustness-amd64-wf
Remove robustness presubmits for `amd64` arch
2024-06-15 09:20:24 +02:00
14e15bcaca Removes dependency on other k8s packages in featuregate pkg.
The removed packages are:

 * k8s.io/apimachinery/pkg/util/naming
 * k8s.io/klog/v2

Do note that removing naming package necessitates adding feature gate
name argument to featuregate.New().

Signed-off-by: Baek <seungtackbaek@google.com>
2024-06-15 05:34:58 +00:00
60e3f45469 Adds all feature_gate from component-base.
We'll likely use most of the feature_gate package from component-base.
Also this commit moves the pkg from server/internal/pkg to pkg/.

Signed-off-by: Baek <seungtackbaek@google.com>
2024-06-15 05:34:58 +00:00
69ebaaebca featuregate: adds EtcdServer.FeatureEnabled interface.
The interface can be used throughout the etcd server binary to check if
the feature is enabled or not.

Note that this commit also copies necessary FeatureGate interface from
k8s component-base.

Signed-off-by: Baek <seungtackbaek@google.com>
2024-06-15 05:34:58 +00:00
d09c935736 Merge pull request #18178 from henrybear327/changelog/Fix-govulncheck-CI-check
Update release-3.5 changelog
2024-06-15 06:24:34 +01:00
aaa6e9ef8c robustness: Separate compaction and LazyFS test scenario for cluster size 1.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-06-14 13:33:50 -07:00
84c68f391c Update release-3.5 changelog
Fully address CVE-2023-45288 and fix govulncheck CI check

Reference:
- https://github.com/etcd-io/etcd/pull/18170

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-06-14 22:12:35 +02:00
6ca3b6ba88 Remove robustness presubmits and periodics workflows
This commit will remove robustness presubmits
for both `amd64` and `arm64` archs, periodics for
`amd64` arch since it has been migrated to test-infra
as prowjobs:
https://github.com/kubernetes/test-infra/blob/master/config/jobs/etcd/etcd-periodics.yaml#L61-L230
https://github.com/kubernetes/test-infra/blob/master/config/jobs/etcd/etcd-presubmits.yaml#L240-L279

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-06-14 23:22:14 +05:30
45f14539e0 Merge pull request #18164 from andyxning/bugfix_register_of_walWriteSec
bugfix: register of walWriteSec
2024-06-14 18:32:15 +01:00
d2b6423a5c Merge pull request #18171 from henrybear327/ci/fix_govulncheck_release_main
Fix govulncheck CI check on main branch
2024-06-14 18:27:40 +01:00
bc1aed1936 Fix govulncheck CI check on main branch
This commit fixed the Go Vulnerability Checker CI job, which isn't
scanning for all go.mod files within the project.

Reference:
- https://github.com/etcd-io/etcd/discussions/18168

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-06-14 11:30:10 +02:00
3be7dbeb36 Merge pull request #18167 from ivanvc/update-robustness-test-documentation-to-point-to-prow
tests/robustness: update documentation to reflect Prow migration
2024-06-14 10:55:38 +12:00
d73cc2bb65 tests/robustness: update documentation to reflect Prow migration
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-06-13 10:20:32 -07:00
260dd77ed4 Merge pull request #18166 from lubronzhan/topic/lubron/fix-typo
Fix typo in mvcc comment
2024-06-13 16:51:18 +01:00
0b6529c462 mvcc: fix typo
Signed-off-by: lubronzhan <lubronzhan@gmail.com>
2024-06-13 00:15:37 -07:00
4a555fead3 bugfix: register of walWriteSec
Signed-off-by: Andy Xie <andy.xning@gmail.com>
2024-06-13 15:12:58 +08:00
5c3190903f Merge pull request #18143 from henrybear327/ci/add_coverage_tool
Update codecov config to support commenting in PR
2024-06-12 12:47:36 +01:00
a6bb22d2c3 Merge pull request #18161 from henrybear327/dependency_update/6_12_24
[2024-06-10] Bump dependency updates identified by dependabot
2024-06-12 23:08:54 +12:00
1579c57729 Update codecov config to support commenting code coverage in PRs
Add missing directory fixing go.etcd.io/etcd/etcdutl/v3/::etcdutl/

Note: we have some of the tests written in a way that is
non-deterministic across runs, thus, even when there is no code changes
there might still have slight variation for test coverage [2]

Reference:
[1] https://github.com/etcd-io/etcd/issues/18131
[2] https://docs.codecov.com/docs/unexpected-coverage-changes#reasons-for-indirect-changes

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-06-12 11:23:31 +02:00
706c324c77 dependency: bump golang.org/x/text from 0.15.0 to 0.16.0
Reference:
- https://github.com/etcd-io/etcd/pull/18146

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-06-12 09:45:47 +02:00
293d979759 dependency: bump golang.org/x/net from 0.25.0 to 0.26.0
Reference:
- https://github.com/etcd-io/etcd/pull/18150
- https://github.com/etcd-io/etcd/pull/18146

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-06-12 09:45:04 +02:00
e1d7af5a0c dependency: bump golang.org/x/crypto from 0.23.0 to 0.24.0
Reference:
- https://github.com/etcd-io/etcd/pull/18149

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-06-12 09:37:07 +02:00
d9cb8b80f5 address the comment
Signed-off-by: Ryan Leung <rleungx@gmail.com>
2024-06-12 11:38:41 +08:00
57907746e3 Merge pull request #18152 from etcd-io/dependabot/github_actions/github/codeql-action-3.25.8
build(deps): bump github/codeql-action from 3.25.7 to 3.25.8
2024-06-11 20:29:55 +12:00
4f9808d9a7 Merge pull request #18151 from etcd-io/dependabot/github_actions/aquasecurity/trivy-action-0.22.0
build(deps): bump aquasecurity/trivy-action from 0.21.0 to 0.22.0
2024-06-11 20:19:56 +12:00
59ba0d4ebb build(deps): bump github/codeql-action from 3.25.7 to 3.25.8
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.7 to 3.25.8.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](f079b84933...2e230e8fe0)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-10 17:32:50 +00:00
90540f2586 build(deps): bump aquasecurity/trivy-action from 0.21.0 to 0.22.0
Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.21.0 to 0.22.0.
- [Release notes](https://github.com/aquasecurity/trivy-action/releases)
- [Commits](fd25fed697...595be6a0f6)

---
updated-dependencies:
- dependency-name: aquasecurity/trivy-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-10 17:32:26 +00:00
8a0054fecb Merge pull request #18140 from lhy1024/cn-log
CHANGELOG: support multiple values for allowed client and peer TLS identities
2024-06-08 17:30:15 +12:00
2c56e8edc1 Merge pull request #18107 from serathius/e2e-error-log
Improve e2e error reporting
2024-06-07 13:58:59 +02:00
b38d863a89 Merge pull request #17833 from serathius/robustness-compact
Implement compaction support in robustness test
2024-06-07 13:35:11 +02:00
29abd62338 introduce GRPCAdditionalServerOptions
Signed-off-by: Ryan Leung <rleungx@gmail.com>
2024-06-07 16:39:35 +08:00
5959110f4a Implement Compaction support in robustness test
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-06-07 10:33:57 +02:00
3c5684967f Improve e2e error reporting
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
Co-authored-by: James Blair <mail@jamesblair.net>
Co-authored-by: chao <chaochn@amazon.com>
2024-06-07 10:24:52 +02:00
2ffaf5fba4 Merge pull request #18133 from serathius/robustness-connection-reset
Ignore connection reset error when triggering a failpoint
2024-06-07 10:23:14 +02:00
d9dcf62558 Merge pull request #18135 from fuweid/fix-17968
tests/robustness: unlock Delete/LeaseRevoke ops
2024-06-07 10:22:53 +02:00
75ad7a82f2 Merge pull request #18108 from chaochn47/fix-ts-with-no-trailing-zeros
fix ts with no trailing zeros
2024-06-07 10:12:31 +02:00
e389b4cc4b CHANGELOG: support multiple values for allowed client and peer TLS identities
Signed-off-by: lhy1024 <admin@liudos.us>
2024-06-07 11:44:04 +08:00
8a376e8e19 Merge pull request #18015 from lhy1024/cn
Support multiple values for allowed client and peer TLS identities
2024-06-07 15:23:19 +12:00
7211d9fb94 fix ts with no trailing zeros
Signed-off-by: Chao Chen <chaochn@amazon.com>
2024-06-06 17:20:37 -07:00
acc9d7c9fe Support multiple values for allowed client and peer TLS identities
Signed-off-by: lhy1024 <admin@liudos.us>
2024-06-06 21:25:17 +08:00
fc1863086c tests/robustness: unlock Delete/LeaseRevoke ops
We should return token to that bucket if `nonUniqueWriteLimiter.Take()`
return true. After unlock Delete/LeaseRevoke ops, the model should be
updated for replay function. There are two updates for `toWatchEvents`.

1. When leaveRevokes op has deleted few keys, we should generate
   `delete-operation` events based on alphabetical order of deleted
   keys.
2. When putWithLease op hits non-exist lease, we should ignore that
   update event.

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2024-06-06 20:40:08 +08:00
b8eeaacbcb Ignore connection reset error when triggering a failpoint
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-06-05 17:58:46 +02:00
6216cbf3f9 Merge pull request #18128 from ArkaSaha30/main-cve-2024-24790
Bump Go version to 1.22.4: CVE 2024-24790 fix
2024-06-05 10:37:13 +01:00
2089857ab8 Bump Go version to 1.22.4: CVE 2024-24790 fix
Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-06-05 14:12:52 +05:30
179a09e73f Merge pull request #18126 from siyuanfoundation/robust2
test: update CouldSetSnapshotCatchupEntries to use 3.5.14.
2024-06-05 19:06:50 +12:00
06f2746fc1 test: update CouldSetSnapshotCatchupEntries to use 3.5.14.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-06-04 10:47:54 -07:00
a0aee63128 Merge pull request #18116 from etcd-io/dependabot/github_actions/github/codeql-action-3.25.7
build(deps): bump github/codeql-action from 3.25.6 to 3.25.7
2024-06-04 13:37:29 +12:00
2f083a5733 Merge pull request #18120 from henrybear327/dependency_update/6_3_24
[2024-06-03] Bump dependency updates identified by dependabot
2024-06-04 12:41:06 +12:00
f77f422812 dependency: bump github.com/prometheus/common from 0.53.0 to 0.54.0
References:
- https://github.com/etcd-io/etcd/pull/18111
- https://github.com/etcd-io/etcd/pull/18118

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-06-03 22:15:31 +02:00
dc8510ce47 Merge pull request #15965 from cenkalti/hashkv
cli: Add etcdutl snapshot hashkv command
2024-06-03 20:58:27 +01:00
d88a1b3482 build(deps): bump github/codeql-action from 3.25.6 to 3.25.7
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.6 to 3.25.7.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](9fdb3e4972...f079b84933)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-03 17:16:24 +00:00
b107d2437f cli: Add etcdutl snapshot hashkv command
Signed-off-by: Cenk Alti <cenkalti@gmail.com>

Apply suggestions from code review

Co-authored-by: Benjamin Wang <benjamin.wang@broadcom.com>
2024-06-02 00:07:50 -04:00
0b2f15f616 Merge pull request #18098 from skitt/go-1.20-errors-join
Use Go 1.20 error joining instead of multierr
2024-06-01 07:21:50 +02:00
c1f5a445fc Use Go 1.20 error joining instead of multierr
This still allows the errors to be unwrapped, and drops the direct
dependency on multierr.

Signed-off-by: Stephen Kitt <skitt@redhat.com>
2024-05-31 09:22:52 +02:00
58d7ebfe45 Merge pull request #18102 from henrybear327/dependency_update/5_27_24
[2024-05-27] Bump dependency updates identified by dependabot
2024-05-30 18:11:30 +01:00
4dfae5dc6b dependency: bump google.golang.org/genproto/googleapis/api from v0.0.0-20240513163218-0867130af1f8 to v0.0.0-20240520151616-dc85e6b867a5
Bumping go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.26.0 to 1.27.0
caused some google.golang.org/genproto/googleapis/api to be updated, causing
CI job pull-etcd-verify to fail. Thus, bumping all google.golang.org/genproto/googleapis/api
to align at the same version

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-05-30 16:07:28 +02:00
287a3a1a39 dependency: bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.26.0 to 1.27.0
Reference:
- https://github.com/etcd-io/etcd/pull/18072

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-05-30 15:19:23 +02:00
a3f7d2a5db dependency: bump go.opentelemetry.io/otel/sdk from 1.26.0 to 1.27.0
Reference:
- https://github.com/etcd-io/etcd/pull/18073

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-05-30 15:19:23 +02:00
1ec63aa93a dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.51.0 to 0.52.0 and go.opentelemetry.io/otel from 1.26.0 to 1.27.0
When doing `go get go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc@v0.52.0`,
go.opentelemetry.io/otel is automatically bumped, too.

References:
- https://github.com/etcd-io/etcd/pull/18075
- https://github.com/etcd-io/etcd/pull/18074

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-05-30 15:19:23 +02:00
23c7abd052 dependency: bump github.com/golangci/golangci-lint from 1.58.2 to 1.59.0
Reference:
- https://github.com/etcd-io/etcd/pull/18077

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-05-30 15:19:23 +02:00
2f216dcc94 Merge pull request #18095 from ivanvc/shallow-clone-in-release-script
scripts/release: shallow clone repository
2024-05-30 10:34:07 +02:00
4881e53677 scripts/release: shallow clone repository
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-05-29 15:14:53 -07:00
ce2dbbb55e Merge pull request #18093 from ivanvc/update-release-date-for-3.5.14
Update release date for v3.5.14
2024-05-30 10:13:37 +12:00
92d8cbe7bd Update release date for v3.5.14
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-05-29 12:09:00 -07:00
f903a9bd0e Merge pull request #18083 from ArkaSaha30/make-arch-builds
Add build subtargets based on ARCH
2024-05-29 14:50:48 +02:00
5202b6aa8d Add build subtargets based on arch
This commit will group similar targets as per
architecture into subtargets to build. It also adds
`build-all` target to build all OS-Arch cominations.

Allows subtargets without scripting
by parameterizing and optimizing OS-ARCH builds

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-05-29 15:30:23 +05:30
9914047acb Merge pull request #18081 from etcd-io/dependabot/github_actions/aquasecurity/trivy-action-0.21.0
build(deps): bump aquasecurity/trivy-action from 0.20.0 to 0.21.0
2024-05-28 10:16:24 +12:00
33030f1c23 build(deps): bump aquasecurity/trivy-action from 0.20.0 to 0.21.0
Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.20.0 to 0.21.0.
- [Release notes](https://github.com/aquasecurity/trivy-action/releases)
- [Commits](b2933f565d...fd25fed697)

---
updated-dependencies:
- dependency-name: aquasecurity/trivy-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-27 17:50:47 +00:00
bb701b9265 Merge pull request #18068 from ArkaSaha30/changelog-3.5.14
CHANGELOG: add support AllowedCN and AllowedHostname
2024-05-25 17:08:55 +01:00
63502df4da CHANGELOG: add support AllowedCN and AllowedHostname
Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-05-25 14:44:39 +05:30
a5292685f9 Merge pull request #17661 from flawedmatrix/fix/17068
Support setting LocalAddr in peer communication - with e2e tests
2024-05-24 20:03:11 +01:00
4c77726914 Implement flag --experimental-set-member-localaddr
Which sets the LocalAddr to an IP address from --initial-advertise-peer-urls.

Also adds e2e test that requires this flag to succeed.

Co-authored-by: HighPon <s.shiraki.business@gmail.com>
Signed-off-by: Edwin Xie <edwin.xie@broadcom.com>
2024-05-24 18:17:37 +00:00
7a3ca53345 Merge pull request #18058 from jmhbnz/prow-migration
Complete migration of verify workflow to prow
2024-05-23 06:49:33 +01:00
32726e724a Update documentation for migration to prow.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-05-23 06:36:50 +12:00
33f3b63acb Complete migration of verify workflow to prow.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-05-23 06:06:48 +12:00
67743348dc Merge pull request #18054 from siyuanfoundation/robust
workflow: change the target of make test-robustness to test-robustness-main
2024-05-22 19:54:11 +02:00
f563c4317c Merge pull request #18057 from serathius/robustness-timeout-200ms
Increase robustness test request timeout to 200ms
2024-05-22 18:44:53 +02:00
8dcb198f14 workflow: change the target of make test-robustness to test-robustness-main
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-05-22 09:25:46 -07:00
aaa9f15f23 Increase robustness test request timeout to 200ms
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-05-22 18:00:15 +02:00
1d367fbae6 Merge pull request #17923 from siyuanfoundation/robust
Add randomness in robustness cluster process version to test mixed version scenarios.
2024-05-22 14:07:22 +02:00
f8d8f6a10c Merge pull request #18046 from serathius/robustness-trigger-fail
Allow gofail trigger to fail as long as the member stops running
2024-05-21 21:05:56 +02:00
0f94c2ca4f robustness: add mix version scenario with fixed leader.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-05-21 17:42:12 +00:00
b54d7552a7 robustness: add mix version option in exploratoryScenarios.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-05-21 16:57:53 +00:00
cde6cd006d e2e: add flag to pass specific binary path for last release.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-05-21 16:57:48 +00:00
3fb36d9ae2 Allow gofail trigger to fail as long as the member stops running
This is required for compaction based failpoint, to allow the traffic
send compaction request causing etcd to crash before failpoint executes
the trigger.

Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-05-21 18:46:35 +02:00
31adb72f7a Merge pull request #17871 from Scotchman0/patch-1
Update printer.go for used/not-used ETCD storage percentage
2024-05-21 16:20:11 +01:00
1714b25a99 Merge pull request #18045 from henrybear327/dependency_update/5_20_24
[2024-05-20] Bump dependency updates identified by dependabot
2024-05-21 10:02:39 +01:00
b73877599e Merge pull request #18033 from siyuanfoundation/org
Add siyuanfoundation to reviewers.
2024-05-21 09:40:10 +02:00
9431e3a952 dependency: bump google.golang.org/grpc from 1.63.2 to 1.64.0
Reference:
- https://github.com/etcd-io/etcd/pull/18034

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-05-20 22:45:14 +02:00
e79a11f789 dependency: bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.19.1 to 2.20.0
Reference:
- https://github.com/etcd-io/etcd/pull/18035

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-05-20 22:30:41 +02:00
14c55a0d30 dependency: bump github.com/golangci/golangci-lint from 1.57.2 to 1.58.2
Reference:
- https://github.com/etcd-io/etcd/pull/18040

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-05-20 22:30:41 +02:00
6079767dd0 Merge pull request #18043 from etcd-io/dependabot/github_actions/github/codeql-action-3.25.6
build(deps): bump github/codeql-action from 3.25.5 to 3.25.6
2024-05-21 07:31:40 +12:00
b1897b8d93 Merge pull request #18044 from etcd-io/dependabot/github_actions/actions/checkout-4.1.6
build(deps): bump actions/checkout from 4.1.5 to 4.1.6
2024-05-21 07:31:12 +12:00
8c1b08b69f build(deps): bump actions/checkout from 4.1.5 to 4.1.6
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.5 to 4.1.6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](44c2b7a8a4...a5ac7e51b4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-20 17:59:19 +00:00
db58ad113e build(deps): bump github/codeql-action from 3.25.5 to 3.25.6
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.5 to 3.25.6.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](b7cec75265...9fdb3e4972)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-20 17:59:10 +00:00
9e5b065250 Add siyuanfoundation to reviewers.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-05-20 10:11:41 -07:00
47a0a77a9b Merge pull request #18029 from ivanvc/add-ivanvc-to-reviewers
Add ivanvc to reviewers
2024-05-20 10:03:25 +02:00
043780baa0 Add ivanvc to reviewers
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-05-19 21:36:49 -07:00
3d02cb36f5 Merge pull request #18028 from Mangsby/fix-typo
embed: fix typo in comment
2024-05-20 15:22:19 +12:00
769500124f embed: fix typo in comment
Signed-off-by: Shim Myeongseob <Mangsby716@gmail.com>
2024-05-19 13:59:25 +00:00
52fb28c1a8 Merge pull request #17983 from thedtripp/feature/addServerRangeDurationMetrics
etcdserver: add server range duration metrics
2024-05-19 10:04:29 +12:00
0232686cac etcdserver: add server range duration metrics
Signed-off-by: Daniel Tripp <38776199+thedtripp@users.noreply.github.com>
Co-authored-by: Ravi Hari <RaviHari@users.noreply.github.com>
2024-05-18 19:01:09 +00:00
8938299266 Merge pull request #18026 from henrybear327/dependency_update/5_18_24
[2024-05-13] Bump dependency updates identified by dependabot
2024-05-18 15:51:45 +01:00
48f511700e dependency: bump github.com/fatih/color from 1.15.0 to 1.17.0
Acted according to https://github.com/etcd-io/etcd/pull/17998#issuecomment-2118653086

Reference:
- https://github.com/etcd-io/etcd/pull/17998

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-05-18 12:10:07 +02:00
fc337b079d Merge pull request #18024 from henrybear327/dependency_update/5_17_24
[2024-05-13] Bump dependency updates identified by dependabot
2024-05-18 06:46:07 +01:00
a66cf56661 dependency: bump github.com/prometheus/client_golang from 1.19.0 to 1.19.1
Reference:
- https://github.com/etcd-io/etcd/pull/17999
- https://github.com/etcd-io/etcd/pull/17994

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-05-17 23:53:06 +02:00
59864bc2cb rebase with latest main
Signed-off-by: Will Russell <will.russell.01@gmail.com>
2024-05-17 15:08:51 -04:00
97a9af9cc0 Merge pull request #18019 from lavishpal/changelog/add-3.4-and-3.5-note-about-go-1.21.10
changelog:  add 3.4 and 3.5 note about go 1.21.10
2024-05-17 05:01:48 +01:00
dfc34284f3 changelog add 3.4 and 3.5 go 1.21.10
Signed-off-by: Lavish pal <lvishpal408@gmail.com>
2024-05-16 21:55:25 +05:30
a2ce03538f Merge pull request #18008 from akshaynanavare/add-error-constants
add error constants in validate pkg
2024-05-15 09:35:05 +02:00
8eb91d0e15 add error constants in validate pkg
Signed-off-by: Akshay Nanavare <nakshay303@gmail.com>
2024-05-14 20:19:08 +05:30
22c40e195c Merge pull request #18007 from MadhavJivrajani/refactor-fix
split out subroutine from fix.sh to makefile target
2024-05-14 12:10:47 +01:00
b915323be6 split out subroutine from fix.sh to makefile target
Signed-off-by: Madhav Jivrajani <madhav.jiv@gmail.com>
2024-05-14 15:18:30 +05:30
7b9013da46 Merge pull request #18005 from ivanvc/manually-update-codeql-action-to-3.25.5
dependency(gh_actions): Manually bump codeql action from 3.25.3 to 3.25.5
2024-05-14 10:13:37 +12:00
d8de8a4a74 dependency(gh_action): bump github/codeql-action from 3.25.3 to 3.25.5
Co-authored-by:
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.3 to 3.25.5.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](d39d31e687...b7cec75265)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Co-authored-by: dependabot[bot] <support@github.com>
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-05-13 13:36:07 -07:00
7ecef0061f github: fix version from codeql-action/upload-sarif
The commit SHA pointed to the correct version, but the reference in the
comment was wrong.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-05-13 13:29:54 -07:00
545656abea Merge pull request #18002 from etcd-io/dependabot/github_actions/ossf/scorecard-action-2.3.3
build(deps): bump ossf/scorecard-action from 2.3.1 to 2.3.3
2024-05-14 07:40:42 +12:00
f5f3f8293a Merge pull request #18003 from etcd-io/dependabot/github_actions/actions/checkout-4.1.5
build(deps): bump actions/checkout from 4.1.4 to 4.1.5
2024-05-14 06:43:15 +12:00
dbd1e40e19 Merge pull request #18000 from etcd-io/dependabot/github_actions/aquasecurity/trivy-action-0.20.0
build(deps): bump aquasecurity/trivy-action from 0.19.0 to 0.20.0
2024-05-14 06:42:13 +12:00
bb80701991 build(deps): bump actions/checkout from 4.1.4 to 4.1.5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.4 to 4.1.5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](0ad4b8fada...44c2b7a8a4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-13 17:37:05 +00:00
2464078f05 build(deps): bump ossf/scorecard-action from 2.3.1 to 2.3.3
Bumps [ossf/scorecard-action](https://github.com/ossf/scorecard-action) from 2.3.1 to 2.3.3.
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](0864cf1902...dc50aa9510)

---
updated-dependencies:
- dependency-name: ossf/scorecard-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-13 17:36:57 +00:00
11a4e02bac build(deps): bump aquasecurity/trivy-action from 0.19.0 to 0.20.0
Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.19.0 to 0.20.0.
- [Release notes](https://github.com/aquasecurity/trivy-action/releases)
- [Commits](d710430a67...b2933f565d)

---
updated-dependencies:
- dependency-name: aquasecurity/trivy-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-13 17:36:44 +00:00
d0ea231f8a Merge pull request #17989 from serathius/robustness-pick-snapshot
Prevent picking a failpoint that waiting till snapshot that doesn't support lower snapshot catchup entries but allow reproducing issue #15271
2024-05-13 14:33:02 +02:00
d8bb19327b Prevent picking a failpoint that waiting till snapshot that doesn't support lower snapshot catchup entries but allow reproducing issue #15271
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-05-13 12:08:42 +02:00
333bd7bf76 Merge pull request #17979 from jmhbnz/add-owner-file-labels
Add nested owners files to automate labeling pull requests
2024-05-13 07:39:50 +12:00
c81e747947 Automate labels for tools pull requests.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-05-12 22:27:19 +12:00
1b006577d2 Automate labels for contrib pull requests.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-05-12 22:24:21 +12:00
f0a934adeb Automate labels for etcdctl & etcdutl pull requests.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-05-12 22:24:21 +12:00
83d28a17ae Automate labels for documentation pull requests.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-05-12 22:24:21 +12:00
0d51929c99 Automate labels for clientv3 pull requests.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-05-12 22:24:21 +12:00
2fa2613ca0 Automate labels for security pull requests.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-05-12 22:24:21 +12:00
2e70fc7d1d Automate labels for tests pull requests.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-05-12 22:24:21 +12:00
8846ffb3eb Merge pull request #17984 from jimmy-bro/flaky
github workflow: fix all apt-install  error return code
2024-05-12 22:21:01 +12:00
5fcc0fe0a9 fix: Use apt -o APT::Update::Error-Mode=any for updating package lists
Signed-off-by: Jimmy- <43562694+jimmy-bro@users.noreply.github.com>
2024-05-11 23:19:39 +08:00
2eb01b17ee Merge pull request #17978 from ivanvc/update-changelog-3.5-pr-17977
changelog: add note from #17977 backport
2024-05-11 13:13:06 +01:00
7185ee887d changelog: add note from #17977 backport
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-05-10 06:01:40 -04:00
58a71a22f3 Merge pull request #17975 from lavishpal/upgrade/go-to-1.22.3
dependency: upgrade go to 1.22.3
2024-05-10 15:08:58 +12:00
6038f391f1 Upgrade go to 1.22.3.
Signed-off-by: Lavish pal <lvishpal408@gmail.com>
2024-05-10 03:27:35 +05:30
dc35b6493f Merge pull request #17966 from serathius/robustness-relax
Relax assumptions about all client request persisted in WAL to only require first and last request to be persisted
2024-05-09 17:51:27 +02:00
d14a24783b Merge pull request #17973 from henrybear327/dependency_update/5_6_24
[2024-05-06] Bump dependency updates identified by dependabot
2024-05-09 14:22:32 +01:00
3375e89b11 Fix issue reported by static analyzer
Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-05-09 13:58:29 +02:00
69ca6e96fa dependency: bump golang.org/x/net from 0.24.0 to 0.25.0
Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-05-09 11:48:14 +02:00
1a1820562d dependency: bump golang.org/x/crypto from 0.22.0 to 0.23.0
Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-05-09 11:48:14 +02:00
41ba741db1 dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.50.0 to 0.51.0
Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-05-09 11:48:14 +02:00
ee9af3c566 dependency: bump google.golang.org/protobuf from 1.33.0 to 1.34.1
Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-05-09 11:48:14 +02:00
e1244f19d6 Merge pull request #17918 from serathius/robustness-serializable-validation-test
Add tests to serializable operations validation
2024-05-09 11:07:49 +02:00
905f0f1d9f Merge pull request #17971 from callthingsoff/eliminate_max
tools/benchmark/cmd: eliminate custom max function
2024-05-09 20:21:21 +12:00
b8ffc5e8c0 Merge pull request #17967 from serathius/robustness-update-readme
Update the robustness README and fix the #14370 reproduction case
2024-05-09 10:05:27 +02:00
c4ff2c20bd Merge pull request #17965 from serathius/makefile-cache
Fix caching by not depending on PHONY target in non-PHONY target
2024-05-08 16:47:45 +02:00
beb5e85dcb tools/benchmark/cmd: eliminate custom max function
Just a code clean-up.

Signed-off-by: Jes Cok <xigua67damn@gmail.com>
2024-05-08 21:52:49 +08:00
f5c0e785a7 Fix caching by not depending on PHONY target in non-PHONY target
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-05-08 14:29:28 +02:00
b883f839f1 Add tests to serializable operations validation
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-05-08 12:29:55 +02:00
bb398a0e6c Merge pull request #17889 from serathius/robustness-operations-failpoints
Robustness operations failpoints
2024-05-08 11:37:22 +02:00
be9758e2bc Update the robustness README and fix the #14370 reproduction case
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-05-08 11:31:28 +02:00
570370f6e7 Merge pull request #17876 from MadhavJivrajani/go-directive-periodic
[RFC] Setup a way to consistently manage go versions across scripts and go.mods
2024-05-08 09:47:13 +01:00
7181c7532f Relax assumptions about all client request persisted in WAL to only require first and last request to be persisted
This assumption is not true during durability issues like #14370.
In reality we want to avoid situations where WAL is was truncated, for
that it's enough that we ensure that first and last operations are
present.

Found it when running `make test-robustness-issue14370` and instead of
getting `Model is not linearizable` I got that assumptions were broken.

Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-05-08 10:40:38 +02:00
7bff148052 Merge pull request #17963 from callthingsoff/use_min_max
pkg/report: make use of builtin min/max function
2024-05-08 06:38:27 +01:00
fef42363a3 Merge pull request #17861 from clwluvw/cn-hostname-configfile
config: support AllowedCN and AllowedHostname through config file
2024-05-08 06:36:30 +01:00
e8c975232d Merge pull request #17962 from tjungblu/cl_debug_35
update changelog for experimental-stop-grpc-service-on-defrag
2024-05-08 16:16:37 +12:00
b31f23e113 config: support AllowedCN and AllowedHostname through config file
Allow setting AllowedCN and AllowedHostname tls fields through config file for peer transport security.

Signed-off-by: Seena Fallah <seenafallah@gmail.com>
2024-05-07 22:39:16 +02:00
bcf6a8c65a update changelog for experimental-stop-grpc-service-on-defrag
Signed-off-by: Thomas Jungblut <tjungblu@redhat.com>
2024-05-07 16:36:07 +02:00
6b517bfb4b pkg/report: make use of builtin min/max function
This patch eliminates the minDuration and maxDuration functions,
simplifies the code.

Signed-off-by: Jes Cok <xigua67damn@gmail.com>
2024-05-07 22:36:05 +08:00
f6a35f8786 .*: sync go toolchain version and add ability to verify versions
This commit adds a script to sync the version present in .go-version
across all go.mod files as the toolchain directive. As part of that,
this commit also modifies go.mod files that did not have synced toolchain
directives.

Additionally, this also adds a script to verify all toolchain and go
directives against the version present in .go-version as follows:
(1) The go directive <= version in .go-version
(2) The toolchain directive == version in .go-version

This script runs as part of the `make verify` target, making it run
as a presbumit by default.

Signed-off-by: Madhav Jivrajani <madhav.jiv@gmail.com>
2024-05-07 17:52:56 +05:30
e094139b05 scripts: default to using .go-version's version for tests and builds
Additionally, provide ability to opt-out of the .go-version and use a
custom one via env vars: FORCE_HOST_GO and GO_VERSION.

Signed-off-by: Madhav Jivrajani <madhav.jiv@gmail.com>
2024-05-07 17:52:56 +05:30
126e0d511f Merge pull request #17933 from siyuanfoundation/log
robustness: add 2 more log lines when persistClientReports
2024-05-07 09:17:22 +02:00
3536195557 Merge pull request #17949 from etcd-io/dependabot/github_actions/actions/setup-go-5.0.1
build(deps): bump actions/setup-go from 5.0.0 to 5.0.1
2024-05-06 19:47:43 +01:00
b54a5ce0ef Merge pull request #17947 from ArkaSaha30/bbolt-bump-1.4.0-alpha.1
dependency: bump go.etcd.io/bbolt from v1.4.0-alpha.0 to v1.4.0-alpha.1
2024-05-06 18:35:39 +01:00
50f9062993 build(deps): bump actions/setup-go from 5.0.0 to 5.0.1
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](0c52d547c9...cdcb360436)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-06 17:06:58 +00:00
dd79332cf6 robustness: add 2 more log lines when persistClientReports
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-05-06 09:53:39 -07:00
8cb46a25fb Merge pull request #17948 from tjungblu/cl_bbupg
Update changelog with bbolt bumps
2024-05-06 17:07:11 +01:00
a54b08016a Update changelog with bbolt bumps
Signed-off-by: Thomas Jungblut <tjungblu@redhat.com>
2024-05-06 16:49:37 +02:00
7a383beba3 dependency: bump go.etcd.io/bbolt from v1.4.0-alpha.0 to v1.4.0-alpha.1
This commit will bump go.etcd.io/bbolt from
v1.4.0-alpha.0 to v1.4.0-alpha.1 for etcd 3.6

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-05-06 19:53:29 +05:30
5e25864048 Merge pull request #17942 from tjungblu/cl_quota_36
Update changelog with quota to endpoint status response
2024-05-06 10:13:33 +01:00
b30a50d5a3 Merge pull request #17941 from ivanvc/remove-golangci-step-from-static-analysis
github/workflows: remove golangci-lint-action step from static-analysis
2024-05-06 18:38:39 +12:00
aff808ff0b Update changelog with quota to endpoint status response
change from #17877

Signed-off-by: Thomas Jungblut <tjungblu@redhat.com>
2024-05-06 08:37:14 +02:00
cdf03d641a github/workflows: remove golangci-lint-action step from static-analysis
The golangci-lint-action step runs only on the repository's top-level
directory. Then, make verify reruns it on the same directory, which is
redundant.

However, to keep make verify target working, golangci-lint needs to be
installed locally.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-05-05 20:16:09 -07:00
a8c6a9c605 Merge pull request #17937 from ivanvc/fix-running-make-fix
make: fix running fix target after verify
2024-05-05 07:45:51 +01:00
301c74c688 Merge pull request #17932 from sharathsivakumar/shsi/dep_2
Manually bump dependencies
2024-05-04 20:09:12 +01:00
0c134dd2c7 make: fix running fix target after verify
Define a Python virtual environment to install yamllint, if not
installed locally, in a temporary directory and delete it after the run
of the verify-yamllint command. This avoids the issue of building the
build of materials that doesn't follow symlinks in the virtual
environment directory.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-05-04 09:56:50 -07:00
25367fc7e9 Merge pull request #17921 from ivanvc/enable-var-naming-linter-rule
Enable var-naming linter rule
2024-05-04 20:14:57 +12:00
813e0865fe bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.25.0 to 1.26.0
Signed-off-by: Sharath Sivakumar <mailssr9@gmail.com>
2024-05-03 21:43:03 +02:00
f6fa1daab7 tools/testgrid-analysis: fix var-naming warnings
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-05-03 10:41:17 -07:00
6b92a80ded tools/golangci: enable var-naming linter rule
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-05-03 10:41:14 -07:00
36414cb0b8 Merge pull request #17930 from jamesreprise/bootstraped
Fix typo bootstrapedCluster
2024-05-03 18:07:49 +01:00
82113ab066 dependency: bump go.opentelemetry.io/otel/trace from 1.25.0 to 1.26.0
Signed-off-by: Sharath Sivakumar <mailssr9@gmail.com>
2024-05-03 18:27:52 +02:00
7c198234f3 Merge pull request #17927 from spzala/releasedoc
Add etcd cloud project name
2024-05-03 09:04:26 -04:00
13c0f75b7d Merge pull request #17877 from tjungblu/17872_status
add quota to endpoint status response
2024-05-03 13:03:23 +01:00
ccb4ef76e3 typo: bootstrapedCluster -> bootstrappedCluster
Signed-off-by: James Williams <james.williams@griffin.com>
2024-05-03 11:34:55 +01:00
3d4d4a0053 Merge pull request #17926 from jmhbnz/update-ownersfile
Update jmhbnz project role in owners
2024-05-03 07:04:39 +01:00
3096df2207 Merge pull request #17922 from marefr/chore_grpc_chain_interceptors
Chore: Use chain interceptors from grpc package
2024-05-03 06:48:01 +01:00
060adbb891 Add etcd cloud project name
Installation of gsutil asks about picking a cloud proejct from a
list of projects that one has access to along with an option to
create a new project. Clarifying the name here would be helpeful.

Signed-off-by: Sahdev Zala <spzala@us.ibm.com>
2024-05-02 16:15:05 -04:00
8fba624b1f Update jmhbnz to approver following promotion.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-05-03 07:35:06 +12:00
030066cdb2 Chore: Use chain interceptors from grpc package
Signed-off-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2024-05-01 22:26:50 +02:00
c4e3b61a1c Record operation from failpoint injection
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-05-01 19:20:22 +02:00
ce4588107a Merge pull request #17895 from callthingsoff/avoid_conversion_uint8_int
pkg/netutil: avoid conversion between uint8 and int for GetDefaultHost
2024-05-01 11:12:04 +01:00
83754c1963 Merge pull request #17916 from ivanvc/update-3.4-changelog-to-add-pr-17896
changelog/3.4: add fix for member list not updated when node goes down
2024-05-01 07:29:01 +01:00
27465ddf78 changelog/3.4: add fix for member list not updated when node goes down
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-04-30 12:02:24 -07:00
d31caaec4a Merge pull request #17793 from mneverov/fix-quorum-check
Fix remove member failed.
2024-04-30 19:52:14 +01:00
09f7d7ab92 Merge pull request #17875 from ivanvc/fix-deprecation-comments-added-with-var-naming-lint-rule
Fix deprecation comments from addressing var-naming work
2024-04-30 19:51:37 +01:00
0e37ffca81 Merge pull request #17902 from etcd-io/dependabot/github_actions/github/codeql-action-3.25.3
build(deps): bump github/codeql-action from 3.25.2 to 3.25.3
2024-04-30 09:26:14 +01:00
35a34553a9 Merge pull request #17913 from ivanvc/dont-run-robustness-tests-in-forks
github/workflows: skip robustness tests in forks
2024-04-30 08:35:28 +02:00
5078ce9e93 Merge pull request #17903 from etcd-io/dependabot/github_actions/golangci/golangci-lint-action-5.1.0
build(deps): bump golangci/golangci-lint-action from 4.0.0 to 5.1.0
2024-04-30 07:06:06 +01:00
d31097be03 Merge pull request #17905 from etcd-io/dependabot/github_actions/actions/download-artifact-4.1.7
build(deps): bump actions/download-artifact from 4.1.6 to 4.1.7
2024-04-30 07:01:07 +01:00
e664a53f0d build(deps): bump github/codeql-action from 3.25.2 to 3.25.3
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.2 to 3.25.3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](8f596b4ae3...d39d31e687)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-30 06:00:03 +00:00
19b3309edf Merge pull request #17904 from etcd-io/dependabot/github_actions/actions/checkout-4.1.4
build(deps): bump actions/checkout from 4.1.3 to 4.1.4
2024-04-30 06:59:08 +01:00
f6ab2043a3 github/workflows: skip robustness tests in forks
Robustness tests require a larger instance size, which user forks cannot
access. It also tries to trigger an ARM64 build that runs on actuated
infrastructure. By not running them on user forks, contributors won't be
notified that their builds are failing due to timeouts trying to run the
job, while the tests will still run on etcd-io/etcd pull requests and
commits.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-04-29 22:54:12 -07:00
4d2caf5696 build(deps): bump actions/download-artifact from 4.1.6 to 4.1.7
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4.1.6 to 4.1.7.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](9c19ed7fe5...65a9edc588)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-29 17:39:08 +00:00
5293994e86 build(deps): bump actions/checkout from 4.1.3 to 4.1.4
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.3 to 4.1.4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](1d96c772d1...0ad4b8fada)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-29 17:39:05 +00:00
dcfc447fd3 build(deps): bump golangci/golangci-lint-action from 4.0.0 to 5.1.0
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 4.0.0 to 5.1.0.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases)
- [Commits](3cfe3a4abb...9d1e0624a7)

---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-29 17:38:58 +00:00
2b1914c262 Merge pull request #17770 from tico88612/feat/update-tools
Test: add tools/rw-heatmaps & tools/testgrid-analysis to module_dirs
2024-04-29 18:35:05 +01:00
6d25331d6e Merge pull request #17893 from jimmy-bro/flaky
github workflow: drop measure test flakiness
2024-04-29 18:34:03 +01:00
e50fe39d94 pkg/netutil: avoid type conversion between uint8 and int for GetDefaultHost
Signed-off-by: Jes Cok <xigua67damn@gmail.com>
2024-04-30 00:28:06 +08:00
0bd0c4a21b github workflow: drop measure test flakiness
Signed-off-by: zgzhang4 <zgzhang4@iflytek.com>
2024-04-29 23:20:45 +08:00
6a1e28a519 Merge pull request #17890 from serathius/robustness-lease-revoke
Add LeaseRevoke request to WAL parsing
2024-04-29 13:33:32 +02:00
2a8f77c99a Merge pull request #17842 from henrybear327/gofail/show_req_error_msg
gofail: show error messages returned by gofail HTTP endpoints
2024-04-29 08:46:54 +02:00
133576899c gofail: show error messages returned by gofail HTTP endpoints
Upon HTTP request error from fetchFailpointsBody, PUT and DELETE,
all of them will return an error message, which would be nice for
debugging if displayed.

Simplify `Enabled()` logic (linter suggestion)

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-28 05:49:24 +08:00
1e7dd97e3b Add LeaseRevoke request to WAL parsing
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-04-27 12:04:27 +02:00
0bd7008eea Merge pull request #17878 from callthingsoff/omit_conversion_using_verb_s
all: don't convert byte slice to string when using verb %s
2024-04-26 16:43:54 +02:00
a988f7edc5 script/test_lib: add description about modules
Signed-off-by: tico88612 <17496418+tico88612@users.noreply.github.com>
2024-04-26 20:08:05 +08:00
e3c1812302 testgrid-analysis: tab is unused & remove
Signed-off-by: tico88612 <17496418+tico88612@users.noreply.github.com>
2024-04-26 20:08:05 +08:00
6138a4cbba testgrid-analysis: increment-decrement fixed
Signed-off-by: tico88612 <17496418+tico88612@users.noreply.github.com>
2024-04-26 20:08:05 +08:00
aa53afdce2 test: add tools/{rw-heatmaps,testgrid-analysis} to module_dirs
Signed-off-by: tico88612 <17496418+tico88612@users.noreply.github.com>
2024-04-26 20:07:59 +08:00
b36d9b2156 Merge pull request #17731 from serathius/robustness-wal-validate-watch
Robustness wal validate watch
2024-04-26 08:37:33 +02:00
c7893405cf Merge pull request #17885 from spzala/changelogupdate
Update Changelog for v3.4.32
2024-04-25 16:59:13 -04:00
30d759891f Update Changelog for v3.4.32
Released on April 25, 2024

Signed-off-by: Sahdev Zala <spzala@us.ibm.com>
2024-04-25 15:31:53 -04:00
2de719dea4 Use WAL persisted request to validate watch
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-04-25 21:11:37 +02:00
c5e54a0572 Merge pull request #17880 from siyuanfoundation/flaky
github workflow: remove failfast in robustness nightly.
2024-04-25 19:25:34 +02:00
7253a317c2 github workflow: remove failfast in robustness nightly.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-04-25 09:36:31 -07:00
dafadd13c1 all: don't convert byte slice to string when using verb %s
This is unnecessary, as the documentation for 'go doc fmt' says:
%s the uninterpreted bytes of the string or slice

Signed-off-by: Jes Cok <xigua67damn@gmail.com>
2024-04-25 23:34:52 +08:00
bdcff246cb add quota to endpoint status response
This adds the configured backend quota bytes to the endpoint status response.
related discussion in #17821

Signed-off-by: Thomas Jungblut <tjungblu@redhat.com>
2024-04-25 16:44:20 +02:00
3ecb70de50 Merge pull request #17868 from fuweid/update-changelog-20240424
CHANGELOG: update 3.4 and 3.5 with fix
2024-04-25 14:26:25 +01:00
d876d1c33e Merge pull request #17834 from callthingsoff/tcpproxy_remove_formatAddr
server/proxy/tcpproxy: use net.JoinHostPort rather than formatAddr
2024-04-25 07:29:01 +01:00
242f5d60a8 Fix deprecation comments from addressing var-naming work
The deprecation tag/comment must to be followed by an empty line.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-04-24 14:40:59 -07:00
9027014adb Merge pull request #17827 from siyuanfoundation/flaky
robustness: Add option to not overwrite results dir.
2024-04-24 22:48:02 +02:00
3c3b76cea1 robustness: not overwrite results dir by giving each dir a unique name.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-04-24 12:36:55 -07:00
d48a9d7cdc Merge pull request #17850 from etcd-io/dependabot/github_actions/actions/download-artifact-4.1.6
build(deps): bump actions/download-artifact from 4.1.4 to 4.1.6
2024-04-24 13:35:30 +02:00
876f6d16aa Merge pull request #17866 from etcd-io/dependabot/github_actions/github/codeql-action-3.25.2
build(deps): bump github/codeql-action from 3.25.0 to 3.25.2
2024-04-24 13:28:32 +02:00
7af778b913 Merge pull request #17860 from siyuanfoundation/refactor
fix version order when calling IsValidClusterVersionChange in UpdateCapability
2024-04-24 13:26:40 +02:00
dc9cfd6889 Merge pull request #17862 from fuweid/update-rev-in-revMu
server/storage/mvcc: should update currentRev in revMu
2024-04-24 13:21:20 +02:00
897f9e9ce4 CHANGELOG: update 3.4 and 3.5 with fix
Fix: Revision decreasing after panic during compaction - #17780

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2024-04-24 18:48:30 +08:00
a2911b4844 Merge pull request #17849 from etcd-io/dependabot/github_actions/actions/upload-artifact-4.3.3
build(deps): bump actions/upload-artifact from 4.3.1 to 4.3.3
2024-04-24 10:48:47 +01:00
a601652b5d Merge pull request #17863 from ivanvc/address-remaining-var-naming-linter-warnings
Address remaining var naming linter warnings
2024-04-24 10:09:39 +01:00
0fd7cc8f4b Merge pull request #17826 from vivekpatani/main
Update CHANGELOG - 3.4, 3.5 - fix PRISMA-2023-0056
2024-04-24 09:45:46 +01:00
d3277571c3 build(deps): bump github/codeql-action from 3.25.0 to 3.25.2
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.0 to 3.25.2.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](df5a14dc28...8f596b4ae3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-24 07:27:28 +00:00
07c3a40f12 Merge pull request #17852 from etcd-io/dependabot/github_actions/actions/checkout-4.1.3
build(deps): bump actions/checkout from 4.1.1 to 4.1.3
2024-04-24 09:26:10 +02:00
96d619459b Merge pull request #17734 from MadhavJivrajani/toolchain-directive
tests: set GOTOOLCHAIN var for report validation
2024-04-24 09:25:07 +02:00
5cbc8c950e Merge pull request #17841 from henrybear327/dependencies/04_22_2024
[2024-04-22] Bump dependency updates identified by dependabot
2024-04-24 09:24:00 +02:00
68c2d5cd0b Merge pull request #17859 from siyuanfoundation/changelog
Update 3.4 changelog for 2 new downgrade cases.
2024-04-24 09:18:04 +02:00
fce8949dd0 tools/etcd-dump-logs: address var-naming lint warnings
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-04-23 20:13:02 -07:00
7300abc552 tests/common: address var-naming lint warnings
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-04-23 20:09:06 -07:00
bc3f109572 etcdutl: address var-naming lint warnings
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-04-23 20:08:40 -07:00
94c83a962b server/storage/mvcc: should update currentRev in revMu
Signed-off-by: Wei Fu <fuweid89@gmail.com>
2024-04-24 11:08:33 +08:00
9cff960880 Update CHANGELOG - 3.4, 3.5, 3.6 - fix PRISMA-2023-0056
Signed-off-by: vivekpatani <9080894+vivekpatani@users.noreply.github.com>
2024-04-23 17:44:57 -07:00
379a8b79fb fix version order when calling IsValidClusterVersionChange in UpdateCapability.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-04-23 09:31:19 -07:00
da7047356e Update 3.4 changelog for 2 new downgrade cases.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-04-23 09:27:52 -07:00
c2a3ca62c7 Merge pull request #17856 from serathius/robustness-datadir-lazyfs
Persist member data with lazyfs enabled
2024-04-23 13:45:30 +02:00
94b155a1c9 Merge pull request #17854 from ivanvc/address-server-config-var-naming-lint-rule
server/config: address golangci var-naming issues
2024-04-23 10:17:24 +01:00
856847d89b tests: set GOTOOLCHAIN var for report validation
Set GOTOOLCHAIN directive in order to successfully run tests
from root. Else, go will try and download a family of releases
(of the form 1.x), which are not published binaries.

Signed-off-by: Madhav Jivrajani <madhav.jiv@gmail.com>
2024-04-23 14:44:51 +05:30
d7ac201fbf Merge pull request #17832 from ahrtr/changelog_compact_20240421
Update the changelog for the change on compaction log on boostrap
2024-04-23 09:51:08 +01:00
9fcde37447 Persist member data with lazyfs enabled
Discovered turning off LazyFS before creating the report might result in
empty server directory. This PR moves cluster shutdown to defer executed
after we generate report and copies the data from lazyfs directory.

Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-04-23 10:19:05 +02:00
ca39df1cd3 Merge pull request #17847 from siyuanfoundation/refactor
refactor IsValidVersionChange.
2024-04-23 09:25:28 +02:00
a2bf8d7e80 server/config: address golangci var-naming issues
Addresses issues in V2 Deprecation constant names.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-04-22 17:12:15 -07:00
36144993b9 build(deps): bump actions/checkout from 4.1.1 to 4.1.3
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.1 to 4.1.3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](b4ffde65f4...1d96c772d1)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-22 17:54:43 +00:00
58d88236c8 build(deps): bump actions/download-artifact from 4.1.4 to 4.1.6
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4.1.4 to 4.1.6.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](c850b930e6...9c19ed7fe5)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-22 17:54:22 +00:00
669a031038 build(deps): bump actions/upload-artifact from 4.3.1 to 4.3.3
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.1 to 4.3.3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](5d5d22a312...65462800fd)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-22 17:54:19 +00:00
b010ae0b18 dependency: bump github.com/alexfalkowski/gocovmerge from 1.2.6 to 1.3.4
Reference:
- https://github.com/etcd-io/etcd/pull/17845

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-22 19:44:58 +02:00
45eb0110b6 dependency: bump golang.org/x/sync from 0.6.0 to 0.7.0
Reference:
- https://github.com/etcd-io/etcd/pull/17848

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-22 19:44:58 +02:00
f696c4c749 dependency: bump github.com/prometheus/common from 0.52.3 to 0.53.0
References:
- https://github.com/etcd-io/etcd/pull/17839
- https://github.com/etcd-io/etcd/pull/17840

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-22 19:44:58 +02:00
b6b7a1a3b6 refactor IsValidVersionChange.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-04-22 10:27:54 -07:00
dd4e35a585 Merge pull request #17815 from fuweid/repro-17780
[RFC] fix revision loss issue caused by compaction - 17780
2024-04-22 18:15:44 +01:00
062a0ea057 Merge pull request #17825 from serathius/robustness-qps
Don't require minimal for failpoint injection period
2024-04-22 19:03:42 +02:00
7d1d4cb3a9 Merge pull request #17835 from serathius/robustness-watch-error
Handle watch responses with error
2024-04-22 14:44:00 +02:00
3469254e26 Merge pull request #17836 from sharathsivakumar/shsi/deps_1
Manually bump dependencies
2024-04-22 12:26:27 +01:00
29529c505b Merge pull request #17791 from ahrtr/verify_revision_bootstrap_20240415
Add verification that the revision shouldn't decrease on bootstrap
2024-04-22 10:43:01 +01:00
9e938abd91 dependency: bump golang.org/x/net from 0.23.0 to 0.24.0
Signed-off-by: Sharath Sivakumar <mailssr9@gmail.com>
2024-04-21 23:14:29 +02:00
80c5690bb9 dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.49.0 to 0.50.0
Signed-off-by: Sharath Sivakumar <mailssr9@gmail.com>
2024-04-21 22:58:17 +02:00
a392758755 dependency: bump github.com/prometheus/client_model from 0.6.0 to 0.6.1
Signed-off-by: Sharath Sivakumar <mailssr9@gmail.com>
2024-04-21 22:54:47 +02:00
81d7b2cb3d dependency: bump github.com/prometheus/common from 0.51.1 to 0.52.3
Signed-off-by: Sharath Sivakumar <mailssr9@gmail.com>
2024-04-21 22:46:41 +02:00
fa9e9504ad Handle watch responses with error
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-04-21 20:49:49 +02:00
a097a3b39d Merge pull request #17810 from serathius/robustness-revisions-between-progress
Validate revisions between progress notify
2024-04-21 20:04:25 +02:00
a2156a0f9c server/proxy/tcpproxy: use net.JoinHostPort rather than formatAddr
formatAddr is just like net.JoinHostPort, I think we can use net.JoinHostPort
directly, it's simpler and clearer.

Signed-off-by: Jes Cok <xigua67damn@gmail.com>
2024-04-21 23:28:51 +08:00
2b1be8fd85 update the changelog for the change on compaction log on boostrap
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-04-21 13:27:06 +01:00
6cbaa1f441 Merge pull request #17792 from ahrtr/update_compact_log_bootstrap_20240415
Update the compaction log when bootstrap and update compact's signature
2024-04-21 13:09:12 +01:00
9ea234913a server/storage: update currentRev if scheduledCompact > currentRev
Signed-off-by: Wei Fu <fuweid89@gmail.com>
2024-04-21 18:12:38 +08:00
7173391154 tests/e2e: reproduce #17780
Signed-off-by: Wei Fu <fuweid89@gmail.com>
2024-04-21 18:12:00 +08:00
2674f94c47 Merge pull request #17820 from ivanvc/address-server-embed-var-naming-lint-rule-pt2
server/embed: address golangci var-naming issues
2024-04-20 18:36:52 +01:00
f285330d46 Don't require minimal for failpoint injection period
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-04-20 10:34:51 +02:00
0b7bae2a34 Merge pull request #17816 from callthingsoff/simplify_isValidPermissionRange
server/auth: simplify code for isValidPermissionRange
2024-04-20 09:16:15 +02:00
964680c8d0 Validate delivery of events between progress notifies
Simplifying bookmarkable to just validate revision order between events
and progress notifies.

Use reliable to validate if events are missing, but still report
broken resumable if first event after revision is missing. It's easier
to have one place that validates event slices.

Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-04-19 10:42:54 +02:00
2e5188f618 server/embed: address golangci var-naming issues
Addresses issues in ListenPeerUrls, ListenClientUrls,
ListenClientHttpUrls, AdvertisePeerUrls, AdvertiseClientUrls.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-04-18 08:30:39 -06:00
6b0b4ce2b3 Increase test timeout (twice of sleep interval).
Signed-off-by: Max Neverov <neverov.max@gmail.com>
2024-04-18 14:47:11 +02:00
e246bb8d4d Merge pull request #17819 from henrybear327/changelog/ignore-raft-messages-if-member-id-mismatch
Update CHANGELOG 3.4 and 3.5 - ignore raft messages if member id mismatch
2024-04-18 13:27:46 +01:00
c2982e15f3 Revert checking connected since inclusively.
Signed-off-by: Max Neverov <neverov.max@gmail.com>
2024-04-18 11:26:28 +02:00
b173a603b5 Update CHANGELOG 3.4 and 3.5 - ignore raft messages if member id mismatch
Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-18 11:03:10 +02:00
d492b41bd0 Merge pull request #17674 from ivanvc/address-server-embed-var-naming-lint-rule
server/embed: address golangci var-naming issues
2024-04-18 09:10:05 +02:00
0a1bc1208f server/embed: address golangci var-naming issues
Addresses issues in TLSMinVersion, TLSMaxVersion, WALDir, and
MaxWALFiles.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-04-17 16:33:28 -06:00
aafe229510 server/auth: simplify code for isValidPermissionRange
Not a big deal, but to make this function clearer.

Signed-off-by: Jes Cok <xigua67damn@gmail.com>
2024-04-18 02:38:19 +08:00
e37a67e40b Merge pull request #17787 from callthingsoff/eliminate_tls.Config.NameToCertificate
server/etcdmain: eliminate deprecated tlsConfig.BuildNameToCertificate()
2024-04-17 10:19:45 +02:00
c64c996c03 Revert quorum calculation: (active - 1) < 1+((len(m)-1)/2) calculates quorum after a member is deleted.
Signed-off-by: Max Neverov <neverov.max@gmail.com>
2024-04-17 07:55:24 +02:00
3b16aae947 Fix remove member failed.
Signed-off-by: Max Neverov <neverov.max@gmail.com>
2024-04-17 07:55:24 +02:00
5a8c8b703b Merge pull request #17807 from serathius/robustness-resumable-revision-zero
Resumable handles watch with revision zero
2024-04-16 19:41:53 +02:00
2ff45f8fc6 Merge pull request #17771 from serathius/robustness-bookmarkable
Validate bookmarkable checks the last event before progress notify
2024-04-16 10:02:08 +02:00
dc187ce6e8 Validate bookmarkable checks the last event before progress notify
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-04-16 09:17:40 +02:00
6f6647271f Merge pull request #17806 from serathius/robustness-watch-filter
Add filter validation to ensure watch only includes events within selector
2024-04-16 08:52:25 +02:00
d435284457 Merge pull request #17809 from coderwander/main
tests: fix some typos in comments
2024-04-16 08:48:18 +02:00
dc3685281e Merge pull request #17805 from etcd-io/dependabot/github_actions/github/codeql-action-3.25.0
build(deps): bump github/codeql-action from 3.24.10 to 3.25.0
2024-04-16 07:31:36 +01:00
842a0f3a35 tests: fix some typos in comments
Signed-off-by: coderwander <770732124@qq.com>
2024-04-16 13:59:41 +08:00
94a47a7cbd Resumable handles watch with revision zero
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-04-15 20:23:51 +02:00
042e7d1a0c Add filter validation to ensure watch only includes events within selector
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-04-15 20:05:08 +02:00
6926374213 build(deps): bump github/codeql-action from 3.24.10 to 3.25.0
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.10 to 3.25.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](4355270be1...df5a14dc28)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-15 17:28:56 +00:00
0cd5999b78 Merge pull request #17786 from serathius/robustness-watch-validation-tests
Add tests to watch validation
2024-04-15 16:14:38 +02:00
a54098dee3 Update the compaction log when bootstrap and update compact's signature
Actually the compact() never return an error, so remove the second return
parameter.

Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-04-15 14:16:18 +01:00
9ac964d1cc Add verification that the revision shouldn't decrease on bootstrap
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-04-15 13:56:19 +01:00
a95a307698 Add tests to watch validation
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-04-14 21:38:03 +02:00
a7f5d4b4e4 Merge pull request #16761 from serathius/robustness-wal
Robustness wal
2024-04-14 12:52:35 +02:00
569693be8d Utilize WAL to patch operation history
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-04-14 12:09:38 +02:00
452445e2d8 Merge pull request #17781 from serathius/robustness-read-limit
Remove limit from read requests after a failed write
2024-04-14 12:05:23 +02:00
0d9d7451b5 Merge pull request #17788 from ahrtr/db_tool_20240413
Enhance the etcd-dump-db: reuse revision in package mvcc
2024-04-14 10:15:49 +02:00
7ded2ac8de Merge pull request #17785 from siyuanfoundation/flaky
testgrid: print out all failed tests for visibility.
2024-04-13 14:24:04 +01:00
2e900c3047 Enhance the etcd-dump-db: reuse revision in package mvcc
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-04-13 13:56:56 +01:00
9420f27ea9 Merge pull request #17762 from Fube/better-prevote-doc
etcdserver: updated pre-vote flag description
2024-04-13 08:31:58 +01:00
ecb52d7d48 server/etcdmain: eliminate deprecated tlsConfig.BuildNameToCertificate()
As the doc is saying:

Deprecated: NameToCertificate only allows associating a single certificate
with a given name. Leave that field nil to let the library select the first
compatible chain from Certificates.

Signed-off-by: Jes Cok <xigua67damn@gmail.com>
2024-04-13 11:46:58 +08:00
2e6eebef85 Merge pull request #17759 from serathius/robustness-assumptions
Add explicit checks for assumptions in robustness test validation
2024-04-13 00:19:25 +02:00
313b562f01 Merge pull request #17783 from serathius/robustness-cas-description
Improve description for Kubernetes CAS operations
2024-04-12 23:31:21 +02:00
cf66d0f64f etcdserver: updated pre-vote flag description
To better communicate what the pre-vote phase in Raft is.

Signed-off-by: Fube <fubeitch@gmail.com>
2024-04-12 17:14:19 -04:00
b03368485c testgrid: print out all failed tests for visibility.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-04-12 12:39:38 -07:00
d0bf8ddca4 Improve description for Kubernetes CAS operations
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-04-12 16:18:31 +02:00
cadfc407e9 Remove limit from read requests after a failed write
Limit can cause multiple request due to pagination.
For reads after a failed write we would like to return to normal write
request as soon as possible.

Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-04-12 15:01:17 +02:00
f8de338ab2 Add explicit checks for assumptions in robustness test validation
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-04-12 14:18:22 +02:00
bfbfee0afa Merge pull request #17768 from serathius/robustness-success-rate
[Robustness] Collect failed read operations to calculate request success rate
2024-04-12 09:46:20 +02:00
d7cf03874c Merge pull request #17776 from siyuanfoundation/verify-test
test: refactor mix_version_test.
2024-04-12 08:40:27 +01:00
fa08f0196a Merge pull request #17729 from testwill/close_profile
fix: close profile in the mvccPutFunc func
2024-04-12 07:01:46 +12:00
d602b9f4a2 test: refactor mix_version_test.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-04-11 17:53:48 +00:00
8d3abed266 Merge pull request #17756 from serathius/robustness-reports-disable-cache
Don't cache test-robustness-reports
2024-04-11 19:49:55 +02:00
18fd7d67a3 Merge pull request #17767 from henrybear327/dependencies/04_10_2024
[2024-04-10] Bump dependency updates identified by dependabot
2024-04-11 09:35:23 +01:00
718d5ba2b4 Calculate request success rate to provide signal to performance debugging
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-04-11 09:36:17 +02:00
ae7f79fd63 Refactor append from appendFailed and appendSuccesfull
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-04-11 09:36:17 +02:00
64eaf5ef04 dependency: bump go.opentelemetry.io/otel/metric from 1.24.0 to 1.25.0
Reference:
- https://github.com/etcd-io/etcd/pull/17747

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-11 07:50:48 +02:00
ecfc139f06 dependency: bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.24.0 to 1.25.0
Reference:
- https://github.com/etcd-io/etcd/pull/17748

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-11 07:49:18 +02:00
d1a1e74273 Merge pull request #17735 from etcd-io/dependabot/docker/distroless/static-debian12-41972110a1c1a5c0b6adb283e8aa092c43c31f7c5d79b8656fbffff2c3e61f05
build(deps): bump distroless/static-debian12 from `8cbe18a` to `4197211`
2024-04-11 13:44:49 +12:00
65130c6d21 Refactor merge succesfull and failed operation in history
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-04-10 21:11:46 +02:00
229275d46e Refactor appendSuccesful and appendFailed methods to match
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-04-10 10:33:19 +02:00
c8628919bb dependency: bump google.golang.org/grpc from 1.63.0 to 1.63.2
Reference:
- https://github.com/etcd-io/etcd/pull/17766
- https://github.com/etcd-io/etcd/pull/17765

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-10 09:55:21 +02:00
d3abeeca47 Merge pull request #17755 from ivanvc/rw-individual-benchmark
tools/rw-heatmaps: allow overriding running parameters
2024-04-10 19:48:53 +12:00
c6395465bc Merge pull request #17751 from henrybear327/dependencies/04_08_2024
[2024-04-08] Bump dependency updates identified by dependabot
2024-04-10 08:21:36 +01:00
7dfcc60062 tools/rw-heatmaps: add local gitignore file
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-04-09 15:46:12 -07:00
a956f8efad tools/rw-heatmaps: allow overriding running parameters
Currently, the running parameters in the `rw-benchmark.sh` script are
hardcoded. Running this script end to end takes around 48 hours with
7 CPU cores. To split the load into smaller jobs, allow these
variables to be provided at run time.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-04-09 15:37:25 -07:00
5de6b76a9f Merge pull request #17758 from henrybear327/doc/fix_typo_and_improve
Improve documentation
2024-04-10 09:56:44 +12:00
9d6889d151 Merge pull request #17761 from ivanvc/update-artifacts-actions
dependency(gh_action): bump upload and download artifact from 3 to 4
2024-04-10 08:46:50 +12:00
0a2d2f41e4 dependency(gh_action): bump upload and download artifact from 3 to 4
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-04-09 12:01:52 -07:00
ad86cb4d17 documentation: improve triage_prs.md
Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-09 18:00:56 +02:00
60d9d8359b documentation: improve triage_issues.md
Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-09 18:00:56 +02:00
3d3be326a4 documentation: improve roadmap.md
Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-09 18:00:56 +02:00
880e61f0ed documentation: improve reporting_bugs.md
Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-09 18:00:56 +02:00
6c8697fc65 documentation: improve release.md
Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-09 18:00:56 +02:00
6c1cb348dc documentation: improve modules.md
Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-09 18:00:56 +02:00
fa1801cbc4 documentation: improve logging.md
Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-09 18:00:56 +02:00
fade580c65 documentation: improve local_cluster.md
Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-09 18:00:56 +02:00
7b77a00094 documentation: improve features.md
Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-09 18:00:56 +02:00
241f234207 documentation: improve dependency_management.md
Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-09 18:00:56 +02:00
4683de480a documentation: improve community-membership.md
Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-09 18:00:56 +02:00
c4b44c9e8a documentation: improve branch_management.md
Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-09 18:00:56 +02:00
39ccdb0b91 documentation: improve CONTRIBUTING.md
Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-09 18:00:56 +02:00
6e0a4c7f82 documentation: fix typos in documentations and contribution guides
Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-09 18:00:49 +02:00
41ac7e33a1 Don't cache test-robustness-reports
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-04-09 15:59:58 +02:00
ebeb5bb80e dependency: bump go.opentelemetry.io/proto/otlp from v1.1.0 to v1.2.0
References:
- https://github.com/etcd-io/etcd/pull/17750

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-09 12:24:57 +02:00
caf21a94c6 dependency: bump golang.org/x/crypto from 0.21.0 to 0.22.0
References:
- https://github.com/etcd-io/etcd/pull/17746

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-09 12:24:57 +02:00
519b2c06e1 dependency: bump google.golang.org/grpc from 1.62.1 to 1.63.0
References:
- https://github.com/etcd-io/etcd/pull/17748
- https://github.com/etcd-io/etcd/pull/17749
- https://github.com/etcd-io/etcd/pull/17750

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-09 12:24:57 +02:00
65ac859a1b Merge pull request #17733 from serathius/robustness-document-re-evaluate
Document re-evaluating existing robustness test reports
2024-04-09 09:09:41 +02:00
190a1f9d1e Merge pull request #17745 from etcd-io/dependabot/github_actions/github/codeql-action-3.24.10
build(deps): bump github/codeql-action from 3.24.9 to 3.24.10
2024-04-09 18:44:12 +12:00
bd044166ce dependency: bump github.com/golangci/golangci-lint from 1.57.1 to 1.57.2
Reference:
- https://github.com/etcd-io/etcd/pull/17738

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-08 22:08:59 +02:00
184a9f1c87 build(deps): bump github/codeql-action from 3.24.9 to 3.24.10
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.9 to 3.24.10.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v3.24.9...4355270be187e1b672a7a1c7c7bae5afdc1ab94a)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-08 17:46:30 +00:00
0e911484c3 build(deps): bump distroless/static-debian12 from 8cbe18a to 4197211
Bumps distroless/static-debian12 from `8cbe18a` to `4197211`.

---
updated-dependencies:
- dependency-name: distroless/static-debian12
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-08 17:13:48 +00:00
6cb4c3f90d Document re-evaluating existing robustness test reports
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-04-08 16:58:12 +02:00
90152fe419 fix: close profile in the mvccPutFunc func
Signed-off-by: guoguangwu <guoguangwug@gmail.com>
2024-04-08 16:55:39 +08:00
8edfd486e8 Merge pull request #17728 from Akiqqqqqqq/changelog-add-wal-write-time-metric
CHANGELOG:add wal write system call metrics observation
2024-04-08 08:27:20 +01:00
0be1976986 Merge pull request #17730 from serathius/robustness-no-failpoint
Make no failpoint error more readable
2024-04-08 09:08:53 +02:00
3a23994fbf Make no failpoint error more readable
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-04-07 15:13:59 +02:00
723f45feb8 CHANGELOG:add wal write system call metrics observation
Signed-off-by: Qiuyu Wu <qiuyu.wu@shopee.com>
2024-04-07 16:18:02 +08:00
84e67ffaf6 Merge pull request #17724 from ivanvc/20240405-dependency-updates
[2024-04-05] Bump dependency updates identified by dependabot
2024-04-06 13:53:48 +01:00
10657ef304 Merge pull request #16764 from serathius/robustness-validate-timeout
Limit a timeout in testing robustness validation
2024-04-06 14:33:20 +02:00
e2bb8c698f Limit a timeout in testing robustness validation
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-04-06 12:28:57 +02:00
e52d157c80 dependency: Bumps google.golang.org/grpc from 1.57.0 to v1.62.1
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-04-05 12:01:17 -07:00
41baca8a95 dependency: bump golang.org/x/net from 0.22.0 to 0.23.0
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-04-05 12:00:51 -07:00
7c64dcb0d1 dependency: bump google.golang.org/protobuf from 1.31.0 to 1.33.0
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-04-05 11:53:42 -07:00
0168c3e1ce Merge pull request #17662 from siyuanfoundation/flaky
Add script and workflow to detect flaky tests in testgrid.
2024-04-05 16:58:45 +01:00
9cb33de411 Merge pull request #17713 from ivanvc/remove-go-1-22-1-coverage-workaround
Revert "tests: temporary disable coverage redesign Go experiment"
2024-04-05 16:58:19 +01:00
793b3db0bb Merge pull request #17710 from callthingsoff/hashKV_nilpanic
tools/benchmark/cmd: don't panic with nil values in hashKV function
2024-04-05 16:57:11 +01:00
5fb82c4cda Merge pull request #17718 from fuweid/changelog-update-leases
CHANGELOG: update for LeaseTimeToLive returns error if leader changed
2024-04-05 16:53:44 +01:00
79b5a6a2ac Merge pull request #17719 from serathius/deactivate-timeout
Increase timeout for deactivating failpoint
2024-04-05 16:06:01 +02:00
fd8326a505 CHANGELOG: update for LeaseTimeToLive returns error if leader changed
Signed-off-by: Wei Fu <fuweid89@gmail.com>
2024-04-05 21:45:17 +08:00
68673d4bfd Merge pull request #17706 from henrybear327/changelog/release-3.5-mu-context-init
Update CHANGELOG 3.4 and 3.5 - initialization for epMu/mu in client context
2024-04-05 10:29:16 +01:00
0a8a95f803 Increase timeout for deactivating failpoint
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-04-05 10:29:21 +02:00
27a6dd0ca5 tools/benchmark/cmd: don't panic with nil values in hashKV function
hashKV checks nilness of 'eh' and 'es', but doesn't use them. Instead
it panics with 'err' which is definitely nil.

This should be avoided, See:
https://pkg.go.dev/golang.org/x/tools/go/analysis/passes/nilness#nilpanic

This patch renames 'eh' and 'es' to 'err' in order to correct the real
errors to panic.

Signed-off-by: Jes Cok <xigua67damn@gmail.com>
2024-04-05 07:11:19 +08:00
6f8cac308b Update CHANGELOG 3.4 and 3.5 - initialization for epMu/mu in client context
Reference:
- 3.4: PR #17714
- 3.5: PR #17699

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-04 21:03:44 +02:00
5cd14a6031 Revert "tests: temporary disable coverage redesign Go experiment"
With the update to Go 1.22.2, this workaround is no longer needed.

This reverts commit da7ab15f80.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-04-04 11:17:06 -07:00
bdbf8a2b6b Merge pull request #17707 from henrybear327/cve/3.6-bump-go-1.22.2
Bump go-version to 1.22.2 for release-3.6 due to CVE-2023-45288
2024-04-04 15:02:17 +01:00
034574f439 Bump go toolchain version to address CVE-2023-45288
Changes:
- Bump release-3.6 toolchain version to 1.22.2 due to CVE-2023-45288
- Bump golang.org/x/net to v0.23.0
- Update CHANGELOG-3.4, CHANGELOG-3.5, and CHANGELOG-3.6
- Bump go version in rw-heatmaps (which was still at 1.21 where
everything else is at 1.22)

Reference:
- PR #17703

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-04 11:06:37 +02:00
984903b16e Merge pull request #17679 from ArkaSaha30/trivy-scan-head
Add trivy scan action for current branch HEAD
2024-04-04 08:36:13 +01:00
24f5f0659e Merge pull request #17701 from idnandre/fix-deprecated-error
server/storage: change deprecated bolt error to new error package
2024-04-04 08:30:54 +01:00
7b85a7bc70 Merge pull request #17698 from sheyt0/update-changelog-for-17641-17692
changelog: add requests retry when receiving ErrGPRCNotSupportedForLearner
2024-04-04 06:07:34 +02:00
557e7f09df Merge pull request #17700 from imalasong/pr/3
Makefile: perfect .PHONY
2024-04-03 19:39:21 +02:00
12fa1bb940 server/storage: change deprecated bolt error to new error package
Signed-off-by: idnandre <andre@idntimes.com>
2024-04-03 19:21:22 +07:00
daf893da61 Makefile: perfect .PHONY
Signed-off-by: xiaochangbai <704566072@qq.com>
2024-04-03 16:14:34 +08:00
156096a66b changelog: add requests retry when receiving ErrGPRCNotSupportedForLearner
Signed-off-by: Ilya Baev <ilya.baev@gcore.com>
2024-04-03 06:11:44 +00:00
547aa643e6 Merge pull request #17694 from henrybear327/fix/golangci-config-run-skip-files
Replace run.skip-files with issues.exclude-files in golangci config
2024-04-03 00:30:42 +02:00
f6eda94579 Replace run.skip-files with issues.exclude-files in golangci config
Address the warning "The configuration option `run.skip-files` is
deprecated, please use `issues.exclude-files`."

Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
2024-04-02 22:16:01 +02:00
a08812eb01 Merge pull request #17677 from jmhbnz/fix-release-issues
Fix release git url & document lessons learned
2024-04-02 15:40:26 +01:00
4e639e7e9b Add trivy scan as a job in release workflow
Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-04-02 19:09:08 +05:30
09769c4be7 Merge pull request #17642 from fuweid/fix-17506
*: LeaseTimeToLive returns error if leader changed
2024-04-02 14:55:41 +02:00
dceb16ca4d Merge pull request #17691 from ivanvc/ignore-e2e-discovery-test-with-cluster-proxy-tag
tests/e2e: ignore discovery tests when cluster_proxy tag is set
2024-04-02 14:36:16 +02:00
f611da66d8 Merge pull request #17675 from callthingsoff/simplify_testutil_assert
client/pkg/testutil: eliminate copyToInterface function
2024-04-02 09:44:01 +02:00
b680e24eb3 Merge pull request #17690 from flawedmatrix/fix-trailing-whitespace-in-help
nit: Fix trailing whitespace in etcdmain/help.go
2024-04-02 09:13:32 +02:00
a23507080a tests/e2e: ignore discovery tests when cluster_proxy tag is set
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-04-01 21:57:11 -07:00
fc8568a435 nit: Fix trailing whitespace in etcdmain/help.go
Signed-off-by: Edwin Xie <edwin.xie@broadcom.com>
2024-04-01 22:25:05 +00:00
e513b1a6b7 Merge pull request #17682 from etcd-io/dependabot/docker/distroless/static-debian12-8cbe18a8a9a9fefe70590dc8f6a7bc70b4bbe41f262d9dab9084337adabf6d26
build(deps): bump distroless/static-debian12 from `6dcc833` to `8cbe18a`
2024-04-01 20:24:02 +02:00
5f5fddf506 build(deps): bump distroless/static-debian12 from 6dcc833 to 8cbe18a
Bumps distroless/static-debian12 from `6dcc833` to `8cbe18a`.

---
updated-dependencies:
- dependency-name: distroless/static-debian12
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-01 17:18:45 +00:00
bf44390e79 Add measure-testgrid-flakiness workflow
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-04-01 09:41:48 -07:00
3f37cd2d73 Add script to detect flaky tests in testgrid.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-04-01 09:41:42 -07:00
caa523f296 Fix yamllint
Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-04-01 18:36:27 +05:30
bdc261a583 Add trivy scan action for current branch HEAD
Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-04-01 18:27:02 +05:30
1f8cb28f23 Merge pull request #17678 from new-dream/changelog3.5
changelog: change livez/readyz HTTP endpoints to v3.5.11
2024-04-01 12:31:47 +01:00
5c8a0780f9 Merge pull request #17676 from callthingsoff/refactor_testutil_interestingGoroutines
client/pkg/testutil: add shouldSkip func for interestingGoroutines
2024-04-01 11:44:37 +01:00
5766aaf245 changelog: change livez/readyz HTTP endpoints to v3.5.11
Signed-off-by: new-dream <111836360+new-dream@users.noreply.github.com>
2024-04-01 16:19:08 +08:00
a9e4e2a240 Improve release documentation.
Capturing lessons learned from etcd 3.5.13 release.

Signed-off-by: James Blair <mail@jamesblair.net>
2024-04-01 08:03:53 +13:00
cc32fa8559 Merge pull request #17618 from Akiqqqqqqq/feature-wal-write-metric
feat: add wal write system call metrics observation (main)
2024-03-31 16:54:20 +01:00
06b50370fa client/pkg/testutil: add shouldSkip func for interestingGoroutines
interestingGoroutines uses so many strings.Contains checks to determine
whether to continue, I think it can be avoided.

This patch introduces shouldSkip func to do the checks in a loop
to make the logic clearer.

Signed-off-by: Jes Cok <xigua67damn@gmail.com>
2024-03-31 23:37:30 +08:00
b82f882c3d Update release script to use ssh.
From 2021-08-13, GitHub is no longer accepting account passwords when authenticating Git operations. You need to add a PAT (Personal Access Token) instead for HTTPS. We should intead keep things simple and just use ssh to push to GitHub.

Signed-off-by: James Blair <mail@jamesblair.net>
2024-03-31 10:09:51 +13:00
229ceb3a73 client/pkg/testutil: eliminate copyToInterface function
AssertTrue and AssertFalse use copyToInterface to copy msg. This is
unnecessary, cause we know the msgAndArgs param of assert.Equal is
variadic:
func Equal(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool

This patch removes copyToInterface function, and use msg directly.

Signed-off-by: Jes Cok <xigua67damn@gmail.com>
2024-03-30 23:59:07 +08:00
caca5159f2 Merge pull request #17672 from jmhbnz/update-release-date
Update release date for v3.5.13.
2024-03-30 07:16:03 +00:00
747cc7bd7e Update release date for v3.5.13.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-03-30 08:49:49 +13:00
a25497e97d Merge pull request #17660 from ivanvc/address-server-storage-var-naming-lint-rule
server/storage: address golangci var-naming issues
2024-03-29 10:02:25 +01:00
76f21a1f9d Merge pull request #17664 from siyuanfoundation/txBuf1
add 3.4 changelog of adding downgrade support.
2024-03-29 07:10:22 +00:00
fa2c652b1b add 3.4 changelog of adding downgrade support.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-03-28 15:13:50 -07:00
a22ae624ef Merge pull request #17263 from siyuanfoundation/txBuf1
Fix tx buffer inconsistency if there are unordered key writes in one tx.
2024-03-28 12:08:18 +01:00
4af78d4cc5 Merge pull request #17659 from ivanvc/remove-yq-from-tools-mod
tools/mod: remove reference to github.com/mikefarah/yq/v4
2024-03-27 20:22:24 +00:00
0d832ec19b tools/mod: remove reference to github.com/mikefarah/yq/v4
`yq` was a tool initially used to get the project's Go version when it
was running on Travis CI. This was removed at the commit
577c898fee, and the project currently uses
`.go-version` to specify the Go version. Therefore, we can safely delete
this dependency.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-27 10:26:40 -07:00
d43738a49b server/storage: address golangci var-naming issues
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-27 10:12:42 -07:00
0a54362cca add key dedupe when a write buffer writeback to an empty read buffer bucket.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-03-27 17:03:31 +00:00
7be3606841 Add tx buffer test case of unordered key writes.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-03-27 17:03:31 +00:00
4346a43cee Add benchmark tests for buffer writeback function.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-03-27 17:03:26 +00:00
f1836fca99 Merge pull request #17652 from callthingsoff/make_Regexp_global
all: make regexp.Regexp variables global when not using configuration…
2024-03-27 16:52:05 +00:00
647b7eb8f6 Merge pull request #17650 from ivanvc/20240325-dependency-updates
[2024-03-25] Bump dependencies identified by dependabot
2024-03-27 16:46:23 +00:00
0c46698420 Merge pull request #17655 from ivanvc/address-tests-framework-remove-member-grpcurl-function-var-naming-lint-rule
tests/framework: address golangci var-naming issues [remove (*Member) GRPCURL()]
2024-03-27 09:18:34 +01:00
14f24081b6 Merge pull request #17654 from ivanvc/address-tests-robustness-var-naming-lint-rule
tests/robustness: address golangci var-naming issues
2024-03-27 09:17:31 +01:00
8fb26a2c4e tests/framework: remove (*Member) GRPCURL()
Currenly Member exports GrpcURL already as a struct variable. However,
when addressing the var-naming linting issues, renaming it from GrpcURL
to GRPCURL, clashes with the GRPCURL() function.

Given that it's already an exported variable, there's no need to define
a getter function. The use of this variable is also mixed, with calls to
both the exported variable (GrpcURL) and the function [GRPCURL()].

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-26 16:04:12 -07:00
2e44ff7bc9 Merge pull request #17643 from etcd-io/dependabot/github_actions/github/codeql-action-3.24.9
build(deps): bump github/codeql-action from 3.24.8 to 3.24.9
2024-03-26 17:14:25 +01:00
2470db7452 Merge pull request #17651 from ivanvc/address-tests-framework-var-naming-lint-rule
tests/framework: address golangci var-naming issues
2024-03-26 11:49:14 +00:00
d3bb6f688b *: LeaseTimeToLive returns error if leader changed
The old leader demotes lessor and all the leases' expire time will be
updated. Instead of returning incorrect remaining TTL, we should return
errors to force client retry.

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2024-03-26 18:55:01 +08:00
f3daf5e041 all: make regexp.Regexp variables global when not using configuration methods
As the doc of regexp.Regex is saying:

"A Regexp is safe for concurrent use by multiple goroutines, except for configuration
methods, such as Regexp.Longest."

Signed-off-by: Jes Cok <xigua67damn@gmail.com>
2024-03-26 18:49:50 +08:00
97efc2ade4 feat: observe wal write at one time
Signed-off-by: Qiuyu Wu <qiuyu.wu@shopee.com>
2024-03-26 17:26:02 +08:00
0976398964 tests/robustness: address golangci var-naming issues
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-25 16:27:05 -07:00
b7488d4355 tests/framework: address golangci var-naming issues
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-25 16:20:18 -07:00
139d9c28bd dependency: bump github.com/prometheus/common from 0.50.0 to 0.51.1
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-25 14:42:13 -07:00
860c6e03fc dependency: bump github.com/mikefarah/yq/v4 from 4.40.7 to 4.43.1
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-25 14:40:32 -07:00
55f9a963bf dependency: bump github.com/cloudflare/cfssl from 1.6.4 to 1.6.5
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-25 14:34:52 -07:00
938e1fbc6f build(deps): bump github/codeql-action from 3.24.8 to 3.24.9
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.8 to 3.24.9.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](05963f47d8...1b1aada464)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-25 17:19:50 +00:00
e4448c4744 Merge pull request #17634 from callthingsoff/httpresponse_close_after_read
all: call Close() after reading http.Response.Body
2024-03-25 07:03:54 +00:00
7f9011a217 Merge pull request #17640 from thirdkeyword/main
fix some typos
2024-03-25 07:03:41 +00:00
bc31162cc2 all: call Close() after reading http.Response.Body
As the doc of http.Response.Body says:

// The http Client and Transport guarantee that Body is always
// non-nil, even on responses without a body or responses with
// a zero-length body. It is the caller's responsibility to
// close Body.

Signed-off-by: Jes Cok <xigua67damn@gmail.com>
2024-03-25 12:17:47 +08:00
fbda591866 fix some typos
Signed-off-by: thirdkeyword <fliterdashen@gmail.com>
2024-03-25 10:34:44 +08:00
b643f1b1fe Merge pull request #17562 from serathius/benchmark-put-latency
Improve watch latency benchmark
2024-03-24 21:49:14 +01:00
49fbcd0d9b Merge pull request #17584 from ivanvc/address-pkg-var-naming-lint-rule
pkg: address golangci var-naming issues
2024-03-24 18:49:22 +01:00
5a53a708d8 Merge pull request #17588 from ah8ad3/fix-flaky-jwt
flaky: fix jwt test with increasing ttl
2024-03-24 16:48:49 +00:00
671dabc21f Merge pull request #17595 from jmhbnz/investigate-arm64-robustness-performance
Investigate arm64 robustness performance
2024-03-24 16:47:56 +00:00
e24baa4fd8 Merge pull request #17600 from etcd-io/dependabot/docker/distroless/static-debian12-6dcc833df2a475be1a3d7fc951de90ac91a2cb0be237c7578b88722e48f2e56f
build(deps): bump distroless/static-debian12 from `0d6ada5` to `6dcc833`
2024-03-24 16:46:54 +00:00
1348062c23 Merge pull request #17635 from ivanvc/address-tests-var-naming-lint-rule
tests/common, tests/integration: Address tests var-naming lint rule
2024-03-24 15:57:52 +00:00
e5d633f361 Merge pull request #17636 from ivanvc/address-tests-e2e-var-naming-lint-rule
tests/e2e: address golangci var-naming issues
2024-03-24 15:57:12 +00:00
9ac4f33be4 tests/e2e: address golangci var-naming issues
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-21 16:03:48 -07:00
9359aef3e3 Merge pull request #17620 from jmhbnz/weekly-dependency-update
[2023-03-18] Weekly dependency update
2024-03-21 14:24:45 +01:00
ef0c12fab4 Merge pull request #17624 from ivanvc/address-server-var-naming-lint-rule
server: address golangci var-naming issues
2024-03-21 13:54:04 +01:00
7b7e2e29da dependency: bump go.uber.org/zap from 1.26.0 to 1.27.0.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-03-22 01:41:57 +13:00
5568f170de dependency: bump github.com/golangci/golangci-lint from 1.55.2 to 1.57.1.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-03-22 01:35:48 +13:00
0cf5da62c9 dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.48.0 to 0.49.0.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-03-22 01:22:58 +13:00
3a9561aefe Merge pull request #17632 from jmhbnz/update-changelog
Update date of v3.4.31 release.
2024-03-21 12:49:15 +01:00
ebbd235826 Update date of v3.4.31 release.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-03-21 20:52:21 +13:00
b2e15d6121 Merge pull request #17613 from liangyuanpeng/autoupdate_docker_release
Let dapendabot to auto-update docker for release 3.4&3.5.
2024-03-21 08:27:58 +01:00
4898908268 tests/integration: address golangci var-naming issues
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-20 22:31:31 -07:00
aeecfa00b4 tests/common: address golangci var-naming issues
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-20 22:24:52 -07:00
66f56d71e4 server: address golangci var-naming issues
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-20 21:12:12 -07:00
6f55dfa26e Merge pull request #17617 from chaochn47/main-update-changelog
update 3.4 and 3.5 CHANGELOG of watch event loss after compaction fix
2024-03-20 08:13:21 +01:00
ec9b3f375f update 3.4 and 3.5 CHANGELOG of watch event loss after compaction fix
Signed-off-by: Chao Chen <chaochn@amazon.com>
2024-03-19 18:23:40 -07:00
Lan
5620268283 Let dapendabot to auto-update docker for release 3.4&3.5.
Signed-off-by: Lan Liang <gcslyp@gmail.com>
2024-03-20 08:34:21 +08:00
97029d768a Merge pull request #17614 from ivanvc/address-etcdserver-var-naming-lint-rule
etcdserver: address var naming lint rule
2024-03-19 22:40:03 +01:00
14523bdc21 etcdserver: rename MemberId() to MemberID() to address var-naming
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-18 17:18:29 -07:00
c613b78e6c etcdserver: address golangci var-naming issues
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-18 17:17:07 -07:00
3191002c6d Merge pull request #17599 from etcd-io/dependabot/github_actions/github/codeql-action-3.24.8
build(deps): bump github/codeql-action from 3.24.6 to 3.24.8
2024-03-18 19:36:44 +00:00
2e101a8926 Merge pull request #17597 from jmhbnz/update-docs-for-meeting-rotation
Update community meeting docs to cover lead rotation
2024-03-18 19:06:00 +00:00
0ffdc08197 Refresh community meeting docs
Use new short url for etcd YouTube Channel.
Add link for meeting lead rotation worksheet.

Signed-off-by: James Blair <mail@jamesblair.net>
2024-03-19 06:48:54 +13:00
8ecfac9d98 build(deps): bump distroless/static-debian12 from 0d6ada5 to 6dcc833
Bumps distroless/static-debian12 from `0d6ada5` to `6dcc833`.

---
updated-dependencies:
- dependency-name: distroless/static-debian12
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-18 17:39:09 +00:00
d8fb3e212d build(deps): bump github/codeql-action from 3.24.6 to 3.24.8
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.6 to 3.24.8.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](8a470fddaf...05963f47d8)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-18 17:32:46 +00:00
64c1acd9b3 Enable vmmeter to compare performance for robustness runners.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-03-19 00:31:17 +13:00
b4070a28f1 Add 4 more cpu cores to arm64 robustness test workflows.
Try to prevent the failures we are seeing regularly for not meeting qps requirements.

Signed-off-by: James Blair <mail@jamesblair.net>
2024-03-19 00:27:53 +13:00
7688ce3f90 Merge pull request #17594 from ahrtr/release_20240317
Update format error for candidate links
2024-03-17 16:49:47 +00:00
bbd7d680db Update format error for candidate links
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-03-17 15:14:41 +00:00
05dc7e6ff3 Merge pull request #17589 from ahrtr/release_20240316
Update release guide and setup a pool of release candidates
2024-03-17 15:11:41 +00:00
b0a26550d1 Merge pull request #17590 from spzala/securityreporting
Use etcd maintainers ML for security related discussion
2024-03-17 10:47:44 -04:00
f5da948002 Update release guide and setup a pool of release candidates
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-03-17 09:13:49 +00:00
8a497794d2 Use etcd maintainers ML for security related discussion
Temporary move to using etcd maintainers mailing list
from security@etcd.io.

Related,
https://github.com/kubernetes/community/issues/7739 and
https://github.com/kubernetes/k8s.io/pull/6542

Signed-off-by: Sahdev Zala <spzala@us.ibm.com>
2024-03-16 14:29:28 -04:00
8b9909e20d Merge pull request #17585 from ivanvc/address-api-var-naming-lint-rule
api: address golangci var-naming issues
2024-03-16 11:23:46 +00:00
fca3e8a9b5 Merge pull request #17555 from chaochn47/fix-watch-event-loss
Fix watch event loss
2024-03-16 11:23:01 +00:00
71f7db50e7 flaky: fix jwt test with increasing ttl
Signed-off-by: ah8ad3 <ah8ad3@gmail.com>
2024-03-16 11:34:02 +03:30
2190b0f1c6 api: address golangci var-naming issues
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-15 20:37:53 -07:00
405862e807 Fix event loss after compaction
Signed-off-by: Chao Chen <chaochn@amazon.com>
2024-03-15 14:22:37 -07:00
63e394d090 Merge pull request #17587 from ahrtr/changelog_20240315
Added changelog for the progress notification issue
2024-03-15 11:22:45 +00:00
ab25257397 added changelog for the progress notification issue
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-03-15 10:21:44 +00:00
d639abe1aa Merge pull request #17582 from ivanvc/address-client-var-naming-lint-rule
client: address golangci var-naming issues
2024-03-15 09:03:15 +00:00
d98ff0d4ff pkg: address golangci var-naming issues
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-14 21:17:37 -07:00
578b784dcd client: address golangci var-naming issues
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-14 20:47:32 -07:00
82925537e0 Merge pull request #17576 from ivanvc/20240311-dependency-updates
[2024-03-11] Bump dependencies identified by dependabot
2024-03-13 09:53:49 +00:00
ef38180ae7 dependency: bump github.com/rivo/uniseg from 0.2.0 to 0.4.7
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-12 11:12:07 -07:00
7a84cbb452 Improve watch latency benchmark
* Support prevKV
* Support multiple watchers per stream
* Allow continious puts without waiting for event

Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-03-11 20:30:41 +01:00
0024569c7c dependency: bump github.com/stretchr/testify from 1.8.4 to 1.9.0
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-11 11:50:27 -07:00
9f5671d113 dependency: bump golang.org/x/sys from 0.17.0 to 0.18.0
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-11 11:48:03 -07:00
3996eb5a3c dependency: bump google.golang.org/grpc from 1.62.0 to 1.62.1
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-11 11:41:17 -07:00
7fae54b302 dependency: bump github.com/prometheus/common from 0.49.0 to 0.50.0
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-11 11:32:03 -07:00
ddf54715bf Merge pull request #17557 from serathius/progressrequest-new-watch
Fix progress notification for watch that doesn't get any events
2024-03-11 15:42:13 +01:00
3f79943371 Merge pull request #17546 from ahrtr/release_criteria_20240307
Add patch version release criterion
2024-03-11 12:12:13 +00:00
6103504d4b Fix progress notification for watch that doesn't get any events
When implementing the fix for progress notifications
(https://github.com/etcd-io/etcd/pull/15237) we made a incorrect
assumption that that unsynched watches will always get at least one event.

Unsynched watches include not only slow watchers, but also newly created
watches that requested current or older revision. In case that non of the events
match watch filter, those newly created watches might become synched
without any event going through.

Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-03-11 12:11:09 +01:00
a23bee3ce5 Merge pull request #17428 from ivanvc/reimplement-rw-heatmaps-in-go
Reimplement tools/rw-heatmaps in go
2024-03-11 09:58:33 +00:00
31f034ac75 Merge pull request #17561 from ivanvc/temporary-fix-for-coverage-test-reporting
tests: temporary disable coverage redisign Go experiment
2024-03-10 10:11:06 +01:00
1576e2e5a4 tools/rw-heatmaps: reimplement in golang
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-09 19:26:29 -08:00
da7ab15f80 tests: temporary disable coverage redisign Go experiment
Go v1.22 has an error generating the coverage output. Disable it
temporarily so GitHub workflows can run in the meantime.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-09 15:07:33 -08:00
4527093b16 Merge pull request #17559 from ivanvc/changelog-cve-2024-24786
[3.4][3.5] Changelog: Add CVE-2024-24786 remediation
2024-03-09 10:33:51 +00:00
a9cfdfd88b changelog: add google.golang.org/protobuf bump to v1.33.0
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-08 13:40:23 -08:00
ebdb88248c changelog: remove line from compiling with go 1.21.6
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-08 13:38:45 -08:00
b81936dade Merge pull request #17542 from liangyuanpeng/log
changelog: add 3.4 and 3.5 note about go 1.21.8
2024-03-08 10:11:02 +00:00
9955a7eb9e Merge pull request #17544 from jmhbnz/refine-golang-version-policy
Tweak golang version policy to avoid unsupported minor versions
2024-03-08 09:30:44 +00:00
bb44958aae Update golang minor version policy.
Try to avoid periods of time where etcd could be on an unsupported golang version.

Signed-off-by: James Blair <mail@jamesblair.net>
2024-03-08 21:24:07 +13:00
b730b3a3eb changelog: add 3.4 and 3.5 note about go 1.21.8
Signed-off-by: Lan Liang <gcslyp@gmail.com>
2024-03-08 15:54:25 +08:00
e5029a3f6d Add patch version release criterion
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-03-07 19:02:37 +00:00
266a3ba5ec Merge pull request #17543 from ivanvc/20240304-dependency-updates
[2024-03-04] Bump dependencies identified by dependabot
2024-03-07 18:58:12 +00:00
0c6b6ac951 dependency: bump google.golang.org/protobuf from 1.32.0 to 1.33.0
Addresses CVE-2024-24786 (https://pkg.go.dev/vuln/GO-2024-2611)

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-07 09:13:28 -08:00
04ef9dcef8 dependency: bump github.com/prometheus/common from 0.47.0 to 0.49.0
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-07 09:13:28 -08:00
60da279da4 dependency: bump go.opentelemetry.io/otel/sdk from 1.23.1 to 1.24.0
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-07 09:13:28 -08:00
b555c9e360 dependency: bump github.com/google/yamlfmt from 0.10.0 to 0.11.0
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-03-07 09:13:24 -08:00
a481256c8f Merge pull request #17393 from dusk125/go1.22
Migrate to go1.22
2024-03-07 10:15:10 +00:00
acbe5db75f Merge pull request #17532 from ahrtr/campaign_with_auth_20240305
Add election test with auth enabled
2024-03-07 10:11:17 +00:00
bb4b70bbb2 Migrate to go1.22
Signed-off-by: Allen Ray <alray@redhat.com>
2024-03-06 17:15:36 -05:00
a8c743fafa Add election test with auth enabled
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-03-05 19:49:49 +00:00
9f8756b90d Merge pull request #17524 from etcd-io/dependabot/github_actions/github/codeql-action-3.24.6
build(deps): bump github/codeql-action from 3.24.5 to 3.24.6
2024-03-05 12:06:37 +00:00
8c3bb5a644 Merge pull request #17518 from datbeohbbh/fix/skip-when-detect-removed-peer
etcdserver: skip when detect a removed peer
2024-03-05 09:30:42 +00:00
796859cdeb build(deps): bump github/codeql-action from 3.24.5 to 3.24.6
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.5 to 3.24.6.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](47b3d888fe...8a470fddaf)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 17:26:41 +00:00
46d59a2e68 etcdserver: skip when detect a removed peer
Signed-off-by: Dat Tien Nguyen <phongtomfapp@gmail.com>
2024-03-04 21:22:19 +07:00
1249d8d17a Merge pull request #17508 from siyuanfoundation/verify-test
Add a test status section to display testgrid status.
2024-03-04 09:42:35 +00:00
e2d159f08f Add a flaky test section to contributor guide.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-03-01 11:47:25 -08:00
e68afe7eb7 Merge pull request #17495 from etcd-io/dependabot/docker/distroless/static-debian12-0d6ada5faececed5cd3f99baa08e4109934f2371c0d81b3bff38924fe1deea05
build(deps): bump distroless/static-debian12 from `2eb0c79` to `0d6ada5`
2024-02-28 10:52:45 +00:00
a16c09d496 Merge pull request #17492 from etcd-io/dependabot/github_actions/github/codeql-action-3.24.5
build(deps): bump github/codeql-action from 3.24.3 to 3.24.5
2024-02-28 10:51:51 +00:00
942a95bd23 Merge pull request #17469 from WilliamDEdwards/chore/add-Cyberfusion-adopter
Add Cyberfusion to adopters
2024-02-28 10:03:33 +00:00
00dad3b319 Merge pull request #17503 from jmhbnz/weekly-dependency-update
[2024-02-27] Bump dependencies identified by dependabot
2024-02-28 09:50:12 +00:00
e0955afa40 depdendency: bump google.golang.org/grpc from 1.61.1 to 1.62.0.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-02-28 21:08:42 +13:00
170948f681 depdendency: bump go.opentelemetry.io/otel from 1.23.1 to 1.24.0.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-02-28 21:03:45 +13:00
bca74ee87f build(deps): bump distroless/static-debian12 from 2eb0c79 to 0d6ada5
Bumps distroless/static-debian12 from `2eb0c79` to `0d6ada5`.

---
updated-dependencies:
- dependency-name: distroless/static-debian12
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-26 17:13:03 +00:00
4a2f0c8513 build(deps): bump github/codeql-action from 3.24.3 to 3.24.5
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.3 to 3.24.5.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](379614612a...47b3d888fe)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-26 17:07:41 +00:00
786da8731e Merge pull request #17485 from ahrtr/core_dependencies_20240224
Clarify the core dependencies mappings: bbolt and raft
2024-02-26 12:13:59 +00:00
14a6d3f34d Merge pull request #17486 from ahrtr/changelog_20240225
Update changelogs to cover the bumping bbolt to v1.3.9 for both 3.4.31 and 3.5.13
2024-02-26 11:16:38 +00:00
2e3f2b53b2 Update changelogs to cover the bumping bbolt to v1.3.9 for both 3.4.31 and 3.5.13
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-02-26 09:20:14 +00:00
05aa9796df Merge pull request #17488 from halleyshx/grpcproxy-changelog3.5-of-pr17447
update CHANGELOG-3.5.md for #17447
2024-02-26 09:19:13 +00:00
b95c65e065 update CHANGELOG-3.5.md for #17447
Signed-off-by: shihuixing <shihuixing@jd.com>
2024-02-26 09:36:30 +08:00
9c994a4d07 Clarify the core dependencies mappings: bbolt and raft
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-02-24 20:12:07 +00:00
2e7ed80be2 Merge pull request #17481 from srivastav-abhishek/timeout-fix
Increased timeout to fix TestHashKVWhenCompacting test
2024-02-23 12:04:25 +00:00
e1ceb7d1c9 Merge pull request #17480 from ivanvc/update-3.4-and-3.5-changelog-with-backport-ignore-old-leader-leases-revoking-requests
[3.4][3.5] changelog: Add ignore old leader's leases revoking requests
2024-02-23 10:45:30 +00:00
fe113026fa Increased timeout to fix HashKV test
Signed-off-by: Abhishek Kr Srivastav <Abhishek.kr.srivastav@ibm.com>
2024-02-23 15:58:57 +05:30
610f5272fa changelog: Add ignore old leader's leases revoking requests
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-02-22 23:36:20 -06:00
8c7f911b3b Merge pull request #17359 from siyuanfoundation/verify-test
Add VerifyTxConsistency to backend.
2024-02-22 20:17:01 +00:00
3565a822de Add VerifyTxConsistency to backend.
Signed-off-by: Siyuan Zhang <sizhang@google.com>

Update server/storage/backend/verify.go

Co-authored-by: Benjamin Wang <benjamin.wang@broadcom.com>

Update server/storage/backend/verify.go

Co-authored-by: Benjamin Wang <benjamin.wang@broadcom.com>
2024-02-22 11:31:16 -08:00
47e9a16a5c Merge pull request #17478 from tjungblu/add_prow_template
Update flake issue template to include prow
2024-02-22 18:49:52 +00:00
cea3f4d71d Merge pull request #17466 from jmhbnz/weekly-dependency-update
[2024-02-20] Bump dependencies identified by dependabot
2024-02-22 18:13:40 +00:00
d9b9299476 Add Cyberfusion to adopters
Signed-off-by: William Edwards <wedwards@cyberfusion.nl>
2024-02-22 18:55:53 +01:00
e54bd67554 Merge pull request #17473 from jmhbnz/update-changelog-for-compaction-logs
CHANGELOG: Add entries for updated compaction logs
2024-02-22 14:04:45 +00:00
f9c9bade26 Update flake issue template to include prow
Signed-off-by: Thomas Jungblut <tjungblu@redhat.com>
2024-02-22 13:36:38 +01:00
946ca77995 Merge pull request #17475 from MadhavJivrajani/with-require-leader
tests/robustness: use WithRequireLeader in Kubernetes traffic
2024-02-22 12:12:40 +01:00
0b27570368 tests/robustness: use WithRequireLeader in Kubernetes traffic
Kubernetes uses WithRequireLeader to modify the context passed
to the Watch() and RequestProgress() calls in order to ensure
that a leader is present in the cluster before serving the request.

This commit mimics that behaviour in the Kubernetes traffic.

Signed-off-by: Madhav Jivrajani <madhav.jiv@gmail.com>
2024-02-22 15:01:33 +05:30
9713761c9d depdendency: github.com/prometheus/common from 0.46.0 to 0.47.0.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-02-22 22:25:22 +13:00
f8141bc039 depdendency: go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.47.0 to 0.48.0.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-02-22 22:25:22 +13:00
df1727f3ea depdendency: github.com/prometheus/client_model from 0.5.0 to 0.6.0.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-02-22 22:25:22 +13:00
08cacf1984 depdendency: google.golang.org/grpc from 1.61.0 to 1.61.1.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-02-22 22:25:22 +13:00
33143d9656 Merge pull request #17471 from serathius/revert-prevkv
Revert "tests/robustness: check for compaction before prevKV validation"
2024-02-22 09:35:24 +01:00
6ea83db20a Add changelog entry for updated compaction logs.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-02-22 08:44:13 +13:00
3a351c2fec Revert "tests/robustness: check for compaction before prevKV validation"
This reverts commit 5d7f58d14b.

Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-02-21 16:15:40 +01:00
f8f0bf9c1a Merge pull request #17446 from potherca-contrib/typo/etcdctl/README.md
Fix typo in  etcdctl/README.md
2024-02-20 18:49:39 +00:00
7226d3e9c9 Merge pull request #15983 from HubertZhang/changelog-15940
update changelog for #15940
2024-02-20 10:16:32 +00:00
621d0681bb Merge pull request #17462 from etcd-io/dependabot/docker/distroless/static-debian12-2eb0c793360d26aace9b88fb9cf1a4f680140e7fb7d68d86de1fe63dbc1a7660
build(deps): bump distroless/static-debian12 from `4a2c1a5` to `2eb0c79`
2024-02-20 10:09:51 +00:00
5c311d5cab Merge pull request #17450 from MadhavJivrajani/check-compaction-prevkv
tests/robustness: check for compaction before prevKV validation
2024-02-20 10:42:26 +01:00
c0e1b86658 update changelog for #15940
Signed-off-by: Hubert Zhang <hubert.zyk@gmail.com>
2024-02-20 04:37:04 +00:00
11ff2644f2 Merge pull request #17461 from etcd-io/dependabot/github_actions/github/codeql-action-3.24.3
build(deps): bump github/codeql-action from 3.24.0 to 3.24.3
2024-02-19 19:39:27 +00:00
328ef3782d build(deps): bump distroless/static-debian12 from 4a2c1a5 to 2eb0c79
Bumps distroless/static-debian12 from `4a2c1a5` to `2eb0c79`.

---
updated-dependencies:
- dependency-name: distroless/static-debian12
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-19 17:31:26 +00:00
e43f27b8bc build(deps): bump github/codeql-action from 3.24.0 to 3.24.3
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.0 to 3.24.3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](e8893c57a1...379614612a)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-19 17:23:17 +00:00
5d7f58d14b tests/robustness: check for compaction before prevKV validation
We can check for the condition that Kubernetes checks for, i.e.
prevKV can be nil iff the event is not a create a event, only if
we know whether compaction has occured or not. If compaction has
occured, prevKV can be nil and that is completely valid.

This commit checks if compaction took place during the test run
by querying the /metrics endpoint. Based on if compaction occured,
we now check the Kubernetes condition in the prevKV robustness test.

Signed-off-by: Madhav Jivrajani <madhav.jiv@gmail.com>
2024-02-19 17:05:59 +05:30
8814e03e33 Merge pull request #17449 from ArkaSaha30/update-changelog-3.4-3.5
Add `Make CGO_ENABLED configurable` to CHANGELOG
2024-02-19 11:35:51 +00:00
b57a5b575f Add Make CGO_ENABLED configurable to CHANGELOG
Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2024-02-19 15:57:42 +05:30
97fc1ec7d9 Merge pull request #17366 from halleyshx/add-keepalive-clientParams-to-proxy
Added client keepalive arguments to the grpc-proxy
2024-02-19 09:40:17 +00:00
bc814f7dc7 Fix typo in etcdctl/README.md
`requets` => `request`

Signed-off-by: Ben Peachey <github@pother.ca>
2024-02-18 13:38:33 +01:00
b601362620 Merge pull request #17445 from vivekpatani/inv-PRISMA-2023-0056
*: update logrus to v1.9.3
2024-02-18 09:30:39 +00:00
2eda06ac18 *: update logrus to v1.9.3
- update logrus to address PRISMA-2023-0056
- https://github.com/etcd-io/etcd/issues/17268

Signed-off-by: vivekpatani <9080894+vivekpatani@users.noreply.github.com>
2024-02-17 21:35:54 -08:00
7d640a5fb4 Merge pull request #17441 from fuweid/using-retErr
server/verify: use retErr to shadow local err
2024-02-17 13:26:48 +00:00
0354d39ae8 server/verify: use retErr to shadow local err
validateConsistentIndex function might return err but defer might still
log it's successful.

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2024-02-17 17:21:19 +08:00
e0cb943370 Merge pull request #17429 from jmhbnz/update-membership-process
Update membership process to reflect kubernetes/org automation
2024-02-17 09:20:14 +00:00
484b115977 Merge pull request #16603 from redwrasse/redwrasse/contention-cleanup
cleanup contention.go docs, Observe param name
2024-02-16 09:13:47 +00:00
55fa8c9f56 cleanup contention.go docs, Observe param name
Signed-off-by: redwrasse <mail@redwrasse.io>
2024-02-16 00:06:31 -08:00
57f24f5f51 Update org membership process for new members.
To reflect the new sig-etcd process of using the kubernetes/org automation.

Signed-off-by: James Blair <mail@jamesblair.net>
2024-02-16 00:05:18 +13:00
9d27d24fe2 Remove defunct org membership request template.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-02-16 00:04:15 +13:00
840d486923 Merge pull request #17426 from MadhavJivrajani/robustness-tests-cleanup
tests/robustness: refactors, cleanups and followups
2024-02-15 09:23:05 +01:00
b0d0476731 Merge pull request #17423 from nitishfy/Nitish/error-validation
feat: add `TestNoErrorLogsDuringNormalOperations` e2e test to validate error logs during etcd bootstrap
2024-02-14 14:44:41 +00:00
3f98ee77d0 etcdserver: add TestErrorLogs test to check for error logs
Signed-off-by: NitishKumar06 <justnitish06@gmail.com>

fix static analysis check

Signed-off-by: NitishKumar06 <justnitish06@gmail.com>

minor fixes

Signed-off-by: NitishKumar06 <justnitish06@gmail.com>
2024-02-14 18:50:04 +05:30
ccc4318478 Merge pull request #17277 from ivanvc/fixes-etcdutl-memory-allocation-issue
etcdutl: Fix snapshot restore memory alloc issue
2024-02-14 11:41:14 +00:00
b51a834645 tests/robustness: allow persisting result reports for successful runs
Signed-off-by: Madhav Jivrajani <madhav.jiv@gmail.com>
2024-02-14 16:28:47 +05:30
cdd018ad2a tests/robustness: add a robustness test for validating create events
Split off valdiating create events from the prevKV test.
The added test tests the following two:
- A create event should not exist in our past history
- A non-create event should exist in our past history

Signed-off-by: Madhav Jivrajani <madhav.jiv@gmail.com>
2024-02-14 16:28:44 +05:30
4fa07a1c8a tests/robustness: make merging histories work on []PersistedEvent
Event histories after merging serve as an authorotative list of
events that can be seen as ones persisted by etcd, we don't need
PrevValue as part of it.

Signed-off-by: Madhav Jivrajani <madhav.jiv@gmail.com>
2024-02-14 15:44:08 +05:30
83817ac786 Merge pull request #17352 from MadhavJivrajani/with-prev-key-robustness-test
tests/robustness: add robustness test for watch with PrevKV()
2024-02-14 09:24:33 +01:00
be28833212 etcdutl: Fix snapshot restore memory alloc issue
When running the snapshot command, allow receiving an initial memory map
allocation for the database, avoiding future memory allocation issues.

Co-authored-by: Benjamin Wang <benjamin.wang@broadcom.com>
Co-authored-by: Fatih USTA <fatihusta86@gmail.com>
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-02-13 13:36:13 -08:00
d69adf45f9 server: Implement WithMmapSize option for backend config
Accept a third argument for NewDefaultBackend for overrides to the
BackendConfig.
Add a new function, WithMmapSize, which modifies the backend config to
provide a custom InitiamMmapSize.

Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-02-13 13:24:44 -08:00
9aad6700d5 tests/robustness: add robustness test for watch with PrevKV()
Kubernetes relies on the PrevKV() option in the watches it opens
against etcd. This commit adds a robustness test to validate the
same.

A watch response returned with PrevKV() is valid if:
The value in current event's prevKV matches the previous
event's value of the same key if this is not a create event.

There are cases where there can be a prevKV for a create event
as well, for example if a watch is opened after the key is creatd.
Since we don't simulate for that, we don't check for that.

Further, this adjusts revision numbers such that we can successfully create
a new replay. Needed now since we will have unit tests with
and without PrevKV co-existing and we requite creation of a
new replay everytime we validate PrevKV.

We also regenerate test data with so that prevKV exists in it

Signed-off-by: Madhav Jivrajani <madhav.jiv@gmail.com>
2024-02-13 22:55:57 +05:30
cb91828f56 Merge pull request #17420 from ahrtr/dependency_20240213
[2024-02-13] Bump dependencies
2024-02-13 10:49:58 +00:00
a7d5a9e42c Merge pull request #17418 from ArkaSaha30/configure_cgo
Make CGO_ENABLED configurable
2024-02-13 09:36:01 +00:00
dd9dd84a02 dependency: bump github.com/mikefarah/yq/v4 from 4.40.5 to 4.40.7
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-02-13 09:32:55 +00:00
a6d72d5fbc dependency: bump golang.org/x/net from 0.20.0 to 0.21.0
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-02-13 09:32:55 +00:00
dfff80a89e dependency: bump golang.org/x/crypto from 0.18.0 to 0.19.0
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-02-13 09:32:55 +00:00
236e8ca881 dependency: bump go.opentelemetry.io/otel from 1.22.0 to 1.23.1
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-02-13 09:32:55 +00:00
5c1b43c079 Dependency: bump golang.org/x/sys from 0.16.0 to 0.17.0
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-02-13 09:32:55 +00:00
2c80656885 Merge pull request #17406 from etcd-io/dependabot/github_actions/actions/upload-artifact-4.3.1
build(deps): bump actions/upload-artifact from 4.3.0 to 4.3.1
2024-02-13 09:31:52 +00:00
cb42e2264c Merge pull request #17407 from etcd-io/dependabot/github_actions/golangci/golangci-lint-action-4.0.0
build(deps): bump golangci/golangci-lint-action from 3.7.0 to 4.0.0
2024-02-13 09:17:39 +00:00
20005e0e84 Make CGO_ENABLED configurable
Signed-off-by: Arka Saha <arkas1@vmware.com>
2024-02-13 13:24:55 +05:30
78a693fc71 build(deps): bump golangci/golangci-lint-action from 3.7.0 to 4.0.0
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 3.7.0 to 4.0.0.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases)
- [Commits](3a91952989...3cfe3a4abb)

---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-12 17:36:21 +00:00
271b9cdbaa build(deps): bump actions/upload-artifact from 4.3.0 to 4.3.1
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.0 to 4.3.1.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](26f96dfa69...5d5d22a312)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-12 17:36:19 +00:00
ea89e3fd94 Merge pull request #17403 from ahrtr/cleanup_20240208
Remove the unused AuthTokenTTL parameter from integration test
2024-02-12 14:46:28 +00:00
5b2a9e2ab3 Remove the unused AuthTokenTTL parameter from integration test
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-02-11 14:09:43 +00:00
62cc04ff05 rollback the CHANGELOG-3.5.md
Signed-off-by: shihuixing <shihuixing@jd.com>
2024-02-09 21:13:37 +08:00
3850889442 improve description and update CHANGELOG-3.5.md
Signed-off-by: shihuixing <shihuixing@jd.com>
2024-02-09 15:14:27 +08:00
42f0cb9762 Merge pull request #17395 from ahrtr/update_maintainers_20240208
Add Hitoshi Mitake into the Emeritus Maintainers list
2024-02-08 16:05:07 +00:00
8732f27369 Add Hitoshi Mitake into the Emeritus Maintainers list
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-02-08 15:15:34 +00:00
25f91b4e50 Merge pull request #17384 from mitake/watch-auth-str
Remove string dependent error handling in watch and auth
2024-02-08 13:54:46 +00:00
cf296a0b38 improve description for grpc-proxy keepalive arguments
Signed-off-by: shihuixing <shihuixing@jd.com>
2024-02-08 14:45:51 +08:00
5d45a88ab7 Merge pull request #17380 from dusk125/go1.21-changelog
Add go1.21 update to changelog
2024-02-07 17:57:51 +00:00
88e7c381dd Merge pull request #17388 from Elbehery/update_changelog_35_34
add OpenBSD support to changelog 3.5
2024-02-07 17:55:30 +00:00
99e7a4cd89 Merge pull request #17392 from sharathsivakumar/shsi/bump_deps_15
Manually bump dependencies
2024-02-07 16:41:54 +00:00
29600058d7 Merge pull request #17287 from nitishfy/Nitish/memberReplaceWithLearner
feat: add `memberReplaceLearnerTest` test
2024-02-07 16:32:39 +00:00
d42d5a391b add OpenBSD support to changelog 3.5
Signed-off-by: Mustafa Elbehery <melbeher@redhat.com>
2024-02-07 17:20:22 +01:00
759d88a990 dependency: bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.19.0 to 2.19.1
Signed-off-by: Sharath Sivakumar <mailssr9@gmail.com>
2024-02-07 16:15:49 +01:00
aac5c09fe4 Add go1.21 update to changelog
Signed-off-by: Allen Ray <alray@redhat.com>
2024-02-07 09:20:17 -05:00
26252c6bb4 Merge pull request #17372 from etcd-io/dependabot/github_actions/github/codeql-action-3.24.0
build(deps): bump github/codeql-action from 3.23.2 to 3.24.0
2024-02-07 11:01:32 +00:00
70cc19aad5 etcdserver: add memberReplaceLearnerTest to improve testing coverage
Signed-off-by: NitishKumar06 <justnitish06@gmail.com>

get learner member id

Signed-off-by: NitishKumar06 <justnitish06@gmail.com>

get learner member id

Signed-off-by: NitishKumar06 <justnitish06@gmail.com>

check for edge case

Signed-off-by: NitishKumar06 <justnitish06@gmail.com>

modify testcase to use var declaration

Signed-off-by: NitishKumar06 <justnitish06@gmail.com>

remove shadow delcaration of variables

Signed-off-by: NitishKumar06 <justnitish06@gmail.com>

resolve minor fixes

Signed-off-by: NitishKumar06 <justnitish06@gmail.com>
2024-02-06 20:05:16 +05:30
cf7043391c Merge pull request #15812 from tangruize/main
etcd: ignore SetKeepAlivePeriod errors on OpenBSD
2024-02-06 13:05:56 +00:00
15aae5b4e2 Merge pull request #17385 from mitake/retire-mitake
Update OWNERS: retire mitake
2024-02-06 21:07:50 +09:00
617f1df443 Remove string dependent error handling in watch and auth
Signed-off-by: Hitoshi Mitake <h.mitake@gmail.com>
2024-02-06 19:25:53 +09:00
8c9dd749a2 Update OWNERS: retire mitake
Signed-off-by: Hitoshi Mitake <h.mitake@gmail.com>
2024-02-06 18:42:57 +09:00
b2dae1048d Merge pull request #17370 from dusk125/backoff-config-changelog
Add backoff/retry config to changelog
2024-02-05 20:12:39 -05:00
53a9a354df Merge pull request #17367 from ahrtr/email_20240205
Update ahrtr's email
2024-02-05 20:10:42 -05:00
aaddb79663 build(deps): bump github/codeql-action from 3.23.2 to 3.24.0
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.23.2 to 3.24.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](b7bf0a3ed3...e8893c57a1)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-05 17:18:30 +00:00
4d9bff9834 Add backoff/retry config to changelog
Signed-off-by: Allen Ray <alray@redhat.com>
2024-02-05 10:46:03 -05:00
5d356305ee Update ahrtr's email
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-02-05 14:30:50 +00:00
928173985e Merge pull request #17365 from fuweid/fix-race
etcdserver: drain leaky goroutines before test completed
2024-02-05 12:53:40 +00:00
79716fa112 added dial-keepalive-time、dial-keepalive-timeout、permit-without-stream arguments to the grpc-proxy
Signed-off-by: shihuixing <shihuixing@jd.com>
2024-02-05 11:13:46 +08:00
32ee8b877a etcdserver: drain leaky goroutines before test completed
If pending changes aren't committed before test completed, it might cause
data race when we don't drain all the background goroutines.

```bash
$ cd server
$ go test -race -v -run TestApplyRepeat ./etcdserver
...
panic: Log in goroutine after TestApplyRepeat has completed: 2024-02-03T17:06:13.262+0800       DEBUG   bbolt   Committing transaction 2

goroutine 81 [running]:
testing.(*common).logDepth(0xc000502820, {0xc0001b0460, 0x41}, 0x3)
        /usr/local/go/src/testing/testing.go:1022 +0x6d4
testing.(*common).log(...)
        /usr/local/go/src/testing/testing.go:1004
testing.(*common).Logf(0xc000502820, {0x1421ad7, 0x2}, {0xc000603520, 0x1, 0x1})
        /usr/local/go/src/testing/testing.go:1055 +0xa5
go.uber.org/zap/zaptest.testingWriter.Write({{0x15f1f90?, 0xc000502820?}, 0xda?}, {0xc000119800, 0x42, 0x400})
        /home/fuwei/go/pkg/mod/go.uber.org/zap@v1.26.0/zaptest/logger.go:130 +0x11e
go.uber.org/zap/zapcore.(*ioCore).Write(0xc0000b55c0, {0xff, {0xc1679e614f9fd7a4, 0x73a3657, 0x1cc2400}, {0x1422b2d, 0x5}, {0xc0001a0330, 0x18}, {0x0, ...}, ...}, ...)
        /home/fuwei/go/pkg/mod/go.uber.org/zap@v1.26.0/zapcore/core.go:99 +0x193
go.uber.org/zap/zapcore.(*CheckedEntry).Write(0xc000115930, {0x0, 0x0, 0x0})
        /home/fuwei/go/pkg/mod/go.uber.org/zap@v1.26.0/zapcore/entry.go:253 +0x2f0
go.uber.org/zap.(*SugaredLogger).log(0xc0001960f8, 0xff, {0x1437885, 0x19}, {0xc0006034e0, 0x1, 0x1}, {0x0, 0x0, 0x0})
        /home/fuwei/go/pkg/mod/go.uber.org/zap@v1.26.0/sugar.go:316 +0x130
go.uber.org/zap.(*SugaredLogger).Debugf(...)
        /home/fuwei/go/pkg/mod/go.uber.org/zap@v1.26.0/sugar.go:171
go.etcd.io/bbolt.(*Tx).Commit(0xc0001aa9a0)
        /home/fuwei/go/pkg/mod/go.etcd.io/bbolt@v1.4.0-alpha.0/tx.go:173 +0x206
go.etcd.io/etcd/server/v3/storage/backend.(*batchTx).commit(0xc00019b180, 0x0)
        /home/fuwei/go/src/go.etcd.io/etcd/server/storage/backend/batch_tx.go:269 +0xdf
go.etcd.io/etcd/server/v3/storage/backend.(*batchTxBuffered).unsafeCommit(0xc00019b180, 0x0)
        /home/fuwei/go/src/go.etcd.io/etcd/server/storage/backend/batch_tx.go:378 +0x425
go.etcd.io/etcd/server/v3/storage/backend.(*batchTxBuffered).commit(0xc00019b180, 0x80?)
        /home/fuwei/go/src/go.etcd.io/etcd/server/storage/backend/batch_tx.go:355 +0x78
go.etcd.io/etcd/server/v3/storage/backend.(*batchTxBuffered).Commit(0xc00019b180)
        /home/fuwei/go/src/go.etcd.io/etcd/server/storage/backend/batch_tx.go:342 +0x35
go.etcd.io/etcd/server/v3/storage/backend.(*backend).run(0xc000478180)
        /home/fuwei/go/src/go.etcd.io/etcd/server/storage/backend/backend.go:426 +0x2c7
created by go.etcd.io/etcd/server/v3/storage/backend.newBackend in goroutine 80
        /home/fuwei/go/src/go.etcd.io/etcd/server/storage/backend/backend.go:227 +0xbfd
FAIL    go.etcd.io/etcd/server/v3/etcdserver    0.129s
FAIL
```

This patch also drains goroutines related to raftNode and watch store.

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2024-02-03 18:58:17 +08:00
43d6759977 Merge pull request #17335 from etcd-io/dependabot/github_actions/github/codeql-action-3.23.2
build(deps): bump github/codeql-action from 3.23.1 to 3.23.2
2024-02-01 16:04:56 +00:00
6344109a17 Merge pull request #17334 from etcd-io/dependabot/github_actions/actions/upload-artifact-4.3.0
build(deps): bump actions/upload-artifact from 4.2.0 to 4.3.0
2024-02-01 15:20:59 +00:00
7926173240 Merge pull request #17358 from sharathsivakumar/shsi/bump_deps_13
Manually bump dependencies
2024-02-01 14:06:05 +00:00
93b5e5a3e0 dependency: bump github.com/alexfalkowski/gocovmerge from 1.2.3 to 1.2.6
Signed-off-by: Sharath Sivakumar <mailssr9@gmail.com>
2024-02-01 14:18:54 +01:00
60d642332c dependency: bump github.com/cheggaaa/pb/v3 from 3.1.4 to 3.1.5
Signed-off-by: Sharath Sivakumar <mailssr9@gmail.com>
2024-02-01 14:18:36 +01:00
9ec752d0f3 dependency: bump google.golang.org/grpc from 1.60.1 to 1.61.0
Signed-off-by: Sharath Sivakumar <mailssr9@gmail.com>
2024-02-01 13:57:32 +01:00
aa81e57855 dependency: bump go.opentelemetry.io/proto/otlp from 1.0.0 to 1.1.0
Signed-off-by: Sharath Sivakumar <mailssr9@gmail.com>
2024-02-01 13:51:29 +01:00
13b48947d4 Merge pull request #17356 from MadhavJivrajani/fix-out-of-index-error
tests/robustness: fix out of index panic in model replay
2024-02-01 12:24:10 +01:00
f0f4e8a4e8 tests/robustness: fix out of index panic in model replay
Signed-off-by: Madhav Jivrajani <madhav.jiv@gmail.com>
2024-02-01 16:14:35 +05:30
6d37790e2b Merge pull request #17354 from ahrtr/3.4.30_changelog
Update changelog for v3.4.30
2024-01-31 14:22:28 +00:00
0b77694f14 Update changelog for v3.4.30
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-01-31 13:31:08 +00:00
5b0fc98d1f Merge pull request #17351 from serathius/v3.5.12-changelog
Add v3.5.12 changelog
2024-01-31 13:09:57 +01:00
f58a258f9a Add v3.5.12 changelog
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-01-31 11:59:37 +01:00
ca41186228 Merge pull request #17288 from ishan16696/promoteLeaner/addLogInfo
Added a error log when learner is not sync with etcd leader.
2024-01-30 12:47:28 +00:00
16a5e1da71 Added a error log when learner is not sync with etcd leader.
Signed-off-by: ishan16696 <ishan.tyagi@sap.com>
2024-01-30 15:42:11 +05:30
5e28c3d4bd build(deps): bump github/codeql-action from 3.23.1 to 3.23.2
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.23.1 to 3.23.2.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](0b21cf2492...b7bf0a3ed3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-29 17:09:45 +00:00
db21a20fda build(deps): bump actions/upload-artifact from 4.2.0 to 4.3.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.2.0 to 4.3.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](694cdabd8b...26f96dfa69)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-29 17:09:37 +00:00
58846bd8f3 Merge pull request #17309 from ivanvc/update-changelog-to-add-go-1.20.13
changelog: add 3.4 and 3.5 note about go 1.20.13
2024-01-26 10:47:32 +01:00
c83feebbbd changelog: add 3.4 and 3.5 note about go 1.20.13
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-01-25 11:49:57 -08:00
704c93c9ba Merge pull request #17325 from ahrtr/verify_key_20240125
Add verification on keys: should be always mononically increasing
2024-01-25 18:54:21 +00:00
c12e15d91a Add verification on keys: should be always mononically increasing
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-01-25 18:00:26 +00:00
b2873784b2 Merge pull request #17313 from ahrtr/TestHashKVWhenCompacting_20240124
test: fix `TestHashKVWhenCompacting`: ensure all goroutine finished
2024-01-25 17:48:05 +00:00
12cd4da770 Merge pull request #17323 from serathius/robustness-lazyfs-arm64
Disable lazyfs test on arm64 machines
2024-01-25 18:02:25 +01:00
7d5580027d Disable lazyfs test on arm64 machines
Lazyfs adds additional overhead causing arm64 machines in CI to not reach robustness test qps requirements due to lack of compute power.

Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-01-25 17:08:57 +01:00
4d3108246d Merge pull request #17260 from serathius/validate-watch-without-event-history
Validate watch even if event history cannot be created
2024-01-25 16:01:01 +01:00
c647614b6a test: fix TestHashKVWhenCompacting: ensure all goroutine finished
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-01-25 13:30:27 +00:00
a818d07317 Merge pull request #17307 from dusk125/no-ignore-dialopts
Add backoff & retries to client config
2024-01-25 12:36:17 +01:00
23798e09c8 Merge pull request #17302 from etcd-io/dependabot/github_actions/github/codeql-action-3.23.1
build(deps): bump github/codeql-action from 3.23.0 to 3.23.1
2024-01-25 11:01:37 +00:00
0bfbc4f2b9 Merge pull request #17303 from etcd-io/dependabot/github_actions/actions/upload-artifact-4.2.0
build(deps): bump actions/upload-artifact from 4.1.0 to 4.2.0
2024-01-25 10:06:59 +00:00
f932c00791 Merge pull request #17314 from ahrtr/configure_peer_log_20240124
Print error log when creating peer listener failed
2024-01-25 10:05:38 +00:00
d1cc01a574 Merge pull request #17319 from jmhbnz/weekly-dependency-update
[2024-01-25] Bump dependencies identified by dependabot
2024-01-25 10:02:42 +00:00
7cd0b58ab5 Merge pull request #17261 from serathius/exploratory
Separate robustness test scenarios and increase number of times we run exploratory tests in nightly
2024-01-25 10:08:15 +01:00
9cfbbb9556 dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.46.1. to 0.47.0.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-01-25 15:26:26 +13:00
3666454826 depdendency: bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.21.0 to 1.22.0.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-01-25 15:24:53 +13:00
2edcf60b4f depdendency: bump go.opentelemetry.io/otel from 1.21.0 to 1.22.0.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-01-25 15:19:09 +13:00
0857def30e add backoff to client config
Signed-off-by: Allen Ray <alray@redhat.com>
2024-01-24 11:08:31 -05:00
362f0a2fcb print error log when creating peer listener failed
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-01-24 13:47:30 +00:00
c799c889b7 build(deps): bump actions/upload-artifact from 4.1.0 to 4.2.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](1eb3cb2b3e...694cdabd8b)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 17:45:37 +00:00
bfb740d551 build(deps): bump github/codeql-action from 3.23.0 to 3.23.1
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.23.0 to 3.23.1.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](e5f05b81d5...0b21cf2492)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 17:45:32 +00:00
15f95ec49b Merge pull request #17286 from ivanvc/fix-golangci-error-strings-issues
Fix golangci revive error-strings issues
2024-01-21 14:52:04 +00:00
dd0b0526e1 Merge pull request #17284 from ahrtr/test_TestScheduleCompaction_20240119
Fix test issue in TestScheduleCompaction
2024-01-20 13:29:04 +00:00
ef70b13b3a Merge pull request #17273 from iiamabby/devcontainer-kubectl
Added container tools to devcontainer for debugging prow jobs
2024-01-19 18:37:53 +00:00
8bd34cf236 Merge pull request #17285 from siyuanfoundation/revert
Revert #17228
2024-01-19 18:16:55 +00:00
6b57b55208 Merge pull request #17274 from ivanvc/update-go-to-1.21.6
dependency: upgrade go to 1.21.6
2024-01-19 18:01:42 +00:00
30b242f800 Revert "add test cases of duplicate keys in one tx."
This reverts commit 8d29b245a3.

Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-01-19 08:58:48 -08:00
93afd8e430 Revert "add key dedupe when a write buffer writeback to an empty read buffer bucket."
This reverts commit 971a4f57cc.

Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-01-19 08:58:27 -08:00
82562abc3c Fix test issue in TestScheduleCompaction
It always reuse the same memory space. Each next iteration
will always overwrite previous data

Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-01-19 15:29:51 +00:00
fe03e168a3 *: fix golangci error-strings issues
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-01-18 16:43:55 -08:00
d5d7ef7f91 dependency: upgrade go to 1.21.6
Signed-off-by: Ivan Valdes <ivan@vald.es>
2024-01-18 14:12:19 -08:00
=
feba3ed861 Added container tools to devcontainer for debugging prow jobs
Co-authored-by: James Blair <mail@jamesblair.net>
Signed-off-by: = <abby.crimlis@outlook.com>
2024-01-19 10:38:18 +13:00
e5665a7ef2 Merge pull request #17271 from ahrtr/changelog_34_20240118
Add changelog for 3.4.30 to cover the nil pointer log panicking issue
2024-01-18 18:03:15 +00:00
69f8699d23 Merge pull request #17253 from etcd-io/dependabot/github_actions/actions/upload-artifact-4.1.0
build(deps): bump actions/upload-artifact from 4.0.0 to 4.1.0
2024-01-18 12:10:30 +00:00
82937fbdc0 Add changelog for 3.4.30 to cover the nil pointer log panicking issue
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-01-18 10:27:09 +00:00
8fb4c41251 Merge pull request #17264 from jmhbnz/weekly-dependency-update
[2024-01-15] Bump dependencies identified by dependabot
2024-01-18 09:42:02 +00:00
8cfd1f550b depdendency: bump golang.org/x/net from 0.19.0 to 0.20.0.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-01-17 22:33:22 +13:00
7a7d4684df depdendency: bump github.com/prometheus/common from 0.45.0 to 0.46.0.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-01-17 22:28:43 +13:00
f0d73c9d12 Separate robustness test scenarios and increase number of times we run exploratory tests in nightly
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-01-16 17:17:54 +01:00
c37991cf8b Validate watch even if event history cannot be created
Creation of event history requires each client to return consistent
events. If clients observed inconsistent view of some revision, merging
will fail and return diff between two clients. This however doesn't
provide hint on what kind of issue happend.

This PR helps cases where there is an error with single watch
stream (like event duplication) by running normal watch validation even
without full event history.

Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2024-01-16 16:04:03 +01:00
e3c70c8a99 Merge pull request #17249 from ahrtr/meta_bucket_20240115
Replace `CreateBucket` with `CreateBucketIfNotExists`
2024-01-16 10:22:54 +00:00
690916f018 replace CreateBucket with CreateBucketIfNotExists
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-01-16 09:40:20 +00:00
044e17ba5b build(deps): bump actions/upload-artifact from 4.0.0 to 4.1.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](c7d193f32e...1eb3cb2b3e)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-15 17:15:00 +00:00
4bc55e5208 Merge pull request #17204 from rahulbapumore/branch1
mvcc: Printing etcd backend database related metrics inside scheduleCompaction function
2024-01-15 15:37:08 +00:00
fbcfd4e942 Merge pull request #17244 from ahrtr/raft_changelog_20240115
Migrate the raft changes to raft's changelog
2024-01-15 13:29:51 +00:00
21bbc82710 mvcc: Printing etcd backend database related metrics inside
scheduleCompaction function

To improve traceability of backend database usage, Added below parameter
related to backend database usage metrics inside scheduledCompaction
function.
current-db-size-bytes
current-db-size
current-db-size-in-use-bytes
current-db-size-in-use

Signed-off-by: Rahul More <rahulbapumore@gmail.com>
2024-01-15 17:36:38 +05:30
6abc942abe Migrate the raft changes to raft's changelog
refer to https://github.com/etcd-io/raft/pull/125

Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-01-15 10:40:56 +00:00
c8b4b168af Merge pull request #17235 from fuweid/fix-17223
integration: deflake TestMaintenanceSnapshotCancel
2024-01-14 13:24:50 +00:00
9ded10ec76 Merge pull request #17237 from ahrtr/bbolt_logger_20240112
Specify logger for bbolt
2024-01-13 11:03:14 +00:00
10bf636f0e Merge pull request #17229 from iiamabby/yamllint-install
Ensure bin/python directory is cleaned after install
2024-01-13 10:49:59 +00:00
ed994248e0 Merge pull request #17228 from siyuanfoundation/txBuf1
Fix tx buffer inconsistency if there are duplicate keys in one tx.
2024-01-12 18:34:35 +00:00
cfbf672b3c specify logger for bbolt
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-01-12 16:38:18 +00:00
40f22e9319 Merge pull request #17176 from YaoC/fix-learner-metric
server: fix learner metric incorrect issue
2024-01-12 17:37:46 +01:00
8b9e1799ad Merge pull request #17236 from ahrtr/bump_core_dependencies_20240112
Bump core dependencies bbolt and raft
2024-01-12 16:29:18 +00:00
cf648e8503 bump raft to v3.6.0-alpha.0
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-01-12 15:30:11 +00:00
f2ada58144 bump bbolt to 1.4.0-alpha.0
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-01-12 15:27:48 +00:00
b2cc2fb6e5 Merge pull request #17234 from ahrtr/contribution_20240112
Update contributing guide to ensure there is an associated issue for each PR
2024-01-12 12:05:02 +00:00
fdf1e28a3f integration: deflake TestMaintenanceSnapshotCancel
Unlike SnapshotWithVersion, the client.Snapshot doesn't wait for first
response. The server could open db after we close connection or shutdown
the server. We can read few bytes to ensure server opens boltdb.

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2024-01-12 19:24:10 +08:00
f7d264d1ef update contributing guide to ensure there is an associated issue for each PR
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-01-12 10:36:10 +00:00
f7ab7adf29 server: fix learner metric incorrect issue
Signed-off-by: YaoC <chengyao09@hotmail.com>
2024-01-12 09:36:33 +00:00
=
a9b5768312 Ensure bin/python directory is cleaned after install
Co-authored-by: James Blair <mail@jamesblair.net>
Signed-off-by: = <abby.crimlis@outlook.com>
2024-01-12 09:41:06 +13:00
971a4f57cc add key dedupe when a write buffer writeback to an empty read buffer bucket.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-01-11 11:31:09 -08:00
8d29b245a3 add test cases of duplicate keys in one tx.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-01-11 11:31:03 -08:00
b3bf59a355 Merge pull request #17195 from siyuanfoundation/txBuf1
Fix delete inconsistencies in read buffer
2024-01-11 08:21:47 +00:00
db61c9695d commit bbolt transaction if there is any pending deleting operations
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-01-10 09:33:21 -08:00
b3a5307640 add tests to test tx delete consistency.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-01-10 09:33:13 -08:00
85bc29388a Merge pull request #17209 from etcd-io/dependabot/github_actions/github/codeql-action-3.23.0
build(deps): bump github/codeql-action from 3.22.12 to 3.23.0
2024-01-10 10:26:20 +00:00
8e2ba574e4 Merge pull request #17174 from jmhbnz/adopt-kubernetes-priorities
Adopt kubernetes issue priorities
2024-01-10 10:18:00 +00:00
a73078928d Merge pull request #17219 from devincd/fix-usage
Fix Struct Config has methods on both value and pointer receivers. Such usage is not recommended by the Go Documentation.
2024-01-10 09:47:05 +00:00
75f8d42f7a Merge pull request #17225 from sharathsivakumar/shsi/dep_mgmt
docs: update rotation worksheet
2024-01-10 07:18:47 +00:00
7c87fc9aa7 docs: update rotation worksheet
Signed-off-by: Sharath Sivakumar <mailssr9@gmail.com>
2024-01-09 21:22:15 +01:00
61c70c0d96 Merge pull request #17220 from sharathsivakumar/shsi/bump_deps_12
Bump dependencies manually
2024-01-09 19:25:47 +00:00
1800796359 Merge pull request #17221 from fuweid/update-changelog
CHANGELOG: update changes for v3.4.29
2024-01-09 19:04:36 +00:00
28f4c6fef6 dependency: bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.18.1 to 2.19.0
Signed-off-by: Sharath Sivakumar <mailssr9@gmail.com>
2024-01-09 16:26:47 +01:00
6706d9de2a CHANGELOG: update changes for v3.4.29
Signed-off-by: Wei Fu <fuweid89@gmail.com>
2024-01-09 23:22:18 +08:00
98646057d6 dependency: bump golang.org/x/sys from 0.15.0 to 0.16.0
Signed-off-by: Sharath Sivakumar <mailssr9@gmail.com>
2024-01-09 16:04:19 +01:00
931687f87e fix Struct Config has methods on both value and pointer receivers. Such usage is not recommended by the Go Documentation.
Signed-off-by: devincd <505259926@qq.com>
2024-01-09 17:42:59 +08:00
ac6369d3a7 build(deps): bump github/codeql-action from 3.22.12 to 3.23.0
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.22.12 to 3.23.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](012739e508...e5f05b81d5)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-08 17:11:17 +00:00
06f7db1b09 Update roadmap to use new issue priorities.
Signed-off-by: James Blair <mail@jamesblair.net>
2024-01-04 04:45:49 +13:00
8ec4b290d6 Document issue prioritisation labels.
Signed-off-by: James Blair <mail@jamesblair.net>
2023-12-29 04:57:22 +13:00
a00ec2e918 etcd: Add OpenBSD-specific files for SetKeepAlivePeriod handling
Added keepalive_listener_unix.go and keepalive_listener_openbsd.go to
handle SetKeepAlivePeriod() specially on OpenBSD.

Signed-off-by: Ruize Tang <1466040111@qq.com>
2023-05-03 14:51:34 +08:00
837 changed files with 34486 additions and 19997 deletions

View File

@ -2,22 +2,21 @@
// README at: https://github.com/devcontainers/templates/tree/main/src/go
{
"name": "Go",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"image": "mcr.microsoft.com/devcontainers/go:1.21-bookworm",
"image": "mcr.microsoft.com/devcontainers/go:1.24-bookworm",
// Features to add to the dev container. More info: https://containers.dev/features.
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
"ghcr.io/devcontainers/features/github-cli:1": {}
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
"ghcr.io/devcontainers/features/github-cli:1": {},
"ghcr.io/devcontainers/features/kubectl-helm-minikube:1": {}
},
// Use 'forwardPorts' to make a list of ports inside the container available locally.
"forwardPorts": [2379, 2380],
"forwardPorts": [
2379,
2380
],
// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "make build"
// Configure tool-specific properties.
// "customizations": {},
}
}

View File

@ -10,7 +10,7 @@ body:
label: Bug report criteria
description: Please confirm this bug report meets the following criteria.
options:
- label: This bug report is not security related, security issues should be disclosed privately via security@etcd.io.
- label: This bug report is not security related, security issues should be disclosed privately via [etcd maintainers](mailto:etcd-maintainers@googlegroups.com).
- label: This is not a support request or question, support requests or questions should be raised in the etcd [discussion forums](https://github.com/etcd-io/etcd/discussions).
- label: You have read the etcd [bug reporting guidelines](https://github.com/etcd-io/etcd/blob/main/Documentation/contributor-guide/reporting_bugs.md).
- label: Existing open issues along with etcd [frequently asked questions](https://etcd.io/docs/latest/faq) have been checked and this is not a duplicate.

View File

@ -1,31 +0,0 @@
---
name: Membership nomination
description: Nominate new etcd members
labels:
- area/community
body:
- type: textarea
id: feature
attributes:
label: Who would you like to nominate?
validations:
required: true
- id: requirements
type: checkboxes
attributes:
label: Requirements
options:
- label: I have reviewed the [community membership guidelines](https://github.com/etcd-io/etcd/blob/main/Documentation/contributor-guide/community-membership.md)
required: true
- label: The members are actively contributing to 1 or more etcd subprojects
required: true
- label: The members are being sponsored by two current reviewers or a current maintainer.
required: true
- type: textarea
id: rationale
attributes:
label: How do the new members meet the regular active contribution requirements?
validations:
required: true

View File

@ -8,7 +8,7 @@ body:
- type: textarea
id: workflows
attributes:
label: Which github workflows are flaking?
label: Which Github Action / Prow Jobs are flaking?
validations:
required: true
@ -22,7 +22,7 @@ body:
- type: input
id: link
attributes:
label: Github Action link
label: Github Action / Prow Job link
- type: textarea
id: reason

4
.github/OWNERS vendored Normal file
View File

@ -0,0 +1,4 @@
# See the OWNERS docs at https://go.k8s.io/owners
approvers:
- ivanvc # Ivan Valdes <ivan@vald.es>

View File

@ -18,9 +18,21 @@ updates:
schedule:
interval: weekly
allow:
- dependency-type: all
- dependency-type: direct
- package-ecosystem: docker
directory: /
schedule:
interval: weekly
- package-ecosystem: docker
directory: /
target-branch: "release-3.4"
schedule:
interval: monthly
- package-ecosystem: docker
directory: /
target-branch: "release-3.5"
schedule:
interval: monthly

4
.github/workflows/OWNERS vendored Normal file
View File

@ -0,0 +1,4 @@
# See the OWNERS docs at https://go.k8s.io/owners
labels:
- github_actions

View File

@ -1,67 +0,0 @@
---
name: Build
on: [push, pull_request]
permissions: read-all
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target:
- linux-amd64
- linux-386
- darwin-amd64
- darwin-arm64
- windows-amd64
- linux-arm
- linux-arm64
- linux-ppc64le
- linux-s390x
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- id: goversion
run: echo "goversion=$(cat .go-version)" >> "$GITHUB_OUTPUT"
- uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
with:
go-version: ${{ steps.goversion.outputs.goversion }}
- env:
TARGET: ${{ matrix.target }}
run: |
set -euo pipefail
echo "${TARGET}"
case "${TARGET}" in
linux-amd64)
GOOS=linux GOARCH=amd64 make build
;;
linux-386)
GOOS=linux GOARCH=386 make build
;;
darwin-amd64)
GOOS=darwin GOARCH=amd64 make build
;;
darwin-arm64)
GOOS=darwin GOARCH=arm64 make build
;;
windows-amd64)
GOOS=windows GOARCH=amd64 make build
;;
linux-arm)
GOOS=linux GOARCH=arm make build
;;
linux-arm64)
GOOS=linux GOARCH=arm64 make build
;;
linux-ppc64le)
GOOS=linux GOARCH=ppc64le make build
;;
linux-s390x)
GOOS=linux GOARCH=s390x make build
;;
*)
echo "Failed to find target"
exit 1
;;
esac

View File

@ -37,10 +37,10 @@ jobs:
language: ['go']
steps:
- name: Checkout repository
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@012739e5082ff0c22ca6d6ab32e07c36df03c4a4 # v3.22.12
uses: github/codeql-action/init@6bb031afdd8eb862ea3fc1848194185e076637e5 # v3.28.11
with:
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
@ -50,6 +50,6 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@012739e5082ff0c22ca6d6ab32e07c36df03c4a4 # v3.22.12
uses: github/codeql-action/autobuild@6bb031afdd8eb862ea3fc1848194185e076637e5 # v3.28.11
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@012739e5082ff0c22ca6d6ab32e07c36df03c4a4 # v3.22.12
uses: github/codeql-action/analyze@6bb031afdd8eb862ea3fc1848194185e076637e5 # v3.28.11

View File

@ -1,18 +0,0 @@
---
name: Test contrib/mixin
on: [push, pull_request]
permissions: read-all
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- id: goversion
run: echo "goversion=$(cat .go-version)" >> "$GITHUB_OUTPUT"
- uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
with:
go-version: ${{ steps.goversion.outputs.goversion }}
- run: |
set -euo pipefail
make -C contrib/mixin tools test

View File

@ -1,32 +0,0 @@
---
name: Coverage
on: [push]
permissions: read-all
jobs:
coverage:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target:
- linux-amd64-coverage
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- id: goversion
run: echo "goversion=$(cat .go-version)" >> "$GITHUB_OUTPUT"
- uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
with:
go-version: ${{ steps.goversion.outputs.goversion }}
- env:
TARGET: ${{ matrix.target }}
run: |
mkdir "${TARGET}"
case "${TARGET}" in
linux-amd64-coverage)
GOARCH=amd64 ./scripts/codecov_upload.sh
;;
*)
echo "Failed to find target"
exit 1
;;
esac

View File

@ -1,37 +0,0 @@
---
name: E2E-Arm64
on: [push, pull_request]
permissions: read-all
jobs:
test:
# this is to prevent the job to run at forked projects
if: github.repository == 'etcd-io/etcd'
runs-on: actuated-arm64-8cpu-8gb
strategy:
fail-fast: false
matrix:
target:
- linux-arm64-e2e
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- id: goversion
run: echo "goversion=$(cat .go-version)" >> "$GITHUB_OUTPUT"
- uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
with:
go-version: ${{ steps.goversion.outputs.goversion }}
- env:
TARGET: ${{ matrix.target }}
run: |
set -euo pipefail
go clean -testcache
echo "${TARGET}"
case "${TARGET}" in
linux-arm64-e2e)
GOOS=linux GOARCH=arm64 CPU=4 EXPECT_DEBUG=true make test-e2e-release
;;
*)
echo "Failed to find target"
exit 1
;;
esac

View File

@ -1,40 +0,0 @@
---
name: E2E
on: [push, pull_request]
permissions: read-all
jobs:
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target:
- linux-amd64-e2e
- linux-386-e2e
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- id: goversion
run: echo "goversion=$(cat .go-version)" >> "$GITHUB_OUTPUT"
- uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
with:
go-version: ${{ steps.goversion.outputs.goversion }}
- env:
TARGET: ${{ matrix.target }}
run: |
set -euo pipefail
go clean -testcache
echo "${TARGET}"
case "${TARGET}" in
linux-amd64-e2e)
make gofail-enable
VERBOSE=1 GOOS=linux GOARCH=amd64 CPU=4 EXPECT_DEBUG=true make test-e2e-release
;;
linux-386-e2e)
VERBOSE=1 GOOS=linux GOARCH=386 CPU=4 EXPECT_DEBUG=true make test-e2e
;;
*)
echo "Failed to find target"
exit 1
;;
esac

View File

@ -1,26 +0,0 @@
---
name: Fuzzing v3rpc
on: [push, pull_request]
permissions: read-all
jobs:
fuzzing:
runs-on: ubuntu-latest
strategy:
fail-fast: false
env:
TARGET_PATH: ./server/etcdserver/api/v3rpc
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- id: goversion
run: echo "goversion=$(cat .go-version)" >> "$GITHUB_OUTPUT"
- uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
with:
go-version: ${{ steps.goversion.outputs.goversion }}
- run: |
set -euo pipefail
GOARCH=amd64 CPU=4 make fuzz
- uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392 # v4.0.0
if: failure()
with:
path: "${{env.TARGET_PATH}}/testdata/fuzz/**/*"

View File

@ -1,5 +1,6 @@
---
name: Approve GitHub Workflows
permissions: read-all
on:
pull_request_target:

View File

@ -1,19 +0,0 @@
---
name: Go Vulnerability Checker
on: [push, pull_request]
permissions: read-all
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- id: goversion
run: echo "goversion=$(cat .go-version)" >> "$GITHUB_OUTPUT"
- uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
with:
go-version: ${{ steps.goversion.outputs.goversion }}
- run: date
- run: |
set -euo pipefail
go install golang.org/x/vuln/cmd/govulncheck@latest && govulncheck ./...

View File

@ -1,38 +0,0 @@
---
name: grpcProxy-tests
on: [push, pull_request]
permissions: read-all
jobs:
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target:
- linux-amd64-grpcproxy-integration
- linux-amd64-grpcproxy-e2e
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- id: goversion
run: echo "goversion=$(cat .go-version)" >> "$GITHUB_OUTPUT"
- uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
with:
go-version: ${{ steps.goversion.outputs.goversion }}
- env:
TARGET: ${{ matrix.target }}
run: |
set -euo pipefail
echo "${TARGET}"
case "${TARGET}" in
linux-amd64-grpcproxy-integration)
GOOS=linux GOARCH=amd64 CPU=4 make test-grpcproxy-integration
;;
linux-amd64-grpcproxy-e2e)
GOOS=linux GOARCH=amd64 CPU=4 make test-grpcproxy-e2e
;;
*)
echo "Failed to find target"
exit 1
;;
esac

View File

@ -1,23 +0,0 @@
---
name: Measure Test Flakiness
on:
schedule:
- cron: "0 0 * * 0" # run every Sunday at midnight
permissions: read-all
jobs:
measure-test-flakiness:
name: Measure Test Flakiness
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
set -euo pipefail
./scripts/measure-test-flakiness.sh
make bin/etcd-test-analyzer
bin/etcd-test-analyzer run -token $GITHUB_TOKEN -max-age=168h -workflow Tests -branch main

View File

@ -0,0 +1,26 @@
---
name: Measure TestGrid Flakiness
on:
schedule:
- cron: "0 0 * * *" # run every day at midnight
permissions: read-all
jobs:
measure-testgrid-flakiness:
name: Measure TestGrid Flakiness
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- id: goversion
run: echo "goversion=$(cat .go-version)" >> "$GITHUB_OUTPUT"
- uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0
with:
go-version: ${{ steps.goversion.outputs.goversion }}
- env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
set -euo pipefail
./scripts/measure-testgrid-flakiness.sh

View File

@ -1,34 +0,0 @@
---
name: Release
on: [push, pull_request]
permissions: read-all
jobs:
main:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- id: goversion
run: echo "goversion=$(cat .go-version)" >> "$GITHUB_OUTPUT"
- uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
with:
go-version: ${{ steps.goversion.outputs.goversion }}
- name: release
run: |
set -euo pipefail
git config --global user.email "github-action@etcd.io"
git config --global user.name "Github Action"
gpg --batch --gen-key <<EOF
%no-protection
Key-Type: 1
Key-Length: 2048
Subkey-Type: 1
Subkey-Length: 2048
Name-Real: Github Action
Name-Email: github-action@etcd.io
Expire-Date: 0
EOF
DRY_RUN=true ./scripts/release.sh --no-upload --no-docker-push --in-place 3.6.99
- name: test-image
run: |
VERSION=3.6.99 ./scripts/test_images.sh

View File

@ -1,54 +0,0 @@
---
name: Robustness Nightly
permissions: read-all
on:
# schedules always run against the main branch, hence we have to create separate jobs
# with individual checkout actions for each of the active release branches
schedule:
- cron: '25 9 * * *' # runs every day at 09:25 UTC
# workflow_dispatch enables manual testing of this job by maintainers
workflow_dispatch:
jobs:
main:
# GHA has a maximum amount of 6h execution time, we try to get done within 3h
uses: ./.github/workflows/robustness-template.yaml
with:
etcdBranch: main
count: 80
testTimeout: 200m
artifactName: main
runs-on: "['ubuntu-latest-8-cores']"
main-arm64:
uses: ./.github/workflows/robustness-template.yaml
with:
etcdBranch: main
count: 80
testTimeout: 200m
artifactName: main-arm64
runs-on: "['actuated-arm64-8cpu-8gb']"
release-35:
uses: ./.github/workflows/robustness-template.yaml
with:
etcdBranch: release-3.5
count: 80
testTimeout: 200m
artifactName: release-35
runs-on: "['ubuntu-latest-8-cores']"
release-35-arm64:
uses: ./.github/workflows/robustness-template.yaml
with:
etcdBranch: release-3.5
count: 100
testTimeout: 200m
artifactName: release-35-arm64
runs-on: "['actuated-arm64-8cpu-8gb']"
release-34:
uses: ./.github/workflows/robustness-template.yaml
with:
etcdBranch: release-3.4
count: 80
testTimeout: 200m
artifactName: release-34
runs-on: "['ubuntu-latest-8-cores']"

View File

@ -1,70 +0,0 @@
---
name: Reusable Robustness Workflow
on:
workflow_call:
inputs:
etcdBranch:
required: true
type: string
count:
required: true
type: number
testTimeout:
required: false
type: string
default: '30m'
artifactName:
required: true
type: string
runs-on:
required: false
type: string
default: "['ubuntu-latest']"
permissions: read-all
jobs:
test:
timeout-minutes: 210
runs-on: ${{ fromJson(inputs.runs-on) }}
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- id: goversion
run: echo "goversion=$(cat .go-version)" >> "$GITHUB_OUTPUT"
- uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
with:
go-version: ${{ steps.goversion.outputs.goversion }}
- name: test-robustness
env:
ETCD_BRANCH: "${{ inputs.etcdBranch }}"
run: |
set -euo pipefail
go clean -testcache
# Build LazyFS
sudo apt update && sudo apt-get --yes install cmake libfuse3-dev libfuse3-3 fuse3
sudo sed -i 's/#user_allow_other/user_allow_other/g' /etc/fuse.conf
make install-lazyfs
# Use --failfast to avoid overriding report generated by failed test
GO_TEST_FLAGS="-v --count ${{ inputs.count }} --timeout ${{ inputs.testTimeout }} --failfast --run TestRobustness"
case "${ETCD_BRANCH}" in
release-3.5)
EXPECT_DEBUG=true GO_TEST_FLAGS=${GO_TEST_FLAGS} RESULTS_DIR=/tmp/results make test-robustness-release-3.5
;;
release-3.4)
EXPECT_DEBUG=true GO_TEST_FLAGS=${GO_TEST_FLAGS} RESULTS_DIR=/tmp/results make test-robustness-release-3.4
;;
main)
make gofail-enable
make build
EXPECT_DEBUG=true GO_TEST_FLAGS=${GO_TEST_FLAGS} RESULTS_DIR=/tmp/results make test-robustness
;;
*)
echo "Failed to find target ${ETCD_BRANCH}"
exit 1
;;
esac
- uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392 # v4.0.0
if: always()
with:
name: ${{ inputs.artifactName }}
path: /tmp/results/*

View File

@ -1,21 +0,0 @@
---
name: Robustness
on: [push, pull_request]
permissions: read-all
jobs:
main:
uses: ./.github/workflows/robustness-template.yaml
with:
etcdBranch: main
count: 12
testTimeout: 30m
artifactName: main
runs-on: "['ubuntu-latest-8-cores']"
main-arm64:
uses: ./.github/workflows/robustness-template.yaml
with:
etcdBranch: main
count: 12
testTimeout: 30m
artifactName: main-arm64
runs-on: "['actuated-arm64-8cpu-8gb']"

View File

@ -23,12 +23,12 @@ jobs:
steps:
- name: "Checkout code"
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- name: "Run analysis"
uses: ossf/scorecard-action@0864cf19026789058feabb7e87baa5f140aac736 # v2.3.1
uses: ossf/scorecard-action@f49aabe0b5af0936a0987cfb85d86b75731b0186 # v2.4.1
with:
results_file: results.sarif
results_format: sarif
@ -42,7 +42,7 @@ jobs:
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
# format to the repository Actions tab.
- name: "Upload artifact"
uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392 # v4.0.0
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1
with:
name: SARIF file
path: results.sarif
@ -50,6 +50,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard.
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@012739e5082ff0c22ca6d6ab32e07c36df03c4a4 # v3.22.12
uses: github/codeql-action/upload-sarif@6bb031afdd8eb862ea3fc1848194185e076637e5 # v3.28.11
with:
sarif_file: results.sarif

View File

@ -1,51 +0,0 @@
---
name: Static Analysis
on: [push, pull_request]
permissions: read-all
jobs:
run:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- id: goversion
run: echo "goversion=$(cat .go-version)" >> "$GITHUB_OUTPUT"
- uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
with:
go-version: ${{ steps.goversion.outputs.goversion }}
- id: golangci_lint_version
run: echo "golangci_lint_version=$(cd tools/mod && go list -m -f {{.Version}} github.com/golangci/golangci-lint)" >> "$GITHUB_OUTPUT"
- name: golangci-lint
uses: golangci/golangci-lint-action@3a919529898de77ec3da873e3063ca4b10e7f5cc # v3.7.0
with:
version: ${{ steps.golangci_lint_version.outputs.golangci_lint_version }}
args: --config tools/.golangci.yaml
- name: protoc
uses: arduino/setup-protoc@149f6c87b92550901b26acd1632e11c3662e381f # v1.3.0
with:
version: '3.20.3'
repo-token: ${{ secrets.GITHUB_TOKEN }}
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
- run: |
set -euo pipefail
cargo install marker --version 0.9.0
- run: |
set -euo pipefail
make verify
- run: |
set -euo pipefail
make fix
DIFF=$(git status --porcelain)
if [ -n "$DIFF" ]; then
echo "These files were modified:"
echo
echo "$DIFF"
echo
exit 1
fi

View File

@ -1,73 +0,0 @@
---
name: Reusable Tests Workflow
on:
workflow_call:
inputs:
arch:
required: true
type: string
runs-on:
required: true
type: string
permissions: read-all
jobs:
test:
runs-on: ${{ inputs.runs-on }}
# this is to prevent arm64 jobs from running at forked projects
if: inputs.arch == 'amd64' || github.repository == 'etcd-io/etcd'
strategy:
fail-fast: false
matrix:
target:
- linux-${{ inputs.arch }}-integration-1-cpu
- linux-${{ inputs.arch }}-integration-2-cpu
- linux-${{ inputs.arch }}-integration-4-cpu
- linux-${{ inputs.arch }}-unit-4-cpu
- linux-386-unit-1-cpu
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- id: goversion
run: echo "goversion=$(cat .go-version)" >> "$GITHUB_OUTPUT"
- uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
with:
go-version: ${{ steps.goversion.outputs.goversion }}
- env:
TARGET: ${{ matrix.target }}
run: |
set -euo pipefail
go clean -testcache
mkdir "${TARGET}"
export JUNIT_REPORT_DIR=$(realpath ${TARGET})
case "${TARGET}" in
linux-${{ inputs.arch }}-integration-1-cpu)
make gofail-enable
GOOS=linux GOARCH=${{ inputs.arch }} CPU=1 make test-integration
;;
linux-${{ inputs.arch }}-integration-2-cpu)
make gofail-enable
GOOS=linux GOARCH=${{ inputs.arch }} CPU=2 make test-integration
;;
linux-${{ inputs.arch }}-integration-4-cpu)
make gofail-enable
GOOS=linux GOARCH=${{ inputs.arch }} CPU=4 make test-integration
;;
linux-${{ inputs.arch }}-unit-4-cpu)
GOOS=linux GOARCH=${{ inputs.arch }} CPU=4 GO_TEST_FLAGS='-p=2' make test-unit
;;
linux-386-unit-1-cpu)
# skip running single-threaded 386 unit tests only if arch is arm64
if [ "${{ inputs.arch }}" == "arm64" ]; then exit; fi
GOOS=linux GOARCH=386 CPU=1 GO_TEST_FLAGS='-p=4' make test-unit
;;
*)
echo "Failed to find target"
exit 1
;;
esac
- uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392 # v4.0.0
if: always()
with:
name: "${{ matrix.target }}"
path: ./**/junit_*.xml

View File

@ -1,15 +0,0 @@
---
name: Tests
on: [push, pull_request]
permissions: read-all
jobs:
amd64:
uses: ./.github/workflows/tests-template.yaml
with:
arch: amd64
runs-on: ubuntu-latest
arm64:
uses: ./.github/workflows/tests-template.yaml
with:
arch: arm64
runs-on: actuated-arm64-8cpu-8gb

View File

@ -0,0 +1,44 @@
---
name: Verify released binary assets
permissions: read-all
on:
release:
types: [published]
jobs:
verify-assets:
name: Verify released binary assets
runs-on: ubuntu-latest
steps:
- name: Verify binary assets
env:
GH_TOKEN: ${{ github.token }}
RELEASE: ${{ github.event.release.tag_name }}
REPOSITORY: ${{ github.repository }}
run: |
mkdir github-assets
pushd github-assets
gh --repo "${REPOSITORY}" release download "${RELEASE}"
test_assets() {
if [ "$(wc -l <SHA256SUMS)" != "$(find . -name 'etcd-*' | wc -l)" ]; then
echo "::error:: Invalid number of assets"
exit 1
fi
sha256sum -c SHA256SUMS
}
test_assets
popd
mkdir google-assets
for file in github-assets/*; do
file=$(basename "${file}")
echo "Downloading ${file} from Google..."
curl "https://storage.googleapis.com/etcd/${RELEASE}/${file}" \
--fail \
-o "google-assets/${file}"
done
pushd google-assets
test_assets

View File

@ -1 +1 @@
1.21.5
1.24.1

View File

@ -212,7 +212,7 @@ At [Branch][branch], we use kubernetes heavily as our core microservice platform
## Baidu Waimai
- *Application*: SkyDNS, Kubernetes, UDC, CMDB and other distributed systems
- *Launched*: April. 2016
- *Launched*: April 2016
- *Cluster Size*: 3 clusters of 5 members
- *Order of Data Size*: several gigabytes
- *Operator*: Baidu Waimai Operations Department
@ -248,3 +248,13 @@ At [Branch][branch], we use kubernetes heavily as our core microservice platform
- *Operator*: Trasnwarp Operating System
- *Environment*: Bare Metal, Container
- *Backups*: backup scripts
## Cyberfusion
- *Application*: cluster configuration management
- *Launched*: February 2023
- *Cluster Size*: single cluster, 3 nodes
- *Order of Data Size*: kilobytes
- *Operator*: Cyberfusion
- *Environment*: Debian on VMs
- *Backups*: periodic `etcdctl snapshot save` + rotation in cron. More about our setup: https://cyberfusion.io/articles/building-hosting-infrastructure-in-2024-configuration-management-part-1

View File

@ -2,11 +2,131 @@
Previous change logs can be found at [CHANGELOG-3.3](https://github.com/etcd-io/etcd/blob/main/CHANGELOG/CHANGELOG-3.3.md).
## v3.4.29 (tbd)
<hr>
## v3.4.37 (TBC)
### Dependencies
- Bump [golang.org/x/net to v0.36.0 to address CVE-2025-22870](https://github.com/etcd-io/etcd/pull/19529).
- Compile binaries using [go 1.23.7](https://github.com/etcd-io/etcd/pull/19533)
<hr>
## v3.4.36 (2025-02-25)
### etcd server
- [Avoid deadlock in etcd.Close when stopping during bootstrapping](https://github.com/etcd-io/etcd/pull/19166)
- Fix [missing delete event on watch opened on same revision as compaction request](https://github.com/etcd-io/etcd/pull/19251)
### Package `clientv3`
- Fix [runtime panic that occurs when KeepAlive is called with a Context implemented by an uncomparable type](https://github.com/etcd-io/etcd/pull/18936)
### Dependencies
- Compile binaries using [go 1.23.6](https://github.com/etcd-io/etcd/pull/19429)
- Bump golang.org/x/crypto to v0.35.0 to address [CVE-2024-45337](https://github.com/etcd-io/etcd/pull/19197) and [CVE-2025-22869](https://github.com/etcd-io/etcd/pull/19477).
- Bump golang.org/x/net to v0.34.0 to address [CVE-2024-45338](https://github.com/etcd-io/etcd/pull/19197).
<hr>
## v3.4.35 (2024-11-12)
### etcd server
- Fix [watchserver related goroutine leakage](https://github.com/etcd-io/etcd/pull/18785)
- Fix [panicking occurred due to improper error handling during defragmentation](https://github.com/etcd-io/etcd/pull/18843)
- Fix [close temp file(s) in case an error happens during defragmentation](https://github.com/etcd-io/etcd/pull/18855)
### Dependencies
- Compile binaries using [go 1.22.9](https://github.com/etcd-io/etcd/pull/18850).
<hr>
## v3.4.34 (2024-09-11)
### etcd server
- Fix [performance regression issue caused by the `ensureLeadership` in lease renew](https://github.com/etcd-io/etcd/pull/18440).
- [Keep the tombstone during compaction if it happens to be the compaction revision](https://github.com/etcd-io/etcd/pull/18475)
### Package clientv3
- [Print gRPC metadata in guaranteed order using the official go fmt pkg](https://github.com/etcd-io/etcd/pull/18311).
### Dependencies
- Compile binaries using [go 1.22.7](https://github.com/etcd-io/etcd/pull/18549).
- Upgrade [bbolt to 1.3.11](https://github.com/etcd-io/etcd/pull/18488).
<hr>
## v3.4.33 (2024-06-13)
### etcd grpc-proxy
- Fix [Memberlist results not updated when proxy node down](https://github.com/etcd-io/etcd/pull/17896).
### Dependencies
- Compile binaries using go [1.21.11](https://github.com/etcd-io/etcd/pull/18130).
- Upgrade [bbolt to 1.3.10](https://github.com/etcd-io/etcd/pull/17945).
<hr>
## v3.4.32 (2024-04-25)
### etcd server
- Fix [LeaseTimeToLive returns error if leader changed](https://github.com/etcd-io/etcd/pull/17705).
- Fix [ignore raft messages if member id mismatch](https://github.com/etcd-io/etcd/pull/17814).
- Update [the compaction log when bootstrap](https://github.com/etcd-io/etcd/pull/17831).
- [Allow new server to join 3.5 cluster if `next-cluster-version-compatible=true`](https://github.com/etcd-io/etcd/pull/17665)
- [Allow updating the cluster version when downgrading from 3.5](https://github.com/etcd-io/etcd/pull/17821).
- Fix [Revision decreasing after panic during compaction](https://github.com/etcd-io/etcd/pull/17864)
### Package `clientv3`
- Add [requests retry when receiving ErrGPRCNotSupportedForLearner and endpoints > 1](https://github.com/etcd-io/etcd/pull/17692).
- Fix [initialization for epMu in client context](https://github.com/etcd-io/etcd/pull/17714).
### Dependencies
- Compile binaries using [go 1.21.9](https://github.com/etcd-io/etcd/pull/17709).
<hr>
## v3.4.31 (2024-03-21)
### etcd server
- Add [mvcc: print backend database size and size in use in compaction logs](https://github.com/etcd-io/etcd/pull/17436).
- Fix leases wrongly revoked by the leader by [ignoring old leader's leases revoking request](https://github.com/etcd-io/etcd/pull/17465).
- Fix [no progress notification being sent for watch that doesn't get any events](https://github.com/etcd-io/etcd/pull/17567).
- Fix [watch event loss after compaction](https://github.com/etcd-io/etcd/pull/17610).
- Add `next-cluster-version-compatible` flag to [allow downgrade from 3.5](https://github.com/etcd-io/etcd/pull/17330).
### Package `clientv3`
- Add [client backoff and retry config options](https://github.com/etcd-io/etcd/pull/17369).
### Dependencies
- Upgrade [bbolt to 1.3.9](https://github.com/etcd-io/etcd/pull/17484).
- Compile binaries using [go 1.21.8](https://github.com/etcd-io/etcd/pull/17538).
- Upgrade [google.golang.org/protobuf to v1.33.0 to address CVE-2024-24786](https://github.com/etcd-io/etcd/pull/17554).
- Upgrade github.com/sirupsen/logrus to v1.9.3 to address [PRISMA-2023-0056](https://github.com/etcd-io/etcd/pull/17580).
### Others
- [Make CGO_ENABLED configurable](https://github.com/etcd-io/etcd/pull/17422).
<hr>
## v3.4.30 (2024-01-31)
### etcd server
- Fix [nil pointer panicking due to using the wrong log library](https://github.com/etcd-io/etcd/pull/17270)
### Dependencies
- Compile binaries using go [1.20.13](https://github.com/etcd-io/etcd/pull/17276).
- Upgrade [golang.org/x/crypto to v0.17+ to address CVE-2023-48795](https://github.com/etcd-io/etcd/pull/17347).
<hr>
## v3.4.29 (2024-01-09)
### etcd server
- [Disable following HTTP redirects in peer communication](https://github.com/etcd-io/etcd/pull/17112)
- [Add livez/readyz HTTP endpoints](https://github.com/etcd-io/etcd/pull/17128)
- Fix [Check if be is nil to avoid panic when be is overriden with nil](https://github.com/etcd-io/etcd/pull/17154)
- Fix [Add missing experimental-enable-lease-checkpoint-persist flag in etcd help](https://github.com/etcd-io/etcd/pull/17189)
- Fix [Don't flock snapshot files](https://github.com/etcd-io/etcd/pull/17208)
### Dependencies
- Compile binaries using go [1.20.12](https://github.com/etcd-io/etcd/pull/17076).

View File

@ -1,19 +1,180 @@
Previous change logs can be found at [CHANGELOG-3.4](https://github.com/etcd-io/etcd/blob/main/CHANGELOG/CHANGELOG-3.4.md).
<hr>
## v3.5.21 (TBC)
<hr>
## v3.5.12 (tbd)
## v3.5.20 (2025-03-21)
### etcd server
- [Add livez/readyz HTTP endpoints](https://github.com/etcd-io/etcd/pull/17039)
- Fix [grpcproxy can get stuck in and endless loop causing high CPU usage](https://github.com/etcd-io/etcd/pull/19562)
- Fix [the learner promotion changes not being persisted into v3store (bbolt)](https://github.com/etcd-io/etcd/pull/19563)
- Update [the RLock in Demoted method for read-only access to expiry](https://github.com/etcd-io/etcd/pull/19445)
### etcdctl
- Fix [command `etcdctl member promote` doesn't support json output](https://github.com/etcd-io/etcd/pull/19602)
<hr>
## v3.5.19 (2025-03-05)
### etcd server
- Backport [add learner status check to readyz endpoint](https://github.com/etcd-io/etcd/pull/19280).
- Fix [performance regression due to uncertain compaction sleep interval](https://github.com/etcd-io/etcd/pull/19405).
### `tools/benchmark`
- Backport [add mixed read-write performance evaluation scripts](https://github.com/etcd-io/etcd/pull/19275).
### Dependencies
- Compile binaries using [go 1.23.7](https://github.com/etcd-io/etcd/pull/19528).
- Bump [golang.org/x/crypto to v0.35.0 to address CVE-2025-22869](https://github.com/etcd-io/etcd/pull/19478).
- Bump [golang.org/x/net to v0.36.0 to address CVE-2025-22870](https://github.com/etcd-io/etcd/pull/19530).
<hr>
## v3.5.18 (2025-01-24)
### etcd server
- Avoid deadlock in etcd.Close when stopping during bootstrapping, see https://github.com/etcd-io/etcd/pull/19167 and https://github.com/etcd-io/etcd/pull/19258.
- [Print warning messages if any of the deprecated v2store related flags is set](https://github.com/etcd-io/etcd/pull/18999)
- Fix [missing delete event on watch opened on same revision as compaction request](https://github.com/etcd-io/etcd/pull/19249)
### Package `clientv3`
- Fix [runtime panic that occurs when KeepAlive is called with a Context implemented by an uncomparable type](https://github.com/etcd-io/etcd/pull/18937)
### etcdutl v3
- Add [command `etcdutl check v2store` to offline check whether v2store contains custom content](https://github.com/etcd-io/etcd/pull/19113)
### etcd grpc-proxy
- Add [`tls min/max version to grpc proxy`](https://github.com/etcd-io/etcd/pull/18829) to support setting TLS min and max version.
### Dependencies
- Bump [golang-jwt/jwt to 4.5.1 to address GO-2024-3250](https://github.com/etcd-io/etcd/pull/18899).
- Compile binaries using [go 1.22.11](https://github.com/etcd-io/etcd/pull/19211).
- Bump [golang.org/x/crypto to 0.32.0 to address CVE-2024-45337](https://github.com/etcd-io/etcd/pull/19154).
- Bump [golang.org/x/net to 0.34.0 to address CVE-2024-45338](https://github.com/etcd-io/etcd/pull/19158).
<hr>
## v3.5.17 (2024-11-12)
### etcd server
- Fix [watchserver related goroutine leakage](https://github.com/etcd-io/etcd/pull/18784)
- Fix [risk of a partial write txn being applied](https://github.com/etcd-io/etcd/pull/18799)
- Fix [panicking occurred due to improper error handling during defragmentation](https://github.com/etcd-io/etcd/pull/18842)
- Fix [close temp file(s) in case an error happens during defragmentation](https://github.com/etcd-io/etcd/pull/18854)
### Dependencies
- Compile binaries using [go 1.22.9](https://github.com/etcd-io/etcd/pull/18849).
<hr>
## v3.5.16 (2024-09-10)
### etcd server
- Fix [performance regression issue caused by the `ensureLeadership` in lease renew](https://github.com/etcd-io/etcd/pull/18439).
- [Keep the tombstone during compaction if it happens to be the compaction revision](https://github.com/etcd-io/etcd/pull/18474)
- Add [`etcd --experimental-compaction-sleep-interval`](https://github.com/etcd-io/etcd/pull/18514) flag to control the sleep interval between each compaction batch.
### Dependencies
- Compile binaries using [go 1.22.7](https://github.com/etcd-io/etcd/pull/18550).
- Upgrade [bbolt to v1.3.11](https://github.com/etcd-io/etcd/pull/18489).
<hr>
## v3.5.15 (2024-07-19)
### etcd server
- Fix [add prometheus metric registration for metric `etcd_disk_wal_write_duration_seconds`](https://github.com/etcd-io/etcd/pull/18174).
- Add [Support multiple values for allowed client and peer TLS identities](https://github.com/etcd-io/etcd/pull/18160)
- Fix [noisy logs from simple auth token expiration by reducing log level to debug](https://github.com/etcd-io/etcd/pull/18245)
- [Differentiate the warning message for rejected client and peer connections](https://github.com/etcd-io/etcd/pull/18319)
### Package clientv3
- [Print gRPC metadata in guaranteed order using the official go fmt pkg](https://github.com/etcd-io/etcd/pull/18312).
### Dependencies
- Compile binaries using [go 1.21.12](https://github.com/etcd-io/etcd/pull/18271).
- [Fully address CVE-2023-45288 and fix govulncheck CI check](https://github.com/etcd-io/etcd/pull/18170)
## v3.5.14 (2024-05-29)
### etcd server
- Fix [LeaseTimeToLive returns error if leader changed](https://github.com/etcd-io/etcd/pull/17704).
- Add [metrics `etcd_disk_wal_write_duration_seconds`](https://github.com/etcd-io/etcd/pull/17616).
- Fix [ignore raft messages if member id mismatch](https://github.com/etcd-io/etcd/pull/17813).
- Update [the compaction log when bootstrap](https://github.com/etcd-io/etcd/pull/17830).
- Fix [Revision decreasing after panic during compaction](https://github.com/etcd-io/etcd/pull/17865)
- Add [`etcd --experimental-stop-grpc-service-on-defrag`](https://github.com/etcd-io/etcd/pull/17914) to enable client failover on defrag.
- Add [support for `AllowedCN` and `AllowedHostname` through config file](https://github.com/etcd-io/etcd/pull/18063)
### etcdutl v3
- Add [`--initial-memory-map-size` to `snapshot restore` to avoid memory allocation issues](https://github.com/etcd-io/etcd/pull/17977)
### Package `clientv3`
- Add [requests retry when receiving ErrGPRCNotSupportedForLearner and endpoints > 1](https://github.com/etcd-io/etcd/pull/17641).
- Fix [initialization for mu in client context](https://github.com/etcd-io/etcd/pull/17699).
### Dependencies
- Compile binaries using [go 1.21.10](https://github.com/etcd-io/etcd/pull/17980).
- Upgrade [bbolt to v1.3.10](https://github.com/etcd-io/etcd/pull/17943).
<hr>
## v3.5.13 (2024-03-29)
### etcd server
- Fix leases wrongly revoked by the leader by [ignoring old leader's leases revoking request](https://github.com/etcd-io/etcd/pull/17425).
- Fix [no progress notification being sent for watch that doesn't get any events](https://github.com/etcd-io/etcd/pull/17566).
- Fix [watch event loss after compaction](https://github.com/etcd-io/etcd/pull/17612).
### Package `clientv3`
- Add [client backoff and retry config options](https://github.com/etcd-io/etcd/pull/17363).
- [Ignore SetKeepAlivePeriod errors on OpenBSD](https://github.com/etcd-io/etcd/pull/17387).
- [Support unix/unixs socket in client or peer URLs](https://github.com/etcd-io/etcd/pull/15940)
### gRPC Proxy
- Add [three flags (see below) for grpc-proxy](https://github.com/etcd-io/etcd/pull/17447)
- `--dial-keepalive-time`
- `--dial-keepalive-timeout`
- `--permit-without-stream`
### Dependencies
- Upgrade [bbolt to v1.3.9](https://github.com/etcd-io/etcd/pull/17483).
- Compile binaries using [go 1.21.8](https://github.com/etcd-io/etcd/pull/17537).
- Upgrade [google.golang.org/protobuf to v1.33.0 to address CVE-2024-24786](https://github.com/etcd-io/etcd/pull/17553).
- Upgrade github.com/sirupsen/logrus to v1.9.3 to address [PRISMA-2023-0056](https://github.com/etcd-io/etcd/pull/17482).
### Others
- [Make CGO_ENABLED configurable](https://github.com/etcd-io/etcd/pull/17421).
<hr>
## v3.5.12 (2024-01-31)
### etcd server
- Fix [not validating database consistent index, and panicking on nil backend](https://github.com/etcd-io/etcd/pull/17151)
- Document [`experimental-enable-lease-checkpoint-persist` flag in etcd help](https://github.com/etcd-io/etcd/pull/17190)
- Fix [needlessly flocking snapshot files when deleting](https://github.com/etcd-io/etcd/pull/17206)
- Add [digest for etcd base image](https://github.com/etcd-io/etcd/pull/17205)
- Fix [delete inconsistencies in read buffer](https://github.com/etcd-io/etcd/pull/17230)
- Add [mvcc: print backend database size and size in use in compaction logs](https://github.com/etcd-io/etcd/pull/17291)
### Dependencies
- Compile binaries using [go 1.20.13](https://github.com/etcd-io/etcd/pull/17275)
- Upgrade [golang.org/x/crypto to v0.17+ to address CVE-2023-48795](https://github.com/etcd-io/etcd/pull/17346)
## v3.5.11 (2023-12-07)
### etcd server
- Fix distributed tracing by ensuring `--experimental-distributed-tracing-sampling-rate` configuration option is available to [set tracing sample rate](https://github.com/etcd-io/etcd/pull/16951).
- Fix [url redirects while checking peer urls during new member addition](https://github.com/etcd-io/etcd/pull/16986)
- Add [livez/readyz HTTP endpoints](https://github.com/etcd-io/etcd/pull/17039)
### Dependencies
- Compile binaries using [go 1.20.12](https://github.com/etcd-io/etcd/pull/17077)

View File

@ -6,6 +6,49 @@ Previous change logs can be found at [CHANGELOG-3.5](https://github.com/etcd-io/
## v3.6.0 (TBD)
<hr>
## v3.6.0-rc.3 (TBD)
### etcd server
- [Auto sync members in v3store for the issues which have already been affected by #19557](https://github.com/etcd-io/etcd/pull/19636).
<hr>
## v3.6.0-rc.2 (2025-03-05)
### etcd server
- Add [Prometheus metric to query server feature gates](https://github.com/etcd-io/etcd/pull/19495).
### Dependencies
- Compile binaries using [go 1.23.7](https://github.com/etcd-io/etcd/pull/19527).
- Bump [golang.org/x/net to v0.36.0 to address CVE-2025-22870](https://github.com/etcd-io/etcd/pull/19531).
- Bump [github.com/grpc-ecosystem/grpc-gateway/v2 to v2.26.3 to fix the issue of etcdserver crashing on receiving REST watch stream requests](https://github.com/etcd-io/etcd/pull/19522).
<hr>
## v3.6.0-rc.1 (2025-02-25)
### etcdctl v3
- Add [`DowngradeInfo` in result of endpoint status](https://github.com/etcd-io/etcd/pull/19471)
### etcd server
- Add [`DowngradeInfo` to endpoint status response](https://github.com/etcd-io/etcd/pull/19471)
### Dependencies
- Bump [golang.org/x/crypto to v0.35.0 to address CVE-2025-22869](https://github.com/etcd-io/etcd/pull/19480).
<hr>
## v3.6.0-rc.0 (2025-02-13)
See [code changes](https://github.com/etcd-io/etcd/compare/v3.5.0...v3.6.0).
### Breaking Changes
@ -23,7 +66,7 @@ See [code changes](https://github.com/etcd-io/etcd/compare/v3.5.0...v3.6.0).
- Removed [etcdctl snapshot status](https://github.com/etcd-io/etcd/pull/13809).
- Removed [etcdctl snapshot restore](https://github.com/etcd-io/etcd/pull/13809).
- Removed [etcdutl snapshot save](https://github.com/etcd-io/etcd/pull/13809).
- Removed [NewZapCoreLoggerBuilder in server/embed](https://github.com/etcd-io/etcd/pull/19404)
### etcdctl v3
@ -34,13 +77,16 @@ See [code changes](https://github.com/etcd-io/etcd/compare/v3.5.0...v3.6.0).
- Add [`--max-txn-ops`](https://github.com/etcd-io/etcd/pull/14340) flag to make-mirror command.
- Add [`--consistency`](https://github.com/etcd-io/etcd/pull/15261) flag to member list command.
- Display [field `hash_revision`](https://github.com/etcd-io/etcd/pull/14812) for `etcdctl endpoint hash` command.
- Add [`--max-request-bytes` and `--max-recv-bytes`](https://github.com/etcd-io/etcd/pull/18718) global flags.
### etcdutl v3
- Add command to generate [shell completion](https://github.com/etcd-io/etcd/pull/13142).
- Add `migrate` command for downgrading/upgrading etcd data dir files.
- Add [optional --bump-revision and --mark-compacted flag to etcdutl snapshot restore operation](https://github.com/etcd-io/etcd/pull/16029).
- Add [hashkv](https://github.com/etcd-io/etcd/pull/15965) command to print hash of keys and values up to given revision
- Removed [legacy etcdutl backup](https://github.com/etcd-io/etcd/pull/16662)
- [Count the number of keys from users perspective](https://github.com/etcd-io/etcd/pull/19344)
### Package `clientv3`
@ -55,8 +101,6 @@ See [code changes](https://github.com/etcd-io/etcd/compare/v3.5.0...v3.6.0).
- Package `datadir` was moved to `storage/datadir`
### Package `raft`
- Send empty `MsgApp` when entry in-flight limits are exceeded. See [pull/14633](https://github.com/etcd-io/etcd/pull/14633).
- Add [MaxInflightBytes](https://github.com/etcd-io/etcd/pull/14624) setting in `raft.Config` for better flow control of entries.
- [Decouple raft from etcd](https://github.com/etcd-io/etcd/issues/14713). Migrated raft to a separate [repository](https://github.com/etcd-io/raft), and renamed raft module to `go.etcd.io/raft/v3`.
### etcd server
@ -76,12 +120,16 @@ See [code changes](https://github.com/etcd-io/etcd/compare/v3.5.0...v3.6.0).
- Add [`etcd --experimental-snapshot-catch-up-entries`](https://github.com/etcd-io/etcd/pull/15033) flag to configure number of entries for a slow follower to catch up after compacting the raft storage entries and defaults to 5k.
- Decreased [`--snapshot-count` default value from 100,000 to 10,000](https://github.com/etcd-io/etcd/pull/15408)
- Add [`etcd --tls-min-version --tls-max-version`](https://github.com/etcd-io/etcd/pull/15156) to enable support for TLS 1.3.
- Add [`etcd --experimental-stop-grpc-service-on-defrag`](https://github.com/etcd-io/etcd/pull/16278) to enable client failover on defrag.
- Add [quota to endpoint status response](https://github.com/etcd-io/etcd/pull/17877)
- Add [feature gate `SetMemberLocalAddr`](https://github.com/etcd-io/etcd/pull/19413) to [enable using the first specified and non-loopback local address from initial-advertise-peer-urls as the local address when communicating with a peer]((https://github.com/etcd-io/etcd/pull/17661))
- Add [Support multiple values for allowed client and peer TLS identities](https://github.com/etcd-io/etcd/pull/18015)
- Add [`embed.Config.GRPCAdditionalServerOptions`](https://github.com/etcd-io/etcd/pull/14066) to support updating the default internal gRPC configuration for embedded use cases.
### etcd grpc-proxy
- Add [`etcd grpc-proxy start --endpoints-auto-sync-interval`](https://github.com/etcd-io/etcd/pull/14354) flag to enable and configure interval of auto sync of endpoints with server.
- Add [`etcd grpc-proxy start --listen-cipher-suites`](https://github.com/etcd-io/etcd/pull/14308) flag to support adding configurable cipher list.
- Add [`tls min/max version to grpc proxy`](https://github.com/etcd-io/etcd/pull/18816) to support setting TLS min and max version.
### tools/benchmark
@ -93,14 +141,16 @@ See [List of metrics](https://etcd.io/docs/latest/metrics/) for all metrics per
- Add [`etcd_disk_defrag_inflight`](https://github.com/etcd-io/etcd/pull/13371).
- Add [`etcd_debugging_server_alarms`](https://github.com/etcd-io/etcd/pull/14276).
- Add [`etcd_server_range_duration_seconds`](https://github.com/etcd-io/etcd/pull/17983).
### Go
- Require [Go 1.21+](https://github.com/etcd-io/etcd/pull/16594).
- Compile with [Go 1.21+](https://go.dev/doc/devel/release#go1.21.minor). Please refer to [gc-guide](https://go.dev/doc/gc-guide) to configure `GOGC` and `GOMEMLIMIT` properly.
- Require [Go 1.23+](https://github.com/etcd-io/etcd/pull/16594).
- Compile with [Go 1.23+](https://go.dev/doc/devel/release#go1.21.minor). Please refer to [gc-guide](https://go.dev/doc/gc-guide) to configure `GOGC` and `GOMEMLIMIT` properly.
### Other
- Use Distroless as base image to make the image less vulnerable and reduce image size.
- [Upgrade grpc-gateway from v1 to v2](https://github.com/etcd-io/etcd/pull/16595).
- [Switch from grpc-ecosystem/go-grpc-prometheus to grpc-ecosystem/go-grpc-middleware/providers/prometheus](https://github.com/etcd-io/etcd/pull/19195).
<hr>

View File

@ -0,0 +1,11 @@
Previous change logs can be found at [CHANGELOG-3.6](https://github.com/etcd-io/etcd/blob/main/CHANGELOG/CHANGELOG-3.6.md).
<hr>
## v3.7.0 (TBD)
### Deprecations
- Deprecated [UsageFunc in pkg/cobrautl](https://github.com/etcd-io/etcd/pull/18356).

View File

@ -1,41 +1,42 @@
# How to contribute
etcd is Apache 2.0 licensed and accepts contributions via GitHub pull requests.
This document outlines basics of contributing to etcd.
This document outlines the basics of contributing to etcd.
This is a rough outline of what a contributor's workflow looks like:
* [Find something to work on](#Find-something-to-work-on)
* [Setup development environment](#Setup-development-environment)
* [Check for flaky tests](#Check-for-flaky-tests)
* [Set up development environment](#Set-up-development-environment)
* [Implement your change](#Implement-your-change)
* [Commit your change](#Commit-your-change)
* [Create a pull request](#Create-a-pull-request)
* [Get your pull request reviewed](#Get-your-pull-request-reviewed)
If you have any questions about, please reach out using one of the methods listed in [contact].
If you have any questions, please reach out using one of the methods listed in [contact].
[contact]: ./README.md#Contact
## Learn more about etcd
Before making a change please look through resources below to learn more about etcd and tools used for development.
Before making a change please look through the resources below to learn more about etcd and tools used for development.
* Please learn about [Git](https://github.com/git-guides) version control system used in etcd.
* Read the [etcd learning resources](https://etcd.io/docs/v3.5/learning/)
* Read the [etcd community membership](/Documentation/contributor-guide/community-membership.md)
* Watch [etcd deep dive](https://www.youtube.com/watch?v=D2pm6ufIt98&t=927s)
* Watch [etcd code walk through](https://www.youtube.com/watch?v=H3XaSF6wF7w)
* Watch [etcd code walkthrough](https://www.youtube.com/watch?v=H3XaSF6wF7w)
## Find something to work on
All the work in etcd project is tracked in [github issue tracker].
All the work in the etcd project is tracked in [GitHub issue tracker].
Issues should be properly labeled making it easy to find something for you.
Depending on your interest and experience you should check different labels:
* If you are just starting, check issues labeled with [good first issue].
* When you feel more conformable in your contributions, checkout [help wanted].
* Advanced contributors can try to help with issues labeled [priority/important] covering most relevant work at the time.
* When you feel more comfortable in your contributions, check out [help wanted].
* Advanced contributors can try to help with issues labeled [priority/important] covering the most relevant work at the time.
If any of aforementioned labels don't have unassigned issues, please [contact] one of the [maintainers] asking to triage more issues.
If any of the aforementioned labels don't have unassigned issues, please [contact] one of the [maintainers] asking to triage more issues.
[github issue tracker]: https://github.com/etcd-io/etcd/issues
[good first issue]: https://github.com/search?type=issues&q=org%3Aetcd-io+state%3Aopen++label%3A%22good+first+issue%22
@ -43,29 +44,68 @@ If any of aforementioned labels don't have unassigned issues, please [contact] o
[maintainers]: https://github.com/etcd-io/etcd/blob/main/OWNERS
[priority/important]: https://github.com/search?type=issues&q=org%3Aetcd-io+state%3Aopen++label%3A%22priority%2Fimportant%22
## Setup development environment
### Check for flaky tests
The project could always use some help to deflake tests. [These](https://github.com/etcd-io/etcd/issues?q=is%3Aissue+is%3Aopen+label%3Atype%2Fflake) are the currently open flaky test issues.
For more, because etcd uses Kubernetes' prow infrastructure to run CI jobs, the past test results can be viewed at [testgrid](https://testgrid.k8s.io/sig-etcd).
| Tests | Status |
| ----- | ------ |
| periodics e2e-amd64 | [![sig-etcd-periodics/ci-etcd-e2e-amd64](https://testgrid.k8s.io/q/summary/sig-etcd-periodics/ci-etcd-e2e-amd64/tests_status?style=svg)](https://testgrid.k8s.io/q/summary/sig-etcd-periodics/ci-etcd-e2e-amd64) |
| presubmit build | [![sig-etcd-presubmits/pull-etcd-build](https://testgrid.k8s.io/q/summary/sig-etcd-presubmits/pull-etcd-build/tests_status?style=svg)](https://testgrid.k8s.io/q/summary/sig-etcd-presubmits/pull-etcd-build) |
| presubmit e2e-amd64 | [![sig-etcd-presubmits/pull-etcd-e2e-amd64](https://testgrid.k8s.io/q/summary/sig-etcd-presubmits/pull-etcd-e2e-amd64/tests_status?style=svg)](https://testgrid.k8s.io/q/summary/sig-etcd-presubmits/pull-etcd-e2e-amd64) |
| presubmit unit-test | [![sig-etcd-presubmits/pull-etcd-unit-test](https://testgrid.k8s.io/q/summary/sig-etcd-presubmits/pull-etcd-unit-test/tests_status?style=svg)](https://testgrid.k8s.io/q/summary/sig-etcd-presubmits/pull-etcd-unit-test) |
| presubmit verify | [![sig-etcd-presubmits/pull-etcd-verify](https://testgrid.k8s.io/q/summary/sig-etcd-presubmits/pull-etcd-verify/tests_status?style=svg)](https://testgrid.k8s.io/q/summary/sig-etcd-presubmits/pull-etcd-verify) |
| postsubmit build | [![sig-etcd-postsubmits/post-etcd-build](https://testgrid.k8s.io/q/summary/sig-etcd-postsubmits/post-etcd-build/tests_status?style=svg)](https://testgrid.k8s.io/q/summary/sig-etcd-postsubmits/post-etcd-build) |
If you find any flaky tests on testgrid, please
1. Check [existing issues](https://github.com/etcd-io/etcd/issues?q=is%3Aissue+is%3Aopen+label%3Atype%2Fflake) to see if an issue has already been opened for this test. If not, open an issue with the `type/flake` label.
2. Try to reproduce the flaky test on your machine via [`stress`](https://pkg.go.dev/golang.org/x/tools/cmd/stress), for example, to reproduce the failure of `TestPeriodicSkipRevNotChange`:
```bash
# install the stress utility
go install golang.org/x/tools/cmd/stress@latest
cd server/etcdserver/api/v3compactor
# compile the test
go test -v -c -count 1
# run the compiled test file using stress
stress -p=8 ./v3compactor.test -test.run “^TestPeriodicSkipRevNotChange$”
```
3. Fix it.
## Set up development environment
The etcd project supports two options for development:
1. Manually setup local environment.
2. Automatically setup [devcontainer](https://containers.dev).
1. Manually set up the local environment.
2. Automatically set up [devcontainer](https://containers.dev).
For both options the only supported architecture is `linux-amd64`. Bug reports for other environments will generally be ignored. Supporting new environments requires introduction of proper tests and maintainer support that is currently lacking in the etcd project.
For both options, the only supported architecture is `linux-amd64`. Bug reports for other environments will generally be ignored. Supporting new environments requires the introduction of proper tests and maintainer support that is currently lacking in the etcd project.
If you would like etcd to support your preferred environment you can [file an issue].
### Option 1 - Manually setup local environment
### Option 1 - Manually set up the local environment
This is the original etcd development environment, is most supported and is backwards compatible for development of older etcd versions.
This is the original etcd development environment, is most supported, and is backward compatible for the development of older etcd versions.
Follow the steps below to setup the environment:
Follow the steps below to set up the environment:
- [Clone the repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository)
- Install Go by following [installation](https://go.dev/doc/install). Please check minimal go version in [go.mod file](./go.mod#L3).
- Install Go by following [installation](https://go.dev/doc/install). Please check the minimal go version in [go.mod file](./go.mod#L3).
- Install build tools:
- `make`: For debian based distributions you can run `sudo apt-get install build-essential`
- `protoc`: You can download for your os. Use version [`v3.20.3`](https://github.com/protocolbuffers/protobuf/releases/tag/v3.20.3).
- `yamllint`: For debian based distribution you can run `sudo apt-get install yamllint`
- [`make`](https://www.gnu.org/software/make/): For Debian-based distributions
you can run `sudo apt-get install build-essential`
- [`protoc`](https://protobuf.dev/): You can download it for your os. Use
version
[`v3.20.3`](https://github.com/protocolbuffers/protobuf/releases/tag/v3.20.3).
- [`yamllint`](https://www.yamllint.com/): For Debian-based distribution you
can run `sudo apt-get install yamllint`
- [`jq`](https://jqlang.github.io/jq/): For Debian-based distribution you can
run `sudo apt-get install jq`
- [`xz`](https://tukaani.org/xz/): For Debian-based distribution you can run
`sudo apt-get install xz-utils`
- Verify that everything is installed by running `make build`
Note: `make build` runs with `-v`. Other build flags can be added through env `GO_BUILD_FLAGS`, **if required**. Eg.,
@ -73,17 +113,17 @@ Note: `make build` runs with `-v`. Other build flags can be added through env `G
GO_BUILD_FLAGS="-buildmode=pie" make build
```
### Option 2 - Automatically setup devcontainer
### Option 2 - Automatically set up devcontainer
This is a more recently added environmnent that aims to make it faster for new contributors to get started with etcd. This option is supported for etcd versions 3.6 onwards.
This is a more recently added environment that aims to make it faster for new contributors to get started with etcd. This option is supported for etcd versions 3.6 onwards.
This option can be [used locally](https://code.visualstudio.com/docs/devcontainers/tutorial) on a system running Visual Studio Code and Docker, or in a remote cloud based [Codespaces](https://github.com/features/codespaces) environment.
This option can be [used locally](https://code.visualstudio.com/docs/devcontainers/tutorial) on a system running Visual Studio Code and Docker, or in a remote cloud-based [Codespaces](https://github.com/features/codespaces) environment.
To get started, create a codespace for this repository by clicking this 👇
[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=11225014)
A codespace will open in a web-based version of Visual Studio Code. The [dev container](.devcontainer/devcontainer.json) is fully configured with software needed for this project.
A codespace will open in a web-based version of Visual Studio Code. The [dev container](.devcontainer/devcontainer.json) is fully configured with the software needed for this project.
**Note**: Dev containers is an open spec which is supported by [GitHub Codespaces](https://github.com/codespaces) and [other tools](https://containers.dev/supporting).
@ -91,30 +131,31 @@ A codespace will open in a web-based version of Visual Studio Code. The [dev con
## Implement your change
etcd code should follow coding style suggested by the Golang community.
See the [style doc](https://github.com/golang/go/wiki/CodeReviewComments) for details.
etcd code should follow the coding style suggested by the Golang community.
See the [style doc](https://go.dev/wiki/CodeReviewComments) for details.
Please ensure that your change passes static analysis (requires [golangci-lint](https://golangci-lint.run/usage/install/)):
Please ensure that your change passes static analysis (requires
[golangci-lint](https://golangci-lint.run/welcome/install/)):
- `make verify` to verify if all checks pass.
- `make verify-*` to verify a single check, for example `make verify-bom` to verify if bill-of-materials.json file is up-to-date.
- `make verify-*` to verify a single check, for example, `make verify-bom` to verify if `bill-of-materials.json` file is up-to-date.
- `make fix` to fix all checks.
- `make fix-*` to fix a single checks, for example `make fix-bom` to update bill-of-materials.json.
- `make fix-*` to fix a single check, for example, `make fix-bom` to update `bill-of-materials.json`.
Please ensure that your change passes tests.
- `make test-unit` to run unit tests.
- `make test-integration` to run integration tests.
- `make test-e2e` to run e2e tests.
All changes are expected to come with unit test.
All changes are expected to come with a unit test.
All new features are expected to have either e2e or integration tests.
## Commit your change
etcd follows a rough convention for commit messages:
* First line:
* Should start name of package (for example `etcdserver`, `etcdctl`) followed by `:` character.
* Should start with the name of the package (for example `etcdserver`, `etcdctl`) followed by the `:` character.
* Describe the `what` behind the change
* Optionally author might provide the `why` behind the change in the main commit message body.
* Optionally, the author might provide the `why` behind the change in the main commit message body.
* Last line should be `Signed-off-by: firstname lastname <email@example.com>` (can be automatically generate by providing `--signoff` to git commit command).
Example of commit message:
@ -132,19 +173,25 @@ Signed-off-by: FirstName LastName <github@github.com>
## Create a pull request
Please follow [making a pull request](https://docs.github.com/en/get-started/quickstart/contributing-to-projects#making-a-pull-request) guide.
Please follow the [making a pull request](https://docs.github.com/en/get-started/quickstart/contributing-to-projects#making-a-pull-request) guide.
If you are still working on the pull request, you can convert it to draft by clicking `Convert to draft` link just below list of reviewers.
If you are still working on the pull request, you can convert it to a draft by clicking `Convert to draft` link just below the list of reviewers.
Multiple small PRs are preferred over single large ones (>500 lines of code).
Please make sure there is an associated issue for each PR you submit. Create one if it doesn't exist yet, and close the issue
once the PR gets merged and has been backported to previous stable releases, if necessary. If there are multiple PRs linked to
the same issue, refrain from closing the issue until all PRs have been merged and, if needed, backported to previous stable
releases.
## Get your pull request reviewed
Before requesting review please ensure that all GitHub checks were successful.
Before requesting review please ensure that all GitHub and Prow checks are successful. In some cases your pull request may have the label `needs-ok-to-test`. If so an `etcd-io` organisation member will leave a comment on your pull request with `/ok-to-test` to trigger all checks to be run.
It might happen that some unrelated tests on your PR are failing, due to their flakiness.
In such cases please [file an issue] to deflake the problematic test and ask one of [maintainers] to rerun the tests.
If all checks were successful feel free to reach out for review from people that were involved in the original discussion or [maintainers].
Depending on complexity of the PR it might require between 1 and 2 maintainers to approve your change before merging.
Depending on the complexity of the PR it might require between 1 and 2 maintainers to approve your change before merging.
Thanks for contributing!

View File

@ -1,5 +1,5 @@
ARG ARCH=amd64
FROM --platform=linux/${ARCH} gcr.io/distroless/static-debian12@sha256:4a2c1a51ae5e10ec4758a0f981be3ce5d6ac55445828463fce8dff3a355e0b75
FROM --platform=linux/${ARCH} gcr.io/distroless/static-debian12@sha256:3f2b64ef97bd285e36132c684e6b2ae8f2723293d09aae046196cca64251acac
ADD etcd /usr/local/bin/
ADD etcdctl /usr/local/bin/

4
Documentation/OWNERS Normal file
View File

@ -0,0 +1,4 @@
# See the OWNERS docs at https://go.k8s.io/owners
labels:
- area/documentation

View File

@ -3,7 +3,7 @@
## Guide
* New development occurs on the [main branch][main].
* Main branch should always have a green build!
* The main branch should always have a green build!
* Backwards-compatible bug fixes should target the main branch and subsequently be ported to stable branches.
* Once the main branch is ready for release, it will be tagged and become the new stable branch.
@ -15,13 +15,12 @@ The `main` branch is our development branch. All new features land here first.
To try new and experimental features, pull `main` and play with it. Note that `main` may not be stable because new features may introduce bugs.
Before the release of the next stable version, feature PRs will be frozen. A [release manager](./release.md#release-management) will be assigned to major/minor version and will lead the etcd community in test, bug-fix and documentation of the release for one to two weeks.
Before the release of the next stable version, feature PRs will be frozen. A [release manager](./release.md#release-management) will be assigned to the major/minor version and will lead the etcd community in testing, bug-fix, and documentation of the release for one to two weeks.
### Stable branches
All branches with prefix `release-` are considered _stable_ branches.
All branches with the prefix `release-` are considered _stable_ branches.
After every minor release ([semver.org](https://semver.org/)), we will have a new stable branch for that release, managed by a [patch release manager](./release.md#release-management). We will keep fixing the backwards-compatible bugs for the latest two stable releases. A _patch_ release to each supported release branch, incorporating any bug fixes, will be once every two weeks, given any patches.
After every minor release ([semver.org](https://semver.org/)), we will have a new stable branch for that release, managed by a [patch release manager](./release.md#release-management). We will keep fixing the backward-compatible bugs for the latest two stable releases. A _patch_ release to each supported release branch, incorporating any bug fixes, will be once every two weeks, given any patches.
[main]: https://github.com/etcd-io/etcd/tree/main

View File

@ -24,7 +24,7 @@ below.
## Member
Members are continuously active contributors in the community. They can have
Members are continuously active contributors to the community. They can have
issues and PRs assigned to them. Members are expected to remain active
contributors to the community.
@ -38,12 +38,12 @@ contributors to the community.
- Filing or commenting on issues on GitHub
- Contributing to community discussions (e.g. meetings, Slack, email discussion
forums, Stack Overflow)
- Subscribed to etcd-dev@googlegroups.com
- Subscribed to [etcd-dev@googlegroups.com](https://groups.google.com/g/etcd-dev)
- Have read the [contributor guide]
- Sponsored by one active maintainer or two reviewers.
- Sponsors must be from multiple member companies to demonstrate integration across community.
- Sponsored by two active maintainers or reviewers.
- Sponsors must be from multiple member companies to demonstrate integration across the community.
- With no objections from other maintainers
- Open a [membership nomination] issue against the etcd-io/etcd repo
- Open a [membership nomination] issue against the `kubernetes/org` repo
- Ensure your sponsors are @mentioned on the issue
- Make sure that the list of contributions included is representative of your work on the project.
- Members can be removed by a supermajority of the maintainers or can resign by notifying
@ -54,11 +54,11 @@ contributors to the community.
- Responsive to issues and PRs assigned to them
- Granted "triage access" to etcd project
- Active owner of code they have contributed (unless ownership is explicitly transferred)
- Code is well tested
- Code is well-tested
- Tests consistently pass
- Addresses bugs or issues discovered after code is accepted
**Note:** members who frequently contribute code are expected to proactively
**Note:** Members who frequently contribute code are expected to proactively
perform code reviews and work towards becoming a *reviewer*.
## Reviewers
@ -78,7 +78,7 @@ maintainership.
- Reviewed or contributed at least 20 substantial PRs to the codebase.
- Knowledgeable about the codebase.
- Sponsored by two active maintainers.
- Sponsors must be from multiple member companies to demonstrate integration across community.
- Sponsors must be from multiple member companies to demonstrate integration across the community.
- With no objections from other maintainers
- Reviewers can be removed by a supermajority of the maintainers or can resign by notifying
the maintainers.
@ -96,8 +96,8 @@ maintainership.
## Maintainers
Maintainers are first and foremost contributors that have shown they
are committed to the long term success of a project. Maintainership is about building
Maintainers are first and foremost contributors who have shown they
are committed to the long-term success of a project. Maintainership is about building
trust with the current maintainers and being a person that they can
depend on to make decisions in the best interest of the project in a consistent manner.
@ -109,20 +109,20 @@ depend on to make decisions in the best interest of the project in a consistent
- Deep understanding of the technical domain of the project
- Sustained contributions to design and direction by doing all of:
- Authoring and reviewing proposals
- Initiating, contributing and resolving discussions (emails, GitHub issues, meetings)
- Identifying subtle or complex issues in designs and implementation PRs
- Directly contributed to the project through implementation and / or review
- Initiating, contributing, and resolving discussions (emails, GitHub issues, meetings)
- Identifying subtle or complex issues in the designs and implementation of PRs
- Directly contributed to the project through implementation and/or review
- Sponsored by two active maintainers and elected by supermajority
- Sponsors must be from multiple member companies to demonstrate integration across community.
- Sponsors must be from multiple member companies to demonstrate integration across the community.
- To become a maintainer send an email with your candidacy to etcd-maintainers-private@googlegroups.com
- Ensure your sponsors are @mentioned on the email
- Ensure your sponsors are @mentioned in the email
- Include a list of contributions representative of your work on the project.
- Existing maintainers vote will privately and respond to the email with either acceptance or with feedback for suggested improvement.
- Existing maintainers vote will privately and respond to the email with either acceptance or feedback for suggested improvement.
- With your membership approved you are expected to:
- Open a PR and add an entry to the [OWNERS] file
- Subscribe to etcd-maintainers@googlegroups.com and etcd-maintainers-private@googlegroups.com
- Request to join to [etcd-maintainer teams of etcd organization of GitHub](https://github.com/orgs/etcd-io/teams/maintainers-etcd)
- Request to join to the private slack channel for etcd maintainers on [kubernetes slack](http://slack.kubernetes.io/)
- Request to join [etcd-maintainer teams of etcd organization of GitHub](https://github.com/orgs/etcd-io/teams/maintainers-etcd)
- Request to join the private slack channel for etcd maintainers on [kubernetes slack](http://slack.kubernetes.io/)
- Request access to etcd-development GCP project where we publish releases
- Request access to passwords shared between maintainers
@ -133,26 +133,26 @@ depend on to make decisions in the best interest of the project in a consistent
- Define milestones and releases
- Mentor and guide reviewers, and contributors to the project.
- Participate when called upon in the [security disclosure and release process]
- Ensure continued health of the project
- Ensure the continued health of the project
- Adequate test coverage to confidently release
- Tests are passing reliably (i.e. not flaky) and are fixed when they fail
- Ensure a healthy process for discussion and decision making is in place.
- Ensure a healthy process for discussion and decision-making is in place.
- Work with other maintainers to maintain the project's overall health and success holistically
### Retiring
Life priorities, interests, and passions can change. Maintainers can retire and
move to [emeritus maintainers]. If a maintainer needs to step down, they should
inform other maintainers, if possible, help find someone to pick up the related
work. At the very least, ensure the related work can be continued. Afterward
they can remove themselves from list of existing maintainers.
inform other maintainers and, if possible, help find someone to pick up the related
work. At the very least, ensure the related work can be continued. Afterward,
they can remove themselves from the list of existing maintainers.
If a maintainer has not been performing their duties for period of 12 months,
they can be removed by other maintainers. In that case inactive maintainer will
be first notified via an email. If situation doesn't improve, they will be
If a maintainer has not been performing their duties for 12 months,
they can be removed by other maintainers. In that case, the inactive maintainer will
be first notified via an email. If the situation doesn't improve, they will be
removed. If an emeritus maintainer wants to regain an active role, they can do
so by renewing their contributions. Active maintainers should welcome such a move.
Retiring of other maintainers or regaining the status should require approval
Retiring other maintainers or regaining the status should require the approval
of at least two active maintainers.
## Acknowledgements
@ -161,8 +161,9 @@ Contributor roles and responsibilities were written based on [Kubernetes communi
[OWNERS]: /OWNERS
[contributor guide]: /CONTRIBUTING.md
[membership nomination]:https://github.com/etcd-io/etcd/issues/new?assignees=&labels=area%2Fcommunity&template=membership-request.yml
[membership nomination]: https://github.com/kubernetes/org/issues/new?assignees=&labels=area%2Fgithub-membership&projects=&template=membership.yml&title=REQUEST%3A+New+membership+for+%3Cyour-GH-handle%3E
[Kubernetes community membership]: https://github.com/kubernetes/community/blob/master/community-membership.md
[emeritus maintainers]: /README.md#etcd-emeritus-maintainers
[security disclosure and release process]: /security/README.md
[two-factor authentication]: https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/about-two-factor-authentication

View File

@ -12,18 +12,19 @@
- [Rotation worksheet](#rotation-worksheet)
- **[Stable branches](#stable-branches)**
- **[Golang versions](#golang-versions)**
- **[Core dependencies mappings](#core-dependencies-mappings)**
## Main branch
The dependabot is enabled & [configured](https://github.com/etcd-io/etcd/blob/main/.github/dependabot.yml) to
manage dependencies for etcd `main` branch. But dependabot doesn't work well for multi-module repository like `etcd`,
see [dependabot-core/issues/6678](https://github.com/dependabot/dependabot-core/issues/6678).
Usually human intervention is required each time when dependabot automatically opens some PRs to bump dependencies.
Please see guidance below.
Usually, human intervention is required each time when dependabot automatically opens some PRs to bump dependencies.
Please see the guidance below.
### Dependencies used in workflows
The PRs which automatically bump dependencies (see examples below) used in workflows are fine, and can be approved & merged directly as long as all checks are successful.
The PRs that automatically bump dependencies (see examples below) used in workflows are fine and can be approved & merged directly as long as all checks are successful.
- [build(deps): bump github/codeql-action from 2.2.11 to 2.2.12](https://github.com/etcd-io/etcd/pull/15736)
- [build(deps): bump actions/checkout from 3.5.0 to 3.5.2](https://github.com/etcd-io/etcd/pull/15735)
@ -33,7 +34,7 @@ The PRs which automatically bump dependencies (see examples below) used in workf
When multiple etcd modules depend on the same package, please bump the package version for all the modules in the correct order. The rule is simple:
if module A depends on module B, then bump the dependency for module B before module A. If the two modules do not depend on each other, then
it doesn't matter to bump which module first. For example, multiple modules depend on `github.com/spf13/cobra`, we need to bump the dependency
it doesn't matter to bump which module first. For example, multiple modules depend on `github.com/spf13/cobra`, so we need to bump the dependency
in the following order,
- go.etcd.io/etcd/pkg/v3
@ -49,7 +50,7 @@ Note the module `go.etcd.io/etcd/tools/v3` doesn't depend on any other modules,
### Steps to bump a dependency
Use the `github.com/spf13/cobra` as an example, follow steps below to bump it from 1.6.1 to 1.7.0 for module `go.etcd.io/etcd/etcdctl/v3`,
Use the `github.com/spf13/cobra` as an example, follow the steps below to bump it from 1.6.1 to 1.7.0 for module `go.etcd.io/etcd/etcdctl/v3`,
```bash
cd ${ETCD_ROOT_DIR}/etcdctl
@ -71,11 +72,26 @@ Please close the related PRs which were automatically opened by dependabot.
When you bump multiple dependencies in one PR, it's recommended to create a separate commit for each dependency. But it isn't a must; for example,
you can get all dependencies bumping for the module `go.etcd.io/etcd/tools/v3` included in one commit.
#### Troubleshooting
In an event of bumping the version of protoc, protoc plugins or grpc-gateway, it might change `*.proto` file which can result in the following error:
```bash
[0;31mFAIL: 'genproto' FAILED at Wed Jul 31 07:09:08 UTC 2024
make: *** [Makefile:134: verify-genproto] Error 255
```
To fix the above error, run the following script from the root of etcd repository:
```bash
./scripts/genproto.sh
```
### Indirect dependencies
Usually we don't bump a dependency if all modules just indirectly depend on it, such as `github.com/go-logr/logr`.
Usually, we don't bump a dependency if all modules just indirectly depend on it, such as `github.com/go-logr/logr`.
If an indirect dependency (e.g. `D1`) causes any CVE or bugs which affect etcd, usually the module (e.g. `M1`, not part of etcd, but used by etcd)
If an indirect dependency (e.g. `D1`) causes any CVE or bugs that affect etcd, usually the module (e.g. `M1`, not part of etcd, but used by etcd)
which depends on it should bump the dependency (`D1`), and then etcd just needs to bump `M1`. However, if the module (`M1`) somehow doesn't
bump the problematic dependency, then etcd can still bump it (`D1`) directly following the same steps above. But as a long-term solution, etcd should
try to remove the dependency on such module (`M1`) that lack maintenance.
@ -83,7 +99,7 @@ try to remove the dependency on such module (`M1`) that lack maintenance.
For mixed cases, in which some modules directly while others indirectly depend on a dependency, we have multiple options,
- Bump the dependency for all modules, no matter it's direct or indirect dependency.
- Bump the dependency only for modules which directly depend on it.
- Bump the dependency only for modules that directly depend on it.
We should try to follow the first way, and temporarily fall back to the second one if we run into any issue on the first way. Eventually we
should fix the issue and ensure all modules depend on the same version of the dependency.
@ -97,32 +113,50 @@ Please refer to [build(deps): bump arduino/setup-protoc from 1.3.0 to 2.0.0](htt
### Rotation worksheet
The dependabot scheduling interval is weekly; it means dependabot will automatically raise a bunch of PRs per week.
Usually human intervention is required each time. We have a [rotation worksheet](https://docs.google.com/spreadsheets/d/1DDWzbcOx1p32MhyelaPZ_SfYtAD6xRsrtGRZ9QXPOyQ/edit#gid=0),
Usually, human intervention is required each time. We have a [rotation worksheet](https://docs.google.com/spreadsheets/d/1jodHIO7Dk2VWTs1IRnfMFaRktS9IH8XRyifOnPdSY8I/edit#gid=1394774387),
and everyone is welcome to participate; you just need to register your name in the worksheet.
## Stable branches
Usually we don't proactively bump dependencies for stable releases unless there are any CVEs or bugs that affect etcd.
Usually, we don't proactively bump dependencies for stable releases unless there are any CVEs or bugs that affect etcd.
If we have to do it, then follow the same guidance above. Note that there is no `./scripts/fix.sh` in release-3.4, so no need to
execute it for 3.4.
## Golang versions
The etcd project aims to maintain a development branch that is on the latest [Go version](https://go.dev/dl), ideally this will align with the Go version in use for Kubernetes project development. For an example on how to update etcd to a new minor release of Go refer to issue <https://github.com/etcd-io/etcd/issues/16393> and the linked pull requests.
The etcd project aims to maintain a development branch that is on the latest [Go version](https://go.dev/dl), ideally, this will align with the Go version in use for Kubernetes project development. For an example of how to update etcd to a new minor release of Go refer to issue <https://github.com/etcd-io/etcd/issues/16393> and the linked pull requests.
Suggested steps for performing a minor version upgrade for the etcd development branch:
1. Carefully review new Go version release notes and potentially related blog for any deprecations, performance impacts or other considerations.
2. Create a github issue to signal intent to upgrade and invite discussion, example <https://github.com/etcd-io/etcd/issues/16393>.
3. Complete the upgrade locally in your development environment.
1. Carefully review new Go version release notes and potentially related blog posts for any deprecations, performance impacts, or other considerations.
2. Create a GitHub issue to signal intent to upgrade and invite discussion, for example, <https://github.com/etcd-io/etcd/issues/16393>.
3. Complete the upgrade locally in your development environment by editing `.go-version` and running `make fix`.
4. Run performance benchmarks locally to compare before and after.
5. Raise a pull request for the changes, example <https://github.com/etcd-io/etcd/pull/16394>.
5. Raise a pull request for the changes, for example, <https://github.com/etcd-io/etcd/pull/16394>.
Stable etcd release branches will be maintained to stay on the latest patch release of a supported Go version, however upgrading minor versions will be avoided unless the minor version in use is now out of support. Refer to the [Go release policy](https://go.dev/doc/devel/release).
Stable etcd release branches will be maintained to stay on the latest patch release of a supported Go version. Upgrading minor versions will be completed before the minor version in use currently is no longer supported. Refer to the [Go release policy](https://go.dev/doc/devel/release).
For an example of how to update etcd to a new patch release of Go refer to issue <https://github.com/etcd-io/etcd/issues/16343> and the linked pull requests.
References:
- <https://github.com/kubernetes/sig-release/blob/master/release-engineering/handbooks/go.md>
## Core dependencies mappings
[bbolt](https://github.com/etcd-io/bbolt) and [raft](https://github.com/etcd-io/raft) are two core dependencies of etcd.
Both etcd 3.4.x and 3.5.x depend on bbolt 1.3.x, and etcd 3.6.x (`main` branch) depends on bbolt 1.4.x.
raft is included in the etcd repository for release-3.4 and release-3.5 branches, so etcd 3.4.x and 3.5.x do not depend on any
external raft module. We moved raft into [a separate repository](https://github.com/etcd-io/raft) starting from 3.6 (`main` branch), and the first raft
release will be v3.6.0, so etcd 3.6.x will depend on raft 3.6.x.
Please see the table below:
| etcd versions | bbolt versions | raft versions |
|---------------|----------------|---------------|
| 3.4.x | v1.3.x | N/A |
| 3.5.x | v1.3.x | N/A |
| 3.6.x | v1.4.x | v3.6.x |

View File

@ -4,80 +4,84 @@ This document provides an overview of etcd features and general development guid
## Overview
The etcd features fall into three stages, experimental, stable, and unsafe.
The etcd features fall into three stages: Alpha, Beta, and GA.
### Experimental
### Alpha
Any new feature is usually added as an experimental feature. An experimental feature is characterized as below:
Any new feature is usually added as an Alpha feature. An Alpha feature is characterized as below:
- Might be buggy due to a lack of user testing. Enabling the feature may not work as expected.
- Disabled by default when added initially.
- Disabled by default.
- Support for such a feature may be dropped at any time without notice
- Feature related issues may be given lower priorities.
- It can be removed in the next minor or major release without following the feature deprecation policy unless it graduates to the stable future.
- Feature-related issues may be given lower priorities.
- It can be removed in the next minor or major release without following the feature deprecation policy unless it graduates to a more stable stage.
### Stable
### Beta
A stable feature is characterized as below:
A Beta feature is characterized as below:
- Supported as part of the supported releases of etcd.
- May be enabled by default.
- Enabled by default.
- Discontinuation of support must follow the feature deprecation policy.
### Unsafe
### GA
Unsafe features are rare and listed under the `Unsafe feature:` section in the etcd usage documentation. By default, they are disabled. They should be used with caution following documentation. An unsafe feature can be removed in the next minor or major release without following feature deprecation policy.
A GA feature is characterized as below:
- Supported as part of the supported releases of etcd.
- Always enabled; you cannot disable it. The corresponding feature gate is no longer needed.
- Discontinuation of support must follow the feature deprecation policy.
## Development Guidelines
### Adding a new feature
Any new enhancements to the etcd are typically added as an experimental feature. The general development requirements are listed below. They can be somewhat flexible depending on the scope of the feature and review discussions, and will evolve over time.
- Open an issue
Any new enhancements to the etcd are typically added as an Alpha feature.
etcd follows the Kubernetes [KEP process](https://github.com/kubernetes/enhancements/blob/master/keps/sig-architecture/0000-kep-process/README.md) for new enhancements. The general development requirements are listed below. They can be somewhat flexible depending on the scope of the feature and review discussions and will evolve over time.
- Open a [KEP](https://github.com/kubernetes/enhancements/issues) issue
- It must provide a clear need for the proposed feature.
- It should list development work items as checkboxes. There must be one work item towards future graduation to the stable future.
- Label the issue with `type/feature` and `experimental`.
- Keep the issue open for tracking purpose until a decision is made on graduation.
- Open a Pull Request (PR)
- Provide unit tests. Integreation tests are also recommended as possible.
- Provide robust e2e test coverage. If the feature being added is complicated or quickly needed, maintainers can decide to go with e2e tests for basic coverage initially and have robust coverage added at the later time before feature graduation to the stable feature.
- It should list development work items as checkboxes. There must be one work item towards future graduation to Beta.
- Label the issue with `/sig etcd`.
- Keep the issue open for tracking purposes until a decision is made on graduation.
- Open a [KEP](https://github.com/kubernetes/enhancements) Pull Request (PR).
- The KEP template can be simplified for etcd.
- It must provide clear graduation criteria for each stage.
- The KEP doc should reside in [keps/sig-etcd](https://github.com/kubernetes/enhancements/tree/master/keps/sig-etcd/)
- Open Pull Requests (PRs) in [etcd](https://github.com/etcd-io/etcd)
- Provide unit tests. Integration tests are also recommended as possible.
- Provide robust e2e test coverage. If the feature being added is complicated or quickly needed, maintainers can decide to go with e2e tests for basic coverage initially and have robust coverage added at a later time before the feature graduation to the stable feature.
- Provide logs for proper debugging.
- Provide metrics and benchmarks as needed.
- The Feature should be disabled by default.
- Any configuration flags related to the implementation of the feature must be prefixed with `experimental` e.g. `--experimental-feature-name`.
- Add an Alpha [feature gate](https://etcd.io/docs/v3.6/feature-gates/).
- Any code changes or configuration flags related to the implementation of the feature must be gated with the feature gate e.g. `if cfg.ServerFeatureGate.Enabled(features.FeatureName)`.
- Add a CHANGELOG entry.
- At least two maintainers must approve feature requirements and related code changes.
- At least two maintainers must approve the KEP and related code changes.
### Graduating an Experimental feature to Stable
### Graduating a feature to the next stage
It is important that experimental features don't get stuck in that stage. They should be revisited and moved to the stable stage following the graduation steps as described here.
#### Locate graduation candidate
Decide if an experimental feature is ready for graduation to the stable stage.
- Find the issue that was used to enable the experimental feature initially. One way to find such issues is to search for issues with `type/feature` and `experimental` labels.
- Fix any known open issues against the feature.
- Make sure the feature was enabled for at least one previous release. Check the PR(s) reference from the issue to see when the feature related code changes were merged.
It is important that features don't get stuck in one stage. They should be revisited and moved to the next stage once they meet the graduation criteria listed in the KEP. A feature should stay at one stage for at least one release before being promoted.
#### Provide implementation
If an experimental feature is found ready for graduation to the stable stage, open a Pull Request (PR) with the following changes.
- Add robust e2e tests if not already provided.
- Add a new stable feature flag identical to the experimental feature flag but without the `--experimental` prefix.
- Deprecate the experimental feature following the [feature deprecation policy](#Deprecating-a-feature).
- Implementation must ensure that both the graduated and deprecated experimental feature flags work as expected. Note that both these flags will co-exist for the timeframe described in the feature deprecation policy.
- Enable the graduated feature by default if needed.
If a feature is found ready for graduation to the next stage, open a Pull Request (PR) with the following changes.
- Update the feature `PreRelease` stage in `server/features/etcd_features.go`.
- Update the status in the original KEP issue.
At least two maintainers must approve the work. Patch releases should not be considered for graduation.
### Deprecating a feature
#### Experimental
An experimental feature deprecates when it graduates to the stable stage.
- Add a deprecation message in the documentation of the experimental feature with a recommendation to use related stable feature. e.g. `DEPRECATED. Use <feature-name> instead.`
- Add a `deprecated` label in the issue that was initially used to enable the experimental feature.
#### Alpha
Alpha features can be removed without going through the deprecation process.
- Remove the feature gate in `server/features/etcd_features.go`, and clean up all relevant code.
- Close the original KEP issue with reasons to drop the feature.
#### Stable
As the project evolves, a stable feature may sometimes need to be deprecated and removed. Such a situation should be handled using the steps below:
- Create an issue for tracking purpose.
- Add a deprecation message in the feature usage documentation before a planned release for feature deprecation. e.g. `To be deprecated in <release>.`. If a new feature replaces the `To be deprecated` feature, then also provide a message saying so. e.g. `Use <feature-name> instead.`.
- Deprecate the feature in the planned release with a message as part of the feature usage documentation. e.g. `DEPRECATED`. If a new feature replaces the deprecated feature, then also provide a message saying so. e.g. `DEPRECATED. Use <feature-name> instead.`.
- Add a `deprecated` label in the related issue.
#### Beta and GA
As the project evolves, a Beta/GA feature may sometimes need to be deprecated and removed. Such a situation should be handled using the steps below:
Remove the deprecated feature in the following release. Close any related issue(s). At least two maintainers must approve the work. Patch releases should not be considered for deprecation.
- A Beta/GA feature can only be deprecated after at least 2 minor or major releases.
- Update original KEP issue if it has not been closed or create a new etcd issue with reasons and steps to deprecate the feature.
- Add the feature deprecation documentation in the release notes and feature gates documentation of the next minor/major release.
- In the next minor/major release, set the feature gate to `{Default: false, PreRelease: featuregate.Deprecated, LockedToDefault: false}` in `server/features/etcd_features.go`. Deprecated feature gates must respond with a warning when used.
- If the feature has GAed, and the original gated codes has been cleaned up, add the disablement codes back with the feature gate.
- In the minor/major release after the next, set the feature gate to `{Default: false, PreRelease: featuregate.Deprecated, LockedToDefault: true}` in `server/features/etcd_features.go`, and start cleaning the code.
At least two maintainers must approve the work. Patch releases should not be considered for deprecation.

View File

@ -1,4 +1,4 @@
# Set up local cluster
# Set up the local cluster
For testing and development deployments, the quickest and easiest way is to configure a local cluster. For a production deployment, refer to the [clustering][clustering] section.
@ -28,7 +28,7 @@ Use `etcdctl` to interact with the running cluster:
OK
```
If OK is printed, storing key-value pair is successful.
If OK is printed, storing the key-value pair is successful.
2. Retrieve the value of `foo`:
@ -69,7 +69,7 @@ Use `etcdctl` to interact with the running cluster:
```
$ etcdctl --write-out=table --endpoints=localhost:2379 member list
```
The list of etcd members are displayed as follows:
The list of etcd members is displayed as follows:
```
+------------------+---------+--------+------------------------+------------------------+
@ -88,7 +88,7 @@ Use `etcdctl` to interact with the running cluster:
OK
```
If OK is printed, storing key-value pair is successful.
If OK is printed, storing the key-value pair is successful.
### Testing fault tolerance
@ -144,7 +144,7 @@ To exercise etcd's fault tolerance, kill a member and attempt to retrieve the ke
hello
```
Restarting the member re-establish the connection. `etcdctl` will now be able to retrieve the key successfully. To learn more about interacting with etcd, read [interacting with etcd section][interacting].
Restarting the member re-establishs the connection. `etcdctl` will now be able to retrieve the key successfully. To learn more about interacting with etcd, read [interacting with etcd section][interacting].
[clustering]: https://etcd.io/docs/latest/op-guide/clustering/
[interacting]: https://etcd.io/docs/latest/dev-guide/interacting_v3/

View File

@ -7,14 +7,14 @@ etcd uses the [zap][zap] library for logging application output categorized into
* Send a normal message to a remote peer
* Write a log entry to disk
* Info: Normal, working log information, everything is fine, but helpful notices for auditing or common operations. Should rather not be logged more frequently than once per a few seconds in normal server's operation.
* Info: Normal, working log information, everything is fine, but helpful notices for auditing or common operations. Should rather not be logged more frequently than once per a few seconds in a normal server's operation.
* Examples:
* Startup configuration
* Start to do snapshot
* Start to do a snapshot
* Warning: (Hopefully) Temporary conditions that may cause errors, but may work fine. A replica disappearing (that may reconnect) is a warning.
* Examples:
* Failure to send raft message to a remote peer
* Failure to send a raft message to a remote peer
* Failure to receive heartbeat message within the configured election timeout
* Error: Data has been lost, a request has failed for a bad reason, or a required resource has been lost.

View File

@ -5,17 +5,17 @@ The etcd project (since version 3.5) is organized into multiple
![modules graph](modules.svg)
There are following modules:
There are the following modules:
- **go.etcd.io/etcd/api/v3** - contains API definitions
(like protos & proto-generated libraries) that defines communication protocol
between etcd clients and server.
between etcd clients and servers.
- **go.etcd.io/etcd/pkg/v3** - collection of utility packages used by etcd
- **go.etcd.io/etcd/pkg/v3** - a collection of utility packages used by etcd
without being specific to etcd itself. A package belongs here
only if it could possibly be moved out into its own repository in the future.
Please avoid adding here code that has a lot of dependencies on its own, as
they automatically becoming dependencies of the client library
they automatically become dependencies of the client library
(that we want to keep lightweight).
- **go.etcd.io/etcd/client/v3** - client library used to contact etcd over
@ -26,14 +26,14 @@ There are following modules:
https://github.com/etcd-io/raft.
- **go.etcd.io/etcd/server/v3** - etcd implementation.
The code in this package is etcd internal and should not be consumed
The code in this package is internal to etcd and should not be consumed
by external projects. The package layout and API can change within the minor versions.
- **go.etcd.io/etcd/etcdctl/v3** - a command line tool to access and manage etcd.
- **go.etcd.io/etcd/tests/v3** - a module that contains all integration tests of etcd.
Notice: All unit-tests (fast and not requiring cross-module dependencies)
should be kept in the local modules to the code under the test.
Notice: All unit tests (fast and not requiring cross-module dependencies)
should be kept in the local modules of the code under the test.
- **go.etcd.io/bbolt** - implementation of persistent b-tree.
Hosted in a separate repository: https://github.com/etcd-io/bbolt.
@ -44,7 +44,7 @@ There are following modules:
1. All etcd modules should be released in the same versions, e.g.
`go.etcd.io/etcd/client/v3@v3.5.10` must depend on `go.etcd.io/etcd/api/v3@v3.5.10`.
The consistent updating of versions can by performed using:
The consistent updating of versions can be performed using:
```shell script
% DRY_RUN=false TARGET_VERSION="v3.5.10" ./scripts/release_mod.sh update_versions
```
@ -76,7 +76,7 @@ There are following modules:
### Future
As a North Star, we would like to evaluate etcd modules towards following model:
As a North Star, we would like to evaluate etcd modules towards the following model:
![modules graph](modules-future.svg)

View File

@ -6,70 +6,126 @@ The procedure includes some manual steps for sanity checking, but it can probabl
## Release management
etcd community members are assigned to manage the release each etcd major/minor version as well as manage patches
and to each stable release branch. The managers are responsible for communicating the timelines and status of each
release and for ensuring the stability of the release branch.
Under the leadership of **James Blair** [@jmhbnz](https://github.com/jmhbnz) and **Ivan Valdes Castillo** [@ivanvc](https://github.com/ivanvc), the following pool of release candidates manages the release of each etcd major/minor version as well as manages patches
to each stable release branch. They are responsible for communicating the timelines and status of each release and
for ensuring the stability of the release branch.
| Releases | Manager |
|------------------------|-------------------------------------------------------------|
| 3.4 patch (post 3.4.0) | Benjamin Wang [@ahrtr](https://github.com/ahrtr) |
| 3.5 patch (post 3.5.0) | Marek Siarkowicz [@serathius](https://github.com/serathius) |
- Benjamin Wang [@ahrtr](https://github.com/ahrtr)
- Fu Wei [@fuweid](https://github.com/fuweid)
- James Blair [@jmhbnz](https://github.com/jmhbnz)
- Ivan Valdes Castillo [@ivanvc](https://github.com/ivanvc)
- Marek Siarkowicz [@serathius](https://github.com/serathius)
- Sahdev Zala [@spzala](https://github.com/spzala)
- Siyuan Zhang [@siyuanfoundation](https://github.com/siyuanfoundation)
- Wenjia Zhang [@wenjiaswe](https://github.com/wenjiaswe)
All releases version numbers follow the format of [semantic versioning 2.0.0](http://semver.org/).
All release version numbers follow the format of [semantic versioning 2.0.0](http://semver.org/).
### Major, minor version release, or its pre-release
- Ensure the relevant milestone on GitHub is complete. All referenced issues should be closed, or moved elsewhere.
- Ensure the latest upgrade documentation is available.
- Ensure the relevant [milestone](https://github.com/etcd-io/etcd/milestones) on GitHub is complete. All referenced issues should be closed or moved elsewhere.
- Ensure the latest [upgrade documentation](https://etcd.io/docs/next/upgrades) is available.
- Bump [hardcoded MinClusterVerion in the repository](https://github.com/etcd-io/etcd/blob/v3.4.15/version/version.go#L29), if necessary.
- Add feature capability maps for the new version, if necessary.
### Patch version release
- To request a backport, devlopers submit cherrypick PRs targeting the release branch. The commits should not include merge commits. The commits should be restricted to bug fixes and security patches.
- The cherrypick PRs should target the appropriate release branch (`base:release-<major>-<minor>`). `hack/patch/cherrypick.sh` may be used to automatically generate cherrypick PRs.
- The release patch manager reviews the cherrypick PRs. Please discuss carefully what is backported to the patch release. Each patch release should be strictly better than it's predecessor.
- To request a backport, developers submit cherry-pick PRs targeting the release branch. The commits should not include merge commits. The commits should be restricted to bug fixes and security patches.
- The cherrypick PRs should target the appropriate release branch (`base:release-<major>-<minor>`). The k8s infra cherry pick robot `/cherrypick <branch>` PR chatops command may be used to automatically generate cherrypick PRs.
- The release patch manager reviews the cherrypick PRs. Please discuss carefully what is backported to the patch release. Each patch release should be strictly better than its predecessor.
- The release patch manager will cherry-pick these commits starting from the oldest one into stable branch.
## Write release note
## Write a release note
- Write introduction for the new release. For example, what major bug we fix, what new features we introduce or what performance improvement we make.
- Put `[GH XXXX]` at the head of change line to reference Pull Request that introduces the change. Moreover, add a link on it to jump to the Pull Request.
- Find PRs with `release-note` label and explain them in `NEWS` file, as a straightforward summary of changes for end-users.
- Write an introduction for the new release. For example, what major bug we fix, what new features we introduce, or what performance improvement we make.
- Put `[GH XXXX]` at the head of the change line to reference the Pull Request that introduces the change. Moreover, add a link on it to jump to the Pull Request.
- Find PRs with the `release-note` label and explain them in the `NEWS` file, as a straightforward summary of changes for end-users.
## Build and push the release artifacts
## Patch release criteria
- Ensure `docker` is available.
The etcd project aims to release a new patch version if any of the following conditions are met:
Run release script in root directory:
- Fixed one or more major CVEs (>=7.5).
- Fixed one or more critical bugs.
- Fixed three or more major bugs.
- Fixed five or more minor bugs.
```
DRY_RUN=false ./scripts/release.sh ${VERSION}
## Release guide
### Prerequisites
There are some prerequisites, which should be done before the release process. These are one-time operations,
which don't need to be executed before releasing each version.
1. Generate a GPG key and add it to your GitHub account. Refer to the links on [settings](https://github.com/settings/keys).
2. Ensure you have a Linux machine, on which the git, Golang, and docker have been installed.
- Ensure the Golang version matches the version defined in `.go-version` file.
- Ensure non-privileged users can run docker commands, refer to the [Linux postinstall](https://docs.docker.com/engine/install/linux-postinstall/).
- Ensure there is at least 5GB of free space on your Linux machine.
3. Install gsutil, refer to [gsutil_install](https://cloud.google.com/storage/docs/gsutil_install). When asked about cloud project to use, pick `etcd-development`.
4. Authenticate the image registry, refer to [Authentication methods](https://cloud.google.com/container-registry/docs/advanced-authentication).
- `gcloud auth login`
- `gcloud auth configure-docker`
5. Install gh, refer to [GitHub's documentation](https://github.com/cli/cli#installation). Ensure that running
`gh auth login` succeeds for the GitHub account you use to contribute to etcd,
and that `gh auth status` has a clean exit and doesn't show any issues.
### Release steps
1. Raise an issue to publish the release plan, e.g. [issues/17350](https://github.com/etcd-io/etcd/issues/17350).
2. Raise a `kubernetes/org` pull request to ensure members of the release team are added to the [release github team](https://github.com/orgs/etcd-io/teams/release-etcd).
3. Verify you can pass the authentication to the image registries,
- `docker login gcr.io`
- `docker login quay.io`
- If the release person doesn't have access to 1password, one of the owners (@ahrtr, @ivanvc, @jmhbnz, @serathius) needs to share the password with them per [this guide](https://support.1password.com/share-items/). See rough steps below,
- [Sign in](https://team-etcd.1password.com/home) to your account on 1password.com.
- Click `Your Vault Items` on the right side.
- Select `Password of quay.io`.
- Click `Share` on the top right, and set expiration as `1 hour` and only available to the release person using his/her email.
- Click `Copy Link` then send the link to the release person via slack or email.
4. Clone the etcd repository and checkout the target branch,
- `git clone --branch release-3.X git@github.com:etcd-io/etcd.git`
5. Run the release script under the repository's root directory, replacing `${VERSION}` with a value without the `v` prefix, i.e. `3.5.13`.
- `DRY_RUN=false ./scripts/release.sh ${VERSION}`
- **NOTE:** When doing a pre-release (i.e., a version from the main branch, 3.6.0-alpha.2), you will need to explicitly set the branch to main:
```
DRY_RUN=false BRANCH=main ./scripts/release.sh ${VERSION}
```
It generates all release binaries under the directory `/tmp/etcd-release-${VERSION}/etcd/release/` and images. Binaries are pushed to the Google Cloud bucket
under project `etcd-development`, and images are pushed to `quay.io` and `gcr.io`.
6. Publish the release page on GitHub
- Open the **draft** release URL shown by the release script
- Click the pen button at the top right to edit the release
- Review that it looks correct, reviewing that the bottom checkboxes are checked depending on the
release version (v3.4 no checkboxes, v3.5 has the set as latest release checkbox checked,
v3.6 has the set as pre-release checkbox checked)
- Then, publish the release
7. Announce to the etcd-dev googlegroup
Follow the format of previous release emails sent to etcd-dev@googlegroups.com, see an example below. After sending out the email, ask one of the mailing list maintainers to approve the email from the pending list. Additionally, label the release email as `Release`.
```text
Hello,
etcd v3.4.30 is now public!
https://github.com/etcd-io/etcd/releases/tag/v3.4.30
Thanks to everyone who contributed to the release!
etcd team
```
It generates all release binaries and images under directory ./release.
Binaries are pushed to gcr.io and images are pushed to quay.io and gcr.io.
8. Update the changelog to reflect the correct release date.
9. Paste the release link to the issue raised in Step 1 and close the issue.
10. Raise a follow-up `kubernetes/org` pull request to return the GitHub release team to empty, least privilege state.
11. Crease a new stable branch through `git push origin release-${VERSION_MAJOR}.${VERSION_MINOR}` if this is a new major or minor stable release.
12. Re-generate a new password for quay.io if needed (e.g. shared to a contributor who isn't in the release team, and we should rotate the password at least once every 3 months).
## Publish release page in GitHub
#### Release known issues
- Set release title as the version name.
- Follow the format of previous release pages.
- Attach the generated binaries and signatures.
- Select whether it is a pre-release.
- Publish the release!
1. Timeouts pushing binaries - If binaries fail to fully upload to Google Cloud storage, the script must be re-run using the same command. Any artifacts that are already pushed will be overwritten to ensure they are correct. The storage bucket does not use object versioning so incorrect files cannot remain.
## Announce to the etcd-dev Googlegroup
2. Timeouts pushing images - It is rare, although possible for connection timeouts to occur when publishing etcd release images to `quay.io` or `gcr.io`. If this occurs, it is known to be safe to rerun the release script command appending the `--no-upload` flag, and image uploads will gracefully resume.
- Follow the format of [previous release emails](https://groups.google.com/g/etcd-dev).
- Make sure to include a list of authors that contributed since the previous release - something like the following might be handy:
```
git log ...${PREV_VERSION} --pretty=format:"%an" | sort | uniq | tr '\n' ',' | sed -e 's#,#, #g' -e 's#, $##'
```
- Send email to etcd-dev@googlegroups.com
## Post release
- Create new stable branch through `git push origin ${VERSION_MAJOR}.${VERSION_MINOR}` if this is a major stable release. This assumes `origin` corresponds to "https://github.com/etcd-io/etcd".
- Bump [hardcoded Version in the repository](https://github.com/etcd-io/etcd/blob/v3.4.15/version/version.go#L30) to the version `${VERSION}+git`.
3. GPG vs SSH signing - The release scripts assume that git tags will be signed with a GPG key. Since 2022 GitHub has supported [signing commits and tags using ssh](https://github.blog/changelog/2022-08-23-ssh-commit-verification-now-supported). Until further release script updates are completed you will need to disable this feature in your `~/.gitconfig` and revert to signing via GPG to perform etcd releases.

View File

@ -4,13 +4,13 @@ If any part of the etcd project has bugs or documentation mistakes, please let u
To make the bug report accurate and easy to understand, please try to create bug reports that are:
- Specific. Include as much details as possible: which version, what environment, what configuration, etc. If the bug is related to running the etcd server, please attach the etcd log (the starting log with etcd configuration is especially important).
- Specific. Include as many details as possible: which version, what environment, what configuration, etc. If the bug is related to running the etcd server, please attach the etcd log (the starting log with the etcd configuration is especially important).
- Reproducible. Include the steps to reproduce the problem. We understand some issues might be hard to reproduce, please includes the steps that might lead to the problem. If possible, please attach the affected etcd data dir and stack strace to the bug report.
- Reproducible. Include the steps to reproduce the problem. We understand some issues might be hard to reproduce, please include the steps that might lead to the problem. If possible, please attach the affected etcd data dir and stack trace to the bug report.
- Isolated. Please try to isolate and reproduce the bug with minimum dependencies. It would significantly slow down the speed to fix a bug if too many dependencies are involved in a bug report. Debugging external systems that rely on etcd is out of scope, but we are happy to provide guidance in the right direction or help with using etcd itself.
- Unique. Do not duplicate existing bug report.
- Unique. Do not duplicate existing bug reports.
- Scoped. One bug per report. Do not follow up with another bug inside one report.
@ -26,7 +26,7 @@ We might ask for further information to locate a bug. A duplicated bug report wi
$ kill -QUIT $PID
```
### How to get etcd version
### How to get the etcd version
``` bash
$ etcd --version
@ -39,7 +39,7 @@ $ sudo systemctl cat etcd2
$ sudo journalctl -u etcd2
```
Due to an upstream systemd bug, journald may miss the last few log lines when its processes exit. If journalctl says etcd stopped without fatal or panic message, try `sudo journalctl -f -t etcd2` to get full log.
Due to an upstream systemd bug, journald may miss the last few log lines when its processes exit. If journalctl says etcd stopped without a fatal or panic message, try `sudo journalctl -f -t etcd2` to get the full log.
[etcd-issue]: https://github.com/etcd-io/etcd/issues/new
[filing-good-bugs]: http://fantasai.inkedblade.net/style/talks/filing-good-bugs/

View File

@ -1,15 +1,12 @@
# Roadmap
etcd uses GitHub milestones to track all tasks in each major or minor release. The `roadmap.md` file only records the
most important tasks for each release. The list is based on current maintainers capacity that may shift over time.
Proposed milestones is what we think we can deliver with people we have. If we have more support on the important
stuff, we could pick up more items from backlog. Note that etcd will continue to mainly focus on technical debt over
most important tasks for each release. The list is based on the current maintainer capacity that may shift over time.
Proposed milestones are what we think we can deliver with the people we have. If we have more support on the important
stuff, we could pick up more items from the backlog. Note that etcd will continue to mainly focus on technical debt over
the next few major or minor releases.
Each item has an assigned priority:
- P0 - Critical for the current milestone, and blocks the release.
- P1 - Important for the current milestone, and critical for the next milestone.
- P2 - Nice to have, can be always skipped and should not block anything.
Each item has an assigned priority. Refer to [priority definitions](https://github.com/etcd-io/etcd/blob/main/Documentation/contributor-guide/triage_issues.md#step-5---prioritise-the-issue).
## v3.6.0
@ -17,16 +14,16 @@ For a full list of tasks in `v3.6.0`, please see [milestone etcd-v3.6](https://g
| Title | Priority | Status | Note |
|--------------------------------------------------------------------------------------------------------------------|----------|-------------|--------------------------------------------------------------------------------------------------------------|
| [Support downgrade](https://github.com/etcd-io/etcd/issues/11716) | P0 | In progress | etcd will support downgrade starting from 3.6.0. But it will also support offline downgrade from 3.5 to 3.4. |
| [StoreV2 deprecation](https://github.com/etcd-io/etcd/issues/12913) | P0 | In progress | This task will be covered in both 3.6 and 3.7. |
| [Release raft 3.6.0](https://github.com/etcd-io/raft/issues/89) | P0 | Not started | etcd 3.6.0 will depends on raft 3.6.0 |
| [Release bbolt 1.4.0](https://github.com/etcd-io/bbolt/issues/553) | P0 | Not started | etcd 3.6.0 will depends on bbolt 1.4.0 |
| [Support /livez and /readyz endpoints](https://github.com/etcd-io/etcd/issues/16007) | P1 | In progress | It provides clearer APIs, and can also workaround the stalled writes issue |
| [Bump gRPC](https://github.com/etcd-io/etcd/issues/16290) | P1 | Completed | It isn't guaranteed to be resolved in 3.6, and might be postponed to 3.7 depending on the effort and risk. |
| [Deprecate grpc-gateway or bump it](https://github.com/etcd-io/etcd/issues/14499) | P1 | Completed | It isn't guaranteed to be resolved in 3.6, and might be postponed to 3.7 depending on the effort and risk. |
| [bbolt: Add logger into bbolt](https://github.com/etcd-io/bbolt/issues/509) | P1 | In progress | It's important to diagnose bbolt issues |
| [bbolt: Add surgery commands](https://github.com/etcd-io/bbolt/issues/370) | P1 | Completed | Surgery commands are important for fixing corrupted db files |
| [Evaluate and (Gradulate or deprecate/remove) experimental features](https://github.com/etcd-io/etcd/issues/16292) | P2 | Not started | This task will be covered in both 3.6 and 3.7. |
| [Support downgrade](https://github.com/etcd-io/etcd/issues/11716) | priority/important-soon | In progress | etcd will support downgrade starting from 3.6.0. But it will also support offline downgrade from 3.5 to 3.4. |
| [StoreV2 deprecation](https://github.com/etcd-io/etcd/issues/12913) | priority/important-soon | In progress | This task will be covered in both 3.6 and 3.7. |
| [Release raft 3.6.0](https://github.com/etcd-io/raft/issues/89) | priority/important-soon | Not started | etcd 3.6.0 will depends on raft 3.6.0 |
| [Release bbolt 1.4.0](https://github.com/etcd-io/bbolt/issues/553) | priority/important-soon | Not started | etcd 3.6.0 will depends on bbolt 1.4.0 |
| [Support /livez and /readyz endpoints](https://github.com/etcd-io/etcd/issues/16007) | priority/important-longterm | In progress | It provides clearer APIs, and can also work around the stalled writes issue |
| [Bump gRPC](https://github.com/etcd-io/etcd/issues/16290) | priority/important-longterm | Completed | It isn't guaranteed to be resolved in 3.6, and might be postponed to 3.7 depending on the effort and risk. |
| [Deprecate grpc-gateway or bump it](https://github.com/etcd-io/etcd/issues/14499) | priority/important-longterm | Completed | It isn't guaranteed to be resolved in 3.6, and might be postponed to 3.7 depending on the effort and risk. |
| [bbolt: Add logger into bbolt](https://github.com/etcd-io/bbolt/issues/509) | priority/important-longterm | Completed | It's important to diagnose bbolt issues |
| [bbolt: Add surgery commands](https://github.com/etcd-io/bbolt/issues/370) | priority/important-longterm | Completed | Surgery commands are important for fixing corrupted db files |
| [Evaluate and (Gradulate or deprecate/remove) experimental features](https://github.com/etcd-io/etcd/issues/16292) | priority/backlog | Not started | This task will be covered in both 3.6 and 3.7. |
## v3.7.0
@ -36,7 +33,7 @@ For a full list of tasks in `v3.7.0`, please see [milestone etcd-v3.7](https://g
|-------------------------------------------------------------------------------------------------------------------|----------|-----------------------------------------------------------------------------------|
| [StoreV2 deprecation](https://github.com/etcd-io/etcd/issues/12913) | P0 | Finish the remaining tasks 3.7. |
| [Refactor lease: Lease might be revoked by mistake by old leader](https://github.com/etcd-io/etcd/issues/15247) | P1 | to be investigated & discussed |
| [Integrate raft's new feature (async write) into etcd](https://github.com/etcd-io/etcd/issues/16291) | P1 | It should can improve the performance |
| [Integrate raft's new feature (async write) into etcd](https://github.com/etcd-io/etcd/issues/16291) | P1 | It should improve the performance |
| [bbolt: Support customizing the bbolt rebalance threshold](https://github.com/etcd-io/bbolt/issues/422) | P2 | It may get rid of etcd's defragmentation. Both bbolt and etcd need to be changed. |
| [Evaluate and (graduate or deprecate/remove) experimental features](https://github.com/etcd-io/etcd/issues/16292) | P2 | Finish the remaining tasks 3.7. |

View File

@ -4,19 +4,19 @@
Speed up issue management.
The `etcd` issues are listed at <https://github.com/etcd-io/etcd/issues> and are identified with labels. For example, an issue that is identified as a bug will be set to label `type/bug`.
The `etcd` issues are listed at <https://github.com/etcd-io/etcd/issues> and are identified with labels. For example, an issue that is identified as a bug will be set to the label `type/bug`.
The etcd project uses labels to indicate common attributes such as `area`, `type` and `priority` of incoming issues.
The etcd project uses labels to indicate common attributes such as `area`, `type`, and `priority` of incoming issues.
New issues will often start out without any labels, but typically `etcd` maintainers, reviewers and members will add labels by following these triage guidelines. The detailed list of labels can be found at <https://github.com/etcd-io/etcd/labels>.
New issues will often start without any labels, but typically `etcd` maintainers, reviewers, and members will add labels by following these triage guidelines. The detailed list of labels can be found at <https://github.com/etcd-io/etcd/labels>.
## Scope
This document serves as the primary guidelines for triaging incoming issues in `etcd`.
All contributors are encouraged and welcome to help manage issues which will help reduce burden on project maintainers, though the work and responsibilities discussed in this document are created with `etcd` project reviewers and members in mind as these individuals will have triage access to the etcd project which is a requirement for actions like applying labels or closing issues.
All contributors are encouraged and welcome to help manage issues which will help reduce the burden on project maintainers, though the work and responsibilities discussed in this document are created with `etcd` project reviewers and members in mind as these individuals will have triage access to the etcd project which is a requirement for actions like applying labels or closing issues.
Refer to [etcd community membership](https://github.com/etcd-io/etcd/blob/main/Documentation/contributor-guide/community-membership.md) for guidance on becoming and etcd project member or reviewer.
Refer to [etcd community membership](https://github.com/etcd-io/etcd/blob/main/Documentation/contributor-guide/community-membership.md) for guidance on becoming an etcd project member or reviewer.
## Step 1 - Find an issue to triage
@ -34,33 +34,33 @@ Before we start adding labels or trying to work out a priority, our first triage
### Issues that don't belong to etcd
Sometime issues are reported that actually belongs to other projects that `etcd` use. For example, `grpc` or `golang` issues. Such issues should be addressed by asking reporter to open issues in appropriate other project.
Sometimes issues are reported that belong to other projects that `etcd` use. For example, `grpc` or `golang` issues. Such issues should be addressed by asking the reporter to open issues in the appropriate other projects.
These issues can generally be closed unless a maintainer and issue reporter see a need to keep it open for tracking purpose. If you have triage permissions please close it, alternatively mention the @etcd-io/members group to request a member with triage access close the issue.
These issues can generally be closed unless a maintainer and issue reporter see a need to keep it open for tracking purposes. If you have triage permissions please close it, alternatively mention the @etcd-io/members group to request a member with triage access to close the issue.
### Duplicate issues
If an issue is a duplicate, add a comment stating so along with a reference for the original issue and if you have triage permissions please close it, alternatively mention the @etcd-io/members group to request a member with triage access close the issue.
## Step 3 - Apply the appropriate type label
## Step 3 - Apply the appropriate type of label
Adding a `type` label to an issue helps create visibility on the health of the project and helps contributors identify potential priorities, i.e. addressing existing bugs or test flakes before implementing new features.
### Support requests
As a general rule the focus for etcd support is to address common themes in a broad way that helps all users, i.e. through channels like known issues, frequently asked questions and high quality documentation. To make the best use of project members time we should avoid providing 1:1 support if a broad approach is available.
As a general rule, the focus for etcd support is to address common themes in a broad way that helps all users, i.e. through channels like known issues, frequently asked questions, and high-quality documentation. To make the best use of project members time we should avoid providing 1:1 support if a broad approach is available.
Some people mistakenly use our GitHub bug report or feature request templates to file support requests. Usually they are asking for help operating or configuring some aspect of etcd. Support requests for etcd should instead be raised as [discussions](https://github.com/etcd-io/etcd/discussions).
Some people mistakenly use our GitHub bug report or feature request templates to file support requests. Usually, they are asking for help operating or configuring some aspect of etcd. Support requests for etcd should instead be raised as [discussions](https://github.com/etcd-io/etcd/discussions).
Common types of support requests are:
1. Questions about configuring or operating existing well documented etcd features, for example <https://github.com/etcd-io/etcd/issues/15945>. Note - If an existing feature is not well documented please apply the `area/documentation` label and propose documentation improvements that would prevent future users from stumbling on the problem again.
1. Questions about configuring or operating existing well-documented etcd features, for example, <https://github.com/etcd-io/etcd/issues/15945>. Note - If an existing feature is not well documented please apply the `area/documentation` label and propose documentation improvements that would prevent future users from stumbling on the problem again.
2. Bug reports or questions about unspported versions of etcd, for example <https://github.com/etcd-io/etcd/issues/15796>. When responding to these issues please refer to our [supported versions documentation](https://etcd.io/docs/latest/op-guide/versioning) and encourage the reporter to upgrade to a recent patch release of a supported version as soon as possible. We should limit the effort supporting users that do not make the effort to run a supported version of etcd or ensure their version is patched.
2. Bug reports or questions about unsupported versions of etcd, for example <https://github.com/etcd-io/etcd/issues/15796>. When responding to these issues please refer to our [supported versions documentation](https://etcd.io/docs/latest/op-guide/versioning) and encourage the reporter to upgrade to a recent patch release of a supported version as soon as possible. We should limit the effort supporting users that do not make the effort to run a supported version of etcd or ensure their version is patched.
3. Bug reports that do not provide a complete list of steps to reproduce issue and/or contributors are not able to reproduce the issue, for example <https://github.com/etcd-io/etcd/issues/15740>. We should limit the effort we put into reproducing issues ourselves and motivate users to provide necessary information to accept the bug report.
3. Bug reports that do not provide a complete list of steps to reproduce the issue and/or contributors are not able to reproduce the issue, for example, <https://github.com/etcd-io/etcd/issues/15740>. We should limit the effort we put into reproducing issues ourselves and motivate users to provide the necessary information to accept the bug report.
4. General questions that are filed using feature request or bug report issue templates, for example <https://github.com/etcd-io/etcd/issues/15914>. Note - These types of requests may surface good additions to our [frequently asked questions](https://etcd.io/docs/v3.5/faq).
4. General questions that are filed using feature request or bug report issue templates, for example, <https://github.com/etcd-io/etcd/issues/15914>. Note - These types of requests may surface good additions to our [frequently asked questions](https://etcd.io/docs/v3.5/faq).
If you identify that an issue is a support request please:
@ -70,7 +70,7 @@ If you identify that an issue is a support request please:
> Thank you for your question, this support issue will be moved to our [Discussion Forums](https://github.com/etcd-io/etcd/discussions).
>
> We are trying to consolidate the channels to which questions for help/support are posted so that we can improve our efficiency in responding to your requests, and to make it easier for you to find answers to frequently asked questions and how to address common use cases.
> We are trying to consolidate the channels to which questions for help/support are posted so that we can improve our efficiency in responding to your requests, and make it easier for you to find answers to frequently asked questions and how to address common use cases.
>
> We regularly see messages posted in multiple forums, with the full response thread only in one place or, worse, spread across multiple forums. Also, the large volume of support issues on GitHub is making it difficult for us to use issues to identify real bugs.
>
@ -83,23 +83,23 @@ If you identify that an issue is a support request please:
>
> The etcd team
3. Finally, click `Convert to discussion` on the right hand panel, selecting the appropriate discussion category.
3. Finally, click `Convert to discussion` on the right-hand panel, selecting the appropriate discussion category.
### Bug reports
If an issue has been raised as a bug it should already have the `type/bug` label, however if this is missing for an issue you determine to be a bug please add the label manually.
If an issue has been raised as a bug it should already have the `type/bug` label, however, if this is missing for an issue you determine to be a bug please add the label manually.
The next step is to validate if the issue is indeed a bug. If not, add a comment with findings and close trivial issue. For non-trivial issue, wait to hear back from issue reporter and see if there is any objection. If issue reporter does not reply in 30 days, close the issue.
The next step is to validate if the issue is indeed a bug. If not, add a comment with the findings and close the trivial issue. For non-trivial issues, wait to hear back from the issue reporter and see if there is any objection. If the issue reporter does not reply in 30 days, close the issue.
If the problem can not be reproduced or requires more information, leave a comment for the issue reporter as soon as possible while the issue will be fresh for the issue reporter.
If the problem can not be reproduced or requires more information, leave a comment for the issue reporter as soon as possible while the issue is fresh for the issue reporter.
### Feature requests
New feature requests should be created via the etcd feature request template and in theory already have the `type/feature` label, however if this is missing for an issue you determine to be a feature please add the label manually.
New feature requests should be created via the etcd feature request template and in theory already have the `type/feature` label, however, if this is missing for an issue you determine to be a feature please add the label manually.
### Test flakes
Test flakes are a specific type of bug that the etcd project tracks separately as these are a priority to address. These should be created via the test flake template and in theory already have the `type/flake` label, however if this is missing for an issue you determine to be related to a flaking test please add the label manually.
Test flakes are a specific type of bug that the etcd project tracks separately as these are a priority to address. These should be created via the test flake template and in theory already have the `type/flake` label, however, if this is missing for an issue you determine to be related to a flaking test please add the label manually.
## Step 4 - Define the areas impacted
@ -121,15 +121,25 @@ Below is a brief summary of the area labels in active use by the etcd project al
| area/auth | |
| area/etcdctl | |
| area/etcdutl | |
| area/contrib | Not to be confused with `area/community` this label is specifically used for issues relating to community maintained scripts or files in the `contrib/` directory which aren't part of the core etcd project. |
| area/contrib | Not to be confused with `area/community` this label is specifically used for issues relating to community-maintained scripts or files in the `contrib/` directory which aren't part of the core etcd project. |
| area/documentation | |
| area/tooling | Generally used in relation to the third party / external utilities or tools that are used in various stages of the etcd build, test or release process, for example tooling to create sboms. |
| area/tooling | Generally used in relation to the third party / external utilities or tools that are used in various stages of the etcd build, test, or release process, for example, tooling to create sboms. |
| area/testing | |
| area/robustness-testing | |
## Step 5 - Prioritise the issue
Placeholder.
If an issue lacks a priority label it has not been formally prioritized yet.
Adding a `priority` label helps the etcd project understand what is important and should be worked on now, and conversely, what is not as important and is on the project backlog.
|Priority label|What it means|Examples|
|---|---|---|
| `priority/critical-urgent` | Maintainers are responsible for making sure that these issues (in their area) are being actively worked on—i.e., drop what you're doing. The stuff is burning. These should be fixed before the next release. | user-visible critical bugs in core features <br> broken builds on tier1 supported platforms <br> tests and critical security issues |
| `priority/important-soon` | Must be staffed and worked on either currently or very soon—ideally in time for the next release. | |
| `priority/important-longterm` | Important over the long term, but may not be currently staffed and/or may require multiple releases to complete. | |
| `priority/backlog` | General agreement that this is a nice-to-have, but no one's available to work on it anytime soon. Community contributions would be most welcome in the meantime, though it might take a while to get them reviewed if reviewers are fully occupied with higher-priority issues—for example, immediately before a release.| |
| `priority/awaiting-more-evidence` | Possibly useful, but not yet enough support to actually get it done. | Mostly placeholders for potentially good ideas, so that they don't get completely forgotten, and can be referenced or deduped every time they come up |
## Step 6 - Support new contributors
@ -169,11 +179,11 @@ Once initial triage has been completed, issues need to be re-evaluated over time
### Track important issues
If an issue is at risk of being closed by stale bot in future, but is an important issuefor the etcd project, then please apply the `stage/tracked` label and remove any `stale` labels that exist. This will ensure the project does not lose sight of the issue.
If an issue is at risk of being closed by the stale bot in the future, but is an important issue for the etcd project, then please apply the `stage/tracked` label and remove any `stale` labels that exist. This will ensure the project does not lose sight of the issue.
### Close incomplete issues
Issues that lack enough information from the issue reporter should be closed if issue reporter do not provide information in 30 days. Issues can always be re-opened at a later date if new information is provided.
Issues that lack enough information from the issue reporter should be closed if the issue reporter does not provide information in 30 days. Issues can always be re-opened at a later date if new information is provided.
### Check for incomplete work

View File

@ -5,23 +5,27 @@
Speed up PR management.
The `etcd` PRs are listed at https://github.com/etcd-io/etcd/pulls
A PR can have various labels, milestone, reviewer etc. The detailed list of labels can be found at
A PR can have various labels, milestones, reviewers, etc. The detailed list of labels can be found at
https://github.com/kubernetes/kubernetes/labels
Following are few example searches on PR for convenience:
Following are a few example searches on PR for convenience:
* [Open PRS for milestone etcd-v3.6](https://github.com/etcd-io/etcd/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Aetcd-v3.6)
* [PRs under investigation](https://github.com/etcd-io/etcd/labels/Investigating)
## Scope
These guidelines serves as a primary document for managing PRs in `etcd`. Everyone is welcome to help manage PRs but the work and responsibilities discussed in this document is created with `etcd` maintainers and active contributors in mind.
These guidelines serve as a primary document for managing PRs in `etcd`. Everyone is welcome to help manage PRs but the work and responsibilities discussed in this document are created with `etcd` maintainers and active contributors in mind.
## Ensure tests are run
The etcd project use Kubernetes Prow and GitHub Actions to run tests. To ensure all required tests run if a pull request is ready for testing and still has the `needs-ok-to-test` label then please comment on the pull request `/ok-to-test`.
## Handle inactive PRs
Poke PR owner if review comments are not addressed in 15 days. If PR owner does not reply in 90 days, update the PR with a new commit if possible. If not, inactive PR should be closed after 180 days.
Poke PR owner if review comments are not addressed in 15 days. If the PR owner does not reply in 90 days, update the PR with a new commit if possible. If not, inactive PR should be closed after 180 days.
## Poke reviewer if needed
Reviewers are responsive in a timely fashion, but considering everyone is busy, give them some time after requesting review if quick response is not provided. If response is not provided in 10 days, feel free to contact them via adding a comment in the PR or sending an email or message on the Slack.
Reviewers are responsive in a timely fashion, but considering everyone is busy, give them some time after requesting a review if a quick response is not provided. If the response is not provided in 10 days, feel free to contact them via adding a comment in the PR or sending an email or message on Slack.
## Verify important labels are in place

View File

@ -45,7 +45,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -78,7 +78,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -111,7 +111,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -144,7 +144,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -177,7 +177,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -210,7 +210,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -243,7 +243,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -276,7 +276,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -309,7 +309,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -342,7 +342,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -375,7 +375,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -408,7 +408,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -441,7 +441,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -474,7 +474,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -507,7 +507,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -540,7 +540,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -573,7 +573,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -606,7 +606,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -639,7 +639,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -672,7 +672,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -705,7 +705,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -738,7 +738,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -771,7 +771,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -805,7 +805,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -838,7 +838,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -871,7 +871,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -904,7 +904,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -937,7 +937,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -970,7 +970,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -1003,7 +1003,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -1037,7 +1037,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -1070,7 +1070,7 @@
"$ref": "#/definitions/etcdserverpbLeaseKeepAliveResponse"
},
"error": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
},
"title": "Stream result of etcdserverpbLeaseKeepAliveResponse"
@ -1079,7 +1079,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -1113,7 +1113,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -1146,7 +1146,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -1179,7 +1179,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -1212,7 +1212,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -1245,7 +1245,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -1278,7 +1278,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -1311,7 +1311,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -1344,7 +1344,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -1377,7 +1377,7 @@
"$ref": "#/definitions/etcdserverpbSnapshotResponse"
},
"error": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
},
"title": "Stream result of etcdserverpbSnapshotResponse"
@ -1386,7 +1386,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -1419,7 +1419,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -1452,7 +1452,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -1485,7 +1485,7 @@
"$ref": "#/definitions/etcdserverpbWatchResponse"
},
"error": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
},
"title": "Stream result of etcdserverpbWatchResponse"
@ -1494,7 +1494,7 @@
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
"$ref": "#/definitions/googlerpcStatus"
}
}
},
@ -2135,6 +2135,19 @@
}
}
},
"etcdserverpbDowngradeInfo": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "enabled indicates whether the cluster is enabled to downgrade."
},
"targetVersion": {
"type": "string",
"description": "targetVersion is the target downgrade version."
}
}
},
"etcdserverpbDowngradeRequest": {
"type": "object",
"properties": {
@ -2689,7 +2702,7 @@
"count": {
"type": "string",
"format": "int64",
"description": "count is set to the number of keys within the range when requested."
"description": "count is set to the actual number of keys within the range when requested.\nUnlike Kvs, it is unaffected by limits and filters (e.g., Min/Max, Create/Modify, Revisions)\nand reflects the full count within the specified range."
}
}
},
@ -2834,7 +2847,16 @@
},
"storageVersion": {
"type": "string",
"description": "storageVersion is the version of the db file. It might be get updated with delay in relationship to the target cluster version."
"description": "storageVersion is the version of the db file. It might be updated with delay in relationship to the target cluster version."
},
"dbSizeQuota": {
"type": "string",
"format": "int64",
"title": "dbSizeQuota is the configured etcd storage quota in bytes (the value passed to etcd instance by flag --quota-backend-bytes)"
},
"downgradeInfo": {
"$ref": "#/definitions/etcdserverpbDowngradeInfo",
"description": "downgradeInfo indicates if there is downgrade process."
}
}
},
@ -2977,7 +2999,7 @@
},
"canceled": {
"type": "boolean",
"description": "canceled is set to true if the response is for a cancel watch request.\nNo further events will be sent to the canceled watcher."
"description": "canceled is set to true if the response is for a cancel watch request\nor if the start_revision has already been compacted.\nNo further events will be sent to the canceled watcher."
},
"compact_revision": {
"type": "string",
@ -3001,6 +3023,25 @@
}
}
},
"googlerpcStatus": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32"
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"$ref": "#/definitions/protobufAny"
}
}
}
},
"mvccpbEvent": {
"type": "object",
"properties": {
@ -3061,25 +3102,6 @@
}
},
"additionalProperties": {}
},
"rpcStatus": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32"
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"$ref": "#/definitions/protobufAny"
}
}
}
}
},
"securityDefinitions": {

View File

@ -318,7 +318,7 @@
"name": {
"type": "string",
"format": "byte",
"description": "name is the election identifier that correponds to the leadership key."
"description": "name is the election identifier that corresponds to the leadership key."
},
"key": {
"type": "string",

View File

@ -1,17 +0,0 @@
# etcd arm64 test infrastructure
The infrastructure to build for arm64 is provided by [Equinix Metal](https://www.equinix.com/) via the [CNCF Community Infrastructure Lab](https://github.com/cncf/cluster/issues).
Previously, several maintainers were responsible for managing two bare-metal machines with a self-hosted runner installed. This was a manual process, and side effects could be left over from previous builds.
As part of a joint program between Ampere and the CNCF, [actuated.dev](https://actuated.dev) is providing managed Arm64 builds.
To use the new infrastructure, add the following to your workflow:
```yaml
runs-on: actuated-arm64-8cpu-8gb
```
The vCPUs and RAM are customizable, i.e. `actuated-arm64-8cpu-16gb` or `actuated-arm64-8cpu-32gb`.
For urgent support, contact @alexellis or the [actuated team](https://actuated.dev).

View File

@ -1,25 +1,29 @@
REPOSITORY_ROOT := $(shell git rev-parse --show-toplevel)
.PHONY: all
all: build
include tests/robustness/makefile.mk
include $(REPOSITORY_ROOT)/tests/robustness/Makefile
.PHONY: build
build:
GO_BUILD_FLAGS="${GO_BUILD_FLAGS} -v -mod=readonly" ./scripts/build.sh
PLATFORMS=linux-amd64 linux-386 linux-arm linux-arm64 linux-ppc64le linux-s390x darwin-amd64 darwin-arm64 windows-amd64 windows-arm64
.PHONY: build-all
build-all:
@for platform in $(PLATFORMS); do \
$(MAKE) build-$${platform}; \
done
.PHONY: build-%
build-%:
GOOS=$$(echo $* | cut -d- -f 1) GOARCH=$$(echo $* | cut -d- -f 2) GO_BUILD_FLAGS="${GO_BUILD_FLAGS} -v -mod=readonly" ./scripts/build.sh
.PHONY: tools
tools:
GO_BUILD_FLAGS="${GO_BUILD_FLAGS} -v -mod=readonly" ./scripts/build_tools.sh
TEMP_TEST_ANALYZER_DIR=/tmp/etcd-test-analyzer
TEST_ANALYZER_BIN=${PWD}/bin
bin/etcd-test-analyzer: $(TEMP_TEST_ANALYZER_DIR)/*
make -C ${TEMP_TEST_ANALYZER_DIR} build
mkdir -p ${TEST_ANALYZER_BIN}
install ${TEMP_TEST_ANALYZER_DIR}/bin/etcd-test-analyzer ${TEST_ANALYZER_BIN}
${TEST_ANALYZER_BIN}/etcd-test-analyzer -h
$(TEMP_TEST_ANALYZER_DIR)/*:
git clone "https://github.com/endocrimes/etcd-test-analyzer.git" ${TEMP_TEST_ANALYZER_DIR}
# Tests
GO_TEST_FLAGS?=
@ -56,17 +60,27 @@ test-e2e-release: build
test-robustness:
PASSES="robustness" ./scripts/test.sh $(GO_TEST_FLAGS)
.PHONY: test-coverage
test-coverage:
COVERDIR=covdir PASSES="build cov" ./scripts/test.sh $(GO_TEST_FLAGS)
.PHONY: upload-coverage-report
upload-coverage-report: test-coverage
COVERDIR=covdir ./scripts/codecov_upload.sh
.PHONY: fuzz
fuzz:
./scripts/fuzzing.sh
# Static analysis
.PHONY: verify
verify: verify-gofmt verify-bom verify-lint verify-dep verify-shellcheck verify-goword \
verify-govet verify-license-header verify-receiver-name verify-mod-tidy \
verify-govet verify-license-header verify-mod-tidy \
verify-shellws verify-proto-annotations verify-genproto verify-yamllint \
verify-govet-shadow verify-markdown-marker
fix: fix-bom fix-lint fix-yamllint
verify-govet-shadow verify-markdown-marker verify-go-versions
.PHONY: fix
fix: fix-bom fix-lint fix-yamllint sync-toolchain-directive
./scripts/fix.sh
.PHONY: verify-gofmt
@ -109,10 +123,6 @@ verify-govet:
verify-license-header:
PASSES="license_header" ./scripts/test.sh
.PHONY: verify-receiver-name
verify-receiver-name:
PASSES="receiver_name" ./scripts/test.sh
.PHONY: verify-mod-tidy
verify-mod-tidy:
PASSES="mod_tidy" ./scripts/test.sh
@ -133,9 +143,11 @@ verify-genproto:
verify-yamllint:
ifeq (, $(shell which yamllint))
@echo "Installing yamllint..."
python3 -m venv bin/python
bin/python/bin/python3 -m pip install yamllint
./bin/python/bin/yamllint --config-file tools/.yamllint .
tmpdir=$$(mktemp -d); \
trap "rm -rf $$tmpdir" EXIT; \
python3 -m venv $$tmpdir; \
$$tmpdir/bin/python3 -m pip install yamllint; \
$$tmpdir/bin/yamllint --config-file tools/.yamllint .
else
@echo "yamllint already installed..."
yamllint --config-file tools/.yamllint .
@ -158,6 +170,13 @@ ifeq (, $(shell which yamlfmt))
endif
yamlfmt -conf tools/.yamlfmt .
.PHONY: run-govulncheck
run-govulncheck:
ifeq (, $(shell which govulncheck))
$(shell go install golang.org/x/vuln/cmd/govulncheck@latest)
endif
PASSES="govuln" ./scripts/test.sh
# Tools
GOLANGCI_LINT_VERSION = $(shell cd tools/mod && go list -m -f {{.Version}} github.com/golangci/golangci-lint)
@ -178,13 +197,14 @@ bin/lazyfs:
cp /tmp/lazyfs/lazyfs/build/lazyfs ./bin/lazyfs
# Cleanup
.PHONY: clean
clean:
rm -f ./codecov
rm -rf ./covdir
rm -f ./bin/Dockerfile-release
rm -rf ./bin/etcd*
rm -rf ./bin/lazyfs
rm -rf ./bin/python
rm -rf ./default.etcd
rm -rf ./tests/e2e/default.etcd
rm -rf ./release
@ -192,3 +212,15 @@ clean:
rm -rf ./tests/e2e/default.proxy
rm -rf ./bin/shellcheck*
find ./ -name "127.0.0.1:*" -o -name "localhost:*" -o -name "*.log" -o -name "agent-*" -o -name "*.coverprofile" -o -name "testname-proxy-*" -delete
.PHONY: verify-go-versions
verify-go-versions:
./scripts/verify_go_versions.sh
.PHONY: sync-toolchain-directive
sync-toolchain-directive:
./scripts/sync_go_toolchain_directive.sh
.PHONY: markdown-diff-lint
markdown-diff-lint:
./scripts/markdown_diff_lint.sh

15
OWNERS
View File

@ -1,11 +1,12 @@
# See the OWNERS docs at https://go.k8s.io/owners
approvers:
- ahrtr # Benjamin Wang <wachao@vmware.com> <benjamin.ahrtr@gmail.com>
- mitake # Hitoshi Mitake <h.mitake@gmail.com>
- serathius # Marek Siarkowicz <siarkowicz@google.com> <marek.siarkowicz@gmail.com>
- spzala # Sahdev Zala <spzala@us.ibm.com>
- wenjiaswe # Wenjia Zhang <wenjiazhang@google.com> <wenjia.swe@gmail.com>
- ahrtr # Benjamin Wang <benjamin.ahrtr@gmail.com> <benjamin.wang@broadcom.com>
- fuweid # Wei Fu <fuweid89@gmail.com>
- jmhbnz # James Blair <jablair@redhat.com> <mail@jamesblair.net>
- serathius # Marek Siarkowicz <siarkowicz@google.com> <marek.siarkowicz@gmail.com>
- spzala # Sahdev Zala <spzala@us.ibm.com>
- wenjiaswe # Wenjia Zhang <wenjiazhang@google.com> <wenjia.swe@gmail.com>
reviewers:
- jmhbnz # James Blair <jablair@redhat.com> <mail@jamesblair.net>
- fuweid # Wei Fu <fuweid89@gmail.com>
- ivanvc # Ivan Valdes <ivan@vald.es>
- siyuanfoundation # Siyuan Zhang <sizhang@google.com> <physicsbug@gmail.com>

View File

@ -8,12 +8,15 @@
[![Godoc](http://img.shields.io/badge/go-documentation-blue.svg?style=flat-square)](https://godoc.org/github.com/etcd-io/etcd)
[![Releases](https://img.shields.io/github/release/etcd-io/etcd/all.svg?style=flat-square)](https://github.com/etcd-io/etcd/releases)
[![LICENSE](https://img.shields.io/github/license/etcd-io/etcd.svg?style=flat-square)](https://github.com/etcd-io/etcd/blob/main/LICENSE)
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/etcd-io/etcd/badge)](https://api.securityscorecards.dev/projects/github.com/etcd-io/etcd)
<a href="https://actuated.dev/"><img alt="Arm CI sponsored by Actuated" src="https://docs.actuated.dev/images/actuated-badge.png" width="120px"></img></a>
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/etcd-io/etcd/badge)](https://scorecard.dev/viewer/?uri=github.com/etcd-io/etcd)
**Note**: The `main` branch may be in an *unstable or even broken state* during development. For stable versions, see [releases][github-release].
![etcd Logo](logos/etcd-horizontal-color.svg)
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/cncf/artwork/9870640f123303a355611065195c43ac3f27aa19/projects/etcd/horizontal/white/etcd-horizontal-white.png">
<source media="(prefers-color-scheme: light)" srcset="logos/etcd-horizontal-color.svg">
<img alt="etcd logo" src="logos/etcd-horizontal-color.svg" width=269 />
</picture>
etcd is a distributed reliable key-value store for the most critical data of a distributed system, with a focus on being:
@ -141,18 +144,21 @@ Now it's time to dig into the full etcd API and other guides.
### Community meetings
etcd contributors and maintainers meet every week at 11:00 AM (USA Pacific) on Thursday and meetings alternate between community meetings and issue triage meetings. An initial agenda will be posted to the [shared Google docs][shared-meeting-notes] a day before each meeting, and everyone is welcome to suggest additional topics or other agendas.
etcd contributors and maintainers meet every week at `11:00` AM (USA Pacific) on Thursday and meetings alternate between community meetings and issue triage meetings. Meeting agendas are recorded in a [shared Google doc][shared-meeting-notes] and everyone is welcome to suggest additional topics or other agendas.
Issue triage meetings are aimed at getting through our backlog of PRs and Issues. Triage meetings are open to any contributor; you don't have to be a reviewer or approver to help out! They can also be a good way to get started contributing.
Meeting recordings are uploaded to official etcd [YouTube channel].
The meeting lead role is rotated for each meeting between etcd maintainers or sig-etcd leads and is recorded in a [shared Google sheet][shared-rotation-sheet].
Get calendar invitation by joining [etcd-dev](https://groups.google.com/g/etcd-dev) mailing group.
Meeting recordings are uploaded to the official etcd [YouTube channel].
Join CNCF-funded Zoom channel: [zoom.us/my/cncfetcdproject](https://zoom.us/my/cncfetcdproject)
Get calendar invitations by joining [etcd-dev](https://groups.google.com/g/etcd-dev) mailing group.
Join the CNCF-funded Zoom channel: [zoom.us/my/cncfetcdproject](https://zoom.us/my/cncfetcdproject)
[shared-meeting-notes]: https://docs.google.com/document/d/16XEGyPBisZvmmoIHSZzv__LoyOeluC5a4x353CX0SIM/edit
[YouTube channel]: https://www.youtube.com/channel/UC7tUWR24I5AR9NMsG-NYBlg
[shared-rotation-sheet]: https://docs.google.com/spreadsheets/d/1jodHIO7Dk2VWTs1IRnfMFaRktS9IH8XRyifOnPdSY8I/edit
[YouTube channel]: https://www.youtube.com/@etcdio
## Contributing
@ -192,6 +198,7 @@ These emeritus maintainers dedicated a part of their career to etcd and reviewed
* Ben Darnell
* Sam Batschelet
* Piotr Tabor
* Hitoshi Mitake
### License

File diff suppressed because it is too large Load Diff

View File

@ -105,6 +105,7 @@ type InternalRaftRequest struct {
ClusterVersionSet *membershippb.ClusterVersionSetRequest `protobuf:"bytes,1300,opt,name=cluster_version_set,json=clusterVersionSet,proto3" json:"cluster_version_set,omitempty"`
ClusterMemberAttrSet *membershippb.ClusterMemberAttrSetRequest `protobuf:"bytes,1301,opt,name=cluster_member_attr_set,json=clusterMemberAttrSet,proto3" json:"cluster_member_attr_set,omitempty"`
DowngradeInfoSet *membershippb.DowngradeInfoSetRequest `protobuf:"bytes,1302,opt,name=downgrade_info_set,json=downgradeInfoSet,proto3" json:"downgrade_info_set,omitempty"`
DowngradeVersionTest *DowngradeVersionTestRequest `protobuf:"bytes,9900,opt,name=downgrade_version_test,json=downgradeVersionTest,proto3" json:"downgrade_version_test,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -238,74 +239,76 @@ func init() {
func init() { proto.RegisterFile("raft_internal.proto", fileDescriptor_b4c9a9be0cfca103) }
var fileDescriptor_b4c9a9be0cfca103 = []byte{
// 1072 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x56, 0x4b, 0x73, 0x1b, 0x45,
0x17, 0x8d, 0x6c, 0xc7, 0xb6, 0x5a, 0xb6, 0xe3, 0xb4, 0x9d, 0x2f, 0xfd, 0xd9, 0x55, 0xc6, 0x71,
0x48, 0x30, 0x10, 0xe4, 0x20, 0xc3, 0x02, 0x36, 0xa0, 0x48, 0x2e, 0xc7, 0x54, 0x48, 0xb9, 0x26,
0x81, 0x4a, 0x41, 0x51, 0x43, 0x6b, 0xe6, 0x5a, 0x9a, 0x78, 0x34, 0x33, 0x74, 0xb7, 0x14, 0x67,
0xcb, 0x92, 0x35, 0x50, 0xfc, 0x0c, 0x9e, 0xff, 0x21, 0x45, 0xf1, 0x08, 0xf0, 0x07, 0xc0, 0x6c,
0xd8, 0x03, 0x7b, 0xaa, 0x1f, 0xf3, 0x92, 0x5a, 0xde, 0x8d, 0xee, 0x3d, 0xf7, 0x9c, 0xd3, 0xdd,
0xb7, 0x5b, 0x17, 0xad, 0x30, 0x7a, 0x24, 0xdc, 0x20, 0x12, 0xc0, 0x22, 0x1a, 0xd6, 0x13, 0x16,
0x8b, 0x18, 0x2f, 0x80, 0xf0, 0x7c, 0x0e, 0x6c, 0x08, 0x2c, 0xe9, 0xac, 0xad, 0x76, 0xe3, 0x6e,
0xac, 0x12, 0x3b, 0xf2, 0x4b, 0x63, 0xd6, 0x96, 0x73, 0x8c, 0x89, 0x54, 0x59, 0xe2, 0x99, 0xcf,
0x4d, 0x99, 0xdc, 0xa1, 0x49, 0xb0, 0x33, 0x04, 0xc6, 0x83, 0x38, 0x4a, 0x3a, 0xe9, 0x97, 0x41,
0x5c, 0xcf, 0x10, 0x7d, 0xe8, 0x77, 0x80, 0xf1, 0x5e, 0x90, 0x24, 0x9d, 0xc2, 0x0f, 0x8d, 0xdb,
0x62, 0x68, 0xd1, 0x81, 0x8f, 0x06, 0xc0, 0xc5, 0x6d, 0xa0, 0x3e, 0x30, 0xbc, 0x84, 0xa6, 0x0e,
0xda, 0xa4, 0xb2, 0x59, 0xd9, 0x9e, 0x71, 0xa6, 0x0e, 0xda, 0x78, 0x0d, 0xcd, 0x0f, 0xb8, 0x34,
0xdf, 0x07, 0x32, 0xb5, 0x59, 0xd9, 0xae, 0x3a, 0xd9, 0x6f, 0x7c, 0x03, 0x2d, 0xd2, 0x81, 0xe8,
0xb9, 0x0c, 0x86, 0x81, 0xd4, 0x26, 0xd3, 0xb2, 0xec, 0xd6, 0xdc, 0x27, 0xdf, 0x91, 0xe9, 0xdd,
0xfa, 0xcb, 0xce, 0x82, 0xcc, 0x3a, 0x26, 0xf9, 0xfa, 0xdc, 0xc7, 0x2a, 0x7c, 0x73, 0xeb, 0x7b,
0x8c, 0x56, 0x0e, 0xcc, 0x8e, 0x38, 0xf4, 0x48, 0x18, 0x03, 0x78, 0x17, 0xcd, 0xf6, 0x94, 0x09,
0xe2, 0x6f, 0x56, 0xb6, 0x6b, 0x8d, 0xf5, 0x7a, 0x71, 0x9f, 0xea, 0x25, 0x9f, 0x8e, 0x81, 0x8e,
0xf9, 0xbd, 0x86, 0xa6, 0x86, 0x0d, 0xe5, 0xb4, 0xd6, 0xb8, 0x64, 0x25, 0x70, 0xa6, 0x86, 0x0d,
0x7c, 0x13, 0x9d, 0x67, 0x34, 0xea, 0x82, 0xb2, 0x5c, 0x6b, 0xac, 0x8d, 0x20, 0x65, 0x2a, 0x85,
0x6b, 0x20, 0x7e, 0x01, 0x4d, 0x27, 0x03, 0x41, 0x66, 0x14, 0x9e, 0x94, 0xf1, 0x87, 0x83, 0x74,
0x11, 0x8e, 0x04, 0xe1, 0x16, 0x5a, 0xf0, 0x21, 0x04, 0x01, 0xae, 0x16, 0x39, 0xaf, 0x8a, 0x36,
0xcb, 0x45, 0x6d, 0x85, 0x28, 0x49, 0xd5, 0xfc, 0x3c, 0x26, 0x05, 0xc5, 0x49, 0x44, 0x66, 0x6d,
0x82, 0xf7, 0x4f, 0xa2, 0x4c, 0x50, 0x9c, 0x44, 0xf8, 0x0d, 0x84, 0xbc, 0xb8, 0x9f, 0x50, 0x4f,
0xc8, 0x63, 0x98, 0x53, 0x25, 0xcf, 0x94, 0x4b, 0x5a, 0x59, 0x3e, 0xad, 0x2c, 0x94, 0xe0, 0x37,
0x51, 0x2d, 0x04, 0xca, 0xc1, 0xed, 0x32, 0x1a, 0x09, 0x32, 0x6f, 0x63, 0xb8, 0x23, 0x01, 0xfb,
0x32, 0x9f, 0x31, 0x84, 0x59, 0x48, 0xae, 0x59, 0x33, 0x30, 0x18, 0xc6, 0xc7, 0x40, 0xaa, 0xb6,
0x35, 0x2b, 0x0a, 0x47, 0x01, 0xb2, 0x35, 0x87, 0x79, 0x4c, 0x1e, 0x0b, 0x0d, 0x29, 0xeb, 0x13,
0x64, 0x3b, 0x96, 0xa6, 0x4c, 0x65, 0xc7, 0xa2, 0x80, 0xf8, 0x01, 0x5a, 0xd6, 0xb2, 0x5e, 0x0f,
0xbc, 0xe3, 0x24, 0x0e, 0x22, 0x41, 0x6a, 0xaa, 0xf8, 0x59, 0x8b, 0x74, 0x2b, 0x03, 0x19, 0x9a,
0xb4, 0x59, 0x5f, 0x71, 0x2e, 0x84, 0x65, 0x00, 0x6e, 0xa2, 0x9a, 0xea, 0x6e, 0x88, 0x68, 0x27,
0x04, 0xf2, 0x97, 0x75, 0x57, 0x9b, 0x03, 0xd1, 0xdb, 0x53, 0x80, 0x6c, 0x4f, 0x68, 0x16, 0xc2,
0x6d, 0xa4, 0xae, 0x80, 0xeb, 0x07, 0x5c, 0x71, 0xfc, 0x3d, 0x67, 0xdb, 0x14, 0xc9, 0xd1, 0xd6,
0x88, 0x6c, 0x53, 0x68, 0x1e, 0xc3, 0x6f, 0x19, 0x23, 0x5c, 0x50, 0x31, 0xe0, 0xe4, 0xdf, 0x89,
0x46, 0xee, 0x29, 0xc0, 0xc8, 0xca, 0x5e, 0xd5, 0x8e, 0x74, 0x0e, 0xdf, 0xd5, 0x8e, 0x20, 0x12,
0x81, 0x47, 0x05, 0x90, 0x7f, 0x34, 0xd9, 0xf3, 0x65, 0xb2, 0xf4, 0x76, 0x36, 0x0b, 0xd0, 0xd4,
0x5a, 0xa9, 0x1e, 0xef, 0x99, 0x27, 0x40, 0xbe, 0x09, 0x2e, 0xf5, 0x7d, 0xf2, 0xc3, 0xfc, 0xa4,
0x25, 0xbe, 0xc3, 0x81, 0x35, 0x7d, 0xbf, 0xb4, 0x44, 0x13, 0xc3, 0x77, 0xd1, 0x72, 0x4e, 0xa3,
0x2f, 0x01, 0xf9, 0x51, 0x33, 0x5d, 0xb5, 0x33, 0x99, 0xdb, 0x63, 0xc8, 0x96, 0x68, 0x29, 0x5c,
0xb6, 0xd5, 0x05, 0x41, 0x7e, 0x3a, 0xd3, 0xd6, 0x3e, 0x88, 0x31, 0x5b, 0xfb, 0x20, 0x70, 0x17,
0xfd, 0x3f, 0xa7, 0xf1, 0x7a, 0xf2, 0x5a, 0xba, 0x09, 0xe5, 0xfc, 0x51, 0xcc, 0x7c, 0xf2, 0xb3,
0xa6, 0x7c, 0xd1, 0x4e, 0xd9, 0x52, 0xe8, 0x43, 0x03, 0x4e, 0xd9, 0xff, 0x47, 0xad, 0x69, 0xfc,
0x00, 0xad, 0x16, 0xfc, 0xca, 0xfb, 0xe4, 0xb2, 0x38, 0x04, 0xf2, 0x54, 0x6b, 0x5c, 0x9f, 0x60,
0x5b, 0xdd, 0xc5, 0x38, 0x6f, 0x9b, 0x8b, 0x74, 0x34, 0x83, 0xdf, 0x47, 0x97, 0x72, 0x66, 0x7d,
0x35, 0x35, 0xf5, 0x2f, 0x9a, 0xfa, 0x39, 0x3b, 0xb5, 0xb9, 0xa3, 0x05, 0x6e, 0x4c, 0xc7, 0x52,
0xf8, 0x36, 0x5a, 0xca, 0xc9, 0xc3, 0x80, 0x0b, 0xf2, 0xab, 0x66, 0xbd, 0x62, 0x67, 0xbd, 0x13,
0x70, 0x51, 0xea, 0xa3, 0x34, 0x98, 0x31, 0x49, 0x6b, 0x9a, 0xe9, 0xb7, 0x89, 0x4c, 0x52, 0x7a,
0x8c, 0x29, 0x0d, 0x66, 0x47, 0xaf, 0x98, 0x64, 0x47, 0x7e, 0x59, 0x9d, 0x74, 0xf4, 0xb2, 0x66,
0xb4, 0x23, 0x4d, 0x2c, 0xeb, 0x48, 0x45, 0x63, 0x3a, 0xf2, 0xab, 0xea, 0xa4, 0x8e, 0x94, 0x55,
0x96, 0x8e, 0xcc, 0xc3, 0x65, 0x5b, 0xb2, 0x23, 0xbf, 0x3e, 0xd3, 0xd6, 0x68, 0x47, 0x9a, 0x18,
0x7e, 0x88, 0xd6, 0x0a, 0x34, 0xaa, 0x51, 0x12, 0x60, 0xfd, 0x80, 0xab, 0xff, 0xdf, 0x6f, 0x34,
0xe7, 0x8d, 0x09, 0x9c, 0x12, 0x7e, 0x98, 0xa1, 0x53, 0xfe, 0xcb, 0xd4, 0x9e, 0xc7, 0x7d, 0xb4,
0x9e, 0x6b, 0x99, 0xd6, 0x29, 0x88, 0x7d, 0xab, 0xc5, 0x5e, 0xb2, 0x8b, 0xe9, 0x2e, 0x19, 0x57,
0x23, 0x74, 0x02, 0x00, 0x7f, 0x88, 0x56, 0xbc, 0x70, 0xc0, 0x05, 0x30, 0xd7, 0xcc, 0x32, 0x2e,
0x07, 0x41, 0x3e, 0x45, 0xe6, 0x0a, 0x14, 0x07, 0x99, 0x7a, 0x4b, 0x23, 0xdf, 0xd5, 0xc0, 0x7b,
0x20, 0xc6, 0x5e, 0xbd, 0x8b, 0xde, 0x28, 0x04, 0x3f, 0x44, 0x97, 0x53, 0x05, 0x4d, 0xe6, 0x52,
0x21, 0x98, 0x52, 0xf9, 0x0c, 0x99, 0x77, 0xd0, 0xa6, 0xf2, 0xb6, 0x8a, 0x35, 0x85, 0x60, 0x36,
0xa1, 0x55, 0xcf, 0x82, 0xc2, 0x1f, 0x20, 0xec, 0xc7, 0x8f, 0xa2, 0x2e, 0xa3, 0x3e, 0xb8, 0x41,
0x74, 0x14, 0x2b, 0x99, 0xcf, 0xb5, 0xcc, 0xb5, 0xb2, 0x4c, 0x3b, 0x05, 0x1e, 0x44, 0x47, 0xb1,
0x4d, 0x62, 0xd9, 0x1f, 0x41, 0xe4, 0xc3, 0xd4, 0x05, 0xb4, 0xb8, 0xd7, 0x4f, 0xc4, 0x63, 0x07,
0x78, 0x12, 0x47, 0x1c, 0xb6, 0x1e, 0xa3, 0xf5, 0x33, 0x9e, 0x6f, 0x8c, 0xd1, 0x8c, 0x9a, 0xe5,
0x2a, 0x6a, 0x96, 0x53, 0xdf, 0x72, 0xc6, 0xcb, 0x5e, 0x35, 0x33, 0xe3, 0xa5, 0xbf, 0xf1, 0x15,
0xb4, 0xc0, 0x83, 0x7e, 0x12, 0x82, 0x2b, 0xe2, 0x63, 0xd0, 0x23, 0x5e, 0xd5, 0xa9, 0xe9, 0xd8,
0x7d, 0x19, 0xca, 0xbc, 0xdc, 0x7a, 0xed, 0xc9, 0x1f, 0x1b, 0xe7, 0x9e, 0x9c, 0x6e, 0x54, 0x9e,
0x9e, 0x6e, 0x54, 0x7e, 0x3f, 0xdd, 0xa8, 0x7c, 0xf1, 0xe7, 0xc6, 0xb9, 0xf7, 0xae, 0x76, 0x63,
0xd5, 0x22, 0xf5, 0x20, 0xde, 0xc9, 0xe7, 0xd6, 0xdd, 0x9d, 0x62, 0xdb, 0x74, 0x66, 0xd5, 0x38,
0xba, 0xfb, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x06, 0x59, 0x70, 0x10, 0x30, 0x0b, 0x00, 0x00,
// 1101 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x56, 0xcb, 0x72, 0x1b, 0x45,
0x14, 0x8d, 0x6c, 0xc7, 0xb6, 0x5a, 0xb6, 0xe3, 0xb4, 0x9d, 0xa4, 0xb1, 0xab, 0x8c, 0xe3, 0x90,
0x60, 0x20, 0xc8, 0xc1, 0x06, 0xaa, 0x60, 0x03, 0x8a, 0xe5, 0x72, 0x4c, 0x25, 0x29, 0xd7, 0xc4,
0x50, 0x29, 0x28, 0x6a, 0x68, 0xcd, 0x5c, 0x4b, 0x13, 0x8f, 0x66, 0x86, 0xee, 0x96, 0xe2, 0x6c,
0x59, 0xb2, 0x06, 0x8a, 0x8f, 0x60, 0xc1, 0x2b, 0xff, 0x90, 0x05, 0x8f, 0x00, 0x3f, 0x00, 0x66,
0xc3, 0x1e, 0xd8, 0xa7, 0xfa, 0x31, 0x2f, 0xa9, 0xe5, 0xdd, 0xe8, 0xde, 0x73, 0xcf, 0x39, 0xdd,
0x7d, 0xbb, 0x75, 0xd1, 0x02, 0xa3, 0x87, 0xc2, 0x0d, 0x22, 0x01, 0x2c, 0xa2, 0x61, 0x3d, 0x61,
0xb1, 0x88, 0xf1, 0x0c, 0x08, 0xcf, 0xe7, 0xc0, 0xfa, 0xc0, 0x92, 0xd6, 0xd2, 0x62, 0x3b, 0x6e,
0xc7, 0x2a, 0xb1, 0x21, 0xbf, 0x34, 0x66, 0x69, 0x3e, 0xc7, 0x98, 0x48, 0x95, 0x25, 0x9e, 0xf9,
0x5c, 0x95, 0xc9, 0x0d, 0x9a, 0x04, 0x1b, 0x7d, 0x60, 0x3c, 0x88, 0xa3, 0xa4, 0x95, 0x7e, 0x19,
0xc4, 0xb5, 0x0c, 0xd1, 0x85, 0x6e, 0x0b, 0x18, 0xef, 0x04, 0x49, 0xd2, 0x2a, 0xfc, 0xd0, 0xb8,
0x35, 0x86, 0x66, 0x1d, 0xf8, 0xb4, 0x07, 0x5c, 0xdc, 0x02, 0xea, 0x03, 0xc3, 0x73, 0x68, 0x6c,
0xaf, 0x49, 0x2a, 0xab, 0x95, 0xf5, 0x09, 0x67, 0x6c, 0xaf, 0x89, 0x97, 0xd0, 0x74, 0x8f, 0x4b,
0xf3, 0x5d, 0x20, 0x63, 0xab, 0x95, 0xf5, 0xaa, 0x93, 0xfd, 0xc6, 0xd7, 0xd1, 0x2c, 0xed, 0x89,
0x8e, 0xcb, 0xa0, 0x1f, 0x48, 0x6d, 0x32, 0x2e, 0xcb, 0x6e, 0x4e, 0x7d, 0xfe, 0x98, 0x8c, 0x6f,
0xd5, 0x5f, 0x73, 0x66, 0x64, 0xd6, 0x31, 0xc9, 0xb7, 0xa7, 0x3e, 0x53, 0xe1, 0x1b, 0x6b, 0x8f,
0x17, 0xd0, 0xc2, 0x9e, 0xd9, 0x11, 0x87, 0x1e, 0x0a, 0x63, 0x00, 0x6f, 0xa1, 0xc9, 0x8e, 0x32,
0x41, 0xfc, 0xd5, 0xca, 0x7a, 0x6d, 0x73, 0xb9, 0x5e, 0xdc, 0xa7, 0x7a, 0xc9, 0xa7, 0x63, 0xa0,
0x43, 0x7e, 0xaf, 0xa2, 0xb1, 0xfe, 0xa6, 0x72, 0x5a, 0xdb, 0xbc, 0x60, 0x25, 0x70, 0xc6, 0xfa,
0x9b, 0xf8, 0x06, 0x3a, 0xcb, 0x68, 0xd4, 0x06, 0x65, 0xb9, 0xb6, 0xb9, 0x34, 0x80, 0x94, 0xa9,
0x14, 0xae, 0x81, 0xf8, 0x65, 0x34, 0x9e, 0xf4, 0x04, 0x99, 0x50, 0x78, 0x52, 0xc6, 0xef, 0xf7,
0xd2, 0x45, 0x38, 0x12, 0x84, 0xb7, 0xd1, 0x8c, 0x0f, 0x21, 0x08, 0x70, 0xb5, 0xc8, 0x59, 0x55,
0xb4, 0x5a, 0x2e, 0x6a, 0x2a, 0x44, 0x49, 0xaa, 0xe6, 0xe7, 0x31, 0x29, 0x28, 0x8e, 0x23, 0x32,
0x69, 0x13, 0x3c, 0x38, 0x8e, 0x32, 0x41, 0x71, 0x1c, 0xe1, 0x77, 0x10, 0xf2, 0xe2, 0x6e, 0x42,
0x3d, 0x21, 0x8f, 0x61, 0x4a, 0x95, 0x3c, 0x5f, 0x2e, 0xd9, 0xce, 0xf2, 0x69, 0x65, 0xa1, 0x04,
0xbf, 0x8b, 0x6a, 0x21, 0x50, 0x0e, 0x6e, 0x9b, 0xd1, 0x48, 0x90, 0x69, 0x1b, 0xc3, 0x6d, 0x09,
0xd8, 0x95, 0xf9, 0x8c, 0x21, 0xcc, 0x42, 0x72, 0xcd, 0x9a, 0x81, 0x41, 0x3f, 0x3e, 0x02, 0x52,
0xb5, 0xad, 0x59, 0x51, 0x38, 0x0a, 0x90, 0xad, 0x39, 0xcc, 0x63, 0xf2, 0x58, 0x68, 0x48, 0x59,
0x97, 0x20, 0xdb, 0xb1, 0x34, 0x64, 0x2a, 0x3b, 0x16, 0x05, 0xc4, 0xf7, 0xd1, 0xbc, 0x96, 0xf5,
0x3a, 0xe0, 0x1d, 0x25, 0x71, 0x10, 0x09, 0x52, 0x53, 0xc5, 0x2f, 0x58, 0xa4, 0xb7, 0x33, 0x90,
0xa1, 0x49, 0x9b, 0xf5, 0x75, 0xe7, 0x5c, 0x58, 0x06, 0xe0, 0x06, 0xaa, 0xa9, 0xee, 0x86, 0x88,
0xb6, 0x42, 0x20, 0xff, 0x58, 0x77, 0xb5, 0xd1, 0x13, 0x9d, 0x1d, 0x05, 0xc8, 0xf6, 0x84, 0x66,
0x21, 0xdc, 0x44, 0xea, 0x0a, 0xb8, 0x7e, 0xc0, 0x15, 0xc7, 0xbf, 0x53, 0xb6, 0x4d, 0x91, 0x1c,
0x4d, 0x8d, 0xc8, 0x36, 0x85, 0xe6, 0x31, 0xfc, 0x9e, 0x31, 0xc2, 0x05, 0x15, 0x3d, 0x4e, 0xfe,
0x1f, 0x69, 0xe4, 0x9e, 0x02, 0x0c, 0xac, 0xec, 0x0d, 0xed, 0x48, 0xe7, 0xf0, 0x5d, 0xed, 0x08,
0x22, 0x11, 0x78, 0x54, 0x00, 0xf9, 0x4f, 0x93, 0xbd, 0x54, 0x26, 0x4b, 0x6f, 0x67, 0xa3, 0x00,
0x4d, 0xad, 0x95, 0xea, 0xf1, 0x8e, 0x79, 0x02, 0xe4, 0x9b, 0xe0, 0x52, 0xdf, 0x27, 0x3f, 0x4d,
0x8f, 0x5a, 0xe2, 0xfb, 0x1c, 0x58, 0xc3, 0xf7, 0x4b, 0x4b, 0x34, 0x31, 0x7c, 0x17, 0xcd, 0xe7,
0x34, 0xfa, 0x12, 0x90, 0x9f, 0x35, 0xd3, 0x15, 0x3b, 0x93, 0xb9, 0x3d, 0x86, 0x6c, 0x8e, 0x96,
0xc2, 0x65, 0x5b, 0x6d, 0x10, 0xe4, 0x97, 0x53, 0x6d, 0xed, 0x82, 0x18, 0xb2, 0xb5, 0x0b, 0x02,
0xb7, 0xd1, 0x73, 0x39, 0x8d, 0xd7, 0x91, 0xd7, 0xd2, 0x4d, 0x28, 0xe7, 0x0f, 0x63, 0xe6, 0x93,
0x5f, 0x35, 0xe5, 0x2b, 0x76, 0xca, 0x6d, 0x85, 0xde, 0x37, 0xe0, 0x94, 0xfd, 0x22, 0xb5, 0xa6,
0xf1, 0x7d, 0xb4, 0x58, 0xf0, 0x2b, 0xef, 0x93, 0xcb, 0xe2, 0x10, 0xc8, 0x53, 0xad, 0x71, 0x6d,
0x84, 0x6d, 0x75, 0x17, 0xe3, 0xbc, 0x6d, 0xce, 0xd3, 0xc1, 0x0c, 0xfe, 0x08, 0x5d, 0xc8, 0x99,
0xf5, 0xd5, 0xd4, 0xd4, 0xbf, 0x69, 0xea, 0x17, 0xed, 0xd4, 0xe6, 0x8e, 0x16, 0xb8, 0x31, 0x1d,
0x4a, 0xe1, 0x5b, 0x68, 0x2e, 0x27, 0x0f, 0x03, 0x2e, 0xc8, 0xef, 0x9a, 0xf5, 0xb2, 0x9d, 0xf5,
0x76, 0xc0, 0x45, 0xa9, 0x8f, 0xd2, 0x60, 0xc6, 0x24, 0xad, 0x69, 0xa6, 0x3f, 0x46, 0x32, 0x49,
0xe9, 0x21, 0xa6, 0x34, 0x98, 0x1d, 0xbd, 0x62, 0x92, 0x1d, 0xf9, 0x6d, 0x75, 0xd4, 0xd1, 0xcb,
0x9a, 0xc1, 0x8e, 0x34, 0xb1, 0xac, 0x23, 0x15, 0x8d, 0xe9, 0xc8, 0xef, 0xaa, 0xa3, 0x3a, 0x52,
0x56, 0x59, 0x3a, 0x32, 0x0f, 0x97, 0x6d, 0xc9, 0x8e, 0xfc, 0xfe, 0x54, 0x5b, 0x83, 0x1d, 0x69,
0x62, 0xf8, 0x01, 0x5a, 0x2a, 0xd0, 0xa8, 0x46, 0x49, 0x80, 0x75, 0x03, 0xae, 0xfe, 0x7f, 0x7f,
0xd0, 0x9c, 0xd7, 0x47, 0x70, 0x4a, 0xf8, 0x7e, 0x86, 0x4e, 0xf9, 0x2f, 0x51, 0x7b, 0x1e, 0x77,
0xd1, 0x72, 0xae, 0x65, 0x5a, 0xa7, 0x20, 0xf6, 0xa3, 0x16, 0x7b, 0xd5, 0x2e, 0xa6, 0xbb, 0x64,
0x58, 0x8d, 0xd0, 0x11, 0x00, 0xfc, 0x09, 0x5a, 0xf0, 0xc2, 0x1e, 0x17, 0xc0, 0x5c, 0x33, 0xcb,
0xb8, 0x1c, 0x04, 0xf9, 0x02, 0x99, 0x2b, 0x50, 0x1c, 0x64, 0xea, 0xdb, 0x1a, 0xf9, 0x81, 0x06,
0xde, 0x03, 0x31, 0xf4, 0xea, 0x9d, 0xf7, 0x06, 0x21, 0xf8, 0x01, 0xba, 0x94, 0x2a, 0x68, 0x32,
0x97, 0x0a, 0xc1, 0x94, 0xca, 0x97, 0xc8, 0xbc, 0x83, 0x36, 0x95, 0x3b, 0x2a, 0xd6, 0x10, 0x82,
0xd9, 0x84, 0x16, 0x3d, 0x0b, 0x0a, 0x7f, 0x8c, 0xb0, 0x1f, 0x3f, 0x8c, 0xda, 0x8c, 0xfa, 0xe0,
0x06, 0xd1, 0x61, 0xac, 0x64, 0xbe, 0xd2, 0x32, 0x57, 0xcb, 0x32, 0xcd, 0x14, 0xb8, 0x17, 0x1d,
0xc6, 0x36, 0x89, 0x79, 0x7f, 0x00, 0x81, 0x03, 0x74, 0x31, 0xa7, 0x4f, 0xb7, 0x4b, 0x00, 0x17,
0xe4, 0x9b, 0x3b, 0xb6, 0x17, 0x3d, 0x93, 0x30, 0xdb, 0x71, 0x00, 0x7c, 0x50, 0xe6, 0x4d, 0x67,
0xd1, 0xb7, 0xa0, 0xf2, 0xb9, 0xed, 0x1c, 0x9a, 0xdd, 0xe9, 0x26, 0xe2, 0x91, 0x03, 0x3c, 0x89,
0x23, 0x0e, 0x6b, 0x8f, 0xd0, 0xf2, 0x29, 0xff, 0x14, 0x18, 0xa3, 0x09, 0x35, 0x36, 0x56, 0xd4,
0xd8, 0xa8, 0xbe, 0xe5, 0x38, 0x99, 0x3d, 0xa0, 0x66, 0x9c, 0x4c, 0x7f, 0xe3, 0xcb, 0x68, 0x86,
0x07, 0xdd, 0x24, 0x04, 0x57, 0xc4, 0x47, 0xa0, 0xa7, 0xc9, 0xaa, 0x53, 0xd3, 0xb1, 0x03, 0x19,
0xca, 0xbc, 0xdc, 0x7c, 0xeb, 0xc9, 0x5f, 0x2b, 0x67, 0x9e, 0x9c, 0xac, 0x54, 0x9e, 0x9e, 0xac,
0x54, 0xfe, 0x3c, 0x59, 0xa9, 0x7c, 0xfd, 0xf7, 0xca, 0x99, 0x0f, 0xaf, 0xb4, 0x63, 0xb5, 0xec,
0x7a, 0x10, 0x6f, 0xe4, 0x23, 0xf2, 0xd6, 0x46, 0x71, 0x2b, 0x5a, 0x93, 0x6a, 0xf2, 0xdd, 0x7a,
0x16, 0x00, 0x00, 0xff, 0xff, 0xb2, 0xa0, 0x15, 0x1f, 0x9b, 0x0b, 0x00, 0x00,
}
func (m *RequestHeader) Marshal() (dAtA []byte, err error) {
@ -376,6 +379,22 @@ func (m *InternalRaftRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
if m.DowngradeVersionTest != nil {
{
size, err := m.DowngradeVersionTest.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintRaftInternal(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x4
i--
dAtA[i] = 0xea
i--
dAtA[i] = 0xe2
}
if m.DowngradeInfoSet != nil {
{
size, err := m.DowngradeInfoSet.MarshalToSizedBuffer(dAtA[:i])
@ -1039,6 +1058,10 @@ func (m *InternalRaftRequest) Size() (n int) {
l = m.DowngradeInfoSet.Size()
n += 2 + l + sovRaftInternal(uint64(l))
}
if m.DowngradeVersionTest != nil {
l = m.DowngradeVersionTest.Size()
n += 3 + l + sovRaftInternal(uint64(l))
}
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@ -2372,6 +2395,42 @@ func (m *InternalRaftRequest) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
case 9900:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field DowngradeVersionTest", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowRaftInternal
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthRaftInternal
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthRaftInternal
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
if m.DowngradeVersionTest == nil {
m.DowngradeVersionTest = &DowngradeVersionTestRequest{}
}
if err := m.DowngradeVersionTest.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipRaftInternal(dAtA[iNdEx:])

View File

@ -71,6 +71,8 @@ message InternalRaftRequest {
membershippb.ClusterVersionSetRequest cluster_version_set = 1300 [(versionpb.etcd_version_field) = "3.5"];
membershippb.ClusterMemberAttrSetRequest cluster_member_attr_set = 1301 [(versionpb.etcd_version_field) = "3.5"];
membershippb.DowngradeInfoSetRequest downgrade_info_set = 1302 [(versionpb.etcd_version_field) = "3.5"];
DowngradeVersionTestRequest downgrade_version_test = 9900 [(versionpb.etcd_version_field) = "3.6"];
}
message EmptyResponse {

View File

@ -72,13 +72,13 @@ func (as *InternalRaftStringer) String() string {
return as.Request.String()
}
// txnRequestStringer implements a custom proto String to replace value bytes fields with value size
// fields in any nested txn and put operations.
// txnRequestStringer implements fmt.Stringer, a custom proto String to replace value bytes
// fields with value size fields in any nested txn and put operations.
type txnRequestStringer struct {
Request *TxnRequest
}
func NewLoggableTxnRequest(request *TxnRequest) *txnRequestStringer {
func NewLoggableTxnRequest(request *TxnRequest) fmt.Stringer {
return &txnRequestStringer{request}
}
@ -155,8 +155,8 @@ func (m *loggableValueCompare) Reset() { *m = loggableValueCompare{} }
func (m *loggableValueCompare) String() string { return proto.CompactTextString(m) }
func (*loggableValueCompare) ProtoMessage() {}
// loggablePutRequest implements a custom proto String to replace value bytes field with a value
// size field.
// loggablePutRequest implements proto.Message, a custom proto String to replace value bytes
// field with a value size field.
// To preserve proto encoding of the key bytes, a faked out proto type is used here.
type loggablePutRequest struct {
Key []byte `protobuf:"bytes,1,opt,name=key,proto3"`
@ -167,7 +167,7 @@ type loggablePutRequest struct {
IgnoreLease bool `protobuf:"varint,6,opt,name=ignore_lease,proto3"`
}
func NewLoggablePutRequest(request *PutRequest) *loggablePutRequest {
func NewLoggablePutRequest(request *PutRequest) proto.Message {
return &loggablePutRequest{
request.Key,
int64(len(request.Value)),

View File

@ -17,6 +17,8 @@ package etcdserverpb_test
import (
"testing"
"github.com/stretchr/testify/assert"
pb "go.etcd.io/etcd/api/v3/etcdserverpb"
)
@ -24,8 +26,5 @@ import (
// panic: invalid Go type int for field k8s_io.kubernetes.vendor.go_etcd_io.etcd.etcdserver.etcdserverpb.loggablePutRequest.value_size
// See https://github.com/kubernetes/kubernetes/issues/91937 for more details
func TestInvalidGoTypeIntPanic(t *testing.T) {
result := pb.NewLoggablePutRequest(&pb.PutRequest{}).String()
if result != "" {
t.Errorf("Got result: %s, expected empty string", result)
}
assert.Empty(t, pb.NewLoggablePutRequest(&pb.PutRequest{}).String())
}

File diff suppressed because it is too large Load Diff

View File

@ -507,7 +507,9 @@ message RangeResponse {
repeated mvccpb.KeyValue kvs = 2;
// more indicates if there are more keys to return in the requested range.
bool more = 3;
// count is set to the number of keys within the range when requested.
// count is set to the actual number of keys within the range when requested.
// Unlike Kvs, it is unaffected by limits and filters (e.g., Min/Max, Create/Modify, Revisions)
// and reflects the full count within the specified range.
int64 count = 4;
}
@ -836,7 +838,8 @@ message WatchResponse {
// All events sent to the created watcher will attach with the same watch_id.
bool created = 3;
// canceled is set to true if the response is for a cancel watch request.
// canceled is set to true if the response is for a cancel watch request
// or if the start_revision has already been compacted.
// No further events will be sent to the canceled watcher.
bool canceled = 4;
@ -1157,6 +1160,16 @@ message DowngradeResponse {
string version = 2;
}
// DowngradeVersionTestRequest is used for test only. The version in
// this request will be read as the WAL record version.If the downgrade
// target version is less than this version, then the downgrade(online)
// or migration(offline) isn't safe, so shouldn't be allowed.
message DowngradeVersionTestRequest {
option (versionpb.etcd_version_msg) = "3.6";
string ver = 1;
}
message StatusRequest {
option (versionpb.etcd_version_msg) = "3.0";
}
@ -1183,8 +1196,19 @@ message StatusResponse {
int64 dbSizeInUse = 9 [(versionpb.etcd_version_field)="3.4"];
// isLearner indicates if the member is raft learner.
bool isLearner = 10 [(versionpb.etcd_version_field)="3.4"];
// storageVersion is the version of the db file. It might be get updated with delay in relationship to the target cluster version.
// storageVersion is the version of the db file. It might be updated with delay in relationship to the target cluster version.
string storageVersion = 11 [(versionpb.etcd_version_field)="3.6"];
// dbSizeQuota is the configured etcd storage quota in bytes (the value passed to etcd instance by flag --quota-backend-bytes)
int64 dbSizeQuota = 12 [(versionpb.etcd_version_field)="3.6"];
// downgradeInfo indicates if there is downgrade process.
DowngradeInfo downgradeInfo = 13 [(versionpb.etcd_version_field)="3.6"];
}
message DowngradeInfo {
// enabled indicates whether the cluster is enabled to downgrade.
bool enabled = 1;
// targetVersion is the target downgrade version.
string targetVersion = 2;
}
message AuthEnableRequest {

View File

@ -1,28 +1,30 @@
module go.etcd.io/etcd/api/v3
go 1.21
go 1.24
toolchain go1.24.1
require (
github.com/coreos/go-semver v0.3.1
github.com/gogo/protobuf v1.3.2
github.com/golang/protobuf v1.5.3
github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.1
github.com/stretchr/testify v1.8.4
google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17
google.golang.org/grpc v1.60.1
google.golang.org/protobuf v1.32.0
github.com/golang/protobuf v1.5.4
github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3
github.com/stretchr/testify v1.10.0
google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb
google.golang.org/grpc v1.71.0
google.golang.org/protobuf v1.36.5
)
require (
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/kr/text v0.2.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/rogpeppe/go-internal v1.11.0 // indirect
golang.org/x/net v0.19.0 // indirect
golang.org/x/sys v0.15.0 // indirect
golang.org/x/text v0.14.0 // indirect
google.golang.org/genproto v0.0.0-20231030173426-d783a09b4405 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405 // indirect
github.com/rogpeppe/go-internal v1.14.1 // indirect
go.opentelemetry.io/otel v1.35.0 // indirect
go.opentelemetry.io/otel/sdk v1.35.0 // indirect
golang.org/x/net v0.37.0 // indirect
golang.org/x/sys v0.31.0 // indirect
golang.org/x/text v0.23.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)

View File

@ -1,18 +1,21 @@
github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4=
github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.1 h1:6UKoz5ujsI55KNpsJH3UwCq3T8kKbZwNZBNPuTTje8U=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.1/go.mod h1:YvJ2f6MplWDhfxiUC3KpyTy76kYUZA4W3pTv/wdKQ9Y=
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 h1:5ZPtiqj0JL5oKWmcsq4VMaAW5ukBEgSGXEN89zeH1Jo=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3/go.mod h1:ndYquD05frm2vACXE1nsccT4oJzjhw2arTS2cpUD1PI=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
@ -21,12 +24,24 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M=
github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA=
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ=
go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y=
go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M=
go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE=
go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY=
go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg=
go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk=
go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w=
go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs=
go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
@ -36,20 +51,20 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c=
golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U=
golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c=
golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
@ -58,18 +73,14 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/genproto v0.0.0-20231030173426-d783a09b4405 h1:I6WNifs6pF9tNdSob2W24JtyxIYjzFB9qDlpUC76q+U=
google.golang.org/genproto v0.0.0-20231030173426-d783a09b4405/go.mod h1:3WDQMjmJk36UQhjQ89emUzb1mdaHcPeeAh4SCBKznB4=
google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17 h1:JpwMPBpFN3uKhdaekDpiNlImDdkUAyiJ6ez/uxGaUSo=
google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:0xJLfVdJqpAPl8tDg1ujOCGzx6LFLttXT5NhllGOXY4=
google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405 h1:AB/lmRny7e2pLhFEYIbl5qkDAUt2h0ZRO4wGPhZf+ik=
google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405/go.mod h1:67X1fPuzjcrkymZzZV1vvkFeTn2Rvc6lYF9MYFGCcwE=
google.golang.org/grpc v1.60.1 h1:26+wFr+cNqSGFcOXcabYC0lUVJVRa2Sb2ortSK7VrEU=
google.golang.org/grpc v1.60.1/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I=
google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb h1:p31xT4yrYrSM/G4Sn2+TNUkVhFCbG9y8itM2S6Th950=
google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:jbe3Bkdp+Dh2IrslsFCklNhweNTBgSYanP1UXhJDhKg=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb h1:TLPQVbx1GJ8VKZxz52VAxl1EBgKXXbTiU9Fc5fZeLn4=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:LuRYeWDFV6WOn90g357N17oMCaxpgCnbi/44qJvDn2I=
google.golang.org/grpc v1.71.0 h1:kF77BGdPTQ4/JZWMlb9VpJ5pa25aqvVqogsxNHHdeBg=
google.golang.org/grpc v1.71.0/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec=
google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM=
google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=

View File

@ -47,7 +47,11 @@ var (
ErrGRPCMemberNotLearner = status.Error(codes.FailedPrecondition, "etcdserver: can only promote a learner member")
ErrGRPCLearnerNotReady = status.Error(codes.FailedPrecondition, "etcdserver: can only promote a learner member which is in sync with leader")
ErrGRPCTooManyLearners = status.Error(codes.FailedPrecondition, "etcdserver: too many learner members in cluster")
ErrGRPCClusterIdMismatch = status.Error(codes.FailedPrecondition, "etcdserver: cluster ID mismatch")
ErrGRPCClusterIDMismatch = status.Error(codes.FailedPrecondition, "etcdserver: cluster ID mismatch")
//revive:disable:var-naming
// Deprecated: Please use ErrGRPCClusterIDMismatch.
ErrGRPCClusterIdMismatch = ErrGRPCClusterIDMismatch
//revive:enable:var-naming
ErrGRPCRequestTooLarge = status.Error(codes.InvalidArgument, "etcdserver: request is too large")
ErrGRPCRequestTooManyRequests = status.Error(codes.ResourceExhausted, "etcdserver: too many requests")
@ -118,7 +122,7 @@ var (
ErrorDesc(ErrGRPCMemberNotLearner): ErrGRPCMemberNotLearner,
ErrorDesc(ErrGRPCLearnerNotReady): ErrGRPCLearnerNotReady,
ErrorDesc(ErrGRPCTooManyLearners): ErrGRPCTooManyLearners,
ErrorDesc(ErrGRPCClusterIdMismatch): ErrGRPCClusterIdMismatch,
ErrorDesc(ErrGRPCClusterIDMismatch): ErrGRPCClusterIDMismatch,
ErrorDesc(ErrGRPCRequestTooLarge): ErrGRPCRequestTooLarge,
ErrorDesc(ErrGRPCRequestTooManyRequests): ErrGRPCRequestTooManyRequests,
@ -206,7 +210,11 @@ var (
ErrInvalidAuthToken = Error(ErrGRPCInvalidAuthToken)
ErrAuthOldRevision = Error(ErrGRPCAuthOldRevision)
ErrInvalidAuthMgmt = Error(ErrGRPCInvalidAuthMgmt)
ErrClusterIdMismatch = Error(ErrGRPCClusterIdMismatch)
ErrClusterIDMismatch = Error(ErrGRPCClusterIDMismatch)
//revive:disable:var-naming
// Deprecated: Please use ErrClusterIDMismatch.
ErrClusterIdMismatch = ErrClusterIDMismatch
//revive:enable:var-naming
ErrNoLeader = Error(ErrGRPCNoLeader)
ErrNotLeader = Error(ErrGRPCNotLeader)

View File

@ -15,8 +15,10 @@
package rpctypes
import (
"errors"
"testing"
"github.com/stretchr/testify/require"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)
@ -24,19 +26,16 @@ import (
func TestConvert(t *testing.T) {
e1 := status.Error(codes.InvalidArgument, "etcdserver: key is not provided")
e2 := ErrGRPCEmptyKey
e3 := ErrEmptyKey
var e3 EtcdError
errors.As(ErrEmptyKey, &e3)
if e1.Error() != e2.Error() {
t.Fatalf("expected %q == %q", e1.Error(), e2.Error())
}
if ev1, ok := status.FromError(e1); ok && ev1.Code() != e3.(EtcdError).Code() {
t.Fatalf("expected them to be equal, got %v / %v", ev1.Code(), e3.(EtcdError).Code())
require.Equal(t, e1.Error(), e2.Error())
if ev1, ok := status.FromError(e1); ok {
require.Equal(t, ev1.Code(), e3.Code())
}
if e1.Error() == e3.Error() {
t.Fatalf("expected %q != %q", e1.Error(), e3.Error())
}
if ev2, ok := status.FromError(e2); ok && ev2.Code() != e3.(EtcdError).Code() {
t.Fatalf("expected them to be equal, got %v / %v", ev2.Code(), e3.(EtcdError).Code())
require.NotEqual(t, e1.Error(), e3.Error())
if ev2, ok := status.FromError(e2); ok {
require.Equal(t, ev2.Code(), e3.Code())
}
}

View File

@ -13,7 +13,7 @@
"licenses": [
{
"type": "MIT License",
"confidence": 1
"confidence": 0.96875
}
]
},
@ -144,7 +144,7 @@
]
},
{
"project": "github.com/golang-jwt/jwt/v4",
"project": "github.com/golang-jwt/jwt/v5",
"licenses": [
{
"type": "MIT License",
@ -188,6 +188,15 @@
}
]
},
{
"project": "github.com/google/uuid",
"licenses": [
{
"type": "BSD 3-clause \"New\" or \"Revised\" License",
"confidence": 0.9663865546218487
}
]
},
{
"project": "github.com/gorilla/websocket",
"licenses": [
@ -207,7 +216,16 @@
]
},
{
"project": "github.com/grpc-ecosystem/go-grpc-prometheus",
"project": "github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus",
"licenses": [
{
"type": "Apache License 2.0",
"confidence": 1
}
]
},
{
"project": "github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors",
"licenses": [
{
"type": "Apache License 2.0",
@ -242,6 +260,33 @@
}
]
},
{
"project": "github.com/klauspost/compress",
"licenses": [
{
"type": "Apache License 2.0",
"confidence": 0.9376299376299376
}
]
},
{
"project": "github.com/klauspost/compress/internal/snapref",
"licenses": [
{
"type": "BSD 3-clause \"New\" or \"Revised\" License",
"confidence": 0.9663865546218487
}
]
},
{
"project": "github.com/klauspost/compress/zstd/internal/xxhash",
"licenses": [
{
"type": "MIT License",
"confidence": 1
}
]
},
{
"project": "github.com/mattn/go-colorable",
"licenses": [
@ -270,11 +315,11 @@
]
},
{
"project": "github.com/matttproud/golang_protobuf_extensions/v2/pbutil",
"project": "github.com/munnerz/goautoneg",
"licenses": [
{
"type": "Apache License 2.0",
"confidence": 1
"type": "BSD 3-clause \"New\" or \"Revised\" License",
"confidence": 0.9794238683127572
}
]
},
@ -296,6 +341,15 @@
}
]
},
{
"project": "github.com/prometheus/client_golang/internal/github.com/golang/gddo/httputil",
"licenses": [
{
"type": "BSD 3-clause \"New\" or \"Revised\" License",
"confidence": 0.9663865546218487
}
]
},
{
"project": "github.com/prometheus/client_golang/prometheus",
"licenses": [
@ -521,6 +575,15 @@
}
]
},
{
"project": "go.opentelemetry.io/auto/sdk",
"licenses": [
{
"type": "Apache License 2.0",
"confidence": 1
}
]
},
{
"project": "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc",
"licenses": [
@ -731,6 +794,10 @@
{
"project": "sigs.k8s.io/yaml",
"licenses": [
{
"type": "Apache License 2.0",
"confidence": 1
},
{
"type": "BSD 3-clause \"New\" or \"Revised\" License",
"confidence": 1

View File

@ -7,6 +7,15 @@
}
]
},
{
"project": "github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors",
"licenses": [
{
"type": "Apache License 2.0",
"confidence": 1
}
]
},
{
"project": "github.com/inconshreveable/mousetrap",
"licenses": [

View File

@ -88,11 +88,12 @@ if err != nil {
kapi := client.NewKeysAPI(c)
resp, err := kapi.Set(ctx, "test", "bar", nil)
if err != nil {
if err == context.Canceled {
var cerr *client.ClusterError
if errors.Is(err, context.Canceled) {
// ctx is canceled by another routine
} else if err == context.DeadlineExceeded {
} else if errors.Is(err, context.DeadlineExceeded) {
// ctx is attached with a deadline and it exceeded
} else if cerr, ok := err.(*client.ClusterError); ok {
} else if errors.As(err, &cerr) {
// process (cerr.Errors)
} else {
// bad cluster endpoints, which are not etcd servers

View File

@ -135,7 +135,7 @@ func (r *httpAuthRoleAPI) AddRole(ctx context.Context, rolename string) error {
Role: rolename,
}
return r.addRemoveRole(ctx, &authRoleAPIAction{
verb: "PUT",
verb: http.MethodPut,
name: rolename,
role: role,
})
@ -143,7 +143,7 @@ func (r *httpAuthRoleAPI) AddRole(ctx context.Context, rolename string) error {
func (r *httpAuthRoleAPI) RemoveRole(ctx context.Context, rolename string) error {
return r.addRemoveRole(ctx, &authRoleAPIAction{
verb: "DELETE",
verb: http.MethodDelete,
name: rolename,
})
}
@ -166,7 +166,7 @@ func (r *httpAuthRoleAPI) addRemoveRole(ctx context.Context, req *authRoleAPIAct
func (r *httpAuthRoleAPI) GetRole(ctx context.Context, rolename string) (*Role, error) {
return r.modRole(ctx, &authRoleAPIAction{
verb: "GET",
verb: http.MethodGet,
name: rolename,
})
}
@ -194,7 +194,7 @@ func (r *httpAuthRoleAPI) GrantRoleKV(ctx context.Context, rolename string, pref
},
}
return r.modRole(ctx, &authRoleAPIAction{
verb: "PUT",
verb: http.MethodPut,
name: rolename,
role: role,
})
@ -209,7 +209,7 @@ func (r *httpAuthRoleAPI) RevokeRoleKV(ctx context.Context, rolename string, pre
},
}
return r.modRole(ctx, &authRoleAPIAction{
verb: "PUT",
verb: http.MethodPut,
name: rolename,
role: role,
})

View File

@ -23,9 +23,7 @@ import (
"path"
)
var (
defaultV2AuthPrefix = "/v2/auth"
)
var defaultV2AuthPrefix = "/v2/auth"
type User struct {
User string `json:"user"`
@ -76,11 +74,11 @@ type httpAuthAPI struct {
}
func (s *httpAuthAPI) Enable(ctx context.Context) error {
return s.enableDisable(ctx, &authAPIAction{"PUT"})
return s.enableDisable(ctx, &authAPIAction{http.MethodPut})
}
func (s *httpAuthAPI) Disable(ctx context.Context) error {
return s.enableDisable(ctx, &authAPIAction{"DELETE"})
return s.enableDisable(ctx, &authAPIAction{http.MethodDelete})
}
func (s *httpAuthAPI) enableDisable(ctx context.Context, req httpAction) error {
@ -219,7 +217,7 @@ func (u *httpAuthUserAPI) AddUser(ctx context.Context, username string, password
Password: password,
}
return u.addRemoveUser(ctx, &authUserAPIAction{
verb: "PUT",
verb: http.MethodPut,
username: username,
user: user,
})
@ -227,7 +225,7 @@ func (u *httpAuthUserAPI) AddUser(ctx context.Context, username string, password
func (u *httpAuthUserAPI) RemoveUser(ctx context.Context, username string) error {
return u.addRemoveUser(ctx, &authUserAPIAction{
verb: "DELETE",
verb: http.MethodDelete,
username: username,
})
}
@ -250,7 +248,7 @@ func (u *httpAuthUserAPI) addRemoveUser(ctx context.Context, req *authUserAPIAct
func (u *httpAuthUserAPI) GetUser(ctx context.Context, username string) (*User, error) {
return u.modUser(ctx, &authUserAPIAction{
verb: "GET",
verb: http.MethodGet,
username: username,
})
}
@ -261,7 +259,7 @@ func (u *httpAuthUserAPI) GrantUser(ctx context.Context, username string, roles
Grant: roles,
}
return u.modUser(ctx, &authUserAPIAction{
verb: "PUT",
verb: http.MethodPut,
username: username,
user: user,
})
@ -273,7 +271,7 @@ func (u *httpAuthUserAPI) RevokeUser(ctx context.Context, username string, roles
Revoke: roles,
}
return u.modUser(ctx, &authUserAPIAction{
verb: "PUT",
verb: http.MethodPut,
username: username,
user: user,
})
@ -285,7 +283,7 @@ func (u *httpAuthUserAPI) ChangePassword(ctx context.Context, username string, p
Password: password,
}
return u.modUser(ctx, &authUserAPIAction{
verb: "PUT",
verb: http.MethodPut,
username: username,
user: user,
})

View File

@ -365,10 +365,10 @@ func (c *httpClusterClient) Do(ctx context.Context, act httpAction) (*http.Respo
resp, body, err = hc.Do(ctx, action)
if err != nil {
cerr.Errors = append(cerr.Errors, err)
if err == ctx.Err() {
if errors.Is(err, ctx.Err()) {
return nil, nil, ctx.Err()
}
if err == context.Canceled || err == context.DeadlineExceeded {
if errors.Is(err, context.Canceled) || errors.Is(err, context.DeadlineExceeded) {
return nil, nil, err
}
} else if resp.StatusCode/100 == 5 {
@ -542,7 +542,7 @@ func (c *simpleHTTPClient) Do(ctx context.Context, act httpAction) (*http.Respon
var err error
isWait, err = strconv.ParseBool(ws)
if err != nil {
return nil, nil, fmt.Errorf("wrong wait value %s (%v for %+v)", ws, err, req)
return nil, nil, fmt.Errorf("wrong wait value %s (%w for %+v)", ws, err, req)
}
}
}

View File

@ -27,6 +27,9 @@ import (
"testing"
"time"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.etcd.io/etcd/api/v3/version"
"go.etcd.io/etcd/client/pkg/v3/testutil"
)
@ -128,20 +131,13 @@ func TestSimpleHTTPClientDoSuccess(t *testing.T) {
Body: io.NopCloser(strings.NewReader("foo")),
}
resp, body, err := c.Do(context.Background(), &fakeAction{})
if err != nil {
t.Fatalf("incorrect error value: want=nil got=%v", err)
}
resp, body, err := c.Do(t.Context(), &fakeAction{})
require.NoErrorf(t, err, "incorrect error value")
wantCode := http.StatusTeapot
if wantCode != resp.StatusCode {
t.Fatalf("invalid response code: want=%d got=%d", wantCode, resp.StatusCode)
}
require.Equalf(t, wantCode, resp.StatusCode, "invalid response code: want=%d got=%d", wantCode, resp.StatusCode)
wantBody := []byte("foo")
if !reflect.DeepEqual(wantBody, body) {
t.Fatalf("invalid response body: want=%q got=%q", wantBody, body)
}
require.Truef(t, reflect.DeepEqual(wantBody, body), "invalid response body: want=%q got=%q", wantBody, body)
}
func TestSimpleHTTPClientDoError(t *testing.T) {
@ -150,10 +146,8 @@ func TestSimpleHTTPClientDoError(t *testing.T) {
tr.errchan <- errors.New("fixture")
_, _, err := c.Do(context.Background(), &fakeAction{})
if err == nil {
t.Fatalf("expected non-nil error, got nil")
}
_, _, err := c.Do(t.Context(), &fakeAction{})
assert.Errorf(t, err, "expected non-nil error, got nil")
}
type nilAction struct{}
@ -168,10 +162,8 @@ func TestSimpleHTTPClientDoNilRequest(t *testing.T) {
tr.errchan <- errors.New("fixture")
_, _, err := c.Do(context.Background(), &nilAction{})
if err != ErrNoRequest {
t.Fatalf("expected non-nil error, got nil")
}
_, _, err := c.Do(t.Context(), &nilAction{})
require.ErrorIsf(t, err, ErrNoRequest, "expected non-nil error, got nil")
}
func TestSimpleHTTPClientDoCancelContext(t *testing.T) {
@ -181,10 +173,8 @@ func TestSimpleHTTPClientDoCancelContext(t *testing.T) {
tr.startCancel <- struct{}{}
tr.finishCancel <- struct{}{}
_, _, err := c.Do(context.Background(), &fakeAction{})
if err == nil {
t.Fatalf("expected non-nil error, got nil")
}
_, _, err := c.Do(t.Context(), &fakeAction{})
assert.Errorf(t, err, "expected non-nil error, got nil")
}
type checkableReadCloser struct {
@ -205,7 +195,7 @@ func TestSimpleHTTPClientDoCancelContextResponseBodyClosed(t *testing.T) {
c := &simpleHTTPClient{transport: tr}
// create an already-cancelled context
ctx, cancel := context.WithCancel(context.Background())
ctx, cancel := context.WithCancel(t.Context())
cancel()
body := &checkableReadCloser{ReadCloser: io.NopCloser(strings.NewReader("foo"))}
@ -219,13 +209,9 @@ func TestSimpleHTTPClientDoCancelContextResponseBodyClosed(t *testing.T) {
}()
_, _, err := c.Do(ctx, &fakeAction{})
if err == nil {
t.Fatalf("expected non-nil error, got nil")
}
require.Errorf(t, err, "expected non-nil error, got nil")
if !body.closed {
t.Fatalf("expected closed body")
}
require.Truef(t, body.closed, "expected closed body")
}
type blockingBody struct {
@ -246,7 +232,7 @@ func TestSimpleHTTPClientDoCancelContextResponseBodyClosedWithBlockingBody(t *te
tr := newFakeTransport()
c := &simpleHTTPClient{transport: tr}
ctx, cancel := context.WithCancel(context.Background())
ctx, cancel := context.WithCancel(t.Context())
body := &checkableReadCloser{ReadCloser: &blockingBody{c: make(chan struct{})}}
go func() {
tr.respchan <- &http.Response{Body: body}
@ -256,13 +242,9 @@ func TestSimpleHTTPClientDoCancelContextResponseBodyClosedWithBlockingBody(t *te
}()
_, _, err := c.Do(ctx, &fakeAction{})
if err != context.Canceled {
t.Fatalf("expected %+v, got %+v", context.Canceled, err)
}
require.ErrorIsf(t, err, context.Canceled, "expected %+v, got %+v", context.Canceled, err)
if !body.closed {
t.Fatalf("expected closed body")
}
require.Truef(t, body.closed, "expected closed body")
}
func TestSimpleHTTPClientDoCancelContextWaitForRoundTrip(t *testing.T) {
@ -270,7 +252,7 @@ func TestSimpleHTTPClientDoCancelContextWaitForRoundTrip(t *testing.T) {
c := &simpleHTTPClient{transport: tr}
donechan := make(chan struct{})
ctx, cancel := context.WithCancel(context.Background())
ctx, cancel := context.WithCancel(t.Context())
go func() {
c.Do(ctx, &fakeAction{})
close(donechan)
@ -289,7 +271,7 @@ func TestSimpleHTTPClientDoCancelContextWaitForRoundTrip(t *testing.T) {
select {
case <-donechan:
//expected behavior
// expected behavior
return
case <-time.After(time.Second):
t.Fatalf("simpleHTTPClient.Do did not exit within 1s")
@ -303,22 +285,20 @@ func TestSimpleHTTPClientDoHeaderTimeout(t *testing.T) {
errc := make(chan error, 1)
go func() {
_, _, err := c.Do(context.Background(), &fakeAction{})
_, _, err := c.Do(t.Context(), &fakeAction{})
errc <- err
}()
select {
case err := <-errc:
if err == nil {
t.Fatalf("expected non-nil error, got nil")
}
require.Errorf(t, err, "expected non-nil error, got nil")
case <-time.After(time.Second):
t.Fatalf("unexpected timeout when waiting for the test to finish")
}
}
func TestHTTPClusterClientDo(t *testing.T) {
fakeErr := errors.New("fake!")
fakeErr := errors.New("fake")
fakeURL := url.URL{}
tests := []struct {
client *httpClusterClient
@ -427,7 +407,7 @@ func TestHTTPClusterClientDo(t *testing.T) {
),
rand: rand.New(rand.NewSource(0)),
},
ctx: context.WithValue(context.Background(), &oneShotCtxValue, &oneShotCtxValue),
ctx: context.WithValue(t.Context(), &oneShotCtxValue, &oneShotCtxValue),
wantErr: errors.New("client: etcd member returns server error [Bad Gateway]"),
wantPinned: 1,
},
@ -435,10 +415,10 @@ func TestHTTPClusterClientDo(t *testing.T) {
for i, tt := range tests {
if tt.ctx == nil {
tt.ctx = context.Background()
tt.ctx = t.Context()
}
resp, _, err := tt.client.Do(tt.ctx, nil)
if (tt.wantErr == nil && tt.wantErr != err) || (tt.wantErr != nil && tt.wantErr.Error() != err.Error()) {
if (tt.wantErr == nil && !errors.Is(err, tt.wantErr)) || (tt.wantErr != nil && tt.wantErr.Error() != err.Error()) {
t.Errorf("#%d: got err=%v, want=%v", i, err, tt.wantErr)
continue
}
@ -470,7 +450,7 @@ func TestHTTPClusterClientDoDeadlineExceedContext(t *testing.T) {
errc := make(chan error, 1)
go func() {
ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond)
ctx, cancel := context.WithTimeout(t.Context(), time.Millisecond)
defer cancel()
_, _, err := c.Do(ctx, &fakeAction{})
errc <- err
@ -478,7 +458,7 @@ func TestHTTPClusterClientDoDeadlineExceedContext(t *testing.T) {
select {
case err := <-errc:
if err != context.DeadlineExceeded {
if !errors.Is(err, context.DeadlineExceeded) {
t.Errorf("err = %+v, want %+v", err, context.DeadlineExceeded)
}
case <-time.After(time.Second):
@ -501,7 +481,8 @@ func (f fakeCancelContext) Value(key any) any { return 1 }
func withTimeout(parent context.Context, _timeout time.Duration) (
ctx context.Context,
cancel context.CancelFunc) {
cancel context.CancelFunc,
) {
ctx = parent
cancel = func() {
ctx = nil
@ -528,7 +509,7 @@ func TestHTTPClusterClientDoCanceledContext(t *testing.T) {
select {
case err := <-errc:
if err != errFakeCancelContext {
if !errors.Is(err, errFakeCancelContext) {
t.Errorf("err = %+v, want %+v", err, errFakeCancelContext)
}
case <-time.After(time.Second):
@ -540,7 +521,7 @@ func TestRedirectedHTTPAction(t *testing.T) {
act := &redirectedHTTPAction{
action: &staticHTTPAction{
request: http.Request{
Method: "DELETE",
Method: http.MethodDelete,
URL: &url.URL{
Scheme: "https",
Host: "foo.example.com",
@ -556,7 +537,7 @@ func TestRedirectedHTTPAction(t *testing.T) {
}
want := &http.Request{
Method: "DELETE",
Method: http.MethodDelete,
URL: &url.URL{
Scheme: "https",
Host: "bar.example.com",
@ -565,9 +546,7 @@ func TestRedirectedHTTPAction(t *testing.T) {
}
got := act.HTTPRequest(url.URL{Scheme: "http", Host: "baz.example.com", Path: "/pang"})
if !reflect.DeepEqual(want, got) {
t.Fatalf("HTTPRequest is %#v, want %#v", want, got)
}
require.Truef(t, reflect.DeepEqual(want, got), "HTTPRequest is %#v, want %#v", want, got)
}
func TestRedirectFollowingHTTPClient(t *testing.T) {
@ -583,11 +562,11 @@ func TestRedirectFollowingHTTPClient(t *testing.T) {
client: &multiStaticHTTPClient{
responses: []staticHTTPResponse{
{
err: errors.New("fail!"),
err: errors.New("fail"),
},
},
},
wantErr: errors.New("fail!"),
wantErr: errors.New("fail"),
},
// no need to follow redirect if none given
@ -723,7 +702,9 @@ func TestRedirectFollowingHTTPClient(t *testing.T) {
},
},
},
//revive:disable:error-strings
wantErr: errors.New("location header not valid URL: :"),
//revive:enable:error-strings
},
// fail if redirects checked way too many times
@ -741,8 +722,8 @@ func TestRedirectFollowingHTTPClient(t *testing.T) {
for i, tt := range tests {
client := &redirectFollowingHTTPClient{client: tt.client, checkRedirect: tt.checkRedirect}
resp, _, err := client.Do(context.Background(), nil)
if (tt.wantErr == nil && tt.wantErr != err) || (tt.wantErr != nil && tt.wantErr.Error() != err.Error()) {
resp, _, err := client.Do(t.Context(), nil)
if (tt.wantErr == nil && !errors.Is(err, tt.wantErr)) || (tt.wantErr != nil && tt.wantErr.Error() != err.Error()) {
t.Errorf("#%d: got err=%v, want=%v", i, err, tt.wantErr)
continue
}
@ -794,43 +775,31 @@ func TestHTTPClusterClientSync(t *testing.T) {
rand: rand.New(rand.NewSource(0)),
}
err := hc.SetEndpoints([]string{"http://127.0.0.1:2379"})
if err != nil {
t.Fatalf("unexpected error during setup: %#v", err)
}
require.NoErrorf(t, err, "unexpected error during setup")
want := []string{"http://127.0.0.1:2379"}
got := hc.Endpoints()
if !reflect.DeepEqual(want, got) {
t.Fatalf("incorrect endpoints: want=%#v got=%#v", want, got)
}
require.Truef(t, reflect.DeepEqual(want, got), "incorrect endpoints: want=%#v got=%#v", want, got)
err = hc.Sync(context.Background())
if err != nil {
t.Fatalf("unexpected error during Sync: %#v", err)
}
err = hc.Sync(t.Context())
require.NoErrorf(t, err, "unexpected error during Sync: %#v", err)
want = []string{"http://127.0.0.1:2379", "http://127.0.0.1:4001", "http://127.0.0.1:4002", "http://127.0.0.1:4003"}
got = hc.Endpoints()
sort.Strings(got)
if !reflect.DeepEqual(want, got) {
t.Fatalf("incorrect endpoints post-Sync: want=%#v got=%#v", want, got)
}
require.Truef(t, reflect.DeepEqual(want, got), "incorrect endpoints post-Sync: want=%#v got=%#v", want, got)
err = hc.SetEndpoints([]string{"http://127.0.0.1:4009"})
if err != nil {
t.Fatalf("unexpected error during reset: %#v", err)
}
require.NoErrorf(t, err, "unexpected error during reset: %#v", err)
want = []string{"http://127.0.0.1:4009"}
got = hc.Endpoints()
if !reflect.DeepEqual(want, got) {
t.Fatalf("incorrect endpoints post-reset: want=%#v got=%#v", want, got)
}
require.Truef(t, reflect.DeepEqual(want, got), "incorrect endpoints post-reset: want=%#v got=%#v", want, got)
}
func TestHTTPClusterClientSyncFail(t *testing.T) {
cf := newStaticHTTPClientFactory([]staticHTTPResponse{
{err: errors.New("fail!")},
{err: errors.New("fail")},
})
hc := &httpClusterClient{
@ -838,25 +807,17 @@ func TestHTTPClusterClientSyncFail(t *testing.T) {
rand: rand.New(rand.NewSource(0)),
}
err := hc.SetEndpoints([]string{"http://127.0.0.1:2379"})
if err != nil {
t.Fatalf("unexpected error during setup: %#v", err)
}
require.NoErrorf(t, err, "unexpected error during setup")
want := []string{"http://127.0.0.1:2379"}
got := hc.Endpoints()
if !reflect.DeepEqual(want, got) {
t.Fatalf("incorrect endpoints: want=%#v got=%#v", want, got)
}
require.Truef(t, reflect.DeepEqual(want, got), "incorrect endpoints: want=%#v got=%#v", want, got)
err = hc.Sync(context.Background())
if err == nil {
t.Fatalf("got nil error during Sync")
}
err = hc.Sync(t.Context())
require.Errorf(t, err, "got nil error during Sync")
got = hc.Endpoints()
if !reflect.DeepEqual(want, got) {
t.Fatalf("incorrect endpoints after failed Sync: want=%#v got=%#v", want, got)
}
require.Truef(t, reflect.DeepEqual(want, got), "incorrect endpoints after failed Sync: want=%#v got=%#v", want, got)
}
func TestHTTPClusterClientAutoSyncCancelContext(t *testing.T) {
@ -872,21 +833,18 @@ func TestHTTPClusterClientAutoSyncCancelContext(t *testing.T) {
rand: rand.New(rand.NewSource(0)),
}
err := hc.SetEndpoints([]string{"http://127.0.0.1:2379"})
if err != nil {
t.Fatalf("unexpected error during setup: %#v", err)
}
ctx, cancel := context.WithCancel(context.Background())
require.NoErrorf(t, err, "unexpected error during setup")
ctx, cancel := context.WithCancel(t.Context())
cancel()
err = hc.AutoSync(ctx, time.Hour)
if err != context.Canceled {
t.Fatalf("incorrect error value: want=%v got=%v", context.Canceled, err)
}
require.ErrorIsf(t, err, context.Canceled, "incorrect error value: want=%v got=%v", context.Canceled, err)
}
func TestHTTPClusterClientAutoSyncFail(t *testing.T) {
cf := newStaticHTTPClientFactory([]staticHTTPResponse{
{err: errors.New("fail!")},
{err: errors.New("fail")},
})
hc := &httpClusterClient{
@ -894,14 +852,10 @@ func TestHTTPClusterClientAutoSyncFail(t *testing.T) {
rand: rand.New(rand.NewSource(0)),
}
err := hc.SetEndpoints([]string{"http://127.0.0.1:2379"})
if err != nil {
t.Fatalf("unexpected error during setup: %#v", err)
}
require.NoErrorf(t, err, "unexpected error during setup")
err = hc.AutoSync(context.Background(), time.Hour)
if !strings.HasPrefix(err.Error(), ErrClusterUnavailable.Error()) {
t.Fatalf("incorrect error value: want=%v got=%v", ErrClusterUnavailable, err)
}
err = hc.AutoSync(t.Context(), time.Hour)
require.Truef(t, strings.HasPrefix(err.Error(), ErrClusterUnavailable.Error()), "incorrect error value: want=%v got=%v", ErrClusterUnavailable, err)
}
func TestHTTPClusterClientGetVersion(t *testing.T) {
@ -918,11 +872,9 @@ func TestHTTPClusterClientGetVersion(t *testing.T) {
rand: rand.New(rand.NewSource(0)),
}
err := hc.SetEndpoints([]string{"http://127.0.0.1:4003", "http://127.0.0.1:2379", "http://127.0.0.1:4001", "http://127.0.0.1:4002"})
if err != nil {
t.Fatalf("unexpected error during setup: %#v", err)
}
require.NoErrorf(t, err, "unexpected error during setup")
actual, err := hc.GetVersion(context.Background())
actual, err := hc.GetVersion(t.Context())
if err != nil {
t.Errorf("non-nil error: %#v", err)
}
@ -955,16 +907,12 @@ func TestHTTPClusterClientSyncPinEndpoint(t *testing.T) {
rand: rand.New(rand.NewSource(0)),
}
err := hc.SetEndpoints([]string{"http://127.0.0.1:4003", "http://127.0.0.1:2379", "http://127.0.0.1:4001", "http://127.0.0.1:4002"})
if err != nil {
t.Fatalf("unexpected error during setup: %#v", err)
}
require.NoErrorf(t, err, "unexpected error during setup")
pinnedEndpoint := hc.endpoints[hc.pinned]
for i := 0; i < 3; i++ {
err = hc.Sync(context.Background())
if err != nil {
t.Fatalf("#%d: unexpected error during Sync: %#v", i, err)
}
err = hc.Sync(t.Context())
require.NoErrorf(t, err, "#%d: unexpected error during Sync", i)
if g := hc.endpoints[hc.pinned]; g != pinnedEndpoint {
t.Errorf("#%d: pinned endpoint = %v, want %v", i, g, pinnedEndpoint)
@ -995,16 +943,12 @@ func TestHTTPClusterClientSyncUnpinEndpoint(t *testing.T) {
rand: rand.New(rand.NewSource(0)),
}
err := hc.SetEndpoints([]string{"http://127.0.0.1:4003", "http://127.0.0.1:2379", "http://127.0.0.1:4001", "http://127.0.0.1:4002"})
if err != nil {
t.Fatalf("unexpected error during setup: %#v", err)
}
require.NoErrorf(t, err, "unexpected error during setup")
wants := []string{"http://127.0.0.1:2379", "http://127.0.0.1:4001", "http://127.0.0.1:4002"}
for i := 0; i < 3; i++ {
err = hc.Sync(context.Background())
if err != nil {
t.Fatalf("#%d: unexpected error during Sync: %#v", i, err)
}
err = hc.Sync(t.Context())
require.NoErrorf(t, err, "#%d: unexpected error during Sync", i)
if g := hc.endpoints[hc.pinned]; g.String() != wants[i] {
t.Errorf("#%d: pinned endpoint = %v, want %v", i, g, wants[i])
@ -1044,10 +988,8 @@ func TestHTTPClusterClientSyncPinLeaderEndpoint(t *testing.T) {
wants := []string{"http://127.0.0.1:4003", "http://127.0.0.1:4002"}
for i, want := range wants {
err := hc.Sync(context.Background())
if err != nil {
t.Fatalf("#%d: unexpected error during Sync: %#v", i, err)
}
err := hc.Sync(t.Context())
require.NoErrorf(t, err, "#%d: unexpected error during Sync", i)
pinned := hc.endpoints[hc.pinned].String()
if pinned != want {
@ -1080,9 +1022,7 @@ func TestHTTPClusterClientResetPinRandom(t *testing.T) {
for i := 0; i < round; i++ {
hc := &httpClusterClient{rand: rand.New(rand.NewSource(int64(i)))}
err := hc.SetEndpoints([]string{"http://127.0.0.1:4001", "http://127.0.0.1:4002", "http://127.0.0.1:4003"})
if err != nil {
t.Fatalf("#%d: reset error (%v)", i, err)
}
require.NoErrorf(t, err, "#%d: reset error", i)
if hc.endpoints[hc.pinned].String() == "http://127.0.0.1:4001" {
pinNum++
}

View File

@ -22,9 +22,7 @@ import (
"os"
)
var (
cURLDebug = false
)
var cURLDebug = false
func EnablecURLDebug() {
cURLDebug = true

View File

@ -1,8 +1,11 @@
module go.etcd.io/etcd/client/v2
go 1.21
go 1.24
toolchain go1.24.1
require (
github.com/stretchr/testify v1.10.0
go.etcd.io/etcd/api/v3 v3.6.0-alpha.0
go.etcd.io/etcd/client/pkg/v3 v3.6.0-alpha.0
sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6
@ -11,9 +14,8 @@ require (
require (
github.com/coreos/go-semver v0.3.1 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/kr/text v0.2.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/stretchr/testify v1.8.4 // indirect
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)

View File

@ -1,17 +1,18 @@
github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4=
github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=

View File

@ -79,9 +79,7 @@ const (
PrevNoExist = PrevExistType("false")
)
var (
defaultV2KeysPrefix = "/v2/keys"
)
var defaultV2KeysPrefix = "/v2/keys"
// NewKeysAPI builds a KeysAPI that interacts with etcd's key-value
// API over HTTP.
@ -459,7 +457,7 @@ func (hw *httpWatcher) Next(ctx context.Context) (*Response, error) {
resp, err := unmarshalHTTPResponse(httpresp.StatusCode, httpresp.Header, body)
if err != nil {
if err == ErrEmptyBody {
if errors.Is(err, ErrEmptyBody) {
continue
}
return nil, err

View File

@ -20,6 +20,8 @@ import (
"reflect"
"strings"
"testing"
"github.com/stretchr/testify/require"
)
func createTestNode(size int) *Node {
@ -49,13 +51,12 @@ func createTestResponse(children, size int) *Response {
}
func benchmarkResponseUnmarshalling(b *testing.B, children, size int) {
b.Helper()
header := http.Header{}
header.Add("X-Etcd-Index", "123456")
response := createTestResponse(children, size)
body, err := json.Marshal(response)
if err != nil {
b.Fatal(err)
}
require.NoError(b, err)
b.ResetTimer()
newResponse := new(Response)
@ -63,7 +64,6 @@ func benchmarkResponseUnmarshalling(b *testing.B, children, size int) {
if newResponse, err = unmarshalSuccessfulKeysResponse(header, body); err != nil {
b.Errorf("error unmarshalling response (%v)", err)
}
}
if !reflect.DeepEqual(response.Node, newResponse.Node) {
b.Errorf("Unexpected difference in a parsed response: \n%+v\n%+v", response, newResponse)

View File

@ -15,7 +15,6 @@
package client
import (
"context"
"errors"
"fmt"
"io"
@ -162,7 +161,7 @@ func TestGetAction(t *testing.T) {
wantURL := baseWantURL
wantURL.RawQuery = tt.wantQuery
err := assertRequest(got, "GET", wantURL, wantHeader, nil)
err := assertRequest(got, http.MethodGet, wantURL, wantHeader, nil)
if err != nil {
t.Errorf("#%d: %v", i, err)
}
@ -211,7 +210,7 @@ func TestWaitAction(t *testing.T) {
wantURL := baseWantURL
wantURL.RawQuery = tt.wantQuery
err := assertRequest(got, "GET", wantURL, wantHeader, nil)
err := assertRequest(got, http.MethodGet, wantURL, wantHeader, nil)
if err != nil {
t.Errorf("#%d: unexpected error: %#v", i, err)
}
@ -424,7 +423,7 @@ func TestSetAction(t *testing.T) {
}
got := tt.act.HTTPRequest(url.URL{Scheme: "http", Host: "example.com"})
if err := assertRequest(*got, "PUT", u, wantHeader, []byte(tt.wantBody)); err != nil {
if err := assertRequest(*got, http.MethodPut, u, wantHeader, []byte(tt.wantBody)); err != nil {
t.Errorf("#%d: %v", i, err)
}
}
@ -525,7 +524,7 @@ func TestCreateInOrderAction(t *testing.T) {
}
got := tt.act.HTTPRequest(url.URL{Scheme: "http", Host: "example.com"})
if err := assertRequest(*got, "POST", u, wantHeader, []byte(tt.wantBody)); err != nil {
if err := assertRequest(*got, http.MethodPost, u, wantHeader, []byte(tt.wantBody)); err != nil {
t.Errorf("#%d: %v", i, err)
}
}
@ -627,7 +626,7 @@ func TestDeleteAction(t *testing.T) {
}
got := tt.act.HTTPRequest(url.URL{Scheme: "http", Host: "example.com"})
if err := assertRequest(*got, "DELETE", u, wantHeader, nil); err != nil {
if err := assertRequest(*got, http.MethodDelete, u, wantHeader, nil); err != nil {
t.Errorf("#%d: %v", i, err)
}
}
@ -830,9 +829,10 @@ func TestUnmarshalFailedKeysResponse(t *testing.T) {
func TestUnmarshalFailedKeysResponseBadJSON(t *testing.T) {
err := unmarshalFailedKeysResponse([]byte(`{"er`))
var cErr Error
if err == nil {
t.Errorf("got nil error")
} else if _, ok := err.(Error); ok {
} else if errors.As(err, &cErr) {
t.Errorf("error is of incorrect type *Error: %#v", err)
}
}
@ -874,7 +874,7 @@ func TestHTTPWatcherNextWaitAction(t *testing.T) {
nextWait: initAction,
}
resp, err := watcher.Next(context.Background())
resp, err := watcher.Next(t.Context())
if err != nil {
t.Errorf("non-nil error: %#v", err)
}
@ -892,7 +892,7 @@ func TestHTTPWatcherNextFail(t *testing.T) {
tests := []httpClient{
// generic HTTP client failure
&staticHTTPClient{
err: errors.New("fail!"),
err: errors.New("fail"),
},
// unusable status code
@ -924,7 +924,7 @@ func TestHTTPWatcherNextFail(t *testing.T) {
nextWait: act,
}
resp, err := watcher.Next(context.Background())
resp, err := watcher.Next(t.Context())
if err == nil {
t.Errorf("#%d: expected non-nil error", i)
}
@ -994,7 +994,7 @@ func TestHTTPKeysAPIWatcherAction(t *testing.T) {
}
for i, tt := range tests {
testError := errors.New("fail!")
testError := errors.New("fail")
kAPI := &httpKeysAPI{
client: &staticHTTPClient{err: testError},
}
@ -1072,7 +1072,7 @@ func TestHTTPKeysAPISetAction(t *testing.T) {
for i, tt := range tests {
client := &actionAssertingHTTPClient{t: t, num: i, act: tt.wantAction}
kAPI := httpKeysAPI{client: client}
kAPI.Set(context.Background(), tt.key, tt.value, tt.opts)
kAPI.Set(t.Context(), tt.key, tt.value, tt.opts)
}
}
@ -1080,7 +1080,7 @@ func TestHTTPKeysAPISetError(t *testing.T) {
tests := []httpClient{
// generic HTTP client failure
&staticHTTPClient{
err: errors.New("fail!"),
err: errors.New("fail"),
},
// unusable status code
@ -1101,7 +1101,7 @@ func TestHTTPKeysAPISetError(t *testing.T) {
for i, tt := range tests {
kAPI := httpKeysAPI{client: tt}
resp, err := kAPI.Set(context.Background(), "/foo", "bar", nil)
resp, err := kAPI.Set(t.Context(), "/foo", "bar", nil)
if err == nil {
t.Errorf("#%d: received nil error", i)
}
@ -1128,7 +1128,7 @@ func TestHTTPKeysAPISetResponse(t *testing.T) {
}
kAPI := &httpKeysAPI{client: client, prefix: "/pants"}
resp, err := kAPI.Set(context.Background(), "/foo/bar/baz", "snarf", nil)
resp, err := kAPI.Set(t.Context(), "/foo/bar/baz", "snarf", nil)
if err != nil {
t.Errorf("non-nil error: %#v", err)
}
@ -1183,7 +1183,7 @@ func TestHTTPKeysAPIGetAction(t *testing.T) {
for i, tt := range tests {
client := &actionAssertingHTTPClient{t: t, num: i, act: tt.wantAction}
kAPI := httpKeysAPI{client: client}
kAPI.Get(context.Background(), tt.key, tt.opts)
kAPI.Get(t.Context(), tt.key, tt.opts)
}
}
@ -1191,7 +1191,7 @@ func TestHTTPKeysAPIGetError(t *testing.T) {
tests := []httpClient{
// generic HTTP client failure
&staticHTTPClient{
err: errors.New("fail!"),
err: errors.New("fail"),
},
// unusable status code
@ -1212,7 +1212,7 @@ func TestHTTPKeysAPIGetError(t *testing.T) {
for i, tt := range tests {
kAPI := httpKeysAPI{client: tt}
resp, err := kAPI.Get(context.Background(), "/foo", nil)
resp, err := kAPI.Get(t.Context(), "/foo", nil)
if err == nil {
t.Errorf("#%d: received nil error", i)
}
@ -1245,7 +1245,7 @@ func TestHTTPKeysAPIGetResponse(t *testing.T) {
}
kAPI := &httpKeysAPI{client: client, prefix: "/pants"}
resp, err := kAPI.Get(context.Background(), "/foo/bar", &GetOptions{Recursive: true})
resp, err := kAPI.Get(t.Context(), "/foo/bar", &GetOptions{Recursive: true})
if err != nil {
t.Errorf("non-nil error: %#v", err)
}
@ -1302,7 +1302,7 @@ func TestHTTPKeysAPIDeleteAction(t *testing.T) {
for i, tt := range tests {
client := &actionAssertingHTTPClient{t: t, num: i, act: tt.wantAction}
kAPI := httpKeysAPI{client: client}
kAPI.Delete(context.Background(), tt.key, tt.opts)
kAPI.Delete(t.Context(), tt.key, tt.opts)
}
}
@ -1310,7 +1310,7 @@ func TestHTTPKeysAPIDeleteError(t *testing.T) {
tests := []httpClient{
// generic HTTP client failure
&staticHTTPClient{
err: errors.New("fail!"),
err: errors.New("fail"),
},
// unusable status code
@ -1331,7 +1331,7 @@ func TestHTTPKeysAPIDeleteError(t *testing.T) {
for i, tt := range tests {
kAPI := httpKeysAPI{client: tt}
resp, err := kAPI.Delete(context.Background(), "/foo", nil)
resp, err := kAPI.Delete(t.Context(), "/foo", nil)
if err == nil {
t.Errorf("#%d: received nil error", i)
}
@ -1358,7 +1358,7 @@ func TestHTTPKeysAPIDeleteResponse(t *testing.T) {
}
kAPI := &httpKeysAPI{client: client, prefix: "/pants"}
resp, err := kAPI.Delete(context.Background(), "/foo/bar/baz", nil)
resp, err := kAPI.Delete(t.Context(), "/foo/bar/baz", nil)
if err != nil {
t.Errorf("non-nil error: %#v", err)
}
@ -1378,7 +1378,7 @@ func TestHTTPKeysAPICreateAction(t *testing.T) {
}
kAPI := httpKeysAPI{client: &actionAssertingHTTPClient{t: t, act: act}}
kAPI.Create(context.Background(), "/foo", "bar")
kAPI.Create(t.Context(), "/foo", "bar")
}
func TestHTTPKeysAPICreateInOrderAction(t *testing.T) {
@ -1388,7 +1388,7 @@ func TestHTTPKeysAPICreateInOrderAction(t *testing.T) {
TTL: 0,
}
kAPI := httpKeysAPI{client: &actionAssertingHTTPClient{t: t, act: act}}
kAPI.CreateInOrder(context.Background(), "/foo", "bar", nil)
kAPI.CreateInOrder(t.Context(), "/foo", "bar", nil)
}
func TestHTTPKeysAPIUpdateAction(t *testing.T) {
@ -1402,7 +1402,7 @@ func TestHTTPKeysAPIUpdateAction(t *testing.T) {
}
kAPI := httpKeysAPI{client: &actionAssertingHTTPClient{t: t, act: act}}
kAPI.Update(context.Background(), "/foo", "bar")
kAPI.Update(t.Context(), "/foo", "bar")
}
func TestNodeTTLDuration(t *testing.T) {

View File

@ -15,7 +15,6 @@
package client
import (
"context"
"encoding/json"
"errors"
"net/http"
@ -23,6 +22,8 @@ import (
"reflect"
"testing"
"github.com/stretchr/testify/require"
"go.etcd.io/etcd/client/pkg/v3/types"
)
@ -37,7 +38,7 @@ func TestMembersAPIActionList(t *testing.T) {
}
got := *act.HTTPRequest(ep)
err := assertRequest(got, "GET", wantURL, http.Header{}, nil)
err := assertRequest(got, http.MethodGet, wantURL, http.Header{}, nil)
if err != nil {
t.Error(err.Error())
}
@ -63,7 +64,7 @@ func TestMembersAPIActionAdd(t *testing.T) {
wantBody := []byte(`{"peerURLs":["https://127.0.0.1:8081","http://127.0.0.1:8080"]}`)
got := *act.HTTPRequest(ep)
err := assertRequest(got, "POST", wantURL, wantHeader, wantBody)
err := assertRequest(got, http.MethodPost, wantURL, wantHeader, wantBody)
if err != nil {
t.Error(err.Error())
}
@ -90,7 +91,7 @@ func TestMembersAPIActionUpdate(t *testing.T) {
wantBody := []byte(`{"peerURLs":["https://127.0.0.1:8081","http://127.0.0.1:8080"]}`)
got := *act.HTTPRequest(ep)
err := assertRequest(got, "PUT", wantURL, wantHeader, wantBody)
err := assertRequest(got, http.MethodPut, wantURL, wantHeader, wantBody)
if err != nil {
t.Error(err.Error())
}
@ -107,7 +108,7 @@ func TestMembersAPIActionRemove(t *testing.T) {
}
got := *act.HTTPRequest(ep)
err := assertRequest(got, "DELETE", wantURL, http.Header{}, nil)
err := assertRequest(got, http.MethodDelete, wantURL, http.Header{}, nil)
if err != nil {
t.Error(err.Error())
}
@ -124,7 +125,7 @@ func TestMembersAPIActionLeader(t *testing.T) {
}
got := *act.HTTPRequest(ep)
err := assertRequest(got, "GET", wantURL, http.Header{}, nil)
err := assertRequest(got, http.MethodGet, wantURL, http.Header{}, nil)
if err != nil {
t.Error(err.Error())
}
@ -152,9 +153,7 @@ func TestV2MembersURL(t *testing.T) {
Path: "/pants/v2/members",
}
if !reflect.DeepEqual(want, got) {
t.Fatalf("v2MembersURL got %#v, want %#v", got, want)
}
require.Truef(t, reflect.DeepEqual(want, got), "v2MembersURL got %#v, want %#v", got, want)
}
func TestMemberUnmarshal(t *testing.T) {
@ -312,13 +311,9 @@ func TestMemberCreateRequestMarshal(t *testing.T) {
want := []byte(`{"peerURLs":["http://127.0.0.1:8081","https://127.0.0.1:8080"]}`)
got, err := json.Marshal(&req)
if err != nil {
t.Fatalf("Marshal returned unexpected err=%v", err)
}
require.NoErrorf(t, err, "Marshal returned unexpected err")
if !reflect.DeepEqual(want, got) {
t.Fatalf("Failed to marshal memberCreateRequest: want=%s, got=%s", want, got)
}
require.Truef(t, reflect.DeepEqual(want, got), "Failed to marshal memberCreateRequest: want=%s, got=%s", want, got)
}
func TestHTTPMembersAPIAddSuccess(t *testing.T) {
@ -344,7 +339,7 @@ func TestHTTPMembersAPIAddSuccess(t *testing.T) {
PeerURLs: []string{"http://127.0.0.1:7002"},
}
m, err := mAPI.Add(context.Background(), "http://127.0.0.1:7002")
m, err := mAPI.Add(t.Context(), "http://127.0.0.1:7002")
if err != nil {
t.Errorf("got non-nil err: %#v", err)
}
@ -371,7 +366,7 @@ func TestHTTPMembersAPIAddError(t *testing.T) {
// generic httpClient failure
{
peerURL: okPeer,
client: &staticHTTPClient{err: errors.New("fail!")},
client: &staticHTTPClient{err: errors.New("fail")},
},
// unrecognized HTTP status code
@ -419,7 +414,7 @@ func TestHTTPMembersAPIAddError(t *testing.T) {
for i, tt := range tests {
mAPI := &httpMembersAPI{client: tt.client}
m, err := mAPI.Add(context.Background(), tt.peerURL)
m, err := mAPI.Add(t.Context(), tt.peerURL)
if err == nil {
t.Errorf("#%d: got nil err", i)
}
@ -447,7 +442,7 @@ func TestHTTPMembersAPIRemoveSuccess(t *testing.T) {
},
}
if err := mAPI.Remove(context.Background(), "94088180e21eb87b"); err != nil {
if err := mAPI.Remove(t.Context(), "94088180e21eb87b"); err != nil {
t.Errorf("got non-nil err: %#v", err)
}
}
@ -456,7 +451,7 @@ func TestHTTPMembersAPIRemoveFail(t *testing.T) {
tests := []httpClient{
// generic error
&staticHTTPClient{
err: errors.New("fail!"),
err: errors.New("fail"),
},
// unexpected HTTP status code
@ -469,7 +464,7 @@ func TestHTTPMembersAPIRemoveFail(t *testing.T) {
for i, tt := range tests {
mAPI := &httpMembersAPI{client: tt}
if err := mAPI.Remove(context.Background(), "94088180e21eb87b"); err == nil {
if err := mAPI.Remove(t.Context(), "94088180e21eb87b"); err == nil {
t.Errorf("#%d: got nil err", i)
}
}
@ -497,7 +492,7 @@ func TestHTTPMembersAPIListSuccess(t *testing.T) {
},
}
m, err := mAPI.List(context.Background())
m, err := mAPI.List(t.Context())
if err != nil {
t.Errorf("got non-nil err: %#v", err)
}
@ -509,7 +504,7 @@ func TestHTTPMembersAPIListSuccess(t *testing.T) {
func TestHTTPMembersAPIListError(t *testing.T) {
tests := []httpClient{
// generic httpClient failure
&staticHTTPClient{err: errors.New("fail!")},
&staticHTTPClient{err: errors.New("fail")},
// unrecognized HTTP status code
&staticHTTPClient{
@ -527,7 +522,7 @@ func TestHTTPMembersAPIListError(t *testing.T) {
for i, tt := range tests {
mAPI := &httpMembersAPI{client: tt}
ms, err := mAPI.List(context.Background())
ms, err := mAPI.List(t.Context())
if err == nil {
t.Errorf("#%d: got nil err", i)
}
@ -557,7 +552,7 @@ func TestHTTPMembersAPILeaderSuccess(t *testing.T) {
ClientURLs: []string{"http://127.0.0.1:4002"},
}
m, err := mAPI.Leader(context.Background())
m, err := mAPI.Leader(t.Context())
if err != nil {
t.Errorf("err = %v, want %v", err, nil)
}
@ -569,7 +564,7 @@ func TestHTTPMembersAPILeaderSuccess(t *testing.T) {
func TestHTTPMembersAPILeaderError(t *testing.T) {
tests := []httpClient{
// generic httpClient failure
&staticHTTPClient{err: errors.New("fail!")},
&staticHTTPClient{err: errors.New("fail")},
// unrecognized HTTP status code
&staticHTTPClient{
@ -587,7 +582,7 @@ func TestHTTPMembersAPILeaderError(t *testing.T) {
for i, tt := range tests {
mAPI := &httpMembersAPI{client: tt}
m, err := mAPI.Leader(context.Background())
m, err := mAPI.Leader(t.Context())
if err == nil {
t.Errorf("#%d: err = nil, want not nil", i)
}

View File

@ -15,6 +15,7 @@
package client
import (
"errors"
"regexp"
)
@ -30,24 +31,18 @@ func init() {
// IsKeyNotFound returns true if the error code is ErrorCodeKeyNotFound.
func IsKeyNotFound(err error) bool {
if cErr, ok := err.(Error); ok {
return cErr.Code == ErrorCodeKeyNotFound
}
return false
var cErr Error
return errors.As(err, &cErr) && cErr.Code == ErrorCodeKeyNotFound
}
// IsRoleNotFound returns true if the error means role not found of v2 API.
func IsRoleNotFound(err error) bool {
if ae, ok := err.(authError); ok {
return roleNotFoundRegExp.MatchString(ae.Message)
}
return false
var ae authError
return errors.As(err, &ae) && roleNotFoundRegExp.MatchString(ae.Message)
}
// IsUserNotFound returns true if the error means user not found of v2 API.
func IsUserNotFound(err error) bool {
if ae, ok := err.(authError); ok {
return userNotFoundRegExp.MatchString(ae.Message)
}
return false
var ae authError
return errors.As(err, &ae) && userNotFoundRegExp.MatchString(ae.Message)
}

View File

@ -20,7 +20,7 @@ import "os"
const (
// PrivateDirMode grants owner to make/remove files inside the directory.
PrivateDirMode = 0700
PrivateDirMode = 0o700
)
// OpenDir opens a directory for syncing.

View File

@ -23,7 +23,7 @@ import (
const (
// PrivateDirMode grants owner to make/remove files inside the directory.
PrivateDirMode = 0777
PrivateDirMode = 0o777
)
// OpenDir opens a directory in windows with write access for syncing.

View File

@ -28,7 +28,7 @@ import (
const (
// PrivateFileMode grants owner to read/write a file.
PrivateFileMode = 0600
PrivateFileMode = 0o600
)
// IsDirWriteable checks if dir is writable by writing and removing a file
@ -125,7 +125,7 @@ func CheckDirPermission(dir string, perm os.FileMode) error {
if !Exist(dir) {
return fmt.Errorf("directory %q empty, cannot check permission", dir)
}
//check the existing permission on the directory
// check the existing permission on the directory
dirInfo, err := os.Stat(dir)
if err != nil {
return err
@ -160,7 +160,6 @@ func RemoveMatchFile(lg *zap.Logger, dir string, matchFunc func(fileName string)
lg.Error("remove file failed",
zap.String("file", file),
zap.Error(err))
continue
}
}
}

View File

@ -27,17 +27,14 @@ import (
"time"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.uber.org/zap/zaptest"
)
func TestIsDirWriteable(t *testing.T) {
tmpdir := t.TempDir()
if err := IsDirWriteable(tmpdir); err != nil {
t.Fatalf("unexpected IsDirWriteable error: %v", err)
}
if err := os.Chmod(tmpdir, 0444); err != nil {
t.Fatalf("unexpected os.Chmod error: %v", err)
}
require.NoErrorf(t, IsDirWriteable(tmpdir), "unexpected IsDirWriteable error")
require.NoErrorf(t, os.Chmod(tmpdir, 0o444), "unexpected os.Chmod error")
me, err := user.Current()
if err != nil {
// err can be non-nil when cross compiled
@ -50,22 +47,16 @@ func TestIsDirWriteable(t *testing.T) {
// Chmod is not supported under windows.
t.Skipf("running as a superuser or in windows")
}
if err := IsDirWriteable(tmpdir); err == nil {
t.Fatalf("expected IsDirWriteable to error")
}
require.Errorf(t, IsDirWriteable(tmpdir), "expected IsDirWriteable to error")
}
func TestCreateDirAll(t *testing.T) {
tmpdir := t.TempDir()
tmpdir2 := filepath.Join(tmpdir, "testdir")
if err := CreateDirAll(zaptest.NewLogger(t), tmpdir2); err != nil {
t.Fatal(err)
}
require.NoError(t, CreateDirAll(zaptest.NewLogger(t), tmpdir2))
if err := os.WriteFile(filepath.Join(tmpdir2, "text.txt"), []byte("test text"), PrivateFileMode); err != nil {
t.Fatal(err)
}
require.NoError(t, os.WriteFile(filepath.Join(tmpdir2, "text.txt"), []byte("test text"), PrivateFileMode))
if err := CreateDirAll(zaptest.NewLogger(t), tmpdir2); err == nil || !strings.Contains(err.Error(), "to be empty, got") {
t.Fatalf("unexpected error %v", err)
@ -75,18 +66,14 @@ func TestCreateDirAll(t *testing.T) {
func TestExist(t *testing.T) {
fdir := filepath.Join(os.TempDir(), fmt.Sprint(time.Now().UnixNano()+rand.Int63n(1000)))
os.RemoveAll(fdir)
if err := os.Mkdir(fdir, 0666); err != nil {
if err := os.Mkdir(fdir, 0o666); err != nil {
t.Skip(err)
}
defer os.RemoveAll(fdir)
if !Exist(fdir) {
t.Fatalf("expected Exist true, got %v", Exist(fdir))
}
require.Truef(t, Exist(fdir), "expected Exist true, got %v", Exist(fdir))
f, err := os.CreateTemp(os.TempDir(), "fileutil")
if err != nil {
t.Fatal(err)
}
require.NoError(t, err)
f.Close()
if g := Exist(f.Name()); !g {
@ -102,62 +89,41 @@ func TestExist(t *testing.T) {
func TestDirEmpty(t *testing.T) {
dir := t.TempDir()
if !DirEmpty(dir) {
t.Fatalf("expected DirEmpty true, got %v", DirEmpty(dir))
}
require.Truef(t, DirEmpty(dir), "expected DirEmpty true, got %v", DirEmpty(dir))
file, err := os.CreateTemp(dir, "new_file")
if err != nil {
t.Fatal(err)
}
require.NoError(t, err)
file.Close()
if DirEmpty(dir) {
t.Fatalf("expected DirEmpty false, got %v", DirEmpty(dir))
}
if DirEmpty(file.Name()) {
t.Fatalf("expected DirEmpty false, got %v", DirEmpty(file.Name()))
}
require.Falsef(t, DirEmpty(dir), "expected DirEmpty false, got %v", DirEmpty(dir))
require.Falsef(t, DirEmpty(file.Name()), "expected DirEmpty false, got %v", DirEmpty(file.Name()))
}
func TestZeroToEnd(t *testing.T) {
f, err := os.CreateTemp(os.TempDir(), "fileutil")
if err != nil {
t.Fatal(err)
}
require.NoError(t, err)
defer os.Remove(f.Name())
defer f.Close()
// Ensure 0 size is a nop so zero-to-end on an empty file won't give EINVAL.
if err = ZeroToEnd(f); err != nil {
t.Fatal(err)
}
require.NoError(t, ZeroToEnd(f))
b := make([]byte, 1024)
for i := range b {
b[i] = 12
}
if _, err = f.Write(b); err != nil {
t.Fatal(err)
}
if _, err = f.Seek(512, io.SeekStart); err != nil {
t.Fatal(err)
}
if err = ZeroToEnd(f); err != nil {
t.Fatal(err)
}
_, err = f.Write(b)
require.NoError(t, err)
_, err = f.Seek(512, io.SeekStart)
require.NoError(t, err)
require.NoError(t, ZeroToEnd(f))
off, serr := f.Seek(0, io.SeekCurrent)
if serr != nil {
t.Fatal(serr)
}
if off != 512 {
t.Fatalf("expected offset 512, got %d", off)
}
require.NoError(t, serr)
require.Equalf(t, int64(512), off, "expected offset 512, got %d", off)
b = make([]byte, 512)
if _, err = f.Read(b); err != nil {
t.Fatal(err)
}
_, err = f.Read(b)
require.NoError(t, err)
for i := range b {
if b[i] != 0 {
t.Errorf("expected b[%d] = 0, got %d", i, b[i])
@ -170,11 +136,9 @@ func TestDirPermission(t *testing.T) {
tmpdir2 := filepath.Join(tmpdir, "testpermission")
// create a new dir with 0700
if err := CreateDirAll(zaptest.NewLogger(t), tmpdir2); err != nil {
t.Fatal(err)
}
require.NoError(t, CreateDirAll(zaptest.NewLogger(t), tmpdir2))
// check dir permission with mode different than created dir
if err := CheckDirPermission(tmpdir2, 0600); err == nil {
if err := CheckDirPermission(tmpdir2, 0o600); err == nil {
t.Errorf("expected error, got nil")
}
}
@ -182,14 +146,10 @@ func TestDirPermission(t *testing.T) {
func TestRemoveMatchFile(t *testing.T) {
tmpdir := t.TempDir()
f, err := os.CreateTemp(tmpdir, "tmp")
if err != nil {
t.Fatal(err)
}
require.NoError(t, err)
f.Close()
f, err = os.CreateTemp(tmpdir, "foo.tmp")
if err != nil {
t.Fatal(err)
}
require.NoError(t, err)
f.Close()
err = RemoveMatchFile(zaptest.NewLogger(t), tmpdir, func(fileName string) bool {
@ -199,17 +159,13 @@ func TestRemoveMatchFile(t *testing.T) {
t.Errorf("expected nil, got error")
}
fnames, err := ReadDir(tmpdir)
if err != nil {
t.Fatal(err)
}
require.NoError(t, err)
if len(fnames) != 1 {
t.Errorf("expected exist 1 files, got %d", len(fnames))
}
f, err = os.CreateTemp(tmpdir, "tmp")
if err != nil {
t.Fatal(err)
}
require.NoError(t, err)
f.Close()
err = RemoveMatchFile(zaptest.NewLogger(t), tmpdir, func(fileName string) bool {
os.Remove(filepath.Join(tmpdir, fileName))
@ -222,11 +178,9 @@ func TestRemoveMatchFile(t *testing.T) {
func TestTouchDirAll(t *testing.T) {
tmpdir := t.TempDir()
assert.Panics(t, func() {
assert.Panicsf(t, func() {
TouchDirAll(nil, tmpdir)
}, "expected panic with nil log")
if err := TouchDirAll(zaptest.NewLogger(t), tmpdir); err != nil {
t.Fatal(err)
}
assert.NoError(t, TouchDirAll(zaptest.NewLogger(t), tmpdir))
}

View File

@ -19,8 +19,6 @@ import (
"os"
)
var (
ErrLocked = errors.New("fileutil: file already locked")
)
var ErrLocked = errors.New("fileutil: file already locked")
type LockedFile struct{ *os.File }

View File

@ -17,6 +17,7 @@
package fileutil
import (
"errors"
"os"
"syscall"
)
@ -28,7 +29,7 @@ func flockTryLockFile(path string, flag int, perm os.FileMode) (*LockedFile, err
}
if err = syscall.Flock(int(f.Fd()), syscall.LOCK_EX|syscall.LOCK_NB); err != nil {
f.Close()
if err == syscall.EWOULDBLOCK {
if errors.Is(err, syscall.EWOULDBLOCK) {
err = ErrLocked
}
return nil, err

View File

@ -17,6 +17,7 @@
package fileutil
import (
"errors"
"fmt"
"io"
"os"
@ -58,13 +59,13 @@ func TryLockFile(path string, flag int, perm os.FileMode) (*LockedFile, error) {
func ofdTryLockFile(path string, flag int, perm os.FileMode) (*LockedFile, error) {
f, err := os.OpenFile(path, flag, perm)
if err != nil {
return nil, fmt.Errorf("ofdTryLockFile failed to open %q (%v)", path, err)
return nil, fmt.Errorf("ofdTryLockFile failed to open %q (%w)", path, err)
}
flock := wrlck
if err = syscall.FcntlFlock(f.Fd(), unix.F_OFD_SETLK, &flock); err != nil {
f.Close()
if err == syscall.EWOULDBLOCK {
if errors.Is(err, syscall.EWOULDBLOCK) {
err = ErrLocked
}
return nil, err
@ -79,7 +80,7 @@ func LockFile(path string, flag int, perm os.FileMode) (*LockedFile, error) {
func ofdLockFile(path string, flag int, perm os.FileMode) (*LockedFile, error) {
f, err := os.OpenFile(path, flag, perm)
if err != nil {
return nil, fmt.Errorf("ofdLockFile failed to open %q (%v)", path, err)
return nil, fmt.Errorf("ofdLockFile failed to open %q (%w)", path, err)
}
flock := wrlck

View File

@ -18,36 +18,28 @@ import (
"os"
"testing"
"time"
"github.com/stretchr/testify/require"
)
func TestLockAndUnlock(t *testing.T) {
f, err := os.CreateTemp("", "lock")
if err != nil {
t.Fatal(err)
}
f, err := os.CreateTemp(t.TempDir(), "lock")
require.NoError(t, err)
f.Close()
defer func() {
err = os.Remove(f.Name())
if err != nil {
t.Fatal(err)
}
require.NoError(t, os.Remove(f.Name()))
}()
// lock the file
l, err := LockFile(f.Name(), os.O_WRONLY, PrivateFileMode)
if err != nil {
t.Fatal(err)
}
require.NoError(t, err)
// try lock a locked file
if _, err = TryLockFile(f.Name(), os.O_WRONLY, PrivateFileMode); err != ErrLocked {
t.Fatal(err)
}
_, err = TryLockFile(f.Name(), os.O_WRONLY, PrivateFileMode)
require.ErrorIs(t, err, ErrLocked)
// unlock the file
if err = l.Close(); err != nil {
t.Fatal(err)
}
require.NoError(t, l.Close())
// try lock the unlocked file
dupl, err := TryLockFile(f.Name(), os.O_WRONLY, PrivateFileMode)
@ -75,9 +67,7 @@ func TestLockAndUnlock(t *testing.T) {
}
// unlock
if err = dupl.Close(); err != nil {
t.Fatal(err)
}
require.NoError(t, dupl.Close())
// the previously blocked routine should be unblocked
select {

View File

@ -17,6 +17,7 @@
package fileutil
import (
"errors"
"os"
"syscall"
@ -39,7 +40,7 @@ func preallocFixed(f *os.File, sizeInBytes int64) error {
Length: sizeInBytes,
}
err := unix.FcntlFstore(f.Fd(), unix.F_PREALLOCATE, fstore)
if err == nil || err == unix.ENOTSUP {
if err == nil || errors.Is(err, unix.ENOTSUP) {
return nil
}

View File

@ -17,29 +17,34 @@ package fileutil
import (
"os"
"testing"
"github.com/stretchr/testify/require"
)
func TestPreallocateExtend(t *testing.T) {
pf := func(f *os.File, sz int64) error { return Preallocate(f, sz, true) }
tf := func(t *testing.T, f *os.File) { testPreallocateExtend(t, f, pf) }
tf := func(t *testing.T, f *os.File) {
t.Helper()
testPreallocateExtend(t, f, pf)
}
runPreallocTest(t, tf)
}
func TestPreallocateExtendTrunc(t *testing.T) {
tf := func(t *testing.T, f *os.File) { testPreallocateExtend(t, f, preallocExtendTrunc) }
tf := func(t *testing.T, f *os.File) {
t.Helper()
testPreallocateExtend(t, f, preallocExtendTrunc)
}
runPreallocTest(t, tf)
}
func testPreallocateExtend(t *testing.T, f *os.File, pf func(*os.File, int64) error) {
t.Helper()
size := int64(64 * 1000)
if err := pf(f, size); err != nil {
t.Fatal(err)
}
require.NoError(t, pf(f, size))
stat, err := f.Stat()
if err != nil {
t.Fatal(err)
}
require.NoError(t, err)
if stat.Size() != size {
t.Errorf("size = %d, want %d", stat.Size(), size)
}
@ -47,26 +52,22 @@ func testPreallocateExtend(t *testing.T, f *os.File, pf func(*os.File, int64) er
func TestPreallocateFixed(t *testing.T) { runPreallocTest(t, testPreallocateFixed) }
func testPreallocateFixed(t *testing.T, f *os.File) {
t.Helper()
size := int64(64 * 1000)
if err := Preallocate(f, size, false); err != nil {
t.Fatal(err)
}
require.NoError(t, Preallocate(f, size, false))
stat, err := f.Stat()
if err != nil {
t.Fatal(err)
}
require.NoError(t, err)
if stat.Size() != 0 {
t.Errorf("size = %d, want %d", stat.Size(), 0)
}
}
func runPreallocTest(t *testing.T, test func(*testing.T, *os.File)) {
t.Helper()
p := t.TempDir()
f, err := os.CreateTemp(p, "")
if err != nil {
t.Fatal(err)
}
require.NoError(t, err)
test(t, f)
}

View File

@ -17,6 +17,7 @@
package fileutil
import (
"errors"
"os"
"syscall"
)
@ -25,10 +26,10 @@ func preallocExtend(f *os.File, sizeInBytes int64) error {
// use mode = 0 to change size
err := syscall.Fallocate(int(f.Fd()), 0, 0, sizeInBytes)
if err != nil {
errno, ok := err.(syscall.Errno)
var errno syscall.Errno
// not supported; fallback
// fallocate EINTRs frequently in some environments; fallback
if ok && (errno == syscall.ENOTSUP || errno == syscall.EINTR) {
if errors.As(err, &errno) && (errno == syscall.ENOTSUP || errno == syscall.EINTR) {
return preallocExtendTrunc(f, sizeInBytes)
}
}
@ -39,9 +40,9 @@ func preallocFixed(f *os.File, sizeInBytes int64) error {
// use mode = 1 to keep size; see FALLOC_FL_KEEP_SIZE
err := syscall.Fallocate(int(f.Fd()), 1, 0, sizeInBytes)
if err != nil {
errno, ok := err.(syscall.Errno)
var errno syscall.Errno
// treat not supported as nil error
if ok && errno == syscall.ENOTSUP {
if errors.As(err, &errno) && errno == syscall.ENOTSUP {
return nil
}
}

View File

@ -17,7 +17,6 @@ package fileutil
import (
"os"
"path/filepath"
"sort"
"strings"
"time"
@ -58,21 +57,14 @@ func purgeFile(lg *zap.Logger, dirname string, suffix string, max uint, interval
defer close(donec)
}
for {
fnames, err := ReadDir(dirname)
fnamesWithSuffix, err := readDirWithSuffix(dirname, suffix)
if err != nil {
errC <- err
return
}
newfnames := make([]string, 0)
for _, fname := range fnames {
if strings.HasSuffix(fname, suffix) {
newfnames = append(newfnames, fname)
}
}
sort.Strings(newfnames)
fnames = newfnames
for len(newfnames) > int(max) {
f := filepath.Join(dirname, newfnames[0])
nPurged := 0
for nPurged < len(fnamesWithSuffix)-int(max) {
f := filepath.Join(dirname, fnamesWithSuffix[nPurged])
var l *LockedFile
if flock {
l, err = TryLockFile(f, os.O_WRONLY, PrivateFileMode)
@ -94,11 +86,12 @@ func purgeFile(lg *zap.Logger, dirname string, suffix string, max uint, interval
}
}
lg.Info("purged", zap.String("path", f))
newfnames = newfnames[1:]
nPurged++
}
if purgec != nil {
for i := 0; i < len(fnames)-len(newfnames); i++ {
purgec <- fnames[i]
for i := 0; i < nPurged; i++ {
purgec <- fnamesWithSuffix[i]
}
}
select {
@ -110,3 +103,18 @@ func purgeFile(lg *zap.Logger, dirname string, suffix string, max uint, interval
}()
return errC
}
func readDirWithSuffix(dirname string, suffix string) ([]string, error) {
fnames, err := ReadDir(dirname)
if err != nil {
return nil, err
}
// filter in place (ref. https://go.dev/wiki/SliceTricks#filtering-without-allocating)
fnamesWithSuffix := fnames[:0]
for _, fname := range fnames {
if strings.HasSuffix(fname, suffix) {
fnamesWithSuffix = append(fnamesWithSuffix, fname)
}
}
return fnamesWithSuffix, nil
}

View File

@ -22,6 +22,7 @@ import (
"testing"
"time"
"github.com/stretchr/testify/require"
"go.uber.org/zap/zaptest"
)
@ -31,9 +32,7 @@ func TestPurgeFile(t *testing.T) {
// minimal file set
for i := 0; i < 3; i++ {
f, ferr := os.Create(filepath.Join(dir, fmt.Sprintf("%d.test", i)))
if ferr != nil {
t.Fatal(ferr)
}
require.NoError(t, ferr)
f.Close()
}
@ -68,9 +67,7 @@ func TestPurgeFile(t *testing.T) {
}
fnames, rerr := ReadDir(dir)
if rerr != nil {
t.Fatal(rerr)
}
require.NoError(t, rerr)
wnames := []string{"7.test", "8.test", "9.test"}
if !reflect.DeepEqual(fnames, wnames) {
t.Errorf("filenames = %v, want %v", fnames, wnames)
@ -93,18 +90,14 @@ func TestPurgeFileHoldingLockFile(t *testing.T) {
for i := 0; i < 10; i++ {
var f *os.File
f, err := os.Create(filepath.Join(dir, fmt.Sprintf("%d.test", i)))
if err != nil {
t.Fatal(err)
}
require.NoError(t, err)
f.Close()
}
// create a purge barrier at 5
p := filepath.Join(dir, fmt.Sprintf("%d.test", 5))
l, err := LockFile(p, os.O_WRONLY, PrivateFileMode)
if err != nil {
t.Fatal(err)
}
require.NoError(t, err)
stop, purgec := make(chan struct{}), make(chan string, 10)
errch := purgeFile(zaptest.NewLogger(t), dir, "test", 3, time.Millisecond, stop, purgec, nil, true)
@ -118,9 +111,7 @@ func TestPurgeFileHoldingLockFile(t *testing.T) {
}
fnames, rerr := ReadDir(dir)
if rerr != nil {
t.Fatal(rerr)
}
require.NoError(t, rerr)
wnames := []string{"5.test", "6.test", "7.test", "8.test", "9.test"}
if !reflect.DeepEqual(fnames, wnames) {
@ -136,9 +127,7 @@ func TestPurgeFileHoldingLockFile(t *testing.T) {
}
// remove the purge barrier
if err = l.Close(); err != nil {
t.Fatal(err)
}
require.NoError(t, l.Close())
// wait for rest of purges (5, 6)
for i := 0; i < 2; i++ {
@ -150,9 +139,7 @@ func TestPurgeFileHoldingLockFile(t *testing.T) {
}
fnames, rerr = ReadDir(dir)
if rerr != nil {
t.Fatal(rerr)
}
require.NoError(t, rerr)
wnames = []string{"7.test", "8.test", "9.test"}
if !reflect.DeepEqual(fnames, wnames) {
t.Errorf("filenames = %v, want %v", fnames, wnames)

View File

@ -19,6 +19,9 @@ import (
"path/filepath"
"reflect"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestReadDir(t *testing.T) {
@ -29,34 +32,23 @@ func TestReadDir(t *testing.T) {
writeFunc(t, filepath.Join(tmpdir, f))
}
fs, err := ReadDir(tmpdir)
if err != nil {
t.Fatalf("error calling ReadDir: %v", err)
}
require.NoErrorf(t, err, "error calling ReadDir")
wfs := []string{"abc", "def", "ghi", "xyz"}
if !reflect.DeepEqual(fs, wfs) {
t.Fatalf("ReadDir: got %v, want %v", fs, wfs)
}
require.Truef(t, reflect.DeepEqual(fs, wfs), "ReadDir: got %v, want %v", fs, wfs)
files = []string{"def.wal", "abc.wal", "xyz.wal", "ghi.wal"}
for _, f := range files {
writeFunc(t, filepath.Join(tmpdir, f))
}
fs, err = ReadDir(tmpdir, WithExt(".wal"))
if err != nil {
t.Fatalf("error calling ReadDir: %v", err)
}
require.NoErrorf(t, err, "error calling ReadDir")
wfs = []string{"abc.wal", "def.wal", "ghi.wal", "xyz.wal"}
if !reflect.DeepEqual(fs, wfs) {
t.Fatalf("ReadDir: got %v, want %v", fs, wfs)
}
require.Truef(t, reflect.DeepEqual(fs, wfs), "ReadDir: got %v, want %v", fs, wfs)
}
func writeFunc(t *testing.T, path string) {
t.Helper()
fh, err := os.Create(path)
if err != nil {
t.Fatalf("error creating file: %v", err)
}
if err = fh.Close(); err != nil {
t.Fatalf("error closing file: %v", err)
}
require.NoErrorf(t, err, "error creating file")
assert.NoErrorf(t, fh.Close(), "error closing file")
}

View File

@ -1,17 +1,22 @@
module go.etcd.io/etcd/client/pkg/v3
go 1.21
go 1.24
toolchain go1.24.1
require (
github.com/coreos/go-systemd/v22 v22.5.0
github.com/stretchr/testify v1.8.4
go.uber.org/zap v1.26.0
golang.org/x/sys v0.15.0
github.com/stretchr/testify v1.10.0
go.uber.org/zap v1.27.0
golang.org/x/sys v0.31.0
)
require (
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/kr/pretty v0.3.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/rogpeppe/go-internal v1.14.1 // indirect
go.uber.org/multierr v1.11.0 // indirect
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)

View File

@ -1,21 +1,34 @@
github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs=
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk=
go.uber.org/goleak v1.2.0/go.mod h1:XJYK+MuIchqpmGmUSAzotztawfKvYLUIgg7guXrwVUo=
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

View File

@ -17,19 +17,23 @@ package logutil
import "fmt"
const (
JsonLogFormat = "json"
JSONLogFormat = "json"
ConsoleLogFormat = "console"
//revive:disable:var-naming
// Deprecated: Please use JSONLogFormat.
JsonLogFormat = JSONLogFormat
//revive:enable:var-naming
)
var DefaultLogFormat = JsonLogFormat
var DefaultLogFormat = JSONLogFormat
// ConvertToZapFormat converts and validated log format string.
func ConvertToZapFormat(format string) (string, error) {
switch format {
case ConsoleLogFormat:
return ConsoleLogFormat, nil
case JsonLogFormat:
return JsonLogFormat, nil
case JSONLogFormat:
return JSONLogFormat, nil
case "":
return DefaultLogFormat, nil
default:

View File

@ -24,9 +24,9 @@ func TestLogFormat(t *testing.T) {
want string
errExpected bool
}{
{"json", JsonLogFormat, false},
{"json", JSONLogFormat, false},
{"console", ConsoleLogFormat, false},
{"", JsonLogFormat, false},
{"", JSONLogFormat, false},
{"konsole", "", true},
}

View File

@ -15,7 +15,7 @@
package logutil
import (
"sort"
"slices"
"time"
"go.uber.org/zap"
@ -58,7 +58,7 @@ var DefaultZapLoggerConfig = zap.Config{
// Custom EncodeTime function to ensure we match format and precision of historic capnslog timestamps
EncodeTime: func(t time.Time, enc zapcore.PrimitiveArrayEncoder) {
enc.AppendString(t.Format("2006-01-02T15:04:05.999999Z0700"))
enc.AppendString(t.Format("2006-01-02T15:04:05.000000Z0700"))
},
EncodeDuration: zapcore.StringDurationEncoder,
@ -72,37 +72,22 @@ var DefaultZapLoggerConfig = zap.Config{
// MergeOutputPaths merges logging output paths, resolving conflicts.
func MergeOutputPaths(cfg zap.Config) zap.Config {
outputs := make(map[string]struct{})
for _, v := range cfg.OutputPaths {
outputs[v] = struct{}{}
}
outputSlice := make([]string, 0)
if _, ok := outputs["/dev/null"]; ok {
// "/dev/null" to discard all
outputSlice = []string{"/dev/null"}
} else {
for k := range outputs {
outputSlice = append(outputSlice, k)
}
}
cfg.OutputPaths = outputSlice
sort.Strings(cfg.OutputPaths)
errOutputs := make(map[string]struct{})
for _, v := range cfg.ErrorOutputPaths {
errOutputs[v] = struct{}{}
}
errOutputSlice := make([]string, 0)
if _, ok := errOutputs["/dev/null"]; ok {
// "/dev/null" to discard all
errOutputSlice = []string{"/dev/null"}
} else {
for k := range errOutputs {
errOutputSlice = append(errOutputSlice, k)
}
}
cfg.ErrorOutputPaths = errOutputSlice
sort.Strings(cfg.ErrorOutputPaths)
cfg.OutputPaths = mergePaths(cfg.OutputPaths)
cfg.ErrorOutputPaths = mergePaths(cfg.ErrorOutputPaths)
return cfg
}
func mergePaths(old []string) []string {
if len(old) == 0 {
// the original implementation ensures the result is non-nil
return []string{}
}
// use "/dev/null" to discard all
if slices.Contains(old, "/dev/null") {
return []string{"/dev/null"}
}
// clone a new one; don't modify the original, in case it matters.
dup := slices.Clone(old)
slices.Sort(dup)
return slices.Compact(dup)
}

Some files were not shown because too many files have changed in this diff Show More