Allen Ray
9254f8f05b
Release-3.4: server/etcdmain: add configurable cipher list to gRPC proxy listener
...
Signed-off-by: Allen Ray <alray@redhat.com>
2022-10-19 16:02:13 -04:00
Benjamin Wang
1d7639f796
etcdserver: added more debug log for the purgeFile goroutine
...
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2022-10-12 19:39:20 +08:00
Sergey Kacheev
5381dafaae
netutil: make a raw
URL comparison part of the urlsEqual function
...
Signed-off-by: Prasad Chandrasekaran <prasadc@vmware.com>
2022-10-12 15:07:46 +05:30
Sergey Kacheev
90e7e254ae
Apply suggestions from code review
...
Co-authored-by: Lili Cosic <cosiclili@gmail.com>
Signed-off-by: Prasad Chandrasekaran <prasadc@vmware.com>
2022-10-12 15:07:46 +05:30
Sergey Kacheev
abb019a51e
netutil: add url comparison without resolver to URLStringsEqual
...
If one of the nodes in the cluster has lost a dns record,
restarting the second node will break it.
This PR makes an attempt to add a comparison without using a resolver,
which allows to protect cluster from dns errors and does not break
the current logic of comparing urls in the URLStringsEqual function.
You can read more in the issue #7798
Fixes #7798
Signed-off-by: Prasad Chandrasekaran <prasadc@vmware.com>
2022-10-12 15:07:46 +05:30
vivekpatani
e4deb09c9e
etcdserver,pkg: remove temp files in snap dir when etcdserver starting
...
- Backporting: https://github.com/etcd-io/etcd/pull/12846
- Reference: https://github.com/etcd-io/etcd/issues/14232
Signed-off-by: vivekpatani <9080894+vivekpatani@users.noreply.github.com>
2022-07-21 15:50:27 -07:00
Benjamin Wang
6071b1c523
Support configuring MaxConcurrentStreams for http2
...
Backport https://github.com/etcd-io/etcd/pull/14219 to 3.4
Signed-off-by: Benjamin Wang <wachao@vmware.com>
2022-07-21 14:25:29 +08:00
Pierre Zemb
3f9fba9112
etcdserver: add more detailed traces on linearized reading
...
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)`.
Signed-off-by: Chao Chen <chaochn@amazon.com>
2022-07-20 12:07:51 -07:00
Lili Cosic
8d1b8335e3
pkg/tlsutil: Adjust cipher suites for go 1.12
...
Cherry-pick of 60e44286fa3c0c0 from master branch does not work due to
missing `tls.CipherSuites()` function. We work around by using go build
tags for both the building and tests.
2021-04-19 11:49:13 +02:00
Piotr Tabor
c3f447a698
Fix pkg/tlsutil (test) to not fail on 386.
...
In fact this commit rewrites the functionality to use upstream list of
ciphers instead of checking whether the lists are in sync using ast
analysis.
2021-04-19 11:49:13 +02:00
Lili Cosic
91bed2e01f
pkpkg/testutil/leak.go: Allowlist created by testing.runTests.func1
2021-04-07 17:20:52 +02:00
Piotr Tabor
0880605772
Merge pull request #12551 from kolyshkin/3.4-fix-lock
...
[3.4 backport] pkg/fileutil: fix F_OFD_ constants
2021-01-15 23:16:49 +01:00
Kir Kolyshkin
bea35fd2c6
pkg/fileutil: fix F_OFD_ constants
...
Use golang.org/x/sys/unix for F_OFD_* constants.
This fixes the issue that F_OFD_GETLK was defined incorrectly,
resulting in bugs such as https://github.com/moby/moby/issues/31182
Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2020-12-14 10:42:13 -08:00
Gyuho Lee
a4b43b388d
pkg/netutil: remove unused "iptables" wrapper
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-11-25 11:31:17 -08:00
Sahdev P. Zala
d5ebbbceb8
pkg: file stat warning
...
Provide warning and doc instead of enforcing file permission.
2020-08-24 11:21:29 -04:00
Gyuho Lee
cf558ee8b7
pkg/runtime: optimize FDUsage by removing sort
...
No need sort when we just want the counts.
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-08-12 18:38:17 -07:00
Sahdev P. Zala
319331192e
pkg: consider umask when use MkdirAll
...
os.MkdirAll creates directory before umask so make sure that a desired
permission is set after creating a directory with MkdirAll. Use the
existing TouchDirAll function which checks for permission if dir is already
exist and when create a new dir.
2020-07-07 11:46:31 -04:00
tangcong
0207d1df66
pkg/fileutil: print desired file permission in error log
2020-06-29 09:59:19 +08:00
Changxin Miao
e5424fc474
pkg: Fix dir permission check on Windows
2020-06-25 20:20:55 -04:00
Sahdev P. Zala
434f7e83f0
pkg: check file stats
...
modify file util.
2020-06-20 16:29:47 -04:00
Viacheslav Biriukov
87fc3c9e57
etcdserver,wal: fix inconsistencies in WAL and snapshot
...
etcdserver/*, wal/*: changes to snapshots and wal logic
etcdserver/*: changes to snapshots and wal logic to fix #10219
etcdserver/*, wal/*: add Sync method
etcdserver/*, wal/*: find valid snapshots by cross checking snap files and wal snap entries
etcdserver/*, wal/*:Add comments, clean up error messages and tests
etcdserver/*, wal/*: Remove orphaned .snap.db files during Release
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-05-15 08:40:09 -07:00
Gyuho Lee
b68f8ff31d
pkg/ioutil: add "FlushN"
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-04-01 09:29:59 -07:00
Jingyi Hu
4f3c81d81d
etcdserver: wait purge file loop during shutdown
...
To prevent the purge file loop from accidentally acquiring the file lock
and remove the files during server shutdowm.
2019-10-30 16:04:41 -07:00
yoyinzyc
480d5510f9
etcdserver: trace compaction request; add return parameter 'trace' to applierV3.Compaction() mvcc: trace compaction request; add input parameter 'trace' to KV.Compact()
2019-10-09 12:40:12 -07:00
yoyinzyc
9245518363
etcdserver: trace raft requests.
2019-10-09 12:40:12 -07:00
yoyinzyc
daa432cfa7
etcdserver: add put request steps. mvcc: add put request steps; add trace to KV.Write() as input parameter.
2019-10-09 12:40:12 -07:00
yoyinzyc
8717327697
pkg: use zap logger to format the structure log output.
2019-10-09 12:40:12 -07:00
yoyinzyc
4f1bbff888
pkg: add field to record additional detail of trace; add stepThreshold to reduce log volume.
2019-10-09 12:40:12 -07:00
yoyinzyc
28bb8037d9
pkg: create package traceutil for tracing. mvcc: add tracing steps:range from the in-memory index tree; range from boltdb. etcdserver: add tracing steps: agreement among raft nodes before linerized reading; authentication; filter and sort kv pairs; assemble the response.
2019-10-09 12:40:12 -07:00
Gyuho Lee
41a2cfa122
pkg/logutil: change to "MergeOutputPaths"
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-27 09:50:26 -07:00
lzhfromustc
524278c187
pkg/types: Avoid potential double lock of tsafeSet.
...
(tsafeSet).Sub and (tsafeSet).Equals can cause double lock bug if ts and other is pointing the same variable
gofmt the code and add some comments
2019-08-07 16:02:24 -07:00
Gyuho Lee
b4fcaad87d
pkg/adt: remove TODO
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-05 00:25:02 -07:00
xkey
bb7df24af4
pkg/adt: fix interval tree black-height property based on rbtree
...
Author: xkey <xk33430@ly.com>
ref. https://github.com/etcd-io/etcd/pull/10978
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-04 23:15:09 -07:00
Gyuho Lee
3b631e1bb6
pkg/adt: document textbook implementation with pseudo-code
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-01 12:58:47 -07:00
Gyuho Lee
3cc3affedd
pkg/adt: mask test failure, add TODO
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-31 22:20:59 -07:00
Gyuho Lee
46f04b3c15
pkg/adt: add "IntervalTree.Delete" failure case
...
Described in https://github.com/etcd-io/etcd/issues/10877 .
"black-height" property: Every path from a node to any descendant leaf node must have the same number of black nodes.
Expected
After deleting 11 (requires rebalancing):
[510,511]
/ \
---------- --------------------------
/ \
[383,384] [830,831]
/ \ / \
/ \ / \
[261,262](red) [410,411] [647,648] [899,900](red)
/ \ \ / \
/ \ \ / \
[82,83] [292,293] [815,816](red) [888,889] [972,973]
\ /
\ /
[238,239](red) [953,954](red)
Got
After deleting 11 (requires rebalancing):
[510,511]
/ \
---------- --------------------------
/ \
[82,83] [830,831]
\ / \
\ / \
[383,384] [647,648] [899,900]
/ \ \ / \
/ \ \ / \
[261,262] [410,411] [815,816] [888,889] [972,973]
/ \ /
/ \ /
[238,239] [292,293] [953,954]
This violates "black-height" property.
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-31 10:05:32 -07:00
Gyuho Lee
f2742d6cd4
pkg/adt: test node "11" deletion
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-31 10:05:32 -07:00
Gyuho Lee
1d638bad72
pkg/adt: README "IntervalTree.Delete" test case images
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-31 10:05:32 -07:00
Gyuho Lee
19d69d2563
pkg/adt: README initial commit
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-31 10:05:27 -07:00
Gyuho Lee
6917c495e8
pkg/adt: add "visitLevel", make "IntervalTree" interface, more tests
...
Make "IntervalTree" an interface to abstract range tree interface
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-30 15:59:59 -07:00
Martin Weindel
03fd396610
pkg/transport: Improved description of flag peer-skip-client-san-verification
2019-07-30 16:57:57 -04:00
Martin Weindel
2f476f2b5a
pkg/transport: Added test for SkipClientVerify flag.
2019-07-30 16:57:57 -04:00
Martin Weindel
1b048c91ec
etcdserver: Added configuration flag --peer-skip-client-verify=true
2019-07-30 16:57:57 -04:00
Gyuho Lee
c6e3401255
etcdserver: make raft log configured by top level logger
...
To make it consistent
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-29 15:43:19 -07:00
Gyuho Lee
e911f901a6
pkg/logutil: add log level utilities
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-29 15:43:19 -07:00
Gyuho Lee
46166ad733
vendor: update
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-24 14:09:50 -07:00
John Millikin
91472797ff
pkg: Remove stray printfs
2019-07-10 13:33:14 +09:00
John Millikin
5824421f8b
etcdman, pkg: Rename new flags to 'hostname'
2019-07-10 09:30:02 +09:00
John Millikin
9a53601a18
etcdmain, pkg: Support peer and client TLS auth based on SAN fields.
...
Etcd currently supports validating peers based on their TLS certificate's
CN field. The current best practice for creation and validation of TLS
certs is to use the Subject Alternative Name (SAN) fields instead, so that
a certificate might be issued with a unique CN and its logical
identities in the SANs.
This commit extends the peer validation logic to use Go's
`(*"crypto/x509".Certificate).ValidateHostname` function for name
validation, which allows SANs to be used for peer access control.
In addition, it allows name validation to be enabled on clients as well.
This is used when running Etcd behind an authenticating proxy, or as
an internal component in a larger system (like a Kubernetes master).
2019-07-10 09:30:02 +09:00
Gyuho Lee
1caaa9ed4a
test: test update for Go 1.12.5 and related changes
...
Update to Go 1.12.5 testing. Remove deprecated unused and gosimple
pacakges, and mask staticcheck 1006. Also, fix unconvert errors related
to unnecessary type conversions and following staticcheck errors:
- remove redundant return statements
- use for range instead of for select
- use time.Since instead of time.Now().Sub
- omit comparison to bool constant
- replace T.Fatal and T.Fatalf in tests with T.Error and T.Fatalf respectively because the goroutine calls T.Fatal must be called in the same goroutine as the test
- fix error strings that should not be capitalized
- use sort.Strings(...) instead of sort.Sort(sort.StringSlice(...))
- use he status code of Canceled instead of grpc.ErrClientConnClosing which is deprecated
- use use status.Errorf instead of grpc.Errorf which is deprecated
Related #10528 #10438
2019-06-05 17:02:05 -04:00