Skip to content

Commit 0d8349e

Browse files
authored
Merge pull request #19445 from 1911860538/release35/server-lease
[3.5]: use RLock in Demoted method for read-only access to expiry
2 parents 2b9598b + 5245f6f commit 0d8349e

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

server/lease/lessor.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,12 @@ import (
2626
"time"
2727

2828
"github.com/coreos/go-semver/semver"
29+
"go.uber.org/zap"
30+
2931
pb "go.etcd.io/etcd/api/v3/etcdserverpb"
3032
"go.etcd.io/etcd/server/v3/lease/leasepb"
3133
"go.etcd.io/etcd/server/v3/mvcc/backend"
3234
"go.etcd.io/etcd/server/v3/mvcc/buckets"
33-
"go.uber.org/zap"
3435
)
3536

3637
// NoLease is a special LeaseID representing the absence of a lease.
@@ -912,8 +913,8 @@ func (l *Lease) forever() {
912913

913914
// Demoted returns true if the lease's expiry has been reset to forever.
914915
func (l *Lease) Demoted() bool {
915-
l.expiryMu.Lock()
916-
defer l.expiryMu.Unlock()
916+
l.expiryMu.RLock()
917+
defer l.expiryMu.RUnlock()
917918
return l.expiry == forever
918919
}
919920

0 commit comments

Comments
 (0)