if `std::is_nothrow_move_constructible<small_vector<peer_shard_t, 2>>`
also depends on if the allocator throws when moving from a small_vector
to a new one, as we need to allocate memory for the destination
small_vector.
so, in this change, the optimization for small_vector is dropped,
because the default allocator used by small_vector throws.
Signed-off-by: Kefu Chai <kchai@redhat.com>
When whole-object and include-parent options are enabled, the
diff will now include the parent image diffs. Previously, the
parent image diffs were not included when fast-diff was enabled
but was included when fast-diff was disabled.
Fixes: https://tracker.ceph.com/issues/42248
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
This will assist layered projects like QEMU and libvirt
determine which features are supported.
Fixed: https://tracker.ceph.com/issues/43401
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Avoid leaving RBD pool objects within a pool namespace that is
being deleted.
Fixes: https://tracker.ceph.com/issues/43378
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
This fixes a potential issue where the init fails and shut down
is called with the original init context still set.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
The get_container_mounts method only passed this through if it already
exists so that shell etc commands will work even when this dir isn't
present yet. Normally the systemd unit creates it. This may not be the
case on initial bootstrap, of even later if a deploy happens but a unit
hasn't started yet.
Precreate it during bootstrap and other times before we do a deplot so
that the unit.run command has this passed through.
Signed-off-by: Sage Weil <sage@redhat.com>
- Handle the various v1 and v2 cases
- Handle --mon-ip with a port
- Explicitly test bind to the IP + port combination
Signed-off-by: Sage Weil <sage@redhat.com>
Now that the bootstrap state machine is simplier, it makes it cleaner to
move the prepare steps into the bootstrap state machine. Once snapshot
mirror support is added, these prepare state can be swapped out depending
on the mirroring type.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
This was nondeterministically remapping services to different hosts
depending on which hosts had stale caches because the 'hosts' list order
didn't match 'results' + 'in_cache'.
Signed-off-by: Sage Weil <sage@redhat.com>
There's no need for mgr/cephadm to pass --mon-* arguments to
/usr/bin/cephadm just so it can add bits to the config file when the
config file is also being passed in from mgr/cephadm.
Signed-off-by: Sage Weil <sage@redhat.com>
We could make this a totally separate command from 'deploy', but so much
of the code path is shared that this is a lot simpler.
Signed-off-by: Sage Weil <sage@redhat.com>
Testing with Boost 1.72 unittest_confutil crashes with:
```
[ RUN ] ConfUtils.ReadFiles2
Assertion failed: (strict_ischar(ch)), function isblank, file /usr/local/include/boost/spirit/home/support/char_encoding/standard.hpp, line 129.
Abort
```
Which is due to the fact that in Boost 1.72 most of the character
testing has been garded with an assert to make sure char holds an
ascii char.
Like:
```
static bool
isblank BOOST_PREVENT_MACRO_SUBSTITUTION (int ch)
{
BOOST_ASSERT(strict_ischar(ch));
return (ch == ' ' || ch == '\t');
}
```
And ReadFile2 explicitly tests for strings with char value > 0x7f.
So that is certainly going to crash.
Now I can imagine that we would like to be able to have users use
different encodings for things like logfiles.
But for now that is not going to work with the boost:spirit parser
Fixes: https://tracker.ceph.com/issues/43406
Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
* refs/pull/32261/head:
mgr/orchestrator: use full device path for blinking lights (if available)
mgr: report device by-path paths too
common/blkdev: include by-path path for each device in metadata
common/blkdev: factor get_device_metadata out of mon, osd
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
* refs/pull/32333/head:
qa/quites/rados/singleton-flat/valgrind-leaks: specify centos8
qa/suites/rados: test cephadm on centos and ubuntu both
qa/workunits/cephadm/test_cephadm.sh: detect python3 and python2
Reviewed-by: Michael Fritch <mfritch@suse.com>
- deploy cluster with cephadm so we can run a octopus+ cluster and also
install client packages that are ancient.
- move client.2 back onto the third node, since packages no longer
conflict.
- test on centos 7.x (i picked 6), since the old releases all built on
that release.
Signed-off-by: Sage Weil <sage@redhat.com>
If it's a v1 addr on the old default 6789 port, print it as a legacy-style
addr (no v1: prefix) so that legacy code can parse it.
Signed-off-by: Sage Weil <sage@redhat.com>
This state machine simplifies the existing bootstrap state machine steps
in that it will always unregister as a first step (might not be registered).
It also take advantage of the previous fix for REPLAYING vs SYNCING state
so that it always uses an initial SYNCING state.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
The previous logic had a race in that it would never run if the local
image was force-promoted or if the remote image was demoted and the
local image was promoted before the rbd-mirror daemon could catch the
change of state.
This change resets the mirror peer state from syncing to replaying if
the local image is no longer connected to the remote image. This
prevents an unexpected (and corrupted) re-sync from the remote.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
This will help move the journal-related bootstrap logic together
as a preliminary step for handling snapshot mirroring.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>