Skip to content

Commit de0ecf3

Browse files
committed
ClientV3: Add integration test for server timeout
Partially Fixes etcd-io#8645
1 parent 01afcf1 commit de0ecf3

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

.words

+1
Original file line numberDiff line numberDiff line change
@@ -104,3 +104,4 @@ PermitWithoutStream
104104
__lostleader
105105
ErrConnClosing
106106
unfreed
107+
ServerParameters

clientv3/integration/black_hole_test.go

+10-9
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,16 @@ func TestServerGRPCKeepAliveTimeout(t *testing.T) {
3939
defer testutil.AfterTest(t)
4040

4141
clus := integration.NewClusterV3(t, &integration.ClusterConfig{
42-
Size: 2,
43-
GRPCKeepAliveInterval: 2 * time.Second,
44-
GRPCKeepAliveTimeout: 1 * time.Second,
42+
Size: 1,
43+
GRPCKeepAliveInterval: 1 * time.Second,
44+
GRPCKeepAliveTimeout: 500 * time.Millisecond,
4545
})
4646
defer clus.Terminate(t)
4747

4848
eps := []string{clus.Members[0].GRPCAddr()}
4949
ccfg := clientv3.Config{
50-
Endpoints: []string{eps[0]},
50+
Endpoints: []string{eps[0]},
51+
DialTimeout: 10 * time.Second,
5152
}
5253
cli, err := clientv3.New(ccfg)
5354
if err != nil {
@@ -58,17 +59,17 @@ func TestServerGRPCKeepAliveTimeout(t *testing.T) {
5859
// give keepalive some time
5960
time.Sleep(4 * time.Second)
6061

61-
if _, err = clus.Client(1).Put(context.TODO(), "foo", "bar"); err != nil {
62+
if _, err = cli.Put(context.TODO(), "foo", "bar"); err != nil {
6263
t.Fatal(err)
6364
}
6465
// TODO: keepalive sometimes doesn't work on first attempt.
6566
for i := 0; i < 5; i++ {
66-
clus.Members[1].Blackhole()
67-
time.Sleep(10 * time.Second)
67+
clus.Members[0].Blackhole()
68+
time.Sleep(8 * time.Second)
6869
// remove blackhole but by now the keepalive ping should have triggered server to
6970
// close server-to-client connection.
70-
clus.Members[1].Unblackhole()
71-
_, err = clus.Client(1).Put(context.TODO(), "foo1", "bar1")
71+
clus.Members[0].Unblackhole()
72+
_, err = cli.Put(context.TODO(), "foo1", "bar1")
7273
if err != nil {
7374
ev, ok := status.FromError(err)
7475
if !ok {

0 commit comments

Comments
 (0)