15954 Commits

Author SHA1 Message Date
Benjamin Wang
78a898a903 bump golang to 1.19.8 to fix CVEs
https://groups.google.com/g/golang-announce/c/Xdv6JL9ENs8/m/OV40vnafAwAJ

Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-04-06 14:31:15 +08:00
Benjamin Wang
ab64d49a13
Merge pull request #15621 from mitake/3.4-backport-15294
[3.4] backport 15294
2023-04-05 08:25:01 +08:00
Hitoshi Mitake
442de314a2 server/auth: disallow creating empty permission ranges
Signed-off-by: Hitoshi Mitake <h.mitake@gmail.com>
Co-authored-by: Benjamin Wang <wachao@vmware.com>
2023-04-04 21:41:04 +09:00
J. David Lowe
cee78aca75 etcdserver: don't attempt to grant nil permission to a role
Prevent etcd from crashing when given a bad grant payload, e.g.:

$ curl -d '{"name": "foo"}' http://localhost:2379/v3/auth/role/add
{"header":{"cluster_id":"14841639068965178418", ...
$ curl -d '{"name": "foo"}' http://localhost:2379/v3/auth/role/grant
curl: (52) Empty reply from server

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
Signed-off-by: J. David Lowe <j.david.lowe@gmail.com>
2023-04-04 21:40:54 +09:00
Marek Siarkowicz
a1a37492f5
Merge pull request #15620 from serathius/separate-grpc-server-3.4
[3.4] Separate grpc server
2023-04-04 09:48:45 +02: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
75675cd464 tests: Test separate http port connection multiplexing
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
9ba5c28404
Merge pull request #15590 from ArkaSaha30/backport-14860-3-4
[3.4] Backport cherry-pick of #14860: Trigger release in current branch for github workflow case
2023-03-31 17:58:25 +08:00
Benjamin Wang
49d05f88c3
[3.4] Backport cherry-pick of #14860: Trigger release in current branch for github workflow case
Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2023-03-31 10:29:09 +05:30
Marek Siarkowicz
f9a4a471a0
Merge pull request #15560 from serathius/test-cmux-3.4
[3.4] Test cmux
2023-03-30 15:55:24 +02:00
Marek Siarkowicz
7d62b4d64a tests: Add v2 API to connection multiplexing test
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2023-03-30 14:51:39 +02:00
Marek Siarkowicz
7bb5f1f58c tests: Add connection muiltiplexer testing
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2023-03-30 14:51:25 +02:00
Marek Siarkowicz
c4a0bac555 tests: Backport tls for etcdctl
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2023-03-30 14:49:04 +02:00
Marek Siarkowicz
ec9221f42a tests: Backport etcdctl
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2023-03-30 14:49:04 +02:00
Marek Siarkowicz
9e912ba3ed tests: Extract e2e test utils
Consider creating generic testutils for both e2e and integration tests.

Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2023-03-30 14:49:02 +02:00
Marek Siarkowicz
063d3ceed6 tests: Allow specifying http version in curl
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2023-03-30 14:48:28 +02:00
Marek Siarkowicz
cee9d4c0f1 tests: Refactor newClient args
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2023-03-30 14:48:28 +02:00
Marek Siarkowicz
1bafc86b42 tests: Refactor CURLPrefixArgs
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2023-03-30 14:48:28 +02:00
Benjamin Wang
bf22b350b0
Merge pull request #15584 from mitake/follow-up-for-15542
[3.4] etcdserver: keep server side change of 14548
2023-03-30 06:34:08 +08:00
Hitoshi Mitake
01c0d8b309 etcdserver: keep server side change of 14548
Signed-off-by: Hitoshi Mitake <h.mitake@gmail.com>
2023-03-28 21:43:17 +09:00
Marek Siarkowicz
2b189d8638
Merge pull request #15562 from serathius/fix-e2e
tests: Avoid testing package root tests in e2e
2023-03-28 13:53:49 +02:00
Marek Siarkowicz
3f6429d702 tests: Avoid testing package root tests in e2e
Changes invocation from `go test -timeout 30m -v -cpu 1,2,4 '' -v
--count 1 go.etcd.io/etcd/tests/e2e` to `go test -timeout 30m -v -cpu 1,2,4 -v --count 1 go.etcd.io/etcd/tests/e2e` (removes '').
Those braces caused tests to also run in root package.

Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2023-03-28 11:07:34 +02:00
Marek Siarkowicz
63c7a038eb
Merge pull request #15555 from serathius/run-e2e
Run e2e tests in CI
2023-03-27 13:38:53 +02:00
Marek Siarkowicz
73f152e61e Run e2e tests in CI
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2023-03-27 12:12:36 +02:00
Marek Siarkowicz
e0fcb9e637
Merge pull request #15504 from fuweid/fix-15487
[3.4] fix: enable strict mode for CI
2023-03-23 12:41:08 +01: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
3fc5fbeaa0 fix: enable strict mode for CI
fixes: #15487

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2023-03-22 17:55:58 +08:00
Benjamin Wang
284c312fd4
Merge pull request #15518 from fuweid/cp-15509-to-3.4
[3.4] server/embed: fix data race when start insecure grpc
2023-03-22 12:10:01 +08:00
Benjamin Wang
336ac78ebe
Merge pull request #15542 from mitake/revert-14548-v2
[3.4] Revert 14548
2023-03-22 06:19:30 +08:00
Hitoshi Mitake
be808bde23 Revert "tests: a test case for watch with auth token expiration"
This reverts commit 91365174b33b15ff165997d6312abab7935a6ebe.

Signed-off-by: Hitoshi Mitake <h.mitake@gmail.com>
2023-03-21 22:13:27 +09:00
Hitoshi Mitake
c8f890cde1 Revert "*: handle auth invalid token and old revision errors in watch"
This reverts commit 0c6e466024ea2030380b13e3e2248b0b8fb879ca.

Signed-off-by: Hitoshi Mitake <h.mitake@gmail.com>
2023-03-21 22:13:17 +09:00
Benjamin Wang
46ae7ebd96
Merge pull request #15520 from serathius/fix-issue15271-3.4
[v3.4] Fix issue15271
2023-03-21 06:39:25 +08:00
Marek Siarkowicz
29ecfc0185 server: Test watch restore
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2023-03-20 16:06:10 +01:00
Bogdan Kanivets
8160d9aea5 mvcc: update minRev when watcher stays synced
Problem: during restore in watchableStore.Restore, synced watchers are moved to unsynced.
minRev will be behind since it's not updated when watcher stays synced.

Solution: update minRev

fixes: https://github.com/etcd-io/etcd/issues/15271
Signed-off-by: Bogdan Kanivets <bkanivets@apple.com>
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2023-03-20 16:04:49 +01: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
2eabc0bc70
Merge pull request #15482 from ahrtr/3.4_gomod_cleanup_20230315
[3.4] cleanup the go.mod & go.sum files
2023-03-15 09:17:41 +01:00
Benjamin Wang
7c6b0882fd cleanup the go.mod & go.sum files
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2023-03-15 07:11:33 +08:00
Marek Siarkowicz
08a42e65a8
Merge pull request #15478 from serathius/watch-random-scheduler-3.4
Watch random scheduler 3.4
2023-03-14 11:32:20 +01: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
Marek Siarkowicz
e818b5fac8 test: Test etcd watch stream starvation under high read response load when sharing the same connection
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2023-03-14 10:33:06 +01:00
Marek Siarkowicz
6025355ce0 tests: Allow configuring progress notify interval in e2e tests
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2023-03-14 10:26:43 +01:00
Benjamin Wang
4cdb91db15
Merge pull request #15429 from jmhbnz/release-3.4-backport
[3.4] Backport update to latest go 1.19.7 release
2023-03-08 19:07:44 +08:00
James Blair
51ea1c0abe
Updated go to 1.19.7.
Mitigates CVE-2023-24532.

Signed-off-by: James Blair <mail@jamesblair.net>
2023-03-08 22:46:34 +13:00
Piotr Tabor
20eee55557
Merge pull request #15333 from jmhbnz/release-3.4
[3.4] Backport bump to go 1.19.6 and golang.org/x/net to v0.7.0
2023-03-03 11:11:04 +01:00