The objecter actually always needs to get a response in order to
be able to not continually resend ops (even if the caller didn't
provide a callback). Thus, it makes no sense for an MOSDOp to
ever not have FLAG_ONDISK set. Therefore, we'll just remove the
helper and assume it's always there (it's safe to send a response
the client didn't ask for, the error paths already do that). On
the Objecter side, we'll just unconditionally fill in ONDISK for
the benefit of pre-luminous OSDs.
Fixes: http://tracker.ceph.com/issues/18961
Signed-off-by: Samuel Just <sjust@redhat.com>
I think that whole thing was a misguided attempt to avoid deleting head
if it exists in the base tier (in reality it doesn't matter since head
would have to be logically dirty and anything we actually care about
would be preserved by sending a new enough seq to cause a clone).
Introduced in 4843fd510b, but the real
logical error happened in f3df50188b.
I suggest never backporting this patch. If you want to try, keep in
mind that the last version didn't turn up as busted for 2 years.
Fixes: f3df50188b
Signed-off-by: Samuel Just <sjust@redhat.com>
qa/tasks/workunit: use the suite repo for cloning workunit
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Jason Dillaman <dillaman@redhat.com>
- This was there because cython did not know about ENOATTR
But since cython 0.25.2 tus is fixed.
And we don't need to edit /usr/include/errno.h
Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
as "workunits" reside in ceph/qa/workunits, it's more intuitive to
respect suite-repo option when cloning workunits.
Signed-off-by: Kefu Chai <kchai@redhat.com>
* sometimes, the coredump comes from python, so we should get the sha1 and
release in a different and more fragile way.
* also, the distro of Centos7 comes from python is "Centos Linux", so we
should normalize its distro name and distro version.
* add "-v" option to be more chatty.
* normalize the $prog if $prog is */python*
* fix the pkg_path if the distro is centos7
Signed-off-by: Kefu Chai <kchai@redhat.com>
With skip_partial_discard on, there may be no object request send calls,
because they are skipped.
Signed-off-by: Gui Hecheng <guihecheng@cmss.chinamobile.com>
The logic in RGWLibFS::mkdir() validated bucket names, but not
object names (though RGWLibFS::create() did so).
The negative side effect of this was not creating illegal objects
(we won't), but in a) failing with -EIO and b) more importantly,
not removing up the proposed object from FHCache, which produced a
boost assert when recycled.
Fixes: http://tracker.ceph.com/issues/19066
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
Now writesame tends to do a discard on all zero buffer, but
if rbd_skip_partial_discard is turned on, discard will not do any
zeroing work on partial discard, so we read random data while expecting
all zeros.
To fix it, we introduce the ImageCtx::skip_partial_discard and
pass an extra parameter to discard. Writesame will always pass false
and other discards will pass the ImageCtx::skip_partial_discard
which is set by the rbd_skip_partial_discard option.
Signed-off-by: Gui Hecheng <guihecheng@cmss.chinamobile.com>
Allow callers of rgw_lookup() on objects attested in an
rgw_readdir() callback the ability to bypass exact match in
RGWLibFS::stat_leaf() case 2, but restore exact match enforcement
for general lookups.
This preserves required common_prefix namespace behavior, but
prevents clients from eerily permitting things like "cd sara0" via
partial name match on "sara01."
Fixes: http://tracker.ceph.com/issues/19059
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
We need to make sure we update the mapping and get an accurate actual_pgid
value by recalcuating the mapping on every map change. Otherwise, we may
not notice a split (and subsequent actual_pgid change) and resend the same
op with a stale spg_t. To fix this,
- _calc_target on need_resend
- update target regardless of current con
Signed-off-by: Sage Weil <sage@redhat.com>
Check whether the request hobj maps to the current pg_t. If we have the
osd_debug_misdirected_ops setting enabled (as teuthology does), assert out
as well so that the error is easy to spot. This catches bugs in the
Objecter (especially the new code that explicitly names the spg_t for the
request).
Signed-off-by: Sage Weil <sage@redhat.com>
These refs won't be returned by nfs-ganesha, and are sufficiently
magical that other consumers should be persuaded to understand
their specialness.
Fixes: http://tracker.ceph.com/issues/19060
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>