if (invalidate_stats)
{
+ epoch_t max_last_epoch_started;
+ eversion_t min_last_update_acceptable;
+ map<pg_shard_t, pg_info_t> all_info(peer_info.begin(), peer_info.end());
+ all_info[pg_whoami] = info;
+ calculate_maxles_and_minlua(all_info,
+ max_last_epoch_started,
+ min_last_update_acceptable);
for (const auto& [shard, my_info] : peer_info)
{
- if (invalidate_stats && stats_last_update[shard] == olog.head)
+ if (invalidate_stats && stats_last_update[shard] == olog.head &&
+ my_info.last_update >= min_last_update_acceptable &&
+ my_info.last_epoch_started >= max_last_epoch_started)
{
oinfo.stats = my_info.stats;
invalidate_stats = false;