It's possible for librbd's watch of the header object to be reset by
connection issues just prior to the image being removed. This will
causes an assertion failure which assumes at least one watcher on the
image.
Fixes: #12176
Backport: hammer, firefly
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
When shrinking an image, it's possible that the op flush callback
will be from within the cache callback context. This would result
in a deadlock when attempting to re-lock the cache lock in order to
invalidate the cache.
Fixes: #11743
Backport: hammer
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
It was possible for a client to open an image while another client
was shrinking an image. This would result in the former invalidating
the object map on-disk if it openned the image between updating the
image header and resizing the object map.
Fixes: #11791
Backport: hammer
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Cache writeback operations will expect the owner lock to be held.
Fixes: #11938
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Fixes: #11563
Clarify the confusing usage of set_copy_attrs() by switching the source and
destinatiion params (attrs, src_attrs). Switch to use attrs instead of
src_attrs afterwards. In one of the cases we originally used the wrong
variable.
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
When the isa plugin is not present, the isa plugin payloads are not
tested. When that happens, remember that it was intentional by storing
the path that would have been tested so that the inventory is complete.
http://tracker.ceph.com/issues/11949Fixes: #11949
Signed-off-by: Loic Dachary <loic@dachary.org>
Some clients (ahem, CrossFTP) include the :port in the HTTP_HOST header.
Strip it out.
Switch req_info field to a std::string and avoid copying it in preprocess.
Signed-off-by: Sage Weil <sage@redhat.com>
Synchronize withe the ceph-erasure-code-corpus submodule in which all
file names were modified to fix the typo.
http://tracker.ceph.com/issues/11932Fixes: #11932
Signed-off-by: Loic Dachary <ldachary@redhat.com>
Prior to automake 1.13 the default behavior was serial-tests meaning
tests from make check were run one after the other and their output sent
to stdout/stderr. From automake 1.13 up the default became
parallel-tests which logs the output of each individual test in a
separate .log file and allows them to run in parallel.
http://lists.gnu.org/archive/html/automake/2012-12/msg00038.html
Enable parallel-tests so that tests can always run in parallel, even
with automake 1.11 which is the version found in CentOS 6.5 and Ubuntu
12.04 precise.
A nice side effect of always having the logs in separate files is that
tests do not need to worry about being too verbose because their output
will only be read for diagnostic purposes.
http://tracker.ceph.com/issues/11931Fixes: #11931http://tracker.ceph.com/issues/11906Fixes: #11906
Signed-off-by: Loic Dachary <ldachary@redhat.com>
In several files the iostream wasn't being used, so it got removed.
In other files the iostream inclusion was replaced by including iosfwd
(for forward declarations), which is much smaller header than iostream,
so in theory should reduce compilation time.
To make this work some of the functions must have been moved from .h to .cc file.
3 functions also needed to have inline removed - this shouldn't affect
performance in any way: two of them are
probably too long to have been inlined anyway and the third one is for
error reporting, so probably won't be called too often.
test/Makefile-client.am: added linker libs
This was required to avoid linker error when linking
src/test/cls_rbd/test_cls_rbd.cc file. Makefile was specyfing
libcommon.a as a part of a linker command even though this wasn't
required and wasn't being linked against. When inline functions from
buffer.h were moved to buffer.cc(and inline was removed) the
libcommon.a library became necessary. This wouldn't link without also
including additional libraries(CRYPTO_LIBS and EXTRA_LIBS)
Signed-off-by: Michal Jarzabek <stiopa@gmail.com>
ceph.spec.in: move specific BuildRequires to where they belong
Reviewed-by: Loic Dachary <ldachary@redhat.com>
Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
When looking for an error message and testing ceph disk zap, use grep -q
to not display the error message that will be mistaken for a real error
by the gitbuilder parser.
http://tracker.ceph.com/issues/11272 Refs: #11272
Signed-off-by: Loic Dachary <ldachary@redhat.com>
The directory in which the payload is stored is created from the plugin
parameters. The --show-path shows the directory and exits. This
directory can then be used with --path to override the path created from
the plugin parameters. This is useful to verifying that the jerasure
variant optimized with AVX, SSE4 etc. instructions can be used on the
same payload and show no difference at all. In this case the directory
used by the default jerasure variant is used for each variant and the
parameter that sets the variant to use ( --parameters jerasure-variant )
must not be taken into account to figure out the location of the
payload.
http://tracker.ceph.com/issues/9720 Refs: #9720
Signed-off-by: Loic Dachary <ldachary@redhat.com>
Add a call to ErasureCode::sanity_check_k for the isa and jerasure
plugins, with associated tests.
http://tracker.ceph.com/issues/10358Fixes: #10358
Signed-off-by: Loic Dachary <ldachary@redhat.com>
Move distro-specific BuildRequires out of "common" section and
into the appropriate %if statement in the "specific" section.
Also remove a duplicated "Requires: gdisk".
Signed-off-by: Nathan Cutler <ncutler@suse.com>
Reviewed-by: Loic Dachary <ldachary@redhat.com>