When monClient try to authenticate and fail with -EAGAIN there is
a possibility that we no longer hunting and not have active_con.
that will result of disconnecting the monClient and ticks will continue
without having open session.
the solution is to check at the end of auth, that we don't have -EAGAIN
error, and if we do, reopen the session and on the next tick try auth again
Fixes: https://tracker.ceph.com/issues/58379
Signed-off-by: Nitzan Mordechai <nmordech@redhat.com>
(cherry picked from commit
f8dad00f07f52d58d8ec67083e8bf568deec3277)
if (!auth_err && active_con) {
ceph_assert(auth);
_check_auth_tickets();
+ } else if (auth_err == -EAGAIN && !active_con) {
+ ldout(cct,10) << __func__
+ << " auth returned EAGAIN, reopening the session to try again"
+ << dendl;
+ _reopen_session();
}
auth_cond.notify_all();
}