ceph_assert(c);
bc::flat_map<std::pair<uint64_t, uint64_t>, buffer::list> reply_map;
bc::flat_set<std::pair<uint64_t, uint64_t>> missed_set;
- auto p = rbl.cbegin();
- decode(reply_map, p);
- decode(missed_set, p);
- asio::dispatch(asio::append(std::move(c), res, std::move(reply_map),
- std::move(missed_set)));
+ if (rbl.length() > 0) try {
+ auto p = rbl.cbegin();
+ decode(reply_map, p);
+ decode(missed_set, p);
+ } catch (const std::exception&) {
+ // Swallowing the decode error.
+ }
+ asio::dispatch(
+ asio::append(
+ std::move(c), res, std::move(reply_map), std::move(missed_set)));
}
}
};