18054 Commits

Author SHA1 Message Date
Zike Yang
b77f56ac25 tests: fix the logic of testNonleaderElectionTimeoutRandomized in raft_paper_test.go
In the test `testNonleaderElectionTimeoutRandomized`, the possible values of election timeout randomized out should be 10-19(inclusive), but the current test only tests the possible values as 11-19(inclusive), which is incorrect here. We need to expand the scope of the tests to ensure robustness, and also to make the logic clearer.

Signed-off-by: Zike Yang <zike@apache.org>
2022-07-25 23:16:02 +08:00
Benjamin Wang
08f4c340eb
Merge pull request #14078 from ahrtr/checkpoint_reset
Clean up the local variable cps so that it will not continue to schedule checkpoint
2022-05-31 07:56:53 +08:00
ahrtr
1d482bfc08 Move the local variable cps into the loop so that it will not continue to schedule checkpoints after it steps down the leader 2022-05-29 05:08:41 +08:00
Benjamin Wang
ce77d83ee6
Merge pull request #14067 from ahrtr/lease_revoke
Fix the race condition between goroutine and channel on the same leases to be revoked
2022-05-29 05:04:26 +08:00
Benjamin Wang
2d6aadec24
Merge pull request #14079 from ahrtr/split_lease
Move lease related code into a separate file lease.go
2022-05-29 05:02:59 +08:00
ahrtr
6e9397d171 move lease related code into a separate file lease.go 2022-05-27 20:22:29 +08:00
ahrtr
25deb436af fix the race condition between goroutine and channel on the same leases to be revoked 2022-05-25 16:44:41 +08:00
Marek Siarkowicz
908faa44c4
Merge pull request #14069 from ahrtr/update_3.5_changelog_migrate
Update changelog-3.5 to correct the entry for decommissioning `etcdctl migrate`
2022-05-25 10:36:45 +02:00
ahrtr
42797d88ec update changelog-3.5 to correct the entry for decommissioning etcdctl migrate command 2022-05-25 05:47:40 +08:00
Benjamin Wang
c3bc4116dc
Merge pull request #14063 from ahrtr/ignore_etcd_tool_binaries
Add etcd tool binaries into .gitignore
2022-05-22 19:19:35 +08:00
ahrtr
c75bdef4d2 add etcd tool binaries into .gitignore 2022-05-21 06:58:05 +08:00
Benjamin Wang
8093fc90ab
Merge pull request #14060 from spongecaptain/patch-1
use go install instead of go get
2022-05-21 06:26:24 +08:00
Piotr Tabor
9bb134233a
Merge pull request #13878 from ptabor/20220403-applier-clean
Encapsulation of applier logic: Move Txn related code out of applier.go.
2022-05-20 18:07:51 +02:00
Sahdev Zala
1988324b12
Merge pull request #14053 from spzala/governanceupdate
Governance: Use lazy consensus when needed to make decision
2022-05-20 12:06:23 -04:00
wjjiang
534d7b4795
use go install instead of go get 2022-05-20 23:45:14 +08:00
Piotr Tabor
41ff2370e9 Remove unused code and apply code-quality suggestions. 2022-05-20 14:42:39 +02:00
Piotr Tabor
85b18c9b3e Rename WrapApply to Apply. 2022-05-20 14:32:04 +02:00
Piotr Tabor
87b80f16ca Fixing missing comment on the dispatch() function. 2022-05-20 14:32:04 +02:00
Piotr Tabor
42c6e08f22 Rename the txn, so as not to be the same as the package name. 2022-05-20 14:32:04 +02:00
Piotr Tabor
0da0cf4795 expose UberApplier as interface (not as implementation struct). 2022-05-20 14:32:04 +02:00
Piotr Tabor
5097b33ab9 Rename etcdserver/etcderrors package to etcdserver/errors. 2022-05-20 14:32:04 +02:00
Piotr Tabor
63b2f63cc1 Rename package alising "apply2" -> apply. 2022-05-20 14:32:04 +02:00
Piotr Tabor
c62f01e5fe Move CheckTxnAuth to txn. 2022-05-20 14:32:04 +02:00
Piotr Tabor
c78bf655a7 Simplify imports and improve comments. 2022-05-20 14:32:04 +02:00
Piotr Tabor
4e04770bac Apply encapsulation: Cleanup metrics reporting.
Side effect: applySec(0.4s) used to be reported as 0s, now it's correctly 0.4s.
2022-05-20 14:32:04 +02:00
Piotr Tabor
47a771871b Move apply to its own package (no dependency on etcdserver). 2022-05-20 14:32:04 +02:00
Piotr Tabor
fc6a6c3c27 Move etcdserver/errors.go to sepatate package to avoid cyclic dependencies. 2022-05-20 14:32:04 +02:00
Piotr Tabor
e2ae9b1d13 Move server/etcdserver/txn.go to new package: server/etcdserver/txn 2022-05-20 14:32:04 +02:00
Piotr Tabor
b073129d03 Applier does not depend on EtcdServer any longer.
All the depencies are explicily passed to the UberApplier factory method.
2022-05-20 14:32:04 +02:00
Piotr Tabor
651de5a057 Rename EtcdServer.Id with EtcdServer.MemberId.
It was misleading and error prone vs. ClusterId.
2022-05-20 14:32:04 +02:00
Piotr Tabor
f348134edd Marge applierV3Internal into applierV3 interface 2022-05-20 14:32:04 +02:00
Piotr Tabor
b7ad746bfe Encapsulating applier logic: UberApplier coordinates all appliers for server
This PR:
 - moves wrapping of appliers (due to Alarms) out of server.go into uber_applier.go
 - clearly devides the application logic into: chain of:
     a) 'WrapApply' (generic logic across all the methods)
     b) dispatcher (translation of Apply into specific method like 'Put')
     c) chain of 'wrappers' of the specific methods (like Put).
 - when we do recovery (restore from snapshot) we create new instance of appliers.

The purpose is to make sure we control all the depencies of the apply process, i.e.
we can supply e.g. special instance of 'backend' to the application logic.
2022-05-20 14:32:04 +02:00
Piotr Tabor
cdf9869d70 Encapsulation of applier logic: Move Txn related code out of applier.go.
The PR removes calls to applierV3base logic from server.go that is NOT part of 'application'.
The original idea was that read-only transaction and Range call shared logic with Apply,
so they can call appliers directly (but bypassing all 'corrupt', 'quota' and 'auth' wrappers).

This PR moves all the logic to a separate file (that later can become package on its own).
2022-05-20 14:32:04 +02:00
Sahdev Zala
e02ceee9f3 Governance: Use lazy consensus when needed to make decision
In lack of supermajority, we sometimes required to hold on to
important decisions for long time. In order to speed up, after
giving enough time for supermajority, use lazy consensus.
2022-05-19 11:58:22 -04:00
Marek Siarkowicz
cc5d6f7dc3
Merge pull request #14052 from ahrtr/snapshot_save_error
Fix a typo: print the correct error info
2022-05-19 09:44:42 +02:00
ahrtr
b32ac1f67b fix a typo: print the correct error info 2022-05-19 07:19:44 +08:00
Marek Siarkowicz
8e74358117
Merge pull request #14051 from serathius/detect-staged
scripts: Detect staged files before building release
2022-05-18 13:09:50 +02:00
Marek Siarkowicz
63e47656e0 scripts: Detect staged files before building release 2022-05-18 12:21:43 +02:00
Marek Siarkowicz
57515f23f7
Merge pull request #14044 from serathius/avoid-clone
scripts: Avoid additional repo clone
2022-05-18 10:17:47 +02:00
Marek Siarkowicz
08be44c7de
Merge pull request #14046 from serathius/pm-publish
Documentation: Publish v3.5 data inconsistency postmortem
2022-05-17 14:15:59 +02:00
Marek Siarkowicz
b99ba06eb3
Merge pull request #14042 from serathius/common-context
tests: Make common framework context aware
2022-05-16 16:08:53 +02:00
Marek Siarkowicz
31bcae0dcf Documentation: Publish v3.5 data inconsistency postmortem 2022-05-16 16:02:18 +02:00
Marek Siarkowicz
e737f4296c scripts: Avoid additional repo clone
This PR removes additional clone when building artifacts.

When releasing v3.5.4 this clone was main cause of issues and
confusion about what release script is doing.

release.sh script already clones repo in /tmp/ directory, so clonning
before build is not needed. As precautions for bug in script leaving
/tmp/ clone in bad state  I moved "Verify the latest commit has the
version tag" and added "Verify the clean working tree" to be always run
before build.
2022-05-16 14:37:47 +02:00
Marek Siarkowicz
ee08770bfb tests: Make common framework context aware 2022-05-16 14:35:44 +02:00
Benjamin Wang
7ec336f80c
Merge pull request #14033 from ahrtr/hide_revision
Hide the revision field when it isn't populated
2022-05-14 05:37:22 +08:00
Benjamin Wang
29f090b5c0
Merge pull request #14029 from serathius/spawn-json-command
tests: Refactor spawn json command
2022-05-14 05:06:03 +08:00
Marek Siarkowicz
bcebd1212d
Merge pull request #14038 from serathius/cluster-tc
tests: Extract cluster test cases
2022-05-13 15:39:43 +02:00
Marek Siarkowicz
83a4309f3b tests: Refactor spawn json command 2022-05-13 15:04:45 +02:00
Marek Siarkowicz
9beb29916e tests: Extract cluster test cases 2022-05-13 14:41:53 +02:00
ahrtr
beeb44d4ee hide the revision field when it isn't populated 2022-05-13 19:40:57 +08:00