Ken Dreyer [Mon, 13 Apr 2015 15:43:11 +0000 (09:43 -0600)]
packaging: ship systemd/ceph.tmpfiles.d in tarballs
Prior to this commit, the tarballs did not contain
any files under the top-level "systemd" directory. This caused problems
with RPM builds on Fedora and RHEL 7, because as of commit aa88364f30e2d2f254ade185a83ba263b48e2a73, those RPMs depend on the
systemd/ceph.tmpfiles.d file.
(Longer-term we might want to improve the tarball generation code to be
less complex/manual.)
http://tracker.ceph.com/issues/11383 Refe: #11383
Reported-by: Greg Farnum <gfarnum@redhat.com> Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
It is not enough for the backports to be available, they also need to be
explicitly allowed to take precedence whenever a package is installed
indirectly. This is causing problems with libp11-kit-dev pulled by
libcurl4-gnutls-dev.
Jason Dillaman [Fri, 6 Mar 2015 20:40:48 +0000 (15:40 -0500)]
tests: librados_test_stub reads should deep-copy
If a client of librados_test_stub modified a bufferlist
retrieved via a read call, the client will actually be
changing the contents of the file. Therefore, read calls
should deep-copy the contents of the buffer::ptrs.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Jason Dillaman [Fri, 20 Mar 2015 03:29:44 +0000 (23:29 -0400)]
cls_rbd: treat zero-byte object maps as missing
Acquiring the lock on a missing object map will create an
empty object. Treat the empty object as a non-existant
object map to support rebuilding corrupt object maps while
holding the exclusive lock.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Jason Dillaman [Thu, 19 Mar 2015 19:33:07 +0000 (15:33 -0400)]
librbd: added RebuildObjectMapRequest state machine
It will verify the object map is properly sized, verify
the existence of each object within the image (snapshot),
and clear the invalid object map flag once complete.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Jason Dillaman [Fri, 20 Mar 2015 16:16:14 +0000 (12:16 -0400)]
librbd: correct basic object map errors during refresh
If the object map is corrupt on-disk or too small for the image,
correct these basic issues as soon as possible. The object map
is still flagged as invalid, but there will be less required repair
work if future IO is able to properly update the object map.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Jason Dillaman [Wed, 18 Mar 2015 15:51:47 +0000 (11:51 -0400)]
librbd: use generic helper for issuing async requests
resize, flatten, and rebuild object map now use the same
bootstrap code for sending the request to the remote lock owner
or executing the request locally.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Jason Dillaman [Fri, 10 Apr 2015 16:37:05 +0000 (12:37 -0400)]
librbd: failure to update the object map should always return success
If an object map update fails, the object map will be flagged as
invalid. However, if a subsequent update failure occurs, the error
code will propagate back to the caller.
Fixes: #11369 Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Jason Dillaman [Fri, 6 Mar 2015 20:40:48 +0000 (15:40 -0500)]
tests: librados_test_stub reads should deep-copy
If a client of librados_test_stub modified a bufferlist
retrieved via a read call, the client will actually be
changing the contents of the file. Therefore, read calls
should deep-copy the contents of the buffer::ptrs.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Ken Dreyer [Thu, 9 Apr 2015 17:10:52 +0000 (11:10 -0600)]
ceph.spec.in: set _with_systemd on RHEL 7 and Fedora
Commit 71a5090bca049a43e30a7f0cf99141950ef9c5dd added a "_with_systemd"
conditional to the RPMs, but I erred with the version comparison
operator, so this only applied to RHEL 8+, not RHEL 7+.
Adjust the conditional so that it will really apply to RHEL 7+. While
we're here, add Fedora as well.
Signed-off-by: Ken Dreyer <kdreyer@redhat.com> Reported-by: Boris Ranto <branto@redhat.com>
Fix to some of the command line parsing (including rbd)
Fix#: 2862
Changes to some of the common files for command line parsing
Change to ceph_argparse.cc
-------------------------
Added function ceph_arg_value_type()
Given an input it will determine
i) If that input is an option or not
ii) If input is numeric in nature or not.
It will set the flag bool_option and bool_numeric appropriately.
This function is called by ceph_argparse_witharg() to figure out if
the input parameter to those functions are numeric in nature and not
an option. If the input parameter to ceph_argparse_witharg()
happens to be an option then it implies that user didn't supply
value to the option.
Changes to strol.cc
-------------------
Changes to strict_strtoll() and strict_strtol()
Both these functions reponsibility is to convert the string to long or to int.
I felt it may be not be good for it to display error message within this function,
rather caller of this function who has better understanding of the function's purpose
can display the error message.
Made change in this function to just create a generic error message,Its the
caller of this function decides what to do with this message.
Douglas Fuller [Mon, 6 Apr 2015 21:36:18 +0000 (14:36 -0700)]
RBD: update expunge set for latest test, parameterize test script
Update expunge set for xfstests to known-good set for RHEL7 and Ubuntu 14.04.
Expunged tests without justifying comments are long-running and have not yet
been thoroughly investigated.
Add an environment variable (optionally passed from xfstests_url variable in
test YAML) to override the default xfstests repo.
Signed-off-by: Douglas Fuller <dfuller@redhat.com>
Douglas Fuller [Mon, 6 Apr 2015 21:35:20 +0000 (14:35 -0700)]
RBD: build prerequisites for latest xfstests and update test configuration
To standardize results from xfstests, install specific versions of xfstests,
xfsprogs, and xfsdump in /tmp. Move test mountpoints to /tmp/cephtest to allow
access for fsgqa user expected by xfstests.
XXX: xfsdump required significant hacks to build and install on Ubuntu 14.04.
A developer removed the definitions of the min and max macros; this commit is
reverted by this script. The installation paths are difficult to override and
the installer breaks (trying to ln one of the binaries to itself) when an
alternate installation location is specified. This script ignores this error
(make -k install || true).
Signed-off-by: Douglas Fuller <dfuller@redhat.com>