From: Dan van der Ster Date: Tue, 13 Oct 2020 07:08:12 +0000 (+0200) Subject: mds: account for closing sessions in hit_session X-Git-Tag: v15.2.8~5^2~1^2~5^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=548e0330e35a73b74db9a6bacb609840518fac3c;p=ceph.git mds: account for closing sessions in hit_session While stopping an mds we can reply to a request while all client sessions are closing. We shouldn't assert in this case. Fixes: https://tracker.ceph.com/issues/47833 Signed-off-by: Dan van der Ster (cherry picked from commit 6823d8fb619c07b4e749ae564df565eadc59c187) --- diff --git a/src/mds/SessionMap.cc b/src/mds/SessionMap.cc index 317e04ef1d25..1910f04f061a 100644 --- a/src/mds/SessionMap.cc +++ b/src/mds/SessionMap.cc @@ -1017,7 +1017,8 @@ int Session::check_access(CInode *in, unsigned mask, // track total and per session load void SessionMap::hit_session(Session *session) { uint64_t sessions = get_session_count_in_state(Session::STATE_OPEN) + - get_session_count_in_state(Session::STATE_STALE); + get_session_count_in_state(Session::STATE_STALE) + + get_session_count_in_state(Session::STATE_CLOSING); ceph_assert(sessions != 0); double total_load = total_load_avg.hit();