]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
osd/PeeringState: require SERVER_OCTOPUS to respond to RenewLease
authorNeha <nojha@redhat.com>
Fri, 14 Feb 2020 19:09:14 +0000 (19:09 +0000)
committerNeha <nojha@redhat.com>
Fri, 14 Feb 2020 19:09:14 +0000 (19:09 +0000)
To avoid sending pg_lease to pre-octopus OSDs during upgrades.

Fixes: https://tracker.ceph.com/issues/44156
Signed-off-by: Neha Ojha <nojha@redhat.com>
src/osd/PeeringState.cc
src/osd/PeeringState.h

index aa9e047c9337125748a6788e4c3c41183259e8bb..836f0d57bf9dd40f437ccebff1126d6577940c0d 100644 (file)
@@ -1201,6 +1201,16 @@ void PeeringState::proc_lease_ack(int from, const pg_lease_ack_t& a)
   }
 }
 
+void PeeringState::proc_renew_lease()
+{
+  if (!HAVE_FEATURE(upacting_features, SERVER_OCTOPUS)) {
+    return;
+  }
+  renew_lease(pl->get_mnow());
+  send_lease();
+  schedule_renew_lease();
+}
+
 void PeeringState::recalc_readable_until()
 {
   assert(is_primary());
@@ -5845,9 +5855,7 @@ boost::statechart::result PeeringState::Active::react(const AllReplicasActivated
 boost::statechart::result PeeringState::Active::react(const RenewLease& rl)
 {
   DECLARE_LOCALS;
-  ps->renew_lease(pl->get_mnow());
-  ps->send_lease();
-  ps->schedule_renew_lease();
+  ps->proc_renew_lease();
   return discard_event();
 }
 
index 327e35eeb975a03f3bd2c768197873a6af831bb2..05b015f01e6f6d206bf1d6d215819ea4b6a9c180 100644 (file)
@@ -2001,6 +2001,7 @@ public:
 
   void proc_lease(const pg_lease_t& l);
   void proc_lease_ack(int from, const pg_lease_ack_t& la);
+  void proc_renew_lease();
 
   pg_lease_ack_t get_lease_ack() {
     return pg_lease_ack_t(readable_until_ub_from_primary);