Commit Graph

42046 Commits

Author SHA1 Message Date
Loic Dachary
f2897886b0 Merge pull request #4870 from joaquimrocha/extra_doc_info_for_debug_option
build: Add info about tests to --with-debug option

Reviewed-by: Loic Dachary <ldachary@redhat.com>
2015-06-05 15:22:48 +02:00
Joaquim Rocha
63aa2e6a95 build: Add info about tests to --with-debug option
The configure's --with-debug option builds also some of the tests
so this should be mentioned in its doc string in order to let users
know how to build all the tests.

Signed-off-by: Joaquim Rocha <joaquim.rocha@cern.ch>
2015-06-05 15:17:42 +02:00
Loic Dachary
3a562b44f9 Merge pull request #4866 from ddiss/fix_test_ceph_disk_dmcrypt_uuid_only
tests: fix test_activate_dmcrypt uuid usage

Reviewed-by: Loic Dachary <ldachary@redhat.com>
2015-06-05 11:56:37 +02:00
David Disseldorp
7bef2d8897 tests: fix test_activate_dmcrypt uuid usage
4601e10800 introduced a regression in that
an empty (uninitialised) OSD uuid is passed to test_pool_read_write for
IO. As a result, the "rados put" request times out causing test failure.

This change ensures that a correct OSD uuid is passed to
test_pool_read_write.

Signed-off-by: David Disseldorp <ddiss@suse.de>
2015-06-05 11:39:31 +02:00
Josh Durgin
792e94822f Merge pull request #4528 from ceph/wip-librbd-helgrind
librbd: correct issues discovered via lockdep / helgrind

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2015-06-04 18:55:43 -07:00
Jason Dillaman
c1b2783bc0 Merge pull request #4857 from jdurgin/wip-rbd-features-constants
update rbd features constants for python usage

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2015-06-04 20:37:39 -04:00
Jason Dillaman
3d5cef38c3 librbd: flush pending ops while not holding lock
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-06-04 16:52:05 -04:00
Jason Dillaman
742a85d667 tests: fix possible deadlock in librbd ImageWatcher tests
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-06-04 16:52:05 -04:00
Jason Dillaman
45cb9cb598 tests: enable lockdep for librbd unit tests
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-06-04 16:52:05 -04:00
Jason Dillaman
c9142fe353 librbd: owner_lock should be held during flush request
Flush might result in the cache writing out dirty objects, which
would require that the owner_lock be held.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-06-04 16:52:05 -04:00
Jason Dillaman
a38f9e5104 osdc: ObjectCacher flusher might needs additional locks
librbd requires the ObjectCacher flusher thread to acquire
an additional lock in order to maintain lock ordering
constraints.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-06-04 16:52:05 -04:00
Jason Dillaman
1b57cc1da7 librbd: fix recursive locking issues
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-06-04 16:52:05 -04:00
Jason Dillaman
d6b733dbdd librbd: simplify state machine handling of exclusive lock
It is expected that all IO is flushed and all async ops are cancelled
prior to releasing the exclusive lock.  Therefore, replace handling of
lost exclusive locks in state machines with an assertion.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-06-04 16:52:05 -04:00
Jason Dillaman
c352bcdc0f librbd: AsyncObjectThrottle should always hold owner_lock
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-06-04 16:52:05 -04:00
Jason Dillaman
5f157f2098 librbd: execute flush completion outside of cache_lock
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-06-04 16:52:04 -04:00
Jason Dillaman
218bc2d0f8 librbd: add AsyncRequest task enqueue helper method
In order to support the invariant that all state machine
callbacks occur without holding locks, transitions that
don't always involve a librados call should queue their
callback.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-06-04 16:51:02 -04:00
Jason Dillaman
66e74641ba librbd: disable lockdep on AioCompletion
It is only used by clients and it causes a large slowdown
in performance due to the rate at which the lock is constructed/
destructed for each IO request.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-06-04 16:51:01 -04:00
Jason Dillaman
3ad19ae349 librbd: AioCompletion shouldn't hold its lock during callback
The callback routine most likely will attempt to retrieve the result
code, which will result in a recursive lock attempt.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-06-04 16:49:52 -04:00
Jason Dillaman
0024677dc8 librbd: complete cache read in a new thread context
The ObjectCacher complete the read callback while still holding
the cache lock.  This introduces lock ordering issues which are
resolved by queuing the completion to execute in a clean (unlocked)
context.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-06-04 16:49:51 -04:00
Jason Dillaman
c474ee42b8 librbd: give locks unique names to prevent false lockdep failures
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-06-04 16:49:51 -04:00
Jason Dillaman
c1e1445177 log: fix helgrind warnings regarding possible data race
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-06-04 16:49:51 -04:00
Jason Dillaman
b65ae4bc26 librados_test_stub: fix helgrind warnings
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-06-04 16:49:51 -04:00
Jason Dillaman
6e400b9049 librados_test_stub: add support for flushing watches
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-06-04 16:49:51 -04:00
Jason Dillaman
7c7df2ce9f common: lockdep now support unregistering once destructed
librbd use of an image hierarchy resulted in lock names being
re-used and incorrectly analyzed.  librbd now uses unique lock
names per instance, but to prevent an unbounded growth of
tracked locks, we now remove lock tracking once a lock is
destructed.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-06-04 16:49:51 -04:00
Jason Dillaman
650ad32d74 common: add valgrind.h convenience wrapper
Conditionally support helgrind annotations if valgrind support is
enabled during the build.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-06-04 16:49:51 -04:00
Jason Dillaman
21f990efe6 librbd: add work queue for op completions
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-06-04 16:49:51 -04:00
Jason Dillaman
e5ffae578e WorkQueue: ContextWQ can now accept a return code
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-06-04 16:49:51 -04:00
Josh Durgin
eb6a1df80b pybind/rbd.py: update with new features constants
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
2015-06-04 13:32:23 -07:00
Josh Durgin
8baaf514da librbd: describe the purpose of features constants
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
2015-06-04 13:32:12 -07:00
Josh Durgin
fbe328e240 librbd: add a constant for single-client-only features
This way it's easy to disable them if you want to access an image from
multiple clients.

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
2015-06-04 13:06:06 -07:00
Samuel Just
b7abc398c0 Merge pull request #4717 from athanatos/wip-8635
Wip 8635 -- Move scrub, snap_trim into a unified queue

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
2015-06-04 11:25:12 -07:00
Samuel Just
e5b18903bc Merge pull request #4718 from athanatos/wip-sync-omap
FileStore: sync object_map when we syncfs

Reviewed-by: Kefu Chai <kchai@redhat.com>
2015-06-04 11:24:43 -07:00
Sage Weil
5ff8056461 Merge pull request #4839 from ceph/wip-fix-arm-linking-issue
common/Cycles.cc: skip initialization if rdtsc is not implemented

Reviewed-by: Boris Ranto <branto@redhat.com>
Reviewed-by: Haomai Wang <haomaiwang@gmail.com>
2015-06-04 09:46:29 -07:00
Orit Wasserman
23a09790b1 Merge pull request #4852 from ceph/wip-rgw-vstart
make vstart + rgw more useful
2015-06-04 18:03:58 +02:00
Sage Weil
61bad5584d vstart.sh: set rgw dns name = localhost
So we can test buckets in the URL by adding entries in /etc/hosts

Signed-off-by: Sage Weil <sage@redhat.com>
2015-06-04 09:02:29 -07:00
Kefu Chai
b501c41831 Merge pull request #4858 from SUSE/wip_ceph.spec.in_remove_extra_else_statement
ceph.spec.in: remove extra %else statement

Reviewed-by: Kefu Chai <kchai@redhat.com>
2015-06-04 19:07:52 +08:00
Loic Dachary
9d8ae1ed2f Merge pull request #4859 from ceph/wip-fix-i386-test-11870
test: fix the plugin_exists()

Reviewed-by: Loic Dachary <ldachary@redhat.com>
2015-06-04 12:14:10 +02:00
Kefu Chai
6bd425b025 test: fix the plugin_exists()
in 8e61a99, we try to init the plugin when user set a profile using
"ceph osd erasure-code-profile set <profile-name> <profile>", so
if user passes in an unknown plugin, ceph will reject it right away,
instead of loading the plugin when "ceph osd crush rule create-erasure".

Fixes: #11870
Signed-off-by: Kefu Chai <kchai@redhat.com>
2015-06-04 17:51:58 +08:00
Loic Dachary
1957c88c81 Merge pull request #4856 from ceph/wip-install-deps-11869
install-deps.sh: create virtualenv only if necessary

Reviewed-by: Loic Dachary <ldachary@redhat.com>
2015-06-04 10:52:10 +02:00
Owen Synge
75e87a20da ceph.spec.in: remove extra %else statement
Remove extra conditional.

Signed-off-by: Owen Synge <osynge@suse.com>
2015-06-04 10:11:34 +02:00
Kefu Chai
17a74ed292 install-deps.sh: s/get_pip_and_wheel/populate_wheelhouse/
Signed-off-by: Kefu Chai <kchai@redhat.com>
2015-06-04 16:01:17 +08:00
Kefu Chai
b23fd403bd install-deps.sh: create virtualenv only if necessary
Signed-off-by: Kefu Chai <kchai@redhat.com>
2015-06-04 16:01:17 +08:00
Kefu Chai
f81f651663 install-deps.sh: do not create "wheelhouse" unless it's ready
* only create "wheelhouse" directory for tox when it is populated
  with all packages in *requiresments.txt. before than, the wheels
  are put in "wheelhouse-wip"

Fixes: #11869
Signed-off-by: Kefu Chai <kchai@redhat.com>
2015-06-04 16:00:56 +08:00
Boris Ranto
35c5fd0091 common/Cycles.cc: skip initialization if rdtsc is not implemented
The Cycles initialization gets stuck in infinite loop if rdtsc is not
implemented. This patch fixes the issue by quitting the initialization
if rtdsc fails.

The patch was cherry-picked from ubuntu patch by James Page, see

https://bugzilla.redhat.com/show_bug.cgi?id=1222286

for more details on the patch.

Signed-off-by: James Page <james.page@ubuntu.com>
2015-06-04 09:20:25 +02:00
Kefu Chai
0d845255c7 install-deps.sh: refactor pip install a little bit
Signed-off-by: Kefu Chai <kchai@redhat.com>
2015-06-04 13:52:04 +08:00
Kefu Chai
779360cd96 Merge pull request #4855 from tchaikov/wip-man-page-fix
man/create-create-keys: minor fixes

Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
2015-06-04 13:24:22 +08:00
Kefu Chai
f04c8829cf man/create-create-keys: minor fixes
to address the comments on https://github.com/ceph/ceph/pull/4846

Fixes: #10725
Signed-off-by: Kefu Chai <kchai@redhat.com>
2015-06-04 11:27:11 +08:00
Kefu Chai
a308c11308 Merge pull request #4853 from ceph/wip-rpm-rm-endif
ceph.spec.in: fix rpm build errors

Reviewed-by: Kefu Chai <kchai@redhat.com>
2015-06-04 11:21:39 +08:00
Ken Dreyer
0eabf27e5b Revert "ceph.spec.in:ownership of dirs extension"
This reverts commit 6f495974a8.

This needs more discussion, since "make install" does not currently
create /usr/lib/ceph (and maybe /usr/share/ceph?)

This fixes the rpmbuild failure,

  error: File not found:
  /srv/autobuild-ceph/gitbuilder.git/build/rpmbuild/BUILDROOT/ceph-9.0.0-1225.ga16afdd.el6.x86_64/usr/lib/ceph

Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
2015-06-03 17:48:12 -06:00
Ken Dreyer
f94f23297c ceph.spec.in: rm stray %endif
Commit d8abde3338 introduced a stray
%endif. Remove it.

This fixes the build error:

  "error: /srv/autobuild-ceph/gitbuilder.git/build/ceph.spec:140: Got a
  %endif with no %if"

Reported-by: Greg Farnum <gfarnum@redhat.com>
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
2015-06-03 17:40:58 -06:00