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