Siyuan Zhang
2caf0f0a12
Add schema verification when closing etcd.
...
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-02-20 08:55:55 -08:00
Bogdan Kanivets
e7da7ebf7e
add flag to allow downgrade from 3.5
...
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-02-20 08:55:55 -08:00
Benjamin Wang
5c3a36d813
print error log when creating peer listener failed
...
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-01-24 13:56:02 +00:00
Benjamin Wang
9009d3ec7f
use the correct log library to print log messages
...
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
2024-01-18 10:18:25 +00:00
Marek Siarkowicz
4a8381a461
server: Split metrics and health code
...
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2023-12-14 10:25:43 -08:00
Siyuan Zhang
cc44646a2e
server: Cover V3 health with tests
...
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2023-12-14 10:23:49 -08:00
Marek Siarkowicz
9606263da0
Return to default write scheduler since golang.org/x/net@v0.11.0 started using round robin
...
Introduction of round robin 120fc906b3
Added in v0.10.0 https://github.com/golang/net/compare/v0.10.0...v0.11.0
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2023-10-17 11:16:51 +02:00
Wei Fu
66713f69af
embed: fix nil pointer dereference when stopServer
...
Since v3.4.25, ETCD server introduces http-only urls flag to expose
gRPC-only endpoints. When user enables this feature, the stopServer will
panic during terminating. If the server is leader, it won't have chance
to transfer the leadership.
```
Jul 07 14:43:04 etcd[11502]: received terminated signal, shutting down...
Jul 07 14:43:04 etcd[11502]: WARNING: 2023/07/07 14:43:04 grpc: addrConn.createTransport failed to connect to {0.0.0.0:2379 <nil> 0 <nil>}. Err :connection error: desc = "transport: Error while dialing dial tcp 0.0.0.0:2379: connect: connection refused". Reconnecting...Jul 07 14:43:04 etcd[11502]: WARNING: 2023/07/07 14:43:04 grpc: addrConn.createTransport failed to connect to {0.0.0.0:2379 <nil> 0 <nil>}. Err :connection error: desc = "transport: Error while dialing dial tcp 0.0.0.0:2379: connect: connection refused". Reconnecting...
Jul 07 14:43:04 etcd[11502]: panic: runtime error: invalid memory address or nil pointer dereference Jul 07 14:43:04 etcd[11502]: [signal SIGSEGV: segmentation violation code=0x1 addr=0x130 pc=0x9ccd45]
Jul 07 14:43:04 etcd[11502]: goroutine 225 [running]:
Jul 07 14:43:04 etcd[11502]: google.golang.org/grpc.(*Server).Stop(0x0)
Jul 07 14:43:04 etcd[11502]: /home/fuwei/go/pkg/mod/google.golang.org/grpc@v1.26.0/server.go:1390 +0x45
Jul 07 14:43:04 etcd[11502]: go.etcd.io/etcd/embed.stopServers.func1()
Jul 07 14:43:04 etcd[11502]: /home/fuwei/go/src/go.etcd.io/etcd/embed/etcd.go:431 +0x3c
Jul 07 14:43:04 etcd[11502]: go.etcd.io/etcd/embed.stopServers({0x115a558, 0xc000278b70}, 0xc00024f248)
Jul 07 14:43:04 etcd[11502]: /home/fuwei/go/src/go.etcd.io/etcd/embed/etcd.go:438 +0x7d
Jul 07 14:43:04 etcd[11502]: go.etcd.io/etcd/embed.(*Etcd).Close(0xc0004d6600)
Jul 07 14:43:04 etcd[11502]: /home/fuwei/go/src/go.etcd.io/etcd/embed/etcd.go:392 +0x835
Jul 07 14:43:04 etcd[11502]: go.etcd.io/etcd/pkg/osutil.HandleInterrupts.func1()
Jul 07 14:43:04 etcd[11502]: /home/fuwei/go/src/go.etcd.io/etcd/pkg/osutil/interrupt_unix.go:70 +0x284
Jul 07 14:43:04 etcd[11502]: created by go.etcd.io/etcd/pkg/osutil.HandleInterrupts
Jul 07 14:43:04 etcd[11502]: /home/fuwei/go/src/go.etcd.io/etcd/pkg/osutil/interrupt_unix.go:53 +0xce
Jul 07 14:43:04 systemd[1]: etcd.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
```
Signed-off-by: Wei Fu <fuweid89@gmail.com>
2023-07-07 21:28:06 +08:00
Benjamin Wang
b364b48475
etcdserver: set zap logging to wsproxy
...
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-04-07 13:38:25 +08:00
Marek Siarkowicz
47d4ff2e36
server: Fix defer function closure escape
...
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2023-04-03 16:11:05 +02:00
Marek Siarkowicz
8dc1244179
server: Add --listen-client-http-urls flag to allow running grpc server separate from http server
...
Difference in load configuration for watch delay tests show how huge the
impact is. Even with random write scheduler grpc under http
server can only handle 500 KB with 2 seconds delay. On the other hand,
separate grpc server easily hits 10, 100 or even 1000 MB within 100 miliseconds.
Priority write scheduler that was used in most previous releases
is far worse than random one.
Tests configured to only 5 MB to avoid flakes and taking too long to fill
etcd.
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2023-04-03 16:11:03 +02:00
Marek Siarkowicz
dd0bc66478
server: Pick one address that all grpc gateways connect to
...
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2023-04-03 15:47:35 +02:00
Marek Siarkowicz
a4ac849ec1
server: Extract resolveUrl helper function
...
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2023-04-03 15:43:46 +02:00
Marek Siarkowicz
66704b4c59
server: Separate client listener grouping from serving
...
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2023-04-03 15:43:35 +02:00
Marek Siarkowicz
6de105e89b
refactor: Use proper variable names for urls
...
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2023-04-03 15:35:10 +02:00
Benjamin Wang
82de82ee80
Merge pull request #15486 from jmhbnz/release-3.4
...
[3.4] Backport tls 1.3 support
2023-03-23 15:25:17 +08:00
Wei Fu
303519c7b8
server/embed: fix data race when start insecure grpc
...
There are two goroutines accessing the `gs` grpc server var. Before
insecure `gs` server start, the `gs` can be changed to secure server and
then the client will fail to connect to etcd with insecure request. It
is data-race. We should use argument for reference in the new goroutine.
fix : #15495
Signed-off-by: Wei Fu <fuweid89@gmail.com>
(cherry picked from commit a9988e2625eede1af81d189b5f2ecf7d4af3edf1)
Signed-off-by: Wei Fu <fuweid89@gmail.com>
2023-03-20 21:33:16 +08:00
James Blair
d8f7cfe28d
Backport tls 1.3 support.
...
Signed-off-by: James Blair <mail@jamesblair.net>
2023-03-16 21:46:17 +13:00
Marek Siarkowicz
60e381aaa9
server: Switch back to random scheduler to improve resilience to watch starvation
...
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2023-03-14 10:33:15 +01:00
Benjamin Wang
5413ce46dc
bump go version to 1.17.3
...
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2022-12-19 18:34:04 +08:00
Allen Ray
9254f8f05b
Release-3.4: server/etcdmain: add configurable cipher list to gRPC proxy listener
...
Signed-off-by: Allen Ray <alray@redhat.com>
2022-10-19 16:02:13 -04:00
Benjamin Wang
1d7639f796
etcdserver: added more debug log for the purgeFile goroutine
...
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2022-10-12 19:39:20 +08:00
Marek Siarkowicz
8f4735dfd4
server: Require either cluster version v3.6 or --experimental-enable-lease-checkpoint-persist to persist lease remainingTTL
...
To avoid inconsistant behavior during cluster upgrade we are feature
gating persistance behind cluster version. This should ensure that
all cluster members are upgraded to v3.6 before changing behavior.
To allow backporting this fix to v3.5 we are also introducing flag
--experimental-enable-lease-checkpoint-persist that will allow for
smooth upgrade in v3.5 clusters with this feature enabled.
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2022-07-22 10:28:29 +02:00
Benjamin Wang
6071b1c523
Support configuring MaxConcurrentStreams for http2
...
Backport https://github.com/etcd-io/etcd/pull/14219 to 3.4
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2022-07-21 14:25:29 +08:00
richkun
a905430d27
embed: only log stream error with debug level ( #13656 )
...
Co-authored-by: tangcong <tangcong506@gmail.com>
2022-01-30 12:24:22 -08:00
spacewander
628fa1818e
embed: unlimit the recv msg size of grpc-gateway
...
Ensure the client which access etcd via grpc-gateway won't
be limited by the MaxCallRecvMsgSize. Here we choose the same
default value of etcdcli as grpc-gateway's MaxCallRecvMsgSize.
Fix https://github.com/etcd-io/etcd/issues/12576
2021-06-11 08:07:28 +08:00
Sam Batschelet
9aeabe447d
server: Added config parameter experimental-warning-apply-duration
...
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2021-03-03 12:14:30 -05:00
Vitaliy Filippov
a40f14d92c
etcdserver: Fix 64 KB websocket notification message limit
...
This fixes etcd being unable to send any message longer than 64 KB as
a notification over the websocket. This was because the older version
of grpc-websocket-proxy was used and WithMaxRespBodyBufferSize option
wasn't set.
2021-01-30 00:37:02 +03:00
jingyih
75d5e78d1f
*: fix backport of PR12216
...
Fix bugs introduced in commit c60dabf
2020-08-16 15:01:18 +08:00
jingyih
c60dabf2f3
*: add experimental flag for watch notify interval
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-08-15 10:24:25 -07:00
cfc4n
4488595e05
auth: Customize simpleTokenTTL settings.
...
see https://github.com/etcd-io/etcd/issues/11978 for more detail.
2020-06-25 19:58:26 +08:00
Sahdev P. Zala
05c441f92f
embed: fix compaction runtime err
...
Handle negative value input which currently gives a runtime error.
2020-06-20 20:58:18 -04:00
David Crawshaw
78f67988aa
etcdserver, et al: add --unsafe-no-fsync flag
...
This makes it possible to run an etcd node for testing and development
without placing lots of load on the file system.
Fixes #11930 .
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-06-04 20:19:28 -07:00
chris
c7c379e52e
embed: expose ZapLoggerBuilder
...
This exposes the ZapLoggerBuilder in the embed.Config to allow for
custom loggers to be defined and used by embedded etcd.
Fixes #11144
2019-09-13 14:09:54 -04:00
Gyuho Lee
8b053b0f44
embed: fix secure server logging message
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-09-03 09:43:08 -07:00
Gyuho Lee
9f8a1edf38
embed: fix "--log-outputs" setup without "stderr"
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-27 09:50:17 -07:00
Joe Betz
1e213b7ab6
*: Add experimental-compaction-batch-limit flag
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-15 13:31:39 -07:00
Gyuho Lee
b9de4bddda
embed: add "LogLevel", deprecate "Debug" in v3.5
...
Make log level configurable, and deprecate "debug" flag in v3.5.
And adds more warnings on flags that's being deprecated in v3.5.
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-29 15:43:19 -07:00
Gyuho Lee
348b0d40a6
embed: do not expose "zapLoggerBuilder"
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-29 15:43:19 -07:00
Gyuho Lee
ecb915617d
embed: disable v2 by default
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-28 19:36:51 -05:00
Gyuho Lee
a6b105a907
embed: use new "credentials" package
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-26 08:56:45 -07:00
chris
2223142685
embed: fix oob panic in zap logger
...
This fixes an index out-of-bounds panic caused when using the embed
package and the zap logger. When a TLS handshake error is logged, the
slice for cert ip addresses is allocated with capacity but no length, so
subsequent index access causes the panic, and doesn't surface the TLS
handshake error to the user.
Fixes #10932
2019-07-25 09:42:42 -04:00
Jingyi Hu
e67b9829b6
*: enable lease checkpoint via experimental flag
...
Primary lessor persist lease remainingTTL only if experimental flag
"--experimental-enable-lease-checkpoint" is set.
2019-06-05 15:30:03 -07:00
Gyuho Lee
34bd797e67
*: revert module import paths
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-05-28 15:39:35 -07:00
rohitsardesai83
42a7ea6d33
etcd: Replace ghodss/yaml with sigs.k8s.io/yaml
...
To remove the dependency on ghodss/yaml. Replaced this dependency with sigs.k8s.io/yaml.
This wil help to remove the ghodss/yaml dependency from main kubernetes repository.
xref: https://github.com/kubernetes/kubernetes/issues/77024
2019-05-02 12:34:36 +05:30
shivaramr
9150bf52d6
go modules: Fix module path version to include version number
2019-04-26 15:29:50 -07:00
Ben McIlwain
b3dd3d3856
embed: Fix HTTPs -> HTTPS in error message
2019-04-17 09:38:53 -04:00
caoming
874532c2da
embed: Modify the comments to be more precise.
2019-03-14 10:59:52 +08:00
Gyuho Lee
8d1a62e7ef
*: use default log configuration for server
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-02-21 10:57:26 -08:00
WizardCXY
e6c6d8492e
*: add flag to let etcd use the new boltdb freelistType feature
2019-02-14 11:07:08 +08:00