Reject the creation of an erasure code profile including plugin=shec
unless --enable-experimental-unrecoverable-data-corrupting-features=shec
is set.
http://tracker.ceph.com/issues/10800Fixes: #10800
Signed-off-by: Loic Dachary <ldachary@redhat.com>
Implement check_experimental_feature_enabled so that it returns the
message instead of unconditionally displaying it via derr. It allows the
caller to display it in another context.
Signed-off-by: Loic Dachary <ldachary@redhat.com>
There is no semantic change here, just a helper to make things more
clear.
Add warning about a potential bug so we don't lose track.
Signed-off-by: Sage Weil <sage@redhat.com>
We don't want/need to carry this state between scrub stages, so lets
remove the tempation by simply making it a local to scrub_compare_maps.
This caused a bug where we would attempt to write out the
missing_digests from the previous chunk during all future chunks, which
caused trouble.
Fixes: 10840
Signed-off-by: Samuel Just <sjust@redhat.com>
If the epoch cache says the osd has epoch 100 and the osd is asking for
epoch 200+, do not send it 100+.
Fixes: #10787
Backport: giant, firefly
Signed-off-by: Sage Weil <sage@redhat.com>
entity_name_t is tightly coupled to the messenger, while EntityName is
tied to auth. When expanding profiles we want to tie the profile
expansion to the entity that was authenticated. Otherwise we may incur
in weird behavior such as having caps validation failing because a given
client messenger inst does not match the auth entity it used.
e.g., running
ceph --name osd.0 config-key exists foo daemon-private/osd.X/foo
has entity_name_t 'client.12345' and EntityName 'osd.0'. Using
entity_name_t during profile expansion would not allow the client access
to daemon-private/osd.X/foo (client.12345 != osd.X).
Fixes: #10844
Backport: firefly,giant
Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
There is no ENCODE_START/FINISH block when encoding inode that
embedded in dentry. So we can't use encoding version to check
if the buffer contains InodeStore::oldest_snap. Instead, we check
if the buffer iterator reaches end of buffer.
Signed-off-by: Yan, Zheng <zyan@redhat.com>
Avoid using COPY with multiple files because it will not behave as
intended with older (1.2) versions of docker.
Signed-off-by: Loic Dachary <ldachary@redhat.com>
The tags for the centos repository changed from centos6, centos7 to 6
and 7 which is consistent with the other distribution
repositories. Update the documentation accordingly.
Signed-off-by: Loic Dachary <ldachary@redhat.com>
There cannot be a common Dockerfile for all repository:tag combination
of a given operating system. The only way to customize a Dockerfile is
via variable substitution and it cannot conveniently address all
differences between versions.
Create one Dockerfile per operating system version instead. I.e. one
dockerfile for centos:7, one for centos:6 etc.
Signed-off-by: Loic Dachary <ldachary@redhat.com>
* on boost 1.41, the ascii::space skipper fails to skip the spaces at the
beginning of the parsed string, so as a workaround we replace the `lit(' ')`
in grammar spec with `ascii::blank`. this also simplifies the grammar
a little bit.
Fixes: #10757
Signed-off-by: Kefu Chai <kchai@redhat.com>
Otherwise, we can't return the correct user version on a dup request.
Note: This patch does not handle compatilibity with the variant which
does not include the version_t field. Since it's been less than 2 weeks
and we haven't had a release, I think that's ok since handling
compatilibity would require some overhead in the encode/decode
methods.
Fixes: 10830
Introduced (merge): b79c349067
Signed-off-by: Samuel Just <sjust@redhat.com>
librados: Wip 10458 - rectify the pool name caching in IoCtxImpl.
Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
MDSMonitor: do not allow MDS to transition from STATE_STOPPING
Reviewed-by: Yan, Zheng <zyan@redhat.com>
Reviewed-by: John Spray <john.spray@redhat.com>