osd: do not overestimate the size of the object for reads with trimtrunc
Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed By: Xie Xingguo <xie.xingguo@zte.com.cn>
We need to populate both the last_epoch_clean and last_epoch_started
accurately when fabricating a pg merge target. In the case where the
premerge PG peers, recovers (e.g., backfill), then becomes ready to
merge, the last_epoch_clean may be > the last_epoch_started, and using
the later last_epoch_clean will prevent the PG from subsequently
peering (it'll go to incomplete state instead).
Fix by keeping both values, separately.
Signed-off-by: Sage Weil <sage@redhat.com>
* refs/pull/24270/head:
osd: make 'cache drop' command require 'executable' permission
osd: rename 'drop cache' and 'get cache stats' to group them by component
doc: add documentation for 'drop cache' and 'get cache stats'
osd: don't print osdmap cache stats in 'get cache stats' command
osd: do not clear osdmap cache on 'drop cache' command
osd: offload dumping cache stats to the object store
osd: pass a stream to flush_cache commands for more verbosity
osd: implement flush_cache() method for Filestore
osd: add clear_cache and get_cache_object_count commands
Reviewed-by: Gregory Farnum <gfarnum@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Before setting size equal to op.extent.truncate_size, we need to check
if the size of the object is greater than the truncate_size. We do not
need to set size to op.extent.truncate_size, in the case where the size of
the object is less than op.extent.truncate_size.
Without this change, we were always setting size =
op.extent.truncate_size, when (seq < op.extent.truncate_seq) and
(op.extent.offset + op.extent.length > op.extent.truncate_size), were both
true. This ended up in:
1. overestimating the size of the object
2. not considering the correct size of the object, for
the later checks, which calculate op.extent.length for the read ops
3. causing crashes when trying to read more data than what was present
Fixes: http://tracker.ceph.com/issues/21931
Fixes: http://tracker.ceph.com/issues/22330
Signed-off-by: Neha Ojha <nojha@redhat.com>
The failure interval needs to be sufficiently precise that it establishes
an approximate upper bound on the device life expectancy.
Also, deal with the fact that the max value may be '0.000000' intead of ''.
Signed-off-by: Sage Weil <sage@redhat.com>
This makes it easier to re-run tests against a suite branch without
requiring a full ceph-ci build and repo.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
* refs/pull/24514/head:
mgr/restful: do not print warning message at seeing unknown request
Reviewed-by: John Spray <john.spray@redhat.com>
Reviewed-by: Boris Ranto <branto@redhat.com>
Reviewed-by: Tatjana Dehler <tdehler@suse.com>
We check for AUTH_NONE success by examining the side effect of the caps being
filled in with allow_all, and we need that to be "finished" for purposes of
replying with a monmap as well.
Fixes: http://tracker.ceph.com/issues/36300
Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- some cleanup (e.g., use $ms throughput)
- behave if the local host is in the $hosts list (use $ms.remote)
- be clear about updating all mons
- mon.0 -> mon.foo
Signed-off-by: Sage Weil <sage@redhat.com>
This was broken by always on modules -- it was also
unnecessary complication, let's just pick some
hardcoded module to use.
Signed-off-by: John Spray <john.spray@redhat.com>
* refs/pull/24305/head:
msg/async: ProtocolV1: use continuations instead of direct function calls
msg/async: ProtocolV1 state machine ascii diagram
Reviewed-by: Adam C. Emerson <aemerson@redhat.com>
Running `npm install` for the dashboard pulls dependenies with git.
Under some setups, git was not installed when building the frontend.
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>