Piotr Tabor
de55bb6331
pkg: Rename imports after making 'pkg' a module
...
find -name '*.go' | xargs sed --follow-symlinks -i 's|go.etcd.io/etcd/v3/pkg/|go.etcd.io/etcd/pkg/v3/|g'
go fmt ./...
2020-10-13 00:09:27 +02:00
Piotr Tabor
1983c89e27
pkg/logutil, etcdserver: Move zap-raft logger to etcdserver.
...
This package depends on raft and is solelly used by etcdserver/raft.go.
So it does not fullfills conditions of:
```
pkg/ is a collection of utility packages used by etcd without being specific to etcd itself. A package belongs here
only if it could possibly be moved out into its own repository in the future.
```
2020-10-12 23:58:09 +02:00
Piotr Tabor
5ba46f625f
pkg/mock: Update imports to point on new files locations.
...
find ./ -name '*.go' | xargs sed -i 's|go.etcd.io/etcd/v3/pkg/mock/mockserver|go.etcd.io/etcd/v3/client/mock/mockserver|g'
find ./ -name '*.go' | xargs sed -i 's|go.etcd.io/etcd/v3/pkg/mock|go.etcd.io/etcd/v3/server/mock|g'
go fmt ./...
2020-10-12 23:58:09 +02:00
Josh Bleecher Snyder
24724af7f1
etcdserver: prevent crash using expvars when server is not running ( #12376 )
...
The raft.status expvar is added at init time.
This change ensures that evaluating that expvar variable
doesn't panic during evaluation, even when there is
no server running.
2020-10-08 17:37:25 -07:00
Piotr Tabor
f67956cb7a
clientv3: Expose clientv3/examples close to the code.
...
Many of the tests had missing '// Output:' comment, so were not
runnable. They required fining.
2020-10-08 14:27:32 +02:00
Piotr Tabor
3153038ffb
tests/integration: Moving integration tests to tests/integration directory
...
git mv integration ./tests
git mv client/integration/* ./tests/integration/client
git mv clientv3/integration/* ./tests/integration/clientv3
git mv client/example_keys_test.go client/main_test.go tests/integration/client/examples
git mv clientv3/concurrency/*_test.go tests/integration/clientv3/concurrency
git mv etcdserver/api/v2store/store_v2v3_test.go etcdserver/api/v2v3/*_test.go tests/integration/v2store
git mv tests/integration/v2store/store_v2v3_test.go tests/integration/v2store/store_v2v3.go
git mv tests/integration/v2store/store_test.go tests/integration/v2store/store_v2v3_test.go
git mv etcdserver/api/v2store/store_test.go tests/integration/v2store
git mv etcdserver/api/v2store/store_v2_test.go tests/integration/v2store
git mv proxy/grpcproxy/*_test.go tests/integration/proxy/grpcproxy
git mv ./clientv3/snapshot/testdata ./clientv3/snapshot/*_test.go ./tests/integration/snapshot
2020-10-07 15:36:21 +02:00
Piotr Tabor
ec3026fdc9
*: Run ./scripts/genproto.sh (protoc 3.12.3) after proto file moves.
...
The changed blobs are consequences of proto-descriptors changing as a
result of file moves.
2020-10-06 11:57:19 +02:00
Piotr Tabor
28f2b07623
*: Update references to code moved to the api/ dir.
...
Follow up to file-moves done in the previous commit.
The commit contains purely mechanical consequences of execution (apart
of scripts/genproto.sh):
% find ./ -name '*.go' | xargs sed --follow-symlinks -i 's|v3/etcdserver/api/v3rpc/rpctypes|v3/api/v3rpc/rpctypes|g'
% find ./ -name '*.go' | xargs sed --follow-symlinks -i 's|v3/version|v3/api/version|g'
% find ./ -name '*.go' | xargs sed --follow-symlinks -i 's|v3/mvcc/mvccpb|v3/api/mvccpb|g'
% find ./ -name '*.go' | xargs sed --follow-symlinks -i 's|v3/etcdserver/etcdserverpb|v3/api/etcdserverpb|g'
% find ./ -name '*.go' | xargs sed --follow-symlinks -i 's|v3/etcdserver/api/membership/membershippb|v3/api/membershippb|g'
% find ./ -name '*.go' | xargs sed --follow-symlinks -i 's|v3/auth/authpb|v3/api/authpb|g'
% find ./ -name '*.proto' -o -name '*.md' | xargs -L 1 sed --follow-symlinks -i 's|/mvcc/mvccpb/kv.proto|/api/mvccpb/kv.proto|g'
% find ./ -name '*.proto' -o -name '*.md' | xargs -L 1 sed --follow-symlinks -i 's|/auth/authpb/auth.proto|/api/authpb/auth.proto|g'
% find ./ -name '*.proto' -o -name '*.md' | xargs -L 1 sed --follow-symlinks -i 's|/etcdserver/api/membership/membershippb/membership.proto|/api/membershippb/membership.proto|g'
I also modified manually paths in scripts/genproto.sh.
% go fmt ./...
2020-10-06 11:56:16 +02:00
Piotr Tabor
389642dd16
client: Move client specific code (protos, version) to api/
...
client: Move client specific code (protos, version) to the api/
directory. Thanks to this change /client directory will not need to depend on
the server code. In next commits we make "/api" a module on its own.
Mechanical consequences of execution:
% git mv version/version.go api/version
% git mv etcdserver/api/v3rpc/rpctypes api/v3rpc
% git mv mvcc/mvccpb api/
% git mv etcdserver/etcdserverpb api/
% git mv auth/authpb api/
% git mv etcdserver/api/membership/membershippb api/
2020-10-06 11:53:36 +02:00
Piotr Tabor
220f711a2a
clientv3/integration: Fix leaked goroutine in case of skipped test.
2020-10-03 19:38:54 +02:00
Pierre Zemb
cc2b4cd05e
etcdserver: add more detailed traces on linearized reading ( #12335 )
...
To improve debuggability of `agreement among raft nodes before
linearized reading`, we added some tracing inside
`linearizableReadLoop`.
This will allow us to know the timing of `s.r.ReadIndex` vs
`s.applyWait.Wait(rs.Index)`.
2020-09-26 19:08:36 -07:00
CFC4N
8050881aaf
clientv3:get AuthToken gracefully without extra connection. ( #12165 )
...
* etcdserver: check authinfo if it is not InternalAuthenticateRequest.
* credentials: let GetRequestMetadata() return nil when authToken isn't initialized.
* clientv3: get AuthToken gracefully without extra connection.
2020-09-25 11:01:54 -07:00
Jingyi Hu
353fcf0924
Merge pull request #12314 from viviyww/incorrect-log
...
etcdserver: fix log info error
2020-09-21 03:17:59 -07:00
yangweiwei
ff516e3a36
etcdserver: fix log info error
...
etcdserver#util.go#warnOfExpensiveReadOnlyTxnRequest logs with wrong prefix "read-only range ".
It has to be "read-only txn ".
fixes #12295
2020-09-21 16:00:01 +08:00
Jingyi Hu
528b01c327
Merge pull request #12303 from ptabor/20200915-v3compactor-metric-reporting
...
etcdserver: v3compactor should use proper clock for latency (took) reporting
2020-09-17 02:26:56 -07:00
Jingyi Hu
3e1a64913a
Merge pull request #12286 from ptabor/20200911-short-test-separated
...
*: 'go test --short ./...' runs all UNIT tests in <25s
2020-09-16 05:16:18 -07:00
Piotr Tabor
2048c80760
etcdserver: v3compactor should use proper clock for latency (took) reporting.
...
The code used to:
- report time since previous compaction success as a 'duration' of compaction process itself.
- mix real clock with 'injected' clock. This led to strange log-lines
in tests in order of 234543543h of duration.
2020-09-15 16:43:05 +02:00
Piotr Tabor
0a106754d3
etcdserver: Speed-up v3compactor unit tests.
...
The tests were taking ~15s because of 5s wait time in Recorder !?
2020-09-15 12:00:46 +02:00
galal-hussein
7af8241764
etcdserver: add ConfChangeAddLearnerNode to the list of config changes
...
To fix a panic that happens when trying to get ids of etcd members in
force new cluster mode, the issue happen if the cluster previously had
etcd learner nodes added to the cluster
Fixes #12285
2020-09-14 17:49:57 +02:00
gaurav
c199d3d8c3
server: use buffered channel to avoid goroutine leak ( #11941 )
...
Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>
2020-08-21 18:46:28 -07:00
Jordan Liggitt
ad57fea4c5
etcdserver: Avoid panics logging slow v2 requests in integration tests
2020-08-19 11:30:15 -04:00
jingyih
9a698476bf
*: add experimental flag for watch notify interval
2020-08-14 12:01:00 -07:00
Gyuho Lee
06f89cc4f8
Merge pull request #12212 from gyuho/logger
...
*: upgrade zap logger to 1.15, replace global logger
2020-08-13 09:46:44 -07:00
Gyuho Lee
421df2ecbb
etcdserver: add OS level FD metrics
...
Similar counts are exposed via Prometheus.
This adds the one that are perceived by etcd server.
e.g.
os_fd_limit 120000
os_fd_used 14
process_cpu_seconds_total 0.31
process_max_fds 120000
process_open_fds 17
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-08-12 10:32:27 -07:00
Gyuho Lee
7eac6bd497
*: upgrade zap logger to 1.15, replace global logger
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-08-12 09:50:00 -07:00
Gyuho Lee
ed27d9d2de
Merge pull request #12198 from ptabor/20200803-int-to-string-test-fix
...
etcdserver, wal: Fix tests unintended CASTing of int->String.
2020-08-11 21:35:20 -07:00
Gyuho Lee
8c44d25f2a
Merge pull request #12211 from tangcong/ignore-errcompacted
...
etcdserver: ignore ErrCompacted error
2020-08-11 21:34:38 -07:00
Gyuho Lee
fe36be2251
Merge pull request #12195 from tangcong/optimize-healthcheck
...
*: check health by using v3 range request and its corresponding timeout
2020-08-11 21:32:44 -07:00
tangcong
afa0e8196c
etcdserver: ignore mvcc.ErrCompacted error
2020-08-11 23:45:20 +08:00
Piotr Tabor
00de56a4a4
etcdserver, wal: Fix tests that were performing unintended casting of int to String.
...
Fixes following problems during "./etcd# go test ./..."
> go.etcd.io/etcd/v3/etcdserver/api/v2store_test
etcdserver/api/v2store/store_test.go:847:24: conversion from int to string yields a string of one rune, not a string of digits (did you mean fmt.Sprint(x)?)
> go.etcd.io/etcd/v3/wal
wal/wal_test.go:242:68: conversion from int to string yields a string of one rune, not a string of digits (did you mean fmt.Sprint(x)?)
2020-08-04 20:28:41 +02:00
tangcong
25220a0287
*: check health by using v3 range request and its corresponding timeout
2020-08-04 00:34:18 +08:00
nicktming
6c81b20ec8
rafthttp: fix streamHandle outgoingConn peerID ( #12179 )
2020-07-28 14:41:10 -07:00
Denis Issoupov
51de68ddac
12126: snapshot: corrupted in Embedded server ( #12129 )
2020-07-26 11:14:46 -07:00
Ed Bartosh
e9d16c2b62
etcdserverpb: add TestInvalidGoTypeIntPanic test ( #12116 )
...
Tested conditions that cause
panic: invalid Go type int for field k8s_io.kubernetes.vendor.go_etcd_io.etcd.etcdserver.etcdserverpb.loggablePutRequest.value_size
Signed-off-by: Ed Bartosh <eduard.bartosh@intel.com>
2020-07-20 19:18:52 -07:00
Jan Kuri
7f27697df9
v3client: implement clientv3.Auth interface ( #12140 )
2020-07-20 16:53:25 -07:00
Sahdev Zala
ef866a6d8b
Merge pull request #11943 from mitake/bcrypt-in-api
...
auth, etcdserver: hash password in the API layer
2020-07-20 10:52:24 -04:00
Denis Issoupov
701f02f90a
12125: panic: zap.Logger is nil in Embed client
2020-07-13 09:08:20 -07:00
Hitoshi Mitake
5a3da48cdf
auth, etcdserver: hash password in the API layer
2020-07-14 00:15:19 +09:00
tangcong
0898c5b978
*: add health check for grpcproxy self
2020-07-10 20:17:44 +08:00
Gyuho Lee
27ddb84268
Merge pull request #12107 from tangcong/register-grpcproxy-metrics
...
*: register metrics handler for grpcproxy self
2020-07-06 13:00:35 -07:00
tangcong
fff5d3cc03
*: register metrics handler for grpcproxy self
2020-07-02 22:55:18 +08:00
tangcong
644d09edb5
v3rpc: print expensive request info in UnaryInterceptor
2020-07-01 00:54:23 +08:00
yoyinzyc
2541b0bba9
etcdserver: apply downgrade policy to server.
2020-06-24 11:06:29 -07:00
Gyuho Lee
ebdccedbde
Merge pull request #11980 from cfc4n/simple-token-ttl
...
auth: Customize the settings of simpleTokenTTL.
2020-06-21 23:23:45 -07:00
Gyuho Lee
d8c8f903ee
Merge pull request #11983 from tangcong/add_reason_field_for_health
...
etcdserver/api/etcdhttp: add reason field for /health response
2020-06-15 23:17:00 -07:00
Gyuho Lee
8720f980ac
Merge pull request #11986 from cfc4n/fdusage-limit
...
etcdserver:set FDUsage ticker to 10 minute from 5 seconds.
2020-06-15 22:12:58 -07:00
cfc4n
144beba3f8
etcdserver:FDUsage set ticker to 10 minute from 5 seconds.
...
This ticker will check File Descriptor Requirements ,and count all fds in used.
And recorded some logs when in used >= limit/5*4. Just recorded message.
If fds was more than 10K,It's low performance due to FDUsage() works.
So need to increase it.
see https://github.com/etcd-io/etcd/issues/11969 for more detail.
2020-06-16 12:44:33 +08:00
Yuchen Zhou
ed04d0d98a
etcdserver: change protobuf field type from int to int64 ( #12000 )
2020-06-12 16:10:56 -07:00
cfc4n
d507ab4aad
auth: Customize simpleTokenTTL settings.
...
see https://github.com/etcd-io/etcd/issues/11978 for more detail.
2020-06-11 17:15:42 +08:00
tangcong
4acaa5a2a0
etcdserver/api/etcdhttp: add reason field for /health response
2020-06-10 11:14:56 +08:00