this silences the warning of:
```
../src/crimson/osd/osdmap_gate.cc:48:38: warning: lambda capture 'this' is not used [-Wunused-lambda-capture]
std::for_each(first, last, [epoch, this](auto& blocked_requests) {
~~^~~~
```
Signed-off-by: Kefu Chai <kchai@redhat.com>
The old link references a 2017 version of the template, I experienced problems using this version of the template with the latest version of Ceph. Ceph would report "Failed to send data to Zabbix", by importing the newer 2019 version of the template within Zabbix Ceph could again send data (due to changed Zabbix Trapper item keys). Propose to replace the link for a link referencing the master branch of the template so the newest version is always referenced in the docs.
Signed-off-by: Mathijs Smit <m.smit@goldenvalue.nl>
* refs/pull/33491/head:
mount.ceph: add "fs=<fs_name>" mount options support
Reviewed-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
* refs/pull/33506/head:
client: add client_fs mount option support
Reviewed-by: Ramana Raja <rraja@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
* refs/pull/33538/head:
mds: just delete MDSIOContextBase during shutdown
mds: add comment explaining unusual locking for MDSIOContextBase
Reviewed-by: Zheng Yan <zyan@redhat.com>
an enum's underlying type must be integral, so it's not possible for
ceph_le<T> to match for enums. for example, this:
enum class enum_class_16 : ceph_le16 {};
fails to compile with:
underlying type ‘ceph_le16’ {aka ‘ceph_le<short unsigned int>’} of
‘enum_class_16’ must be an integral type
Signed-off-by: Casey Bodley <cbodley@redhat.com>
all but the 8-bit enums fail to compile because they don't match the
traits specialization for underlying_type
Signed-off-by: Casey Bodley <cbodley@redhat.com>
The `m_image_updated` boolean should be reset at the start of the
state checking loop now that we scan the local image meta and check
for forced-promotion of the local image.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
We shouldn't modify the PlacementSpec in place (or at all). Instead,
simply return a list of the hosts where we want to locate daemons.
Signed-off-by: Sage Weil <sage@redhat.com>
In older versions of lz4 (specifically < 1.8.2) bit errors
can be introduced when compressing from fragmented memory. The lz4
bug was fixed by this lz4 commit:
commit af127334670a5e7b710bbd6adb71aa7c3ef0cd72
Author: Yann Collet <cyan@fb.com>
Date: Sat May 5 18:24:11 2018 -0700
fixed frametest error
The error can be reproduced using following command :
./frametest -v -i100000000 -s1659 -t31096808
It's actually a bug in the stream LZ4 API,
when starting a new stream
and providing a first chunk to complete with size < MINMATCH.
In which case, the chunk becomes a dictionary.
No hash was generated and stored,
but the chunk is accessible as default position 0 points to dictStart,
and position 0 is still within MAX_DISTANCE.
Then, next attempt to read 32-bits from position 0 fails.
The issue would have been mitigated by starting from index 64 KB,
effectively eliminating position 0 as too far away.
The proper fix is to eliminate such "dictionary" as too small.
Which is what this patch does.
This is a workaround to rebuild our input buffer into a continguos buffer
if it is not already contiguous.
Fixes: https://tracker.ceph.com/issues/39525
Signed-off-by: Sage Weil <sage@redhat.com>
Check if the compressors can compress/decompress a bufferlist which is not word
aligned, such as a freshly-encoded osdmap.
Related-to: https://tracker.ceph.com/issues/39525
Signed-off-by: Dan van der Ster <daniel.vanderster@cern.ch>
* refs/pull/33523/head:
mgr/orch: ServiceSpec: drop 'count'
mgr/rook: use spec.placement.count (instead of spec.count)
mgr/cephadm: make HostAssignment make sense
mgr/orch: PlacementSpec: do not combine all_hosts with anything else
mgr/orch: use PlacementSpec.from_strings() for all CLI commands
Reviewed-by: Joshua Schmid <jschmid@suse.de>
If the local image has a primary demotion and the remote does not
have a matching non-primary demotion snapshot, we should throw a
split-brain error.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
If RPC was used to create the snapshot, the local image context will
not yet have the snapshot id and will therefore return CEPH_NOSNAP.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
This solves an issue with snapshot-based mirroring when the
rbd-mirror daemon is the exclusive lock owner. For other cases,
it still checks for watchers before proceeding.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
When not syncing the full image, the destination image would receive
the incorrect source parent spec instead of the expected destination
parent spec.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
The rbd-mirror daemon needs to accept the RPC request to create an
orphan snapshot so that it knows to shut-down the replayer.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
We should return -EREMOTEIO if we don't have any primary images to sync to
since we want display a warning. Additionally, don't attempt to sync a
remote snapshot against a primary (demoted) local snapshot since it would
have an invalid primary snapshot id.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Avoid the possibility of a race when shutting down and post-unregister a status
update causes the ASOK to become re-registered.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>