From 1880cf8da239899ef27e61e46caf68eb87cfac06 Mon Sep 17 00:00:00 2001 From: Gyuho Lee Date: Thu, 21 Dec 2017 15:57:38 -0800 Subject: [PATCH] clientv3/leasing: fix racey waitSession Signed-off-by: Gyuho Lee --- clientv3/leasing/kv.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/clientv3/leasing/kv.go b/clientv3/leasing/kv.go index d44182b10..5a5e2312b 100644 --- a/clientv3/leasing/kv.go +++ b/clientv3/leasing/kv.go @@ -445,8 +445,11 @@ func (lkv *leasingKV) revokeLeaseKvs(ctx context.Context, kvs []*mvccpb.KeyValue } func (lkv *leasingKV) waitSession(ctx context.Context) error { + lkv.leases.mu.RLock() + sessionc := lkv.sessionc + lkv.leases.mu.RUnlock() select { - case <-lkv.sessionc: + case <-sessionc: return nil case <-lkv.ctx.Done(): return lkv.ctx.Err()