From a5ba6195e006b2453f4f921c4a5b48f13170c18a Mon Sep 17 00:00:00 2001 From: ahrtr Date: Sat, 12 Feb 2022 08:13:48 +0800 Subject: [PATCH] support linearizable renew lease --- server/etcdserver/v3_server.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/server/etcdserver/v3_server.go b/server/etcdserver/v3_server.go index 9885fc01c031..b74b07df85ff 100644 --- a/server/etcdserver/v3_server.go +++ b/server/etcdserver/v3_server.go @@ -279,6 +279,12 @@ func (s *EtcdServer) LeaseRevoke(ctx context.Context, r *pb.LeaseRevokeRequest) } func (s *EtcdServer) LeaseRenew(ctx context.Context, id lease.LeaseID) (int64, error) { + if s.isLeader() { + if err := s.LinearizableReadNotify(ctx); err != nil { + return 0, err + } + } + ttl, err := s.lessor.Renew(id) if err == nil { // already requested to primary lessor(leader) return ttl, nil