The crush/builder.c crush_add_bucket method resizes the max_buckets array
but a power of 2 when it has to expand, but the code in CrushWrapper was
assuming that if the array grew the pos for the new bucket would be the
last position in the new array. This led to a situation where the
crush_choose_arg_map args array size didn't match max_buckets, and
eventually caused a crash.
Fixes: http://tracker.ceph.com/issues/38664
Signed-off-by: Sage Weil <sage@redhat.com>
If the source or target PG version is 0'0, we may silently take the max
of the source and target and still leave the PG complete. This
specifically can happen with an empty PG, as seen with bug 38655. In
theory we could encounter one of the PGs with some other last_update
that doesn't match what we expect. If that ever happens, make sure the
result is incomplete so that backfill can clean up.
Additionally check that the pool metadata for the last merge matches the
PGs at all. This could mismatch if we have an osdmap gap and are forced
to do some merge without merge info at all... in which case we should
definitely invalidate: there should be newer copies of the PG(s), and we
have no idea whether the PGs we are merging are what we want. If this is
some disaster recovery situation, an operator is always free to use
ceph-objectstore-tool to re-mark a PG complete (at their own peril!).
Fixes: http://tracker.ceph.com/issues/38655
Signed-off-by: Sage Weil <sage@redhat.com>
The libstoragemgmt package is needed so we can activate the drive
blink-led feature so we should pull that package.
Signed-off-by: Sébastien Han <seb@redhat.com>
* refs/pull/26906/head:
Typo in Nautilus release notes: not -> now
Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
Reviewed-by: Sebastian Wagner <swagner@suse.com>
Prior to https://github.com/saltstack/salt/commit/71d5601507, the
salt-api expected the password to be sent using the 'sharedsecret'
parameter if using shared secrets, and the 'password' parameter
for other authentication types. The above commit unifies this so
that we always only need to use the 'password' parameter.
Signed-off-by: Tim Serong <tserong@suse.com>
Bluestore caused grep crash with "grep: memory exhausted" due to
size of "block" storage.
Fixes: http://tracker.ceph.com/issues/38678
Signed-off-by: David Zafman <dzafman@redhat.com>
Binary data was ending up in the log file which could cause
terminals to produce garbage output.
Fixes: http://tracker.ceph.com/issues/38678
Signed-off-by: David Zafman <dzafman@redhat.com>
The ones we need are source_version and target_version. Include it in a
nice containing structure to keep things tidy.
Signed-off-by: Sage Weil <sage@redhat.com>
* refs/pull/26763/head:
mgr/diskprediction_cloud: Fixed cannot import string.maketrans in the python 3.x
Reviewed-by: Sebastian Wagner <swagner@suse.com>
* refs/pull/26856/head:
os/bluestore: make osd_memory_limit default to .8x the cgroup limit
os/bluestore: observe osd_memory_target config options
common/config: set osd_memory_target based on POD_MEMORY_REQUEST
common/util: include group limit in daemon metadata
common/util: get_cgroup_memory_limit() helper
common/config: pass entity_type down into parse_env()
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Sébastien Han <seb@redhat.com>
We need both (1) the raw key name (in order to look up the correct option
name and transform the result into the correct type) and (2) the optional
prefix (in order to look up both possible keys). This simplifies the
mgr_module implementation.
There is a weird mismatch between the way that BaseMgrModule and
BaseMgrStandbyModule implement this method. I suspect they could be
unified to work the same, but I'll leave that for another day.
Signed-off-by: Sage Weil <sage@redhat.com>