19153 Commits

Author SHA1 Message Date
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
Kun Zhang
657a197bfa add range flag for delete in etcdctl 2022-05-17 11:17:42 +08: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
Benjamin Wang
29d30ab7b0
Merge pull request #14034 from ahrtr/remove_httpproxy
Remove v2 http proxy
2022-05-13 18:09:50 +08:00
ahrtr
1e6163ba27 remove v2 http proxy in 3.6 2022-05-13 17:44:58 +08:00
Benjamin Wang
153824be58
Merge pull request #14032 from caproven/close_director_goroutine
server: Director can be stopped
2022-05-13 17:43:32 +08:00
Piotr Tabor
30daf4e3c9
Merge pull request #14036 from ahrtr/add_assert
Provide a generic assert function
2022-05-13 11:38:33 +02:00