Commit Graph

15463 Commits

Author SHA1 Message Date
a6c792dfce CHANGELOG: add etcd_mvcc_db_open_read_transactions 2019-08-13 15:34:35 -07:00
170861c5c9 Merge pull request #11029 from gyuho/grpc
vendor: upgrade grpc-go to 1.23.0
2019-08-13 14:44:07 -07:00
daa104093f Merge pull request #11030 from jingyih/update_changelog_from_pr10523
CHANGELOG-3.4: update from 10523
2019-08-13 14:28:19 -07:00
578ff0d416 CHANGELOG-3.4: update from 10523 2019-08-13 14:18:00 -07:00
4e3c2e0a3a vendor: update "net/http2" to latest
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-13 13:35:50 -07:00
02b2779814 vendor: upgrade grpc-go to 1.23.0
https://github.com/grpc/grpc-go/releases/tag/v1.23.0

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-13 12:57:14 -07:00
c0161f7e7d *: use Go 1.12.8
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-13 12:45:12 -07:00
fdbaf3ea9c Merge pull request #11025 from gyuho/ccc
clientv3: use Endpoints(), fix context creation
2019-08-13 11:17:43 -07:00
97fd40c587 clientv3: use Endpoints(), fix context creation
If overwritten, the previous context should be canceled first.

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-12 21:39:50 -07:00
8d823e70dd Merge pull request #11018 from gyuho/yq
scripts/release: update "yq" command
2019-08-12 11:03:37 -07:00
dd0ed3f05e CHANGELOG-3.4: add "code changes" from 3.3
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-12 10:23:33 -07:00
c72fa51b2a scripts: remove ".aci" commands
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-12 10:20:21 -07:00
af38185f92 scripts/release: fix version check commands
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-12 10:20:13 -07:00
ac613c481f scripts: fix build docker commands, add more logging
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-12 10:20:05 -07:00
7299a6a106 *: remove "acbuild"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-12 09:31:22 -07:00
1f4f8ae731 scripts/release: update "yq" command
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-12 09:26:04 -07:00
65e226ad92 Merge pull request #11017 from ethan-daocloud/patch-2
cleanup: correct summary message in put.go
2019-08-12 10:20:51 -04:00
b5ee1de076 cleanup: correct summary message in put.go 2019-08-12 21:13:58 +08:00
029401ab81 Merge pull request #11005 from tbg/interactiontest
raft/rafttest: introduce datadriven testing
2019-08-12 11:52:52 +02:00
e8090e57a2 raft/rafttest: introduce datadriven testing
It has often been tedious to test the interactions between multi-member
Raft groups, especially when many steps were required to reach a certain
scenario. Often, this boilerplate was as boring as it is hard to write
and hard to maintain, making it attractive to resort to shortcuts
whenever possible, which in turn tended to undercut how meaningful and
maintainable the tests ended up being - that is, if the tests were even
written, which sometimes they weren't.

This change introduces a datadriven framework specifically for testing
deterministically the interaction between multiple members of a raft group
with the goal of reducing the friction for writing these tests to near
zero.

In the near term, this will be used to add thorough testing for joint
consensus (which is already available today, but wildly undertested),
but just converting an existing test into this framework has shown that
the concise representation and built-in inspection of log messages
highlights unexpected behavior much more readily than the previous unit
tests did (the test in question is `snapshot_succeed_via_app_resp`; the
reader is invited to compare the old and new version of it).

The main building block is `InteractionEnv`, which holds on to the state
of the whole system and exposes various relevant methods for
manipulating it, including but not limited to adding nodes, delivering
and dropping messages, and proposing configuration changes. All of this
is extensible so that in the future I hope to use it to explore the
phenomena discussed in

https://github.com/etcd-io/etcd/issues/7625#issuecomment-488798263

which requires injecting appropriate "crash points" in the Ready
handling loop. Discussions of the "what if X happened in state Y"
can quickly be made concrete by "scripting up an interaction test".

Additionally, this framework is intentionally not kept internal to the
raft package.. Though this is in its infancy, a goal is that it should
be possible for a suite of interaction tests to allow applications to
validate that their Storage implementation behaves accordingly, simply
by running a raft-provided interaction suite against their Storage.
2019-08-12 11:13:51 +02:00
56ad881b1b Merge pull request #11015 from gyuho/typo
raft: fix typo
2019-08-10 17:26:29 +02:00
8e2225b4f1 Merge pull request #11016 from ethan-daocloud/patch-1
etcd-dump-logs: correct logging message word
2019-08-10 04:56:50 -07:00
867b31e01a etcd-dump-logs: correct logging message word
Signed-off-by: Guangming Wang <guangming.wang@daocloud.io>
2019-08-10 17:01:57 +08:00
6c87b21821 raft: fix typo
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-09 21:26:48 -07:00
f57c16c271 vendor: bump datadriven
Picks up some fixes for papercuts.
2019-08-10 00:02:59 +02:00
4a4629fd9f Merge pull request #10957 from Hanaasagi/fix-metric-name-typo
test: fix metric name typo
2019-08-09 13:23:26 -07:00
5e90267d1b CHANGELOG: update 3.3 + 3.4 with raft changes
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-09 11:32:10 -07:00
4cec8dddc6 Merge pull request #11003 from tbg/interaction/restore
raft: fix restoring joint configurations
2019-08-09 20:13:04 +02:00
84c69cca76 Merge pull request #10970 from nilsocket/minorFix1
raft : remove unnecessary, if check
2019-08-09 11:03:01 -07:00
37ab5bdd21 raft: fix restoring joint configurations
While writing interaction tests for joint configuration changes, I
realized that this wasn't working yet - restoring had no notion of
the joint configuration and was simply dropping it on the floor.

This commit introduces a helper `confchange.Restore` which takes
a `ConfState` and initializes a `Tracker` from it.

This is then used both in `(*raft).restore` as well as in `newRaft`.
2019-08-09 19:28:43 +02:00
a5f785a232 confchange: clean up unnecessary block 2019-08-09 19:28:43 +02:00
7948f39790 Merge pull request #11004 from tbg/interaction/unused-type
raft/tracker: visit Progress in stable order
2019-08-09 12:32:04 +02:00
5ce1856cce Merge pull request #11010 from etcd-io/wenjiaswe-patch-1
functional: Update functional test README.md
2019-08-08 20:57:26 -07:00
ab9e3d9829 functional: Update functional test README.md 2019-08-08 18:40:15 -07:00
0b2b25e1c1 CHANGELOG: update metrics
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-08 15:08:10 -07:00
046c705f97 Merge pull request #11009 from gyuho/snapshot
*: add inflight snapshot metrics
2019-08-08 13:56:14 -07:00
06b82c200f etcdserver: add "etcd_server_snapshot_apply_inflights_total"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-08 13:33:52 -07:00
a4badc33a3 integration: test snapshot inflights metrics
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-08 13:33:52 -07:00
46bddacacb etcdserver/api: add "etcd_network_snapshot_send_inflights_total", "etcd_network_snapshot_receive_inflights_total"
Useful for deciding when to terminate the unhealthy follower.
If the follower is receiving a leader snapshot, operator may wait.

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-08 13:33:48 -07:00
43ce2eefaa Merge pull request #10995 from yuzeming/patch-3
agent: fix data race and deadlock
2019-08-08 12:22:20 -07:00
c762a3d7f7 agent: fix a data race and deadlock
add 1-size buffer for `errc`  to avoid deadlock of child goroutine
add a local variable to a void data race in `err`
when `case <-stream.Context().Done():` is taken
2019-08-08 11:05:30 -07:00
e745649cce Merge pull request #10960 from spzala/readmesec
README: update security reference
2019-08-08 13:31:33 -04:00
c4b8ec5369 CHANGELOG: update links, raft updates
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-08 09:20:16 -07:00
bfcd590f05 Merge pull request #11000 from retroflexer/doc-fix-broken-links
doc: Fix broken links referring to readthedocs.io
2019-08-08 09:12:39 -07:00
1c65af7acf Merge pull request #11006 from gyuho/functional
functiona: fix flaky tests
2019-08-08 09:08:23 -07:00
72e00cea3a functional/agent: copy file, instead of renaming
To retain failure logs in CI testing.

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-08 08:12:05 -07:00
d1c7be24b0 functional/rpcpb: make client log less verbose
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-08 08:06:48 -07:00
0926a434b7 functional.yaml: try lower snapshot count for flaky tests, error threshold
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-08 08:06:48 -07:00
a41bd303ec Merge pull request #10998 from tbg/learners-vote
raft: let learners vote
2019-08-08 11:26:17 +02:00
1b3e0821a7 raft/tracker: visit Progress in stable order
This is helpful for upcoming testing work which allows datadriven
testing of the interaction of multiple nodes. This testing requires
determinism to work correctly.
2019-08-08 09:37:33 +02:00