Commit Graph

458 Commits

Author SHA1 Message Date
16477a8270 Update client_golang dependency to v1.11.0 2021-06-07 14:49:57 +02:00
8552d8ec20 etcdserver: don't activate alarm w/missing AlarmType
Narrowly prevent etcd from crashing when given a bad ACTIVATE payload, e.g.:

$ curl -d "{\"action\":\"ACTIVATE\"}" ${ETCD}/v3/maintenance/alarm
curl: (52) Empty reply from server
2021-06-04 12:18:56 -07:00
b00803a9c1 Merge pull request #13071 from serathius/genproto
tests: Switch regenerating functional/rpcpb proto to scripts/genproto.sh
2021-06-04 13:30:02 +02:00
404efd70f7 Upgrade of prometheous deps.
For now we need to depend on unstable: prometheus/client_golang
2021-06-03 16:07:01 +02:00
edcfe575cf Update dependencies:
- github.com/coreos/go-systemd/v22 v22.3.2
  - github.com/google/btree v1.0.1
  - github.com/json-iterator/go v1.1.11
  - github.com/mattn/go-runewidth v0.0.13
  - github.com/prometheus/client_golang v1.10.0
  - github.com/prometheus/common v0.26.0
  - github.com/sirupsen/logrus v1.8.1
2021-06-03 13:03:01 +02:00
b240625d21 Update bbolt to v1.3.6.
`./scripts/update_dep.sh go.etcd.io/bbolt v1.3.6`
2021-06-03 12:39:53 +02:00
90cea7d4e7 Update zap to v1.17.0. 2021-06-03 12:37:43 +02:00
af5cf1ac1c tests: Switch regenerating functional/rpcpb proto to scripts/genproto.sh 2021-06-02 16:42:35 +02:00
4c6c506575 Merge pull request #13063 from serathius/integration-defer
integration: Use subtests to defer cluster.Terminate call
2021-06-01 17:19:05 +02:00
c15af6df03 Merge pull request #13058 from ptabor/20210531-functional-test-logging
Improve output of the 'functional' tests
2021-06-01 16:09:03 +02:00
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
182aef6e6b etcdserver: Fix invalid count returned on Range with Limit 2021-06-01 15:04:28 +02:00
ea8b9e6c18 Improve output of the 'functional' tests
- Use go testing infrastructure, such that logs are printed only in
case of failure.
 - Split the test into multiple sub-round and sub-round-testcases such
   that tree of execution reflects the logic.
 - Use 'development' loggers that are formatting the output to be human
readable.
2021-05-31 15:31:48 +02:00
f15e0b8237 integration.BeforeTest can be run without leak-detection. 2021-05-27 20:55:11 +02:00
bda32db121 Expose clientv3.CreateDefaultZapLoggerConfig
Need raised in
f3f4259d3f.

BTW: Alligned the implementation of grpclogs with what we use in embed
server, so reduced the client code dependencies.
2021-05-25 22:59:08 +02:00
64b01a7a8d Enhance the root permission, when root role exist, it always return rootPerm. (#13006)
etcdctl role grant-permission root readwrite foo.
see etcdctl role get root output.
Before:
Role root
KV Read:
        foo
KV Write:
        foo
After:
Role root
KV Read:
        [, <open ended>
KV Write:
        [, <open ended>
2021-05-24 14:58:00 -07:00
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
b23ab1f759 tests/functional: Require same version of protoc everwhere
The main genproto.sh script requires latest version, this confirms the
test protoc to do the same.
2021-05-20 13:41:41 +02:00
fe2a9bd7e9 Update go.mod and go.sum files after running scripts 2021-05-20 13:41:41 +02:00
cb8c0a0507 tests/functional/rpcpb/rpc.pb.go: Regenerate
run ./scripts/genproto.sh
2021-05-20 13:41:41 +02:00
13bf7b0766 tests/functional: Set socket-reuse-port and socket-reuse-address
Due to flakes in CI and locally which resulted due to shared servers
there is suspcion that fixed port numbers are to blame. This reuses port
and address.
2021-05-20 13:41:41 +02:00
6ab56fc237 enhance GetRole output when role is 'root' and the response perm is nil.
Before output:
Role root
KV Read:
KV Write:

After output:
Role root
KV Read:
	[, <open ended>
KV Write:
	[, <open ended>
2021-05-19 17:35:13 +08:00
3dd577ec08 Simplify client's logger configuration in tests. 2021-05-18 13:03:16 +02:00
d99d0df5a5 Adding etcdutl test coverage. 2021-05-17 11:54:03 +02:00
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
f82b5cb776 Bring back original NewZapCoreLoggerBuilder api. (#12973)
The funcion signature has been changed in:
eafbc8c57e .
Instead we should have added new method `NewZapLoggerBuilder()`.
2021-05-16 10:26:10 -07:00
099fd65821 Fix coverage test failure: e2e TestIssue6361.
Tested with:
```
(cd tests && COVERDIR='../../c' 'env' 'go' 'test' '-tags=cov' '-timeout' '30m' 'go.etcd.io/etcd/tests/v3/e2e' -run TestIssue6361 -v 2>&1 | tee log.log)
```
2021-05-16 10:58:41 +02:00
c7a76470d5 Fix path to the coverage folder for e2e tests. 2021-05-16 09:49:50 +02:00
13ef6fc343 Fix coverage tests
2 problems:
  - spawnCmdWithLogger was not implemented (when built with 'cov' tag)
  - the logic was depending on relative paths. We change it to absolute
to be able to run in the test-specific temporary directories.
2021-05-16 09:49:50 +02:00
3ed0cb1dfc Update modules to more stable versions. (#12975) 2021-05-15 23:32:27 -07:00
c18010cf42 etcdproxy e2e tests should run in dedicated directories.
So far all proxies were sharing the same (current) directory,
leading to tests flakes, e.g. due to certificates being overriden
in autoTLS mode.
2021-05-14 22:42:31 +02:00
582d02e7f5 E2E tests should log commandlines used to spawn etcd or etcd proxy binaries. 2021-05-14 22:42:31 +02:00
00c6090110 Refactor common code from etcdctl (v2,v3) to pkg/corbautl.
Preparation for etcdutl split.
2021-05-14 14:16:53 +02:00
e2d67f2e3b Merge pull request #12956 from gyuho/rename-to-main
*: rename "master" branch references to "main" in source code
2021-05-13 08:26:33 -07:00
19fcefae70 tests: rename "master" branch references to "main"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2021-05-12 10:38:12 -07:00
79e3d7bd3e Add e2e tests for --v2-deprecation flag. 2021-05-12 19:20:49 +02:00
ead81df948 Disallow -v2-deprecation>'not-yet' combined with --enable-v2 2021-05-12 18:09:34 +02:00
7ba53c71a9 Merge pull request #12953 from serathius/e2e-split
github actions: Move e2e to separate workflow and remove semaphoreci
2021-05-12 14:55:28 +02:00
f908e423bc github actions: Move e2e to separate workflow and remove semaphoreci 2021-05-12 14:17:17 +02:00
1929aa0a36 Merge pull request #12948 from serathius/logger
client: Allow setting zap logger in config
2021-05-12 13:49:48 +02:00
06afe87b34 client: Allow setting zap logger in config 2021-05-12 12:15:20 +02:00
e0a8484c8f Merge pull request #12941 from serathius/defrag
etcdserver: Implement running defrag if freeable space will exceed provided threshold (on boot)
2021-05-12 09:26:56 +02:00
efc8505739 etcdserver: Implement running defrag if freeable space will exceed privided threshold 2021-05-11 14:00:29 +02:00
04c9e8b531 Run e2e tests with: EXPECT_DEBUG='true'
The motivation is need to diagnose flakes like:
https://semaphoreci.com/etcd-io/etcd/branches/pull-request-12940/builds/2.

Now - when the logs are streamed through testing.T logger, the verbosity
is not that significant concern.
2021-05-10 17:46:31 +02:00
1a718a958e Add initial Tracing with OpenTelemetry 2021-05-10 10:44:40 +02:00
f5717016cf Merge pull request #12797 from lzhfromustc/3_23
server/etcdmain and tests: Fix goroutine leaks
2021-05-10 08:29:17 +02:00
aeb9b5fc73 Merge pull request #12855 from ptabor/20210409-backend-hooks
(no)StoreV2 (Part 4): Backend hooks:  precommit updates consistency_index
2021-05-08 09:34:31 +02:00
82b2d5c67d server: add support for log rotation
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2021-05-07 08:39:51 -04:00
a78d072b9a Simplify KVstore dependency on cindex. 2021-05-04 18:21:24 +02:00
3acf6e35b2 Finish migration zap.NewExample -> zaptest.NewLogger(t) in integration tests 2021-04-29 22:32:26 +02:00