Commit Graph

42033 Commits

Author SHA1 Message Date
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
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
Sage Weil
91dbc7871a vstart.sh: sudo radosgw for low port numbers
Signed-off-by: Sage Weil <sage@redhat.com>
2015-06-03 16:17:50 -07:00
Sage Weil
f2a4c2ae00 vstart.sh: show s3 creds at end
Signed-off-by: Sage Weil <sage@redhat.com>
2015-06-03 16:17:43 -07:00
Ken Dreyer
5feb806905 Merge pull request #4793 from SUSE/wip_ceph_spec_directories_not_owned_by_a_package
ceph.spec.in:ownership of dirs extension

Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
2015-06-03 16:28:01 -06:00
Ken Dreyer
7d5a8f74fb Merge pull request #4821 from SUSE/wip_libcephfs_jni_postun
ceph.spec.in libcephfs_jni1 has no %post and %postun

Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
2015-06-03 16:24:39 -06:00
Ken Dreyer
799432ab48 Merge pull request #4725 from SUSE/wip_suse_forward_conditionals
Add rpm conditionals
2015-06-03 16:19:37 -06:00
Sage Weil
0dbae1a8bc Merge pull request #4808 from liewegas/wip-make-dist
make_dist_tarball.sh

Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
2015-06-03 15:14:54 -07:00
Sage Weil
048a2263ee Merge pull request #4850 from ktdreyer/wip-readme-simplify-deps
README: simplify build deps section
2015-06-03 14:29:33 -07:00
Ken Dreyer
fbb9279799 README: simplify build deps section
The install-deps.sh step is the same for Debian and RPM-based systems.
Simplify the two README sections into a single section.

Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
2015-06-03 15:25:23 -06:00
Gregory Farnum
172d3ac874 Merge pull request #4828 from liewegas/wip-11798
make upstart less aggressive with respawn (11798)

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
2015-06-03 13:51:54 -07:00
Sage Weil
0e66dae959 Merge pull request #4844 from ceph/wip-11860
rgw: Do not enclose the Bucket header in quotes

Reviewed-by: Sage Weil <sage@redhat.com>
2015-06-03 13:15:37 -07:00
Sage Weil
eaff6cb24e upstart: limit respawn to 3 in 30 mins (instead of 5 in 30s)
It may take tens of seconds to restart each time, so 5 in 30s does not stop
the crash on startup respawn loop in many cases.  In particular, we'd like
to catch the case where the internal heartbeats fail.

This should be enough for all but the most sluggish of OSDs and capture
many cases of failure shortly after startup.

Fixes: #11798
Signed-off-by: Sage Weil <sage@redhat.com>
2015-06-03 14:57:34 -04:00
Wido den Hollander
8af25faed9 rgw: Do not enclose the Bucket header in quotes
Fixes: #11860
Signed-off-by: Wido den Hollander <wido@42on.com>
2015-06-03 20:20:16 +02:00
Kefu Chai
3fb1186d1a Merge pull request #4836 from ceph/wip-11857
admin/build-doc: fix dependency checks

Reviewed-by: Nathan Cutler <ncutler@suse.cz>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2015-06-04 00:51:24 +08:00