From: Joao Eduardo Luis Date: Wed, 20 Sep 2017 16:53:40 +0000 (+0100) Subject: mon/MgrMonitor: read cmd descs if empty on update_from_paxos() X-Git-Tag: ses5-deepsea-pr-test~8^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ff61112ba46b528cdf2519068b8f3ec79213ed91;p=ceph.git mon/MgrMonitor: read cmd descs if empty on update_from_paxos() If the MgrMonitor's `command_descs` is empty, the monitor will not send the mgr commands to clients on `get_descriptions`. This, in turn, has the clients sending the commands to the monitors, which will have no idea how to handle them. Therefore, make sure to read the `command_descs` from disk if the vector is empty. Fixes: http://tracker.ceph.com/issues/21300 Signed-off-by: Joao Eduardo Luis (cherry picked from commit 3d06079bae0fbc096d6c3639807d9be3597e841a) (cherry picked from commit 86d143722e1f16a19a56ed7a163d1dc9327c0c90) Signed-off-by: Joao Eduardo Luis (cherry picked from commit bb7ee14556c76062e68bb68c53fda851f38cc2f4) --- diff --git a/src/mon/MgrMonitor.cc b/src/mon/MgrMonitor.cc index 1d43ec90255..7d01b6c7fac 100644 --- a/src/mon/MgrMonitor.cc +++ b/src/mon/MgrMonitor.cc @@ -92,8 +92,9 @@ void MgrMonitor::update_from_paxos(bool *need_bootstrap) check_subs(); if (version == 1 - || (map.get_available() - && (!old_available || old_gid != map.get_active_gid()))) { + || command_descs.empty() + || (map.get_available() + && (!old_available || old_gid != map.get_active_gid()))) { dout(4) << "mkfs or daemon transitioned to available, loading commands" << dendl; bufferlist loaded_commands;