There is no point sending resolves while there are still failed nodes,
since we can't complete. We also trigger an assert if we try to send to
a failed node. Instead just wait until failed.empty() and then start.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
if (oldresolve != resolve) {
dout(10) << " resolve set is " << resolve << ", was " << oldresolve << dendl;
calc_recovery_set();
- mdcache->send_resolves();
+ if (!mdsmap->is_any_failed())
+ mdcache->send_resolves();
}
}
get_num_mds(STATE_REJOIN) +
failed.size();
}
+ bool is_any_failed() {
+ return failed.size();
+ }
bool is_rejoining() {
// nodes are rejoining cache state
return