Skip to content

Commit 9fba81a

Browse files
tjungblukafuu-chino
authored andcommitted
Add ErrTimeoutDueToLeaderFail as expected error
This fixes ci flakes where timeouts are expected to happen in network partitions. issue: #14333 Signed-off-by: Thomas Jungblut <[email protected]>
1 parent 82bf79d commit 9fba81a

1 file changed

Lines changed: 9 additions & 4 deletions

File tree

tests/integration/clientv3/connectivity/network_partition_test.go

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,18 @@ import (
3333

3434
var errExpected = errors.New("expected error")
3535

36+
func isErrorExpected(err error) bool {
37+
return clientv3test.IsClientTimeout(err) || clientv3test.IsServerCtxTimeout(err) ||
38+
err == rpctypes.ErrTimeout || err == rpctypes.ErrTimeoutDueToLeaderFail
39+
}
40+
3641
// TestBalancerUnderNetworkPartitionPut tests when one member becomes isolated,
3742
// first Put request fails, and following retry succeeds with client balancer
3843
// switching to others.
3944
func TestBalancerUnderNetworkPartitionPut(t *testing.T) {
4045
testBalancerUnderNetworkPartition(t, func(cli *clientv3.Client, ctx context.Context) error {
4146
_, err := cli.Put(ctx, "a", "b")
42-
if clientv3test.IsClientTimeout(err) || clientv3test.IsServerCtxTimeout(err) || err == rpctypes.ErrTimeout {
47+
if isErrorExpected(err) {
4348
return errExpected
4449
}
4550
return err
@@ -49,7 +54,7 @@ func TestBalancerUnderNetworkPartitionPut(t *testing.T) {
4954
func TestBalancerUnderNetworkPartitionDelete(t *testing.T) {
5055
testBalancerUnderNetworkPartition(t, func(cli *clientv3.Client, ctx context.Context) error {
5156
_, err := cli.Delete(ctx, "a")
52-
if clientv3test.IsClientTimeout(err) || clientv3test.IsServerCtxTimeout(err) || err == rpctypes.ErrTimeout {
57+
if isErrorExpected(err) {
5358
return errExpected
5459
}
5560
return err
@@ -62,7 +67,7 @@ func TestBalancerUnderNetworkPartitionTxn(t *testing.T) {
6267
If(clientv3.Compare(clientv3.Version("foo"), "=", 0)).
6368
Then(clientv3.OpPut("foo", "bar")).
6469
Else(clientv3.OpPut("foo", "baz")).Commit()
65-
if clientv3test.IsClientTimeout(err) || clientv3test.IsServerCtxTimeout(err) || err == rpctypes.ErrTimeout {
70+
if isErrorExpected(err) {
6671
return errExpected
6772
}
6873
return err
@@ -75,7 +80,7 @@ func TestBalancerUnderNetworkPartitionTxn(t *testing.T) {
7580
func TestBalancerUnderNetworkPartitionLinearizableGetWithLongTimeout(t *testing.T) {
7681
testBalancerUnderNetworkPartition(t, func(cli *clientv3.Client, ctx context.Context) error {
7782
_, err := cli.Get(ctx, "a")
78-
if clientv3test.IsClientTimeout(err) || clientv3test.IsServerCtxTimeout(err) || err == rpctypes.ErrTimeout {
83+
if isErrorExpected(err) {
7984
return errExpected
8085
}
8186
return err

0 commit comments

Comments
 (0)