ShardedOmapCRManager is spawning coroutines that sleep. if we don't
finish them before trying to drain_all(), they'll lead to deadlock
Fixes: http://tracker.ceph.com/issues/17571
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit
2c66e9b7fad4eec017cecc6bd6005522cc0fb264)
}
if (get_ret_status() < 0) {
ldout(cct, 0) << "ERROR: failed to fetch metadata sections" << dendl;
+ yield entries_index->finish();
yield lease_cr->go_down();
drain_all();
return set_cr_error(get_ret_status());
}
if (get_ret_status() < 0) {
ldout(cct, 0) << "ERROR: failed to fetch metadata section: " << *sections_iter << dendl;
+ yield entries_index->finish();
yield lease_cr->go_down();
drain_all();
return set_cr_error(get_ret_status());