Commit Graph

38709 Commits

Author SHA1 Message Date
Sage Weil
4d3c7ecc9d Merge pull request #3444 from ceph/wip-mon-pgtemp
osd: OSDMap: remove pg temps for inexistent pools

Reviewed-by: Sage Weil <sage@redhat.com>
2015-01-27 12:54:47 -08:00
Sage Weil
f1c9b24fe7 Merge pull request #3465 from liewegas/wip-mon-features
mon/OSDMonitor: validate crush features for osd (not just mon)

Reviewed-by: Joao Eduardo Luis <joao@redhat.com>
2015-01-27 12:54:28 -08:00
Sage Weil
597c18ad46 Merge pull request #3475 from tchaikov/osdmap-remove-unused-variables
osd/OSDMap: remove unused variables

Reviewed-by: Loic Dachary <ldachary@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
2015-01-27 12:54:03 -08:00
Sage Weil
dba0abbd68 Merge pull request #3477 from liewegas/wip-noreuse
librados: add NOREUSE fadvise hint

Reviewed-by: Jianpeng Ma <jianpeng.ma@intel.com>
2015-01-27 12:53:30 -08:00
Yehuda Sadeh
fc896760ff Merge pull request #3471 from yuandong1222/rgw-format-mtime
rgw: format mtime of radosgw-admin bucket stats

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
2015-01-27 10:23:03 -08:00
Loic Dachary
af266c02d3 Merge pull request #3497 from trociny/test-10439
tests: bring back useful test 'ceph tell osd.foo'

Reviewed-by: Loic Dachary <ldachary@redhat.com>
2015-01-27 14:12:36 +01:00
Mykola Golub
e5ddc502d9 tests: bring back useful test 'ceph tell osd.foo'
The test was removed in 1189138 (mon: make ceph tell mon.* version
work) as it began to fail due to #10439. After it fixed in c4548f6
(pybind: ceph_argparse: validate incorrectly formed targets), the test
can be restored.

Signed-off-by: Mykola Golub <mgolub@mirantis.com>
2015-01-27 10:51:07 +02:00
Josh Durgin
5a654e321f Merge pull request #2563 from ceph/wip-7467
rgw: support multiple host names

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2015-01-26 22:34:24 -08:00
Josh Durgin
d5cb91e508 Merge pull request #3492 from ceph/wip-gmock
tests: add Google C++ Mocking Framework

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2015-01-26 11:50:05 -08:00
Josh Durgin
9408d0f743 Merge pull request #3493 from ceph/wip-10637
librbd: trim header update not using AIO

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2015-01-26 11:07:20 -08:00
Loic Dachary
e62569685f Merge pull request #3388 from dachary/wip-make-check
tests: centos7 needs nc to run make check
2015-01-26 18:43:12 +01:00
Ken Dreyer
b36b5c9e70 Merge pull request #3345 from dachary/wip-install-epel
tests: better EPEL installation method

Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
2015-01-26 10:24:53 -07:00
Loic Dachary
9a9670c2c3 tests: better EPEL installation method
It does not depend on a specific version of the EPEL release package.

Signed-off-by: Loic Dachary <ldachary@redhat.com>
2015-01-26 10:22:57 -07:00
Loic Dachary
1798803292 Merge pull request #3455 from bveuille/wip-documentation
doc: Change Availability text in all of the man pages

Reviewed-by: Loic Dachary <ldachary@redhat.com>
2015-01-26 12:42:32 +01:00
Jason Dillaman
bf05ec186a tests: replace existing gtest 1.5.0 with gmock/gtest 1.7.0
Google Testing Framework is included by default within the Google
C++ Mocking Framework.  Update makefiles to use new gmock/gtest
libraries and remove old gtest source code.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-01-25 23:09:03 -05:00
Jason Dillaman
5301b2b705 librbd: trim header update not using AIO
The original trim header update code was using blocking IO to
update the header.  After migrating to an asynchronous trim
which performs all work in librados callbacks, it exposed a
potential deadlock in the librados_test_stub when attempting
to do blocking IO within a librados callback.  This commit
changes the header update to use AIO.

Fixes: #10637
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-01-25 22:15:07 -05:00
Jason Dillaman
5cbe0c57f0 gmock: use Google C++ Mocking Framework for unit tests
The 'src/gmock' directory is extracted from the 1.7.0
release located at https://code.google.com/p/googlemock/

gmock is licensed under the New BSD license, see
src/gmock/LICENSE

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-01-25 20:06:55 -05:00
Josh Durgin
c602a8547b Merge pull request #3486 from ceph/wip-librbd-trim-error
librbd: trim would not complete if exclusive lock is lost

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2015-01-25 12:55:24 -08:00
Gregory Farnum
e1aecdf822 Merge pull request #3487 from ceph/wip-install-deps
install-deps: fix LC_ALL setting

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
2015-01-25 11:59:16 -08:00
Noah Watkins
ca1d21e392 install-deps: fix LC_ALL setting
On my box LC_ALL=C# includes the '#' in the value without
a space between C and '#' and things go completely bonkers.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2015-01-25 11:45:48 -08:00
Josh Durgin
e4a97c60e3 librados_test_stub: add IoCtx::get_instance_id()
This fixes make check

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
2015-01-24 23:12:18 -08:00
Josh Durgin
f3bdd385ff Merge branch 'wip-8902'
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2015-01-24 15:37:09 -08:00
Jason Dillaman
4ac3cd729c librbd: throttle async progress callbacks
Ensure that no more than one outstanding progress callback
is queued for notification.  This will allow remote progress
updates to be sent at a rate in which all watch/notify
clients can support.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-01-24 15:05:49 -08:00
Jason Dillaman
cd9d8eb79a librbd: add more robust retry handling to maintenance ops
When image locking is enabled, snapshot create, resize, and
flatten are coordinated with the lock owner.  Previously, if the
the lock owner changed during one of this operations, the
operation would fail.  Now librbd will attempt to restart the
operation with the new lock owner (or become the owner itself).

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-01-24 15:05:49 -08:00
Jason Dillaman
1b6467b79f librbd: assert header lock ownership for maint operations
The resize, flatten, and snapshot maintenance operations now
use the new assert_lock feature to ensure that the current
client still owns the header lock when making changes.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-01-24 15:05:49 -08:00
Jason Dillaman
71e84e048f cls_lock: New assert_locked operation
The assert_locked operation can be combined with other
RADOS ops to prevent an update to a locked object when
the client doesn't own the lock.  It will not attempt to
acquire the lock if the object is not currently locked.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-01-24 15:05:49 -08:00
Jason Dillaman
376c7e0f14 librbd: Coordinate maintenance through exclusive lock leader
When the exclusive lock feature is enabled, only a single client can
modify the image.  As a result, certain maintenance activities
need to be proxied from the maintenance client to the active
leader.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-01-24 15:05:49 -08:00
Jason Dillaman
dfa96c5801 librbd: Add maintenance operation requests to ImageWatcher
Snapshot, flatten, and resize maintenance operations can now
be coordinated via the client holding the exclusive lock for the
image.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-01-24 15:05:49 -08:00
Jason Dillaman
e6f12805c2 librados: Expose RadosClient instance id through librados
Allow librados clients to utilize the global id of the RadosClient.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-01-24 15:03:44 -08:00
Jason Dillaman
398bc9648d librbd: Create async versions of long-running maintenance operations
Resize and flatten now have async versions. The existing resize
and flatten operations now use the async versions internally. The
async operations will be used by the client holding the exclusive
lock when it receives maintenance requests from other clients.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-01-24 15:03:44 -08:00
Dong Yuan
87ef46207b rgw: format mtime of radosgw-admin bucket stats
use formatter.dump_stream to format mtime

Change-Id: Ib1747b5389e29a4c5ab0499fcdb8cbaa926ae30c
Signed-off-by: Dong Yuan <yuandong1222@gmail.com>
2015-01-24 08:33:28 +00:00
Josh Durgin
48910a5232 Merge pull request #3479 from ceph/wip-librbd-close-deadlock
librbd: potential deadlock on close_image

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2015-01-23 23:51:37 -08:00
Jason Dillaman
dc1630e9f2 librbd: trim would not complete if exclusive lock is lost
The trim completion context was not properly invoked if the
image's exclusive lock was lost between issuing a librados call
and receiving its completion.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-01-24 02:28:07 -05:00
Loic Dachary
53836948e9 Merge pull request #3466 from delco225/master
installation error on ubuntu 14 corrected  

Reviewed-by: Loic Dachary <ldachary@redhat.com>
2015-01-24 01:41:50 +01:00
delco225
3347e0daec bug: error when installing ceph dependencies with install-deps.sh
The parsing is sensitive to i18n and will fail if, for instance, it is set to French.
Workaround the problem by always setting the language to C so the script
can safely assume all output will be in english.

http://tracker.ceph.comm/issues/10596 Fixes: #10596

Signed-off-by: Ahoussi Armand <ahoussi.say@telecom-bretagne.eu>
2015-01-24 01:35:27 +01:00
Sage Weil
1255381210 Merge pull request #3482 from ktdreyer/wip-rpm-glob-man-pages
ceph.spec.in: use wildcards to capture man pages
2015-01-23 14:14:24 -08:00
Ken Dreyer
9b220bddea ceph.spec.in: use wildcards to capture man pages
Use wildcard to capture gzipped man pages for ceph-clsinfo(8) and
librados-config(8). In addition to future-proofing us against
possible compression type changes down the road, this also aligns us
with the existing convention that's used to capture the rest of the man
page files.
2015-01-23 15:08:34 -07:00
Josh Durgin
96bc1f4942 Merge pull request #3040 from cchengleo/wip-copy-on-read
RBD copy on read

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2015-01-23 13:44:40 -08:00
Cheng Cheng
b304af344e librbd: clean up log message for copy-on-read
Signed-off-by: Cheng Cheng <ccheng.leo@gmail.com>
2015-01-23 14:20:39 -05:00
Jason Dillaman
6f6facb981 librbd: potential deadlock on close_image
The owner_lock was incorrectly held when unregistering the image
watcher.  It was possible for the ImageWatcher finisher to be
running code that was then deadlocked waiting to acquire the
owner_lock while the close_image thread was attempting to shutdown
the deadlocked finisher.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-01-23 13:00:40 -05:00
Jason Dillaman
bda293adc2 librbd: fix copy-on-read / resize down race condition
There was a rare race condition between a pending CoR operation
and a resize down operation resulting in a CoR copyup past the
new, reduced parent overlap.  This commit also adds additional
log message details for CoR.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-01-23 12:27:41 -05:00
Jason Dillaman
e9170335a2 test: add rados_nobjects_list_xyz functions to librados test stub
The new RBD copy-on-read unit test case uses these RADOS functions
to verify that the CoR operation was successful.  This implements
these functions in the librados_test_stub library.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-01-23 12:27:41 -05:00
Jason Dillaman
7c7f072aab librbd: eliminate CoR callback
When issuing the CoR copyup request, there is no need to keep
initialize the librados callback.  Treat the CoR as a fire-and-
forget operation.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-01-23 12:27:40 -05:00
Jason Dillaman
9790b0f96b librbd: use finisher for copy-on-read copyup fulfillment
When the RBD cache is enabled, the ObjectCacher does not allow
reentrancy to read the full object.  As a temporary workaround,
use the Finisher to handle CoR read requests.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-01-23 12:27:39 -05:00
Sage Weil
4dda030a44 librados: add FADVISE_NOREUSE
We left this off because it seemed the same as DONTNEED, but there is a
subtle distinction: DONTNEED means nobody will need it (and we probably
discard our cache), while NOREUSE means this client won't need it again
(and we should try to avoid polluting the cache from this IO only).  At
least, that's the way we'r defining it.  posix_fadvise says:

       POSIX_FADV_NOREUSE
              The specified data will be accessed only once.
       POSIX_FADV_DONTNEED
              The specified data will not be accessed in the near future.

which is similar.  I think our definitions make a bit more sense for the
multi-client environment.

Signed-off-by: Sage Weil <sage@redhat.com>
2015-01-23 09:06:32 -08:00
Josh Durgin
a73b8f816c Merge pull request #3456 from ceph/wip-4092
librbd: schedule header refresh after watch error

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2015-01-23 08:47:27 -08:00
Kefu Chai
050a59ec79 osd/OSDMap: remove unused variables
Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2015-01-23 23:26:53 +08:00
Jason Dillaman
55dfe032b8 librbd: schedule header refresh after watch error
If a librados watch error occurs, it is possible that one
or more events were missed.  Therefore, flag the header as
dirty so that it will be reloaded after the next operation.

Fixes: #4092
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-01-23 10:19:04 -05:00
Loic Dachary
b782030e87 Merge pull request #3472 from armaseg/master
doc: Some files still use http://ceph.newdream.net

Reviewed-by: Loic Dachary <ldachary@redhat.com>
2015-01-23 15:20:57 +01:00
Armando Segnini
33f0afdd15 doc: Some files still use http://ceph.newdream.net
This probably redirects to http://ceph.com but ceph.newdream.net still appears in some places

http://tracker.ceph.com/issues/10615 Fixes: #10615

Related: #9922

Signed-off-by: Armando Segnini <armando.segnini@telecom-bretagne.eu>
2015-01-23 12:28:58 +01:00