1
0
mirror of https://github.com/etcd-io/etcd.git synced 2026-02-05 15:46:51 +01:00

2272 Commits

Author SHA1 Message Date
Benjamin Wang
05d32d4d1b Merge pull request #21122 from zhijun42/fix-lease-keep-alive-unavailable
lease: Fix incorrect gRPC Unavailable on client cancel during LeaseKeepAlive forwarding
2026-02-03 09:50:05 +00:00
Zhijun
b54c88406f Helps solve the leaseKeepAlive grpc Unavailable issue while maintaining existing behavior
Signed-off-by: Zhijun <dszhijun@gmail.com>
2026-02-03 09:14:04 +08:00
Benjamin Wang
b666323e11 Bump go version to 1.25.6
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2026-01-30 10:07:17 +00:00
Chun-Hung Tseng
5d4ef72c13 dependency: bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.27.4 to 2.27.5 and bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.27.4 to 2.27.5
Reference:
- #21194
- #21192

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2026-01-27 14:17:27 +00:00
Sharath P J
0988325ed5 server: refactor btree usage to generics-based k8s.io/utils
Signed-off-by: Sharath P J <pjsharath28@gmail.com>
2026-01-21 23:01:24 +05:30
Benjamin Wang
8787fe8e03 Keep the --snapshot-count flag
We won't generate v2 snapshot files in 3.8 anymore, but etcd is
still generating snapshot periodically and will keep this behaviour.
During etcd generating snapshot, it does the following two things:
1. generate a snapshot entry in WAL file
2. purge old raft entries

So we need to keep the flag --snapshot-count so that users can
configure how frequently the snapshot is generated.

Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2026-01-19 12:14:36 +00:00
Benjamin Wang
315f3da189 Remove flag --max-snapshots in 3.8 rather than 3.7
We still need to generate the v2 snapshot files in 3.7
to keep backward compatible with 3.6. We plan to remove
this flag in v3.8.

Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2026-01-19 11:23:17 +00:00
Benjamin Wang
e26dd624ae Merge pull request #21144 from fuweid/fix-TestV2DeprecationCase
*: fix TestV2DeprecationSnapshotMatches case
2026-01-17 12:21:12 +00:00
Benjamin Wang
25a5bb2875 Initialize confState from v3 store on bootstrap
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2026-01-16 19:01:40 +00:00
Wei Fu
a5e37a077d *: fix TestV2DeprecationSnapshotMatches case
Signed-off-by: Wei Fu <fuweid89@gmail.com>
2026-01-16 10:30:56 -05:00
Chun-Hung Tseng
125173b33c dependency: bump golang.org/x/tools from 0.40.0 to 0.41.0, golang.org/x/text from 0.32.0 to 0.33.0, golang.org/x/net from v0.48.0 to v0.49.0, golang.org/x/crypto from v0.46.0 to v0.49.0, golang.org/x/mod from v0.31.0 to v0.32.0
Reference:
- https://github.com/etcd-io/etcd/pull/21118
- https://github.com/etcd-io/etcd/pull/21117
- https://github.com/etcd-io/etcd/pull/21113
- https://github.com/etcd-io/etcd/pull/21110

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2026-01-16 01:20:13 +09:00
Chun-Hung Tseng
f2bab39a4a dependency: bump golang.org/x/sys from 0.39.0 to 0.40.0
Reference:
- https://github.com/etcd-io/etcd/pull/21115

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2026-01-16 01:20:13 +09:00
Benjamin Wang
e74bb6a0ea do not load v2 snapshot on bootstrap
In this commit, we don't load v2 snapshot files (*.snap) anymore,
instead we just pick the latest snapshot entry from WAL. We don't
need the raftpb.Snapshot.Data anymore, so it's correct to just
read the latest snapshot entry from WAL.

The end goal is to completely get rid of v2 snapshot, which means
we don't read v2 snapshot, nor write it. But in order to be compatible
with 3.6, we still need to write v2 snapshot. This PR just stops
reading v2 snapshot, so that it's safe to completely remove it in 3.8.

Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2026-01-13 10:38:04 +00:00
Zhijun
86bd05c37b Add an integration test to reproduce incorrect gRPC Unavailable on client cancel during LeaseKeepAlive forwarding
Signed-off-by: Zhijun <dszhijun@gmail.com>

Address feedback

Signed-off-by: Zhijun <dszhijun@gmail.com>

Rename sleep function and pass duration

Signed-off-by: Zhijun <dszhijun@gmail.com>

Use require.Positive instead

Signed-off-by: Zhijun <dszhijun@gmail.com>

Assert client's canceled error code

Signed-off-by: Zhijun <dszhijun@gmail.com>
2026-01-13 09:34:22 +08:00
Antonio Ojea
87de8541ae enable linter for deprecated functions
enable the linter and just tag each exception with a TODO so we
have identified the existing ones but we can gate to avoid adding
new deprecated functions.

Signed-off-by: Antonio Ojea <aojea@google.com>
2026-01-09 16:35:01 +00:00
Marek Siarkowicz
fdedec1edb Remove v2 store
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2026-01-08 12:35:10 +01:00
Marek Siarkowicz
f79c917a40 Handle non-existent member in v3 backend and implement matching membership tests for v3 backend
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2026-01-07 20:18:42 +01:00
Chun-Hung Tseng
0d48346677 dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.63.0 to 0.64.0
Reference:
- https://github.com/etcd-io/etcd/pull/21087

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2026-01-06 16:04:35 +09:00
Chun-Hung Tseng
f4839eeac2 dependency: bump github.com/prometheus/common from 0.67.4 to 0.67.5
Reference:
- https://github.com/etcd-io/etcd/pull/21088

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2026-01-06 16:04:35 +09:00
Chun-Hung Tseng
a030f7ec51 dependency: bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.27.3 to 2.27.4
Also bumped automatically:
- google.golang.org/genproto/googleapis/rpc from v0.0.0-20251202230838-ff82c1b0f217 to v0.0.0-20251222181119-0a764e51fe1b
- google.golang.org/genproto/googleapis/api from v0.0.0-20251202230838-ff82c1b0f217 to v0.0.0-20251222181119-0a764e51fe1b
- google.golang.org/grpc from v1.77.0 to v1.78.0

Reference:
- https://github.com/etcd-io/etcd/pull/21059
- https://github.com/etcd-io/etcd/pull/21055

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2026-01-03 12:42:31 +09:00
Chun-Hung Tseng
36fe7f9cc4 dependency: bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.38.0 to 1.39.0
Also bumped automatically:
- google.golang.org/genproto/googleapis/api from v0.0.0-20251022142026-3a174f9686a8 to v0.0.0-20251202230838-ff82c1b0f217
- google.golang.org/genproto/googleapis/rpc from v0.0.0-20251022142026-3a174f9686a8 to v0.0.0-20251202230838-ff82c1b0f217
- go.opentelemetry.io/otel/exporters/otlp/otlptrace from 1.38.0 to 1.39.0

Reference:
- https://github.com/etcd-io/etcd/pull/21060
- https://github.com/etcd-io/etcd/pull/21057

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2026-01-03 12:42:31 +09:00
Chun-Hung Tseng
be7a2e4a68 dependency: bump google.golang.org/protobuf from 1.36.10 to 1.36.11
Reference:
- https://github.com/etcd-io/etcd/pull/21056

Signed-off-by: Chun-Hung Tseng <henrytseng@google.com>
2026-01-03 12:42:31 +09:00
Benjamin Wang
aef0361938 Merge pull request #21038 from ahrtr/20251219_metrics
Add a new metrics etcd_server_request_duration_seconds to track e2e duration for each request
2025-12-30 12:05:05 +00:00
A.D
3553655ff5 cleanup: remove redundant panicAlternativeStringer
Signed-off-by: A.D <1695316070@qq.com>
2025-12-23 20:27:56 +08:00
Ivan Valdes
c6ead5fcc3 build(deps): bump golang.org/x/tools from 0.39.0 to 0.40.0 in /tools/mod
Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.39.0 to 0.40.0.
- [Release notes](https://github.com/golang/tools/releases)
- [Commits](golang/tools@v0.39.0...v0.40.0)

---
updated-dependencies:
- dependency-name: golang.org/x/tools
  dependency-version: 0.40.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-12-22 22:45:00 -08:00
Ivan Valdes
8505dec782 build(deps): bump go.opentelemetry.io/otel/sdk from 1.38.0 to 1.39.0
Bumps [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go) from 1.38.0 to 1.39.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](open-telemetry/opentelemetry-go@v1.38.0...v1.39.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/sdk
  dependency-version: 1.39.0
  dependency-type: indirect
  update-type: version-update:semver-minor
...

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

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-12-22 22:44:56 -08:00
Ivan Valdes
4f99d2c03a build(deps): bump github.com/golangci/golangci-lint/v2 in /tools/mod
Bumps [github.com/golangci/golangci-lint/v2](https://github.com/golangci/golangci-lint) from 2.6.2 to 2.7.2.
- [Release notes](https://github.com/golangci/golangci-lint/releases)
- [Changelog](https://github.com/golangci/golangci-lint/blob/main/CHANGELOG.md)
- [Commits](golangci/golangci-lint@v2.6.2...v2.7.2)

---
updated-dependencies:
- dependency-name: github.com/golangci/golangci-lint/v2
  dependency-version: 2.7.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-12-22 22:44:48 -08:00
Ivan Valdes
ff30e0dcdd Fix revive var-naming warning in errors package
Updating github.com/golangci/golangci-lint/v2 to 2.7.2 raises the
following error:

% 'golangci-lint' 'run' '--config'
  '/var/home/ivan/Code/Personal/etcd/etcd/tools/.golangci.yaml' '--fix'
  './...' './api/...' './cache/...' './client/pkg/...' './client/v3/...'
  './ etcdctl/...' './etcdutl/...' './pkg/...' './server/...'
  './tests/...' './tools/mod/...' './tools/rw-heatmaps/...'
  './tools/testgrid-analysis/...'

../server/etcdserver/errors/errors.go:15:9: var-naming: avoid package
names that conflict with Go standard library package names (revive)
package errors ^ 1 issues:
* revive: 1

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-12-22 22:44:48 -08:00
Benjamin Wang
9cdb1cf8fb Add a new metrics etcd_server_request_duration_seconds to track e2e duration for each request
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-12-20 09:16:28 +00:00
Thomas Jungblut
71a9ffe87e Instrument watchstream send loop
This PR adds a few more timing metrics to the watch send loop.
We're currently trying to track down some sort of contention affecting
all gRPC endpoints, we see a hard QPS ceiling when the apiserver restarts with
watch cache inits.

There's currently no metric to help us pinpoint where the time is going
to create such a ceiling, thus adding some more metrics here.

Somewhat related to #15402.

Signed-off-by: Thomas Jungblut <tjungblu@redhat.com>
2025-12-19 15:16:11 +01:00
boqishan
505f69dd11 build(deps): update go version to 1.25.5
Signed-off-by: boqishan <boqishan@126.com>
2025-12-04 00:32:54 +08:00
ArkaSaha30
7afc900659 dependency: bump google.golang.org/grpc from 1.76.0 to 1.77.0
This commit will bump google.golang.org/grpc from 1.76.0 to 1.77.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-11-28 23:01:30 +05:30
ArkaSaha30
7d6eb9616a dependency: bump github.com/prometheus/common from 0.67.2 to 0.67.4
This commit will bump github.com/prometheus/common from 0.67.2 to 0.67.4

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-11-28 22:43:39 +05:30
ArkaSaha30
5110a8c633 dependency: bump go.uber.org/zap from 1.27.0 to 1.27.1
This commit will bump go.uber.org/zap from 1.27.0 to 1.27.1

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-11-27 15:41:41 +05:30
Ivan Valdes
52a82c7fe9 build(deps): bump golang.org/x/crypto from 0.44.0 to 0.45.0
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.44.0 to 0.45.0.
- [Commits](golang/crypto@v0.44.0...v0.45.0)

Signed-off-by: Ivan Valdes <ivan@vald.es>

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-version: 0.45.0
  dependency-type: direct:production
...

Addresses CVE-2025-58181 and CVE-2025-47914.

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

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-11-19 15:19:44 -08:00
Ivan Valdes
a79b176fcd build(deps): bump github.com/grpc-ecosystem/go-grpc-middleware/v2
Bumps [github.com/grpc-ecosystem/go-grpc-middleware/v2](https://github.com/grpc-ecosystem/go-grpc-middleware) from 2.1.0 to 2.3.3.
- [Release notes](https://github.com/grpc-ecosystem/go-grpc-middleware/releases)
- [Commits](grpc-ecosystem/go-grpc-middleware@v2.1.0...v2.3.3)

Signed-off-by: Ivan Valdes <ivan@vald.es>

---
updated-dependencies:
- dependency-name: github.com/grpc-ecosystem/go-grpc-middleware/v2
  dependency-version: 2.3.3
  dependency-type: indirect
  update-type: version-update:semver-minor
...

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

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-11-19 15:11:54 -08:00
ArkaSaha30
dcfb9fed86 dependency: bump golang.org/x/net from 0.46.0 to 0.47.0
This PR will bump golang.org/x/net from 0.46.0 to 0.47.0
Additioanlly also updates the following dependent modules:
- golang.org/x/sys v0.38.0
- golang.org/x/text v0.31.0
- golang.org/x/crypto v0.44.0
- golang.org/x/sync v0.18.0

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-11-19 20:40:33 +05:30
Benjamin Wang
7cc7eaaf6f Print token fingerpriont instead of the original tokens
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-11-17 11:12:12 +00:00
Ivan Valdes
f20a950d14 build(deps): bump github.com/prometheus/common from 0.67.1 to 0.67.2
Reference: https://github.com/etcd-io/etcd/pull/20883

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-11-08 20:50:57 -08:00
Ivan Valdes
430cd02b96 build(deps): bump go.opentelemetry.io/proto/otlp from 1.8.0 to 1.9.0
Reference: https://github.com/etcd-io/etcd/pull/20882

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-11-08 20:50:57 -08:00
Ivan Valdes
483c98fd86 build(deps): bump google.golang.org/grpc from 1.75.1 to 1.76.0
Reference: https://github.com/etcd-io/etcd/pull/20866

Signed-off-by: Ivan Valdes <ivan@vald.es>
2025-11-08 20:50:57 -08:00
mingl1
230db05c24 v3rpc: add and use getServerMetrics() with global metricsServerCached
Signed-off-by: mingl1 <minglin.me@gmail.com>
2025-11-07 09:31:21 -05:00
ronaldngounou
013692c0f1 Bump Go from 1.25.3 to 1.25.4
Signed-off-by: ronaldngounou <ronald.ngounou@yahoo.com>
2025-11-06 21:01:19 -08:00
Benjamin Wang
c9d06e91e3 Fix the '--force-new-cluster' can't clean up learners issue
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2025-11-06 12:31:57 +00:00
Fu Wei
8a4955b2ef Merge pull request #20589 from aaronjzhang/improve-lease-renew
etcdserver: improve linearizable renew lease
2025-10-30 22:22:11 -04:00
Fu Wei
37531e62f6 Merge pull request #20792 from xUser5000/fix/cannot-promote-member-from-follower-when-auth-is-enabled
etcdserver: Fix: cannot promote member from follower when auth is enabled
2025-10-30 21:20:08 -04:00
Aaron Zhang
ec3bc3c74e etcdserver: improve linearizable renew lease
- Add FastLeaseKeepAlive feature gate that allows skipping the wait for the applied index when renewing an existing lease.
- Update 3.7 changelog, add support for faster lease renewal.
- Update e2e tests for lease keep-alive to run each case with FastLeaseKeepAlive enabled and disabled.

Signed-off-by: Aaron Zhang <aaron.zhang@mavenir.com>
2025-10-30 01:35:50 -05:00
xUser5000
179f3e8391 etcdserver: follow convention to extract auth token in cluster_util.go
Signed-off-by: xUser5000 <abdallahar1974@gmail.com>
2025-10-29 00:29:16 +03:00
EduardoVega
04013ea8ca etcdutl: enable global timeout flag for all cmds that open etcd's db file using bolt
Signed-off-by: EduardoVega <edvegavalerio@gmail.com>
2025-10-27 21:04:07 -06:00
Benjamin Wang
7236a23769 Merge pull request #20802 from sneaky-potato/client-auth-status
etcdserver: remove permission check on AuthStatus api
2025-10-23 11:29:07 +01:00