Commit Graph

18157 Commits

Author SHA1 Message Date
50d93ebea1 Merge pull request #14088 from ahrtr/3.5_changelog_revoke_lease_race
Update 3.5 changelog to cover the two bug fixes related to leases revoke and checkpoint
2022-06-07 11:32:05 +02:00
800d3ec3ca update 3.5 changelog to cover the two bug fix related to leases revoke and checkpoint 2022-06-04 14:12:57 +08:00
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
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
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
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
6e9397d171 move lease related code into a separate file lease.go 2022-05-27 20:22:29 +08:00
25deb436af fix the race condition between goroutine and channel on the same leases to be revoked 2022-05-25 16:44:41 +08:00
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
42797d88ec update changelog-3.5 to correct the entry for decommissioning etcdctl migrate command 2022-05-25 05:47:40 +08:00
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
c75bdef4d2 add etcd tool binaries into .gitignore 2022-05-21 06:58:05 +08:00
8093fc90ab Merge pull request #14060 from spongecaptain/patch-1
use go install instead of go get
2022-05-21 06:26:24 +08:00
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
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
534d7b4795 use go install instead of go get 2022-05-20 23:45:14 +08:00
41ff2370e9 Remove unused code and apply code-quality suggestions. 2022-05-20 14:42:39 +02:00
85b18c9b3e Rename WrapApply to Apply. 2022-05-20 14:32:04 +02:00
87b80f16ca Fixing missing comment on the dispatch() function. 2022-05-20 14:32:04 +02:00
42c6e08f22 Rename the txn, so as not to be the same as the package name. 2022-05-20 14:32:04 +02:00
0da0cf4795 expose UberApplier as interface (not as implementation struct). 2022-05-20 14:32:04 +02:00
5097b33ab9 Rename etcdserver/etcderrors package to etcdserver/errors. 2022-05-20 14:32:04 +02:00
63b2f63cc1 Rename package alising "apply2" -> apply. 2022-05-20 14:32:04 +02:00
c62f01e5fe Move CheckTxnAuth to txn. 2022-05-20 14:32:04 +02:00
c78bf655a7 Simplify imports and improve comments. 2022-05-20 14:32:04 +02:00
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
47a771871b Move apply to its own package (no dependency on etcdserver). 2022-05-20 14:32:04 +02:00
fc6a6c3c27 Move etcdserver/errors.go to sepatate package to avoid cyclic dependencies. 2022-05-20 14:32:04 +02:00
e2ae9b1d13 Move server/etcdserver/txn.go to new package: server/etcdserver/txn 2022-05-20 14:32:04 +02:00
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
651de5a057 Rename EtcdServer.Id with EtcdServer.MemberId.
It was misleading and error prone vs. ClusterId.
2022-05-20 14:32:04 +02:00
f348134edd Marge applierV3Internal into applierV3 interface 2022-05-20 14:32:04 +02:00
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
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
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
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
b32ac1f67b fix a typo: print the correct error info 2022-05-19 07:19:44 +08:00
8e74358117 Merge pull request #14051 from serathius/detect-staged
scripts: Detect staged files before building release
2022-05-18 13:09:50 +02:00
63e47656e0 scripts: Detect staged files before building release 2022-05-18 12:21:43 +02:00
57515f23f7 Merge pull request #14044 from serathius/avoid-clone
scripts: Avoid additional repo clone
2022-05-18 10:17:47 +02:00
08be44c7de Merge pull request #14046 from serathius/pm-publish
Documentation: Publish v3.5 data inconsistency postmortem
2022-05-17 14:15:59 +02:00
657a197bfa add range flag for delete in etcdctl 2022-05-17 11:17:42 +08:00
b99ba06eb3 Merge pull request #14042 from serathius/common-context
tests: Make common framework context aware
2022-05-16 16:08:53 +02:00
31bcae0dcf Documentation: Publish v3.5 data inconsistency postmortem 2022-05-16 16:02:18 +02:00
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
ee08770bfb tests: Make common framework context aware 2022-05-16 14:35:44 +02:00
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
29f090b5c0 Merge pull request #14029 from serathius/spawn-json-command
tests: Refactor spawn json command
2022-05-14 05:06:03 +08:00
bcebd1212d Merge pull request #14038 from serathius/cluster-tc
tests: Extract cluster test cases
2022-05-13 15:39:43 +02:00
83a4309f3b tests: Refactor spawn json command 2022-05-13 15:04:45 +02:00