Browse Source

Merge pull request #9061 from gyuho/race-leasing

clientv3/leasing: fix racey waitSession
Gyuho Lee 8 years ago
parent
commit
9ed3437075
1 changed files with 4 additions and 1 deletions
  1. 4 1
      clientv3/leasing/kv.go

+ 4 - 1
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()