This forbids exporting subtrees and fragmenting dirfrags when there
is MDS in clientreplay state. During replaying client requests, the
MDS may need to authpin some remote objects. Exporting subtrees and
fragmenting dirfrags slow down replaying client requests.
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
This avoid inserting ESubtreeMap among EImportFinish events that
finish disambiguate imports. Because the ESubtreeMap reflects the
subtree state when all EImportFinish events are replayed.
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
When a non-auth dirfrag is pinned by uncommitted slave update,
there still can be non-auth child dirfrags that are trimmable.
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
Clients can make use of these directories, and ceph-common is required by
ceph, so nothing should break here.
Change the purge postrm script to be for ceph-common (it does nothing else).
Signed-off-by: Sage Weil <sage@inktank.com>
We fell into the case in _rollback_to where we just set ctx->modify = true
and don't explicitly mark the ctx and unrollbackable. Later, we screw up
in proc_replica_log as a result because we think we can rollback this
update to the head when in reality we cannot.
Fixes: #7907
Signed-off-by: Sage Weil <sage@inktank.com>
The 'continue' will cause more damange/noise than continuing because the
next_clone value won't be updated properly.
Signed-off-by: Sage Weil <sage@inktank.com>
Handle snapdir similarly to how head is treated when updating the
next_clone info. Also, add a warning when we have a snapdir object and
head_exists == true (the converse of the existing check).
Fixes: #7937
Signed-off-by: Sage Weil <sage@inktank.com>
Fixes: #7935
The check that identifies whether we need to move to the next part when
iterating over an object was reversed.
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
This is the simple coarse-grained solution, but it works well in
common cases like a small base image resized with a bunch of empty
space at the end. Finer-grained sparseness can be copied by using rbd
{export,import}-diff.
Fixes: #6257
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Until the OSD and the MOSDPGTemp messages encode primary_temp updates,
assume that any pg_temp update will clear primary_temp.
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Ilya Dryomov <ilya.dryomov@inktank.com>
By default, we don't send out maps with primary_temp mappings because
there is no infrastructure in place that would make sure that the
entire cluster knows about primary_temp. Add an option to allow
primary_temp mappings, for development purposes.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
Use the x.0 pg as a sentinel for the existence of the pool. Note that we
have to clean in up two paths: apply_incrmenetal (which is actually
deprecated) and the normal PGMonitor refresh.
Fixes: #7912
Signed-off-by: Sage Weil <sage@inktank.com>