@@ -214,6 +214,7 @@ sc::result Session::react(const IntervalChanged&)
214214 DECLARE_LOCALS; // 'scrbr' & 'pg_id' aliases
215215 dout (10 ) << " Session::react(const IntervalChanged&)" << dendl;
216216
217+ ceph_assert (m_reservations);
217218 m_reservations->discard_remote_reservations ();
218219 return transit<NotActive>();
219220}
@@ -267,7 +268,9 @@ sc::result ReservingReplicas::react(const ReplicaGrant& ev)
267268 dout (10 ) << " ReservingReplicas::react(const ReplicaGrant&)" << dendl;
268269 const auto & m = ev.m_op ->get_req <MOSDScrubReserve>();
269270
270- if (context<Session>().m_reservations ->handle_reserve_grant (*m, ev.m_from )) {
271+ auto & session = context<Session>();
272+ ceph_assert (session.m_reservations );
273+ if (session.m_reservations ->handle_reserve_grant (*m, ev.m_from )) {
271274 // we are done with the reservation process
272275 return transit<ActiveScrubbing>();
273276 }
@@ -279,6 +282,7 @@ sc::result ReservingReplicas::react(const ReplicaReject& ev)
279282 DECLARE_LOCALS; // 'scrbr' & 'pg_id' aliases
280283 auto & session = context<Session>();
281284 dout (10 ) << " ReservingReplicas::react(const ReplicaReject&)" << dendl;
285+ ceph_assert (session.m_reservations );
282286 const auto m = ev.m_op ->get_req <MOSDScrubReserve>();
283287
284288 // Verify that the message is from the replica we were expecting a reply from,
@@ -306,6 +310,8 @@ sc::result ReservingReplicas::react(const ReservationTimeout&)
306310 DECLARE_LOCALS; // 'scrbr' & 'pg_id' aliases
307311 auto & session = context<Session>();
308312 dout (10 ) << " ReservingReplicas::react(const ReservationTimeout&)" << dendl;
313+ ceph_assert (session.m_reservations );
314+
309315 session.m_reservations ->log_failure_and_duration (scrbcnt_resrv_timed_out);
310316
311317 const auto msg = fmt::format (
0 commit comments