From cb249ccf927a2201144f5d697aef17d2269a0c8f Mon Sep 17 00:00:00 2001 From: Benjamin Wang Date: Mon, 13 Jun 2022 17:09:56 +0800 Subject: [PATCH] Enable v3 renew only when clusterVersion >= 3.6 The v3 renew isn't implemented at all on 3.5, so it can only be enabled when the cluster version >= 3.6. --- server/etcdserver/v3_server.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/server/etcdserver/v3_server.go b/server/etcdserver/v3_server.go index 6688d51e6da9..63d8ea2977c8 100644 --- a/server/etcdserver/v3_server.go +++ b/server/etcdserver/v3_server.go @@ -276,7 +276,10 @@ func (s *EtcdServer) LeaseRevoke(ctx context.Context, r *pb.LeaseRevokeRequest) } func (s *EtcdServer) LeaseRenew(ctx context.Context, r *pb.LeaseKeepAliveRequest) (*pb.LeaseKeepAliveResponse, error) { - if s.Cfg.ExperimentalEnableLeaseV2Renew { + cv := s.ClusterVersion() + // The v3 renew isn't implemented at all on 3.5, so the v3 renew can only + // be used when clusterVersion >= 3.6. + if s.Cfg.ExperimentalEnableLeaseV2Renew || cv == nil || version.LessThan(*cv, version.V3_6) { resp := &pb.LeaseKeepAliveResponse{ID: r.ID, Header: s.newHeader()} var err error