When implementing the fix for progress notifications
(https://github.com/etcd-io/etcd/pull/15237) we made a incorrect
assumption that that unsynched watches will always get at least one event.
Unsynched watches include not only slow watchers, but also newly created
watches that requested current or older revision. In case that non of the events
match watch filter, those newly created watches might become synched
without any event going through.
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
Backport of PR #16822, commits f7e488dc9262685d6624755e0d3bb0a655863248,
67f17166bf2ba337dafb8e0ea8eea5f74a990767,
and f7ff898fd6c2d6dbb54278343073aa4fa5f46a03.
Co-authored-by: Benjamin Wang <benjamin.wang@broadcom.com>
Signed-off-by: Ivan Valdes <ivan@vald.es>
Finish backporting the remaining functions from the original backport
from PR #15620.
Backport of commit 65add8cec44b32682e59d2596a592038bac90dcd.
Co-authored-by: Marek Siarkowicz <siarkowicz@google.com>
Signed-off-by: Ivan Valdes <ivan@vald.es>
Fixes the incorrect backport of WaitLeader, as spawnJsonCmd receives an
expected output string as an argument, which wasn't provided in the
first backport implementation.
Original backport of commit 371179e29208f690477c85fc552e7c824a66f87e from
PR #17398.
Signed-off-by: Ivan Valdes <ivan@vald.es>
Add Etcdctl function to etcdProcess interface, and implement it in
etcdServerProcess, which is used by WaitMembersForLeader.
Define Etcdctl's Status function, that is used by WaitMembersForLeader
too.
Signed-off-by: Ivan Valdes <ivan@vald.es>
This is the minimal set of package updates I get after:
taking packages from release-3.5 with golang.org/x/crypto@v0.17.0
slowly downgrading package by package to get minimal changes
running make to make sure other dependencies don't change
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
Assume #16916 as baseline. The E2E takes `1395.082s`.
* https://github.com/etcd-io/etcd/pull/16988
It introduced `TestAuthority` which takes `18.39s`.
And after https://github.com/etcd-io/etcd/pull/16997, it takes `50.05s`.
* https://github.com/etcd-io/etcd/pull/16995
It introduced `TestInPlaceRecovery` which takes `17.37s`.
* https://github.com/etcd-io/etcd/pull/17144
- New `TestHTTPHealthHandler` takes `29.9s`
- New `TestHTTPLivezReadyzHandler` takes `35.20s`
* https://github.com/etcd-io/etcd/pull/17173
- New `TestMemberReplace` takes `7.55s`.
Ideally, it should increase `140.07s`. It's not larger than `1800s`
timeout value.
However, we run E2E cases 3 times. By default, we run E2E cases with
`-cpu 1,2,4`. That means that we run 3 times.
`1395.082s` + `140.07s * 3` = `1815.292s` > `1800s`
```bash
$ go help testflag
-count n
Run each test, benchmark, and fuzz seed n times (default 1).
If -cpu is set, run n times for each GOMAXPROCS value.
Examples are always run once. -count does not apply to
fuzz tests matched by -fuzz.
```
I don't think we should run E2E with different GOMAXPROCS value. All the
`TestXYZ` are used to control etcd process and we don't set GOMAXPROCS
env to etcd process.
Set `CPU=4` to align with main and release/3.5.
Closes: #17241
Signed-off-by: Wei Fu <fuweid89@gmail.com>