From f6d0dda1871e0e5fd075eb6c2db0e9d9f5f75478 Mon Sep 17 00:00:00 2001 From: Anthony Romano Date: Wed, 3 May 2017 13:22:45 -0700 Subject: [PATCH] clientv3/integration: drain keepalives before waiting for leader loss 500ms keepalive delay on proxy side causes client to sometimes send a second keepalive since it waits more than 500ms for the first response. Fixes #7658 --- clientv3/integration/lease_test.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/clientv3/integration/lease_test.go b/clientv3/integration/lease_test.go index a0c411826..ef176fddf 100644 --- a/clientv3/integration/lease_test.go +++ b/clientv3/integration/lease_test.go @@ -729,6 +729,12 @@ func TestLeaseWithRequireLeader(t *testing.T) { } clus.Members[1].Stop(t) + // kaReqLeader may issue multiple requests while waiting for the first + // response from proxy server; drain any stray keepalive responses + time.Sleep(100 * time.Millisecond) + for len(kaReqLeader) > 0 { + <-kaReqLeader + } select { case resp, ok := <-kaReqLeader: