Marek Siarkowicz
ee5ef42c5c
server: --enable-v2 and --enable-v2v3 is decomissioned
2022-01-14 13:19:30 +01:00
Marek Siarkowicz
eac6d71352
tests: Add integration test for revision monotonic under failure injection
2022-01-12 11:51:12 +01:00
Michał Jasionowski
fd77b2700c
etcdserver,integration: Store remaining TTL on checkpoint
...
To extend lease checkpointing mechanism to cases when the whole etcd
cluster is restarted.
2021-11-26 15:17:22 +01:00
Michał Jasionowski
48a360aad0
lease,integration: add checkpoint scheduling after leader change
...
Current checkpointing mechanism is buggy. New checkpoints for any lease
are scheduled only until the first leader change. Added fix for that
and a test that will check it.
2021-11-26 14:34:19 +01:00
Sam Batschelet
63a1cc3fe4
add --experimental-max-learner flag
...
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2021-11-09 09:52:00 -05:00
Piotr Tabor
6c2f5dc78a
Merge pull request #13405 from serathius/downgrade-b
...
Implement single node downgrades
2021-10-29 23:22:10 +02:00
Piotr Tabor
9c28e07588
Merge pull request #13447 from Juneezee/deprecate-ioutil
...
*: move from io/ioutil to io and os packages
2021-10-29 23:18:36 +02:00
Marek Siarkowicz
431adc5878
server: Implement storage downgrades
...
By validating if WAL doesn't include any incompatible entries we can
implement storage downgrades.
2021-10-29 12:47:19 +02:00
Marek Siarkowicz
f5d71fa389
server: Detect when WAL includes unapplied cluster version set to higher version
...
This is because etcd v3.5 will panic when it encounters
ClusterVersionSet entry with version >3.5.0. For downgrades to v3.5 to
work we need to make sure this entry is snapshotted.
2021-10-29 12:47:19 +02:00
Sam Batschelet
a0bdfc4fc9
tests/integration/clientv3: allow time for endpoints to update
...
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2021-10-27 17:26:30 -04:00
Eng Zer Jun
2a151c8982
*: move from io/ioutil to io and os packages
...
The io/ioutil package has been deprecated as of Go 1.16, see
https://golang.org/doc/go1.16#ioutil . This commit replaces the existing
io/ioutil functions with their new definitions in io and os packages.
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2021-10-28 00:05:28 +08:00
Chao Chen
7b6554fd30
non mutating requests pass through quotaKVServer when NOSPACE
2021-10-22 16:36:37 -07:00
Marek Siarkowicz
ca9b720c1d
tests: Move integration setup to separa framework package
2021-10-20 10:34:35 +02:00
Marek Siarkowicz
703df1c491
server: Move wal versioning functions to wal package
2021-10-08 12:01:53 +02:00
Marek Siarkowicz
c929a917b6
client: Use first endpoint as http2 authority header
2021-09-29 14:41:35 +02:00
Marek Siarkowicz
90932324b1
client: Add grpc authority header integration tests
2021-09-29 12:42:16 +02:00
Marek Siarkowicz
c3cc22c60d
tests: Allow configuring integration tests to use TCP
2021-09-29 12:42:16 +02:00
Marek Siarkowicz
77cc91e0b2
test: Use unique number for grpc port
2021-09-29 12:42:16 +02:00
Marek Siarkowicz
5364758181
tests: Cleanup member interface by exposing Bridge directly
2021-09-29 12:42:16 +02:00
Marek Siarkowicz
451eb5d711
tests: Make using bridge optional
2021-09-29 12:42:14 +02:00
Marek Siarkowicz
f2dd5d80a1
tests: Rename grpcAddr to grpcURL to imply that it includes schema
2021-09-28 16:45:06 +02:00
Marek Siarkowicz
391d662f77
tests: Remove bridge dependency on unix
2021-09-28 16:45:06 +02:00
leoyang.yl
ad69fe0f40
fix IsOptsWithFromKey
...
fix IsOptsWithFromKey
fix IsOptsWithFromKey
fix IsOptsWithFromKey
fix IsOptsWithFromKey
fix IsOptsWithFromKey
2021-09-10 00:44:52 +08:00
Eduardo Patrocinio
87f1dc7e40
Fix a few typos
2021-09-03 16:09:09 -04:00
Marek Siarkowicz
1b4e54c238
api: Annotate proto messages and use it to detect etcd version that generated wal
...
Co-authored-by: Lili Cosic <cosiclili@gmail.com>
2021-08-04 13:36:08 +02:00
Marek Siarkowicz
83a325ac46
server: Move all functions needed for storage bootstrap to storage package
...
This is prerequestite to move storage bootstrap, splitted to separate PR
to make it easier to review.
2021-08-03 13:09:15 +02:00
Alexey Roytman
2a26f7ae4c
etcdserver: configure "expensive" requests duration
...
When a unary request takes more than predefined duration, this request
is defined as "expensive" and a warning is printed. The expensive request
duration is hard-coded to 300 ms. It can be not enough for example
for transactions with a lot of operations. The warnings just blow up
the log files and reduce throughput.
This fix allows user to configure the "expensive" request duration.
Signed-off-by: Alexey Roytman <roytman@il.ibm.com>
2021-07-27 08:33:44 +03:00
Marek Siarkowicz
5e40a8b00c
server: Create storage package and move mvcc files to it
2021-07-12 15:37:21 +02:00
Marek Siarkowicz
e21cf4ef02
tkest: Prevent TestMaintenanceSnapshotWithVersionVersion & TestSaveSnapshotVersion from flaking
...
When running 100 times in row those tests flaked around 10-20%. Based on
some experimentation 10 keys was enough to ensure that wal snapshot is
created and prevented any flakes.
2021-07-09 13:38:40 +02:00
Marek Siarkowicz
e2740b4afa
server,etcdutl: Preserve etcd version in backend allowing etcdutl to read it from snapshot
2021-06-25 14:06:56 +02:00
Marek Siarkowicz
e1b1d93548
*: Snapshot returns local etcd version
...
Co-authored-by: Lili Cosic <cosiclili@gmail.com>
2021-06-14 16:36:50 +02:00
Marek Siarkowicz
d669eb038d
integration: Use subtests to defer cluster.Terminate call
...
This fixes cases where Terminate is not called due to t.Fatal call
2021-06-01 15:59:02 +02:00
Marek Siarkowicz
182aef6e6b
etcdserver: Fix invalid count returned on Range with Limit
2021-06-01 15:04:28 +02:00
Piotr Tabor
f15e0b8237
integration.BeforeTest can be run without leak-detection.
2021-05-27 20:55:11 +02:00
Pavan BG
d9c5e1f0a2
*: Replace internal testutil AssertEqual function in favour of github.com/stretchr/testify/assert.Equals
...
To maintain uniformity in testing methodology, assert.Equals has been used everywhere while replacing testutil.AssertEqual
Fixes #13015
2021-05-20 19:55:45 +05:30
Piotr Tabor
3dd577ec08
Simplify client's logger configuration in tests.
2021-05-18 13:03:16 +02:00
Piotr Tabor
c09aca1ba4
Split etcdctl into etcdctl (public API access) & etcdutl (direct surgery on files)
...
Motivation is as follows:
- etcdctl we only depend on clientv3 APIs, no dependencies of bolt, backend, mvcc, file-layout
- etcdctl can be officially supported across wide range of versions, while etcdutl is pretty specific to file format at particular version.
it's step towards desired modules layout, documented in: https://etcd.io/docs/next/dev-internal/modules/
2021-05-17 11:54:03 +02:00
Piotr Tabor
f82b5cb776
Bring back original NewZapCoreLoggerBuilder api. ( #12973 )
...
The funcion signature has been changed in:
eafbc8c57efc716644c328f63677ca7eadeebdfe .
Instead we should have added new method `NewZapLoggerBuilder()`.
2021-05-16 10:26:10 -07:00
Piotr Tabor
ead81df948
Disallow -v2-deprecation>'not-yet' combined with --enable-v2
2021-05-12 18:09:34 +02:00
Marek Siarkowicz
06afe87b34
client: Allow setting zap logger in config
2021-05-12 12:15:20 +02:00
Piotr Tabor
f5717016cf
Merge pull request #12797 from lzhfromustc/3_23
...
server/etcdmain and tests: Fix goroutine leaks
2021-05-10 08:29:17 +02:00
Piotr Tabor
a78d072b9a
Simplify KVstore dependency on cindex.
2021-05-04 18:21:24 +02:00
Piotr Tabor
3acf6e35b2
Finish migration zap.NewExample -> zaptest.NewLogger(t) in integration tests
2021-04-29 22:32:26 +02:00
Piotr Tabor
ffea1537d4
ClientV3 tests use integration.NewClient that configures proper logger.
2021-04-29 18:18:34 +02:00
Piotr Tabor
c4b13a5c83
Integrate verification framework
...
Verification framework is integrated with:
- integration tests (by default)
- `ETCD_VERIFY=all etcdctl snapshot restore` command
- etcd shutdown when running with `ETCD_VERIFY=all` env.
2021-04-28 07:56:16 +02:00
Piotr Tabor
9a3aff6d8f
Merge pull request #12889 from ptabor/20210423-deflake-TestFirstCommitNotification
...
Deflake: TestFirstCommitNotification
2021-04-23 14:55:44 +02:00
Piotr Tabor
9f559775b8
Deflake: TestFirstCommitNotification
...
Infrequently the test flaked. Reproducable with:
```
go test go.etcd.io/etcd/tests/v3/integration --run TestFirstCommitNotification --count=500
```
The moveLeader finishes when configchange is commited by quorum.
It doesn't guarantee that the 'empty' record was committed by the new leader.
From time to time happened that appliedLeaderIndex was returning 9
(without empty entry) and the test flaked. In healthy case the
appliedIndex returned 10.
Fixed by putting kv pair after leader change. The pair is guaranteed
to be stored on index when put finishes (so the empty entry as well).
2021-04-23 13:22:15 +02:00
Piotr Tabor
9a4b2bdccc
Errors: context cancelled
or context deadline exceeded
are exposed as codes.Canceled, codes.DeadlineExceeded instead of 'codes.Unknown'
2021-04-22 14:35:24 +02:00
Piotr Tabor
ea287dd9f8
Merge pull request #12854 from ptabor/20210410-shouldApplyV3
...
(no)StoreV2 (Part 3): Applying consistency fix: ClusterVersionSet (and co) might get not applied on v2store
2021-04-21 09:31:38 +02:00
Piotr Tabor
fad6391745
Configure proper logging for grpc integration tests.
2021-04-14 12:47:38 +02:00