16112 Commits

Author SHA1 Message Date
Xiang Li
e0ff5ca318
RFC Documentation: enhance description of lock and lease (#11490)
* Documentation: enhance description of lock and lease

* Documentation: an executable implementation of fencing

* docs: api guarantees

cleanup lease grammar slightly

* docs: learning/lock/README.md improve grammar

Co-Authored-By: Steven E. Harris <seh@panix.com>

* docs: learning: improve locks and leases grammar

Co-authored-by: Brandon Philips <brandon@ifup.org>
Co-authored-by: Steven E. Harris <seh@panix.com>
2020-03-05 10:31:47 -08:00
shawwang
15eeb2c4ae etcdserver: add auth revision to AuthStatus to improve observability and testability 2020-03-04 22:37:24 +08:00
shawwang
c6fce8c320 Documentation: generate *.swagger.json using latest protoc-gen-swagger 2020-03-04 22:36:13 +08:00
qupeng
6f850a65a1
raft: cleanup read index code (#11528)
Signed-off-by: qupeng <qupeng@pingcap.com>
2020-03-03 09:20:25 -08:00
tangcong
ebe256d61c auth: print warning log when error is ErrAuthOldRevision 2020-03-03 23:21:25 +08:00
Sahdev Zala
3f4f7c5a6c
Merge pull request #11669 from jingyih/update_changelog_11621
CHANGELOG: update from #11621
2020-03-02 15:53:56 -05:00
jingyih
cec9807a85 changelog: update from 11621
Also moving an previous update in changelog 3.4 to the right spot.
2020-03-02 10:11:13 -08:00
Jingyi Hu
cb633418a2
Merge pull request #11652 from tangcong/fix-auth-store-corruption-bug
auth/store: save consistentIndex to fix a data corruption bug
2020-03-01 18:40:11 +08:00
jingyih
e2ff769244 CHANGELOG: update from 11638 2020-02-29 07:33:55 -08:00
Jingyi Hu
d774916f6d
Merge pull request #11638 from jingyih/fix_etcdctl_member_list
etcdctl: fix member add (again...)
2020-02-29 23:08:33 +08:00
shawwang
f14d2a087f auth: add new metric 'etcd_debugging_auth_revision' 2020-02-29 13:31:44 +08:00
shawwang
08a8b80e32 tools/etcd-dump-db: add auth decoder, optimize print format 2020-02-29 13:31:44 +08:00
tangcong
06ad53321e *: fix auth revision corruption bug 2020-02-29 13:31:37 +08:00
Tobias Grieger
52fba431b6
Merge pull request #11046 from tbg/joint-auto-leave
raft: fix auto-transitioning out of joint config
2020-02-25 13:18:29 +01:00
Tobias Schottdorf
0544f33248 raft: clarify ApplyConfChange contract for rejected conf changes
Apps typically maintain the raft configuration as part of the state
machine. As a result, they want to be able to reject configuration change
entries at apply time based on the state on which the entry is supposed
to be applied. When this happens, the app should not call
ApplyConfChange, but the comments did not make this clear.

As a result, it was tempting to pass an empty pb.ConfChange or it's V2
version instead of not calling ApplyConfChange.

However, an empty V1 or V2 proto aren't noops when the configuration is
joint: an empty V1 change is treated internally as a single
configuration change for NodeID zero and will cause a panic when applied
in a joint state. An empty V2 proto is treated as a signal to leave a
joint state, which means that the app's config and raft's would diverge.

The comments updated in this commit now ask users to not call
ApplyConfState when they reject a conf change. Apps that never use joint
consensus can keep their old behavior since the distinction only matters
when in a joint state, but we don't want to encourage that.
2020-02-25 12:45:45 +01:00
Tobias Schottdorf
37c7e4d1d8 raft: fix auto-transitioning out of joint config
The code doing so was undertested and buggy: it would launch multiple
attempts to transition out when the conf change was not the last element
in the log.

This commit fixes the problem and adds a regression test. It also
reworks the code to handle a former untested edge case, in which the
auto-transition append is refused. This can't happen any more with the
current version of the code because this proposal has size zero and is
special cased in increaseUncommittedSize. Last but not least, the
auto-leave proposal now also bumps pendingConfIndex, which was not done
previously due to an oversight.
2020-02-25 12:35:51 +01:00
Tobias Schottdorf
2332705f10 raft: remove bogus tail end of membership change interaction test
The test was supposed to end earlier, but some old copy pasta
survived.
2020-02-25 12:35:51 +01:00
Gyuho Lee
5d7d8c09af CHANGELOG-3.4: update
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-02-24 13:42:21 -08:00
Jingyi Hu
085b19b5ea
Merge pull request #11645 from jingyih/update_changelog_11640
CHANGELOG: update from #11640 and #11644
2020-02-23 14:42:50 +08:00
jingyih
d911a2b4d1 CHANGELOG: update from 11640 and 11644 2020-02-21 23:24:11 -08:00
Sahdev Zala
8c1a820a10
Merge pull request #11640 from ereslibre/fix-learner-promotion
Fix quorum calculation when promoting a learner member
2020-02-21 12:32:32 -05:00
Tobias Grieger
8756286fe8
Merge pull request #11568 from lzhfromustc/GL_test_7_bugs
transport: simple fix in test functions to prevent goroutine leak
2020-02-20 16:54:42 +01:00
Rafael Fernández López
6991f619f2
etcdserver: fix quorum calculation when promoting a learner member
When promoting a learner member we should not count already a voting
member, but take only into account the number of existing voting
members and their current status (started, unstarted) when taking the
decision whether a learner member can be promoted.

Before this change, it was impossible to grow from a quorum N to a N+1
through promoting a learning member.

Fixes: #11633
2020-02-20 12:06:35 +01:00
EDDYCJY
d94f4cacf2 CHANGELOG-3.5: update from 11564 2020-02-19 17:19:17 +08:00
煎鱼
1cb959698a
Merge branch 'master' into update-changelog 2020-02-19 16:31:55 +08:00
EDDYCJY
b3b75c8f56 CHANGELOG-3.5: update from 11564 2020-02-19 16:29:59 +08:00
jingyih
8f5ce68adb etcdctl: fix member add command
Use members information from member add response, which is
guaranteed to be up to date.
2020-02-19 00:12:15 -08:00
Jingyi Hu
d6a3c995cf
Merge pull request #11621 from jingyih/corruption_check_tls
etcdserver: make corruption check work under peer mTLS
2020-02-18 18:55:13 +08:00
EDDYCJY
4258cdd2ef clientv3: fix grpc-go(v1.27.0) incompatible changes to balancer/resolver. 2020-02-18 18:27:53 +08:00
Jingyi Hu
f0faa5501d
Merge pull request #11630 from jingyih/check_nil_before_use_boltOpenOptions
mvcc/backend: check for nil boltOpenOptions
2020-02-15 15:25:44 +08:00
jingyih
b6ee807e93 mvcc/backend: check for nil boltOpenOptions
Check if boltOpenOptions is nil before use it.
2020-02-14 21:26:52 -08:00
Jingyi Hu
74cfe52809
Merge pull request #11628 from tedyu/rm-db-tmp
mvcc/backend: remove db.tmp without checking logger presence
2020-02-15 04:42:32 +08:00
Ted Yu
7e0e6bf497 mvcc/backend: remove db.tmp regardless of logger presence 2020-02-14 12:10:24 -08:00
jingyih
c031b27491 etcdserver: corruption check via http
During corruption check, get peer's hashKV via http call.
2020-02-14 06:03:15 -08:00
Jingyi Hu
84ace97ad7
Merge pull request #11572 from lzhfromustc/API_Fatal_4
integration/clientv3: fix 4 API misusage in test functions
2020-02-14 00:27:41 -08:00
Joe Betz
bdf69dff90
Merge pull request #11626 from jpbetz/changelog-11613-backport
changelog: Add #11613 backport to 3.2, 3.3 and 3.4 changelogs
2020-02-13 14:53:30 -08:00
Joe Betz
605f30f328
changelog: Add 11613 backport to 3.2, 3.3 and 3.4 changelogs 2020-02-13 13:03:46 -08:00
Joe Betz
8bf7b2b1b4
Merge pull request #11613 from jpbetz/fix-defrag-orphan-file
mvcc/backend: Fix corruption bug in defrag
2020-02-13 12:02:05 -08:00
Ziheng Liu
f00394e384 integration/clientv3: fix 4 API misusage in test functions 2020-02-13 13:13:18 -05:00
Joe Betz
213f7f7877
mvcc/backend: Delete orphaned db.tmp files before defrag 2020-02-12 22:40:28 -08:00
Ziheng Liu
b340dfdcbb transport: simple fix in test functions to prevent goroutine leak 2020-02-12 18:32:03 -05:00
Jingyi Hu
ca7a292790
Merge pull request #11617 from jingyih/remove_capnslog_etcd
vendor: remove capnslog
2020-02-12 13:06:57 -08:00
jingyih
09304a4d82 vendor: remove capnslog
Clean up capnslog from etcd code base. Remove its dependency.
2020-02-12 12:33:16 -08:00
Jingyi Hu
ae983523db
pkg: remove capnslog (#11616)
* pkg: remove capnslog

* CHANGELOG: function signature change
2020-02-12 11:15:41 -08:00
Jingyi Hu
bb29615359
proxy: remove capnslog (#11614)
* proxy: remove capnslog

* CHANGELOG: function signature change
2020-02-12 10:30:09 -08:00
Sahdev Zala
71e3220d36
Merge pull request #11605 from spzala/indexcasting
etcdctl: use appropriate type conversion
2020-02-12 10:08:37 -05:00
Jingyi Hu
61f279454e
etcdserver/api: remove capnslog (#11606)
* etcdserver/api/rafthttp: remove capnslog

* etcdserver/api/membership: remove capnslog

* etcdserver/api/v2auth: remove capnslog

* etcdserver/api/v2discovery: remove capnslog

* etdserver/api/v2stats: remove capnslog

* etcdserver/api/v2http: remove capnslog

* etcdserver/api/v3rpc: remove capnslog

* etcdserver/api: remove capnslog

Remove capnslog from etcdserver/api. Note that capnslog was
already removed in some packages under etcdserver/api in
previous commits.
2020-02-11 13:51:25 -08:00
Jingyi Hu
0a05f1a131
etcdmain: remove capnslog (#11612) 2020-02-11 13:45:44 -08:00
Jingyi Hu
c94782cd55
etcdserver: remove capnslog (#11611)
remove capnslog from etcdserver pkg, except etcdserver/api.
2020-02-11 08:54:14 -08:00
Sahdev Zala
a0bb739c4e
Merge pull request #11610 from mitake/authstatus
etcdserver: mark AuthStatus as no side effect request
2020-02-11 11:07:29 -05:00