forked from vitalif/vitastor
Fix non-preserved real_pg_count leading to inability to change pools online
parent
1018764c91
commit
322a38a144
|
@ -407,6 +407,7 @@ void etcd_state_client_t::parse_state(const std::string & key, const json11::Jso
|
|||
if (pc.pg_stripe_size < min_stripe_size)
|
||||
pc.pg_stripe_size = min_stripe_size;
|
||||
// Save
|
||||
pc.real_pg_count = this->pool_config[pool_id].real_pg_count;
|
||||
std::swap(pc.pg_config, this->pool_config[pool_id].pg_config);
|
||||
std::swap(this->pool_config[pool_id], pc);
|
||||
auto & parsed_cfg = this->pool_config[pool_id];
|
||||
|
|
|
@ -494,7 +494,11 @@ void osd_t::apply_pg_count()
|
|||
}
|
||||
if (still_active > 0)
|
||||
{
|
||||
printf("[OSD %lu] PG count change detected, but %d PG(s) are still active. This is not allowed. Exiting\n", this->osd_num, still_active);
|
||||
printf(
|
||||
"[OSD %lu] PG count change detected for pool %u (new is %lu, old is %u),"
|
||||
" but %u PG(s) are still active. This is not allowed. Exiting\n",
|
||||
this->osd_num, pool_item.first, pool_item.second.real_pg_count, pg_counts[pool_item.first], still_active
|
||||
);
|
||||
force_stop(1);
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue