When a proxy read happens, the object promotion is done in parallel. The
agent_choose_mode function must be called to reconsider the situation
to protect against the following scenario:
* proxy read
* agent_choose_mode finds no object exists and the agent
goes idle
* object promotion happens
* the agent does not reconsider and eviction does not happen
although it should
http://tracker.ceph.com/issues/12673 Fixes: #12673
Signed-off-by: Loic Dachary <ldachary@redhat.com>
(cherry picked from commit
e1f58feb9b1d20b72f2eb2eefdea5982e0cddccd)
simple_repop_submit(repop);
osd->logger->inc(l_osd_tier_promote);
+
+ assert(agent_state);
+ if (agent_state->is_idle())
+ agent_choose_mode();
}
void ReplicatedPG::cancel_copy(CopyOpRef cop, bool requeue)