in src/hbase/client/async-batch-rpc-retrying-caller.cc [188:208]
void AsyncBatchRpcRetryingCaller<REQ, RESP>::OnError(const ActionsByRegion &actions_by_region,
int32_t tries,
const folly::exception_wrapper &ew,
std::shared_ptr<ServerName> server_name) {
std::vector<std::shared_ptr<Action>> copied_actions;
std::vector<std::shared_ptr<RegionRequest>> region_requests;
for (const auto &action_by_region : actions_by_region) {
region_requests.push_back(action_by_region.second);
for (const auto &action : action_by_region.second->actions()) {
copied_actions.push_back(action);
}
}
LogException(tries, region_requests, ew, server_name);
if ((tries >= max_attempts_) || !ExceptionUtil::ShouldRetry(ew)) {
FailAll(copied_actions, tries, ew, server_name);
return;
}
AddError(copied_actions, ew, server_name);
TryResubmit(copied_actions, tries);
}