Commit Graph

273 Commits

Author SHA1 Message Date
7cc00ec981 tests/framework/integration: Fail nesting early
Currently there are a handful of tests within etcd that silently fail
because LeakDetection will skip the test before it manages to hit this
check.

Here we move the check to the beginning of the process to highlight
these cases earlier, and to avoid them accidentally presenting as leaks.
2022-04-07 13:10:15 +00:00
3ffa253516 tests: Add tests for snapshot compatibility and recovery between versions 2022-04-06 16:10:38 +02:00
c4d055fe7b Merge pull request #13819 from endocrimes/dani/auth_test.go
migrate e2e/users tests to common framework
2022-04-06 16:02:46 +02:00
68f2cb8c77 Fix ExampleAuth from integration/clientv3/examples (on OsX)
The code now ensures that each of the test is running in its own directory as opposed to shared os.tempdir.
```
$  (cd tests && env go test -timeout=15m --race go.etcd.io/etcd/tests/v3/integration/clientv3/examples -run ExampleAuth)
2022/04/03 10:24:59 Running tests (examples): ...
2022/04/03 10:24:59 the function can be called only in the test context. Was integration.BeforeTest() called ?
2022/04/03 10:24:59 2022-04-03T10:24:59.462+0200	INFO	m0	LISTEN GRPC	{"member": "m0", "grpcAddr": "localhost:m0", "m.Name": "m0"}
```
2022-04-03 14:16:45 +02:00
d57f8dba62 Deflaking: Make WaitLeader (and WaitMembersForLeader) aggressively (30s) wait for leader being established.
Nearly none of the tests was checking the value... just assuming WaitLeader success.

```
    maintenance_test.go:277: Waiting for leader...
    logger.go:130: 2022-04-03T08:01:09.914+0200	INFO	m0	cluster version differs from storage version.	{"member": "m0", "cluster-version": "3.6.0", "storage-version": "3.5.0"}
    logger.go:130: 2022-04-03T08:01:09.915+0200	WARN	m0	leader failed to send out heartbeat on time; took too long, leader is overloaded likely from slow disk	{"member": "m0", "to": "2acc3d3b521981", "heartbeat-interval": "10ms", "expected-duration": "20ms", "exceeded-duration": "103.756219ms"}
    logger.go:130: 2022-04-03T08:01:09.916+0200	INFO	m0	updated storage version	{"member": "m0", "new-storage-version": "3.6.0"}
    ...
    logger.go:130: 2022-04-03T08:01:09.926+0200	INFO	grpc	[[roundrobin] roundrobinPicker: Build called with info: {map[0xc002630ac0:{{unix:localhost:m0 localhost <nil> 0 <nil>}} 0xc002630af0:{{unix:localhost:m1 localhost <nil> 0 <nil>}} 0xc002630b20:{{unix:localhost:m2 localhost <nil> 0 <nil>}}]}]
    logger.go:130: 2022-04-03T08:01:09.926+0200	WARN	m0	apply request took too long	{"member": "m0", "took": "114.661766ms", "expected-duration": "100ms", "prefix": "", "request": "header:<ID:12658633312866157316 > cluster_version_set:<ver:\"3.6.0\" > ", "response": ""}
    logger.go:130: 2022-04-03T08:01:09.927+0200	INFO	m0	cluster version is updated	{"member": "m0", "cluster-version": "3.6"}
    logger.go:130: 2022-04-03T08:01:09.955+0200	INFO	m2.raft	9f96af25a04e2ec3 [logterm: 2, index: 8, vote: 9903a56eaf96afac] ignored MsgVote from 2acc3d3b521981 [logterm: 2, index: 8] at term 2: lease is not expired (remaining ticks: 10)	{"member": "m2"}
    logger.go:130: 2022-04-03T08:01:09.955+0200	INFO	m0.raft	9903a56eaf96afac [logterm: 2, index: 8, vote: 9903a56eaf96afac] ignored MsgVote from 2acc3d3b521981 [logterm: 2, index: 8] at term 2: lease is not expired (remaining ticks: 5)	{"member": "m0"}
    logger.go:130: 2022-04-03T08:01:09.955+0200	INFO	m0.raft	9903a56eaf96afac [term: 2] received a MsgAppResp message with higher term from 2acc3d3b521981 [term: 3]	{"member": "m0"}
    logger.go:130: 2022-04-03T08:01:09.955+0200	INFO	m0.raft	9903a56eaf96afac became follower at term 3	{"member": "m0"}
    logger.go:130: 2022-04-03T08:01:09.955+0200	INFO	m0.raft	raft.node: 9903a56eaf96afac lost leader 9903a56eaf96afac at term 3	{"member": "m0"}
    maintenance_test.go:279: Leader established.
```

Tmp
2022-04-03 12:23:09 +02:00
2fab3f3ae5 Make naming of test-nodes consistent and positive: m0, m1, m2
The nodes used to be named: m-1, m0, m1, that was generating very confusing logs
in integration tests.
2022-04-03 09:16:55 +02:00
f85cd0296f Merge pull request #13872 from ptabor/20220402-osx-unit-test-pass
Fix TestauthTokenBundleOnOverwrite on OsX:
2022-04-02 20:03:38 +02:00
3b589fb3b2 Fix TestauthTokenBundleOnOverwrite on OsX:
```
% (cd client/v3 && env go test -short -timeout=3m --race ./...)
--- FAIL: TestAuthTokenBundleNoOverwrite (0.00s)
    client_test.go:210: listen unix /var/folders/t1/3m8z9xz93t9c3vpt7zyzjm6w00374n/T/TestAuthTokenBundleNoOverwrite3197524989/001/etcd-auth-test:0: bind: invalid argument
FAIL
FAIL	go.etcd.io/etcd/client/v3	4.270s
```

The reason was that the path exceeded 108 chars (that is too much for socket).
In the mitigation we first change chroot (working directory) to the tempDir... such the path is 'local'.
2022-04-02 16:12:02 +02:00
63346bfead server: Use default logging configuration instead of zap production one
This fixes problem where logs json changes format of timestamp.
2022-04-01 10:23:42 +02:00
e5bf23037a tests: Keeps log in expect to allow their analysis 2022-03-31 21:02:36 +02:00
44aad460db tests: Migrate noquorum kv tests to common framework 2022-03-21 14:53:29 +01:00
adae7a659e tests/framework: Add User operations 2022-03-21 12:44:51 +00:00
c6488a2c56 fix review 2022-03-20 10:09:27 +08:00
527edd39a6 fix alarm test 2022-03-20 01:40:53 +08:00
02516ab266 Merge branch 'main' into tests/ctl-alarm
# Conflicts:
#	tests/framework/e2e/etcdctl.go
#	tests/framework/interface.go
2022-03-19 16:36:15 +08:00
e9fa171665 fix test fail 2022-03-19 16:31:19 +08:00
ab3353582d tests/framework: Add Client.LeaseRevoke 2022-03-18 16:47:42 +00:00
353b011f59 tests/framework: Add Client.LeaseKeepAliveOnce 2022-03-18 16:47:42 +00:00
b50f10299b tests/framework: Add PutOptions
Put can take a leaseid to associate a value with a lease. This adds the
ability for tests to make use of this.
2022-03-18 16:47:42 +00:00
dca5874d44 tests: Migrate key value Get to common framework 2022-03-19 00:46:42 +08:00
68e6493977 tests/framework: add Client.LeaseList 2022-03-18 16:43:53 +00:00
a533584738 tests/framework: add basic lease operations 2022-03-18 16:43:19 +00:00
66eb3dbbdc tests: Migrate defrag tests to common framework 2022-03-18 19:17:48 +08:00
a1f24e9afc tests: Migrate endpoint tests to common framework 2022-03-15 22:50:56 +08:00
34cd8ae1a2 tests: Migrate compact tests to common framework 2022-03-10 17:01:47 +08:00
a60abee0d4 tests: Migrate kv delete tests to common framework. 2022-03-02 11:37:24 +01:00
31de503859 Merge pull request #13740 from serathius/common-get
Migrate key value Get to common framework
2022-03-02 10:14:34 +01:00
088807c08e Merge pull request #13565 from ahrtr/remove_peer_serve_client_requests
Updated servePeers to remove the grpc server
2022-03-01 16:24:42 +01:00
bd9f366f40 tests: Migrate TestKVRange integration test to TestKVGet 2022-03-01 10:43:31 +01:00
74d77dbaaa tests: Migrate TestKVGet e2e test to common test framework 2022-03-01 10:41:57 +01:00
81ef11ffb8 tests: Test different TLS configuration with TestKVPut 2022-03-01 10:41:21 +01:00
1c8adcd830 tests: Handle simple TLS configuration for cluster in common framework 2022-03-01 10:40:42 +01:00
f7ee30cc41 tests: Implement remaining GetOptions fields 2022-03-01 10:35:18 +01:00
9b6681fffd add failover test cases 2022-02-25 09:55:36 +08:00
9aaa6d8e7c Merge pull request #13708 from serathius/common
Create common framework for e2e and integration tests and migrate TestKVPut test
2022-02-24 11:21:49 +01:00
65be41dd6e tests: Rename framework to runner and document the runners 2022-02-24 10:36:46 +01:00
2f36e0c62b Change discovery url to endpoints
Currently the discovery url is just one endpoint. But actually it
should be the same as the etcdctl, which means that it should be
a list of endpoints. When one endpoint is down, the clientv3 can
fail over to the next endpoint automatically.
2022-02-24 09:11:41 +08:00
def122871c tests: Use GetOptions to configure serializble get 2022-02-23 16:47:52 +01:00
744dd077cd tests: Create common framework for e2e and integration tests and migrate TestKVPut test 2022-02-23 16:47:02 +01:00
6af760131e Merge pull request #13687 from serathius/etcdctl
Add downgrade commands
2022-02-22 17:12:23 +01:00
5ac2c0d432 Merge pull request #13309 from presztak/proxyV2_with_stop_signal
e2e: Call WithStopSignal on proxyV2 object
2022-02-22 09:48:28 +01:00
2a7766c8cd tests: Switch downgradetests to use etcdctl 2022-02-21 17:58:19 +01:00
2db4d35554 tests: Move etcdctl to e2e framework 2022-02-21 17:58:19 +01:00
ebc86d12c0 support v3 discovery to bootstrap a new etcd cluster 2022-02-21 23:22:49 +08:00
fd79af9ee7 load all leases from backend 2022-02-13 20:30:20 -08:00
20c89df5e5 Merge pull request #13525 from ahrtr/do_not_wait_ReadyNotify_infinitely
Etcd server shouldn't wait for the ready notification infinitely on startup
2022-02-08 14:50:09 +01:00
986a2b51f4 Merge pull request #13636 from serathius/remove-v2-client
Remove v2 server
2022-02-02 11:41:56 +01:00
43c1631f26 tests: Use cmp.Equal to avoid mutating arguments 2022-02-01 16:47:18 +01:00
a879ccf152 updated servePeers to remvoe the grpc server 2022-01-27 16:22:01 +08:00
1713dc67b5 etcd server shouldn't wait for the ready notification infinitely on startup 2022-01-27 16:19:20 +08:00