Commit Graph

21426 Commits

Author SHA1 Message Date
Mike Ryan
45133971cc ReplicatedPG: track incoming pushes with perf counters
Add perf counters tracking the number of inbound pushes along with the
amount of data in each request.

Signed-off-by: Mike Ryan <mike.ryan@inktank.com>
2012-09-27 13:26:05 -07:00
Samuel Just
3f952afe5d PG: explicitely delay ops on backfill_pos
Previously, we considered backfill_pos degraded in order to delay
ops since a write to backfill_pos could generate a snap before
backfill_pos, and we assume that (0, backfill_pos) is fully
backfilled.  This is a problem since it's possible that
backfill_pos is a valid object, but not one that currently exists.
For example, it might have been deleted since last_backfill was
last changed.  Instead, we will explicitly delay ops on
backfill_pos in waiting_for_backfill_pos.

This error resulted in #2691 since wait_for_degraded_object also
attempts to recover the object. At this point, the primary would
attempt to recover the object, find that it isn't there, and put
it in the missing set with need=0,0.  Eventually, recover_primary
attempts to recover that object, finds that it has been deleted
in the log, and asserts.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-09-27 13:21:53 -07:00
Sage Weil
a351f7a1f4 Merge remote-tracking branch 'gh/wip_backfill_full2'
Conflicts:
	src/include/ceph_features.h
2012-09-27 13:21:23 -07:00
Samuel Just
0a2f827850 PG: last_complete might be outside of the log
When we encounter a divergent log entry, we put the
object into the missing set at the prior_version
for the divergent event.  Unfortunately, the event
at prior_version might have been trimmed leaving
the missing set with an item with a need prior to
log_tail.  Thus, last_complete also ends up being
prior to log_tail.

Caused #3208.

There is another bug related to this one: #3213.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-09-27 13:20:35 -07:00
Sage Weil
4c4c9d503e doc: fix rpm url
Signed-off-by: Sage Weil <sage@inktank.com>
2012-09-27 13:06:03 -07:00
Sage Weil
879b34daa9 v0.52
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQIcBAABAgAGBQJQZIivAAoJEH6/3V0X7TFtgggQAKU97wvpdnqeYdGPDWH5A8sR
 HGzsSvJFTMTDCN42sJA/QFCaBYEO0BUlng8bJBFVCgPrn2Rl8GhMORRyTnzHiRhr
 DHHgI5zoGtteYHYByCXcTGh4iSxcClmXLNIP4kd4TY15By/npcHo5zDZ7fOQENb8
 9OCF38eu7xIU1VhNCo97pNoKCGM0THfCvY+qbRiZ7rSaMPoU2h55+f28n/8NHyoC
 a3COmQB3QHErf9J1o+6zwBRM+z03+5i5J5ojv+FFaOj8r0KgNTssDCuolYPdyhL/
 xaQOtEc6QHH4qYpEMxbMdTgyTkssnn8Qtqb1XqxjCoL7W1YxKiRfQCathVjROQ2b
 wTkyN1JihLxzcWmoFph7z2gtPcTaqajlp800qxUjC8kQj63YhIUiSLMMMUqkxhLw
 GkWRflrzVXRhrVfTajFzKrzjDm9vuzZz+hxvJLVRGwReJ48rxOybzA69hUc9fpbo
 Tgui3CSJAEqlqgXb8VKmwOJJu+IYjJrOEON/5++lNSexN8fAqDyMC2HTPlClQqnp
 fDK9AT9xGsm6V/PB40I8jmhOVH23LttAUqW6M3kEMmIBBdF/krv1K+UPfKCMxFS/
 xsxfRNmVd84ycJWvPSxUPkWdl0bDRj9PQnV9iCuZiAY9f19dYhPWJp3c8v7ThPTB
 oFL9UJFMDcFJ3uWcsa/p
 =MsuW
 -----END PGP SIGNATURE-----

Merge tag 'v0.52'

v0.52

Conflicts:
	src/rgw/rgw_rados.cc
2012-09-27 12:54:07 -07:00
Yehuda Sadeh
214327ef6f rgw: copy_object should not override ETAG implicitly
When copying an object with new attrs, we still need to
maintain the ETAG.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>

Conflicts:
	src/rgw/rgw_rados.cc
2012-09-27 12:52:21 -07:00
Jim Schutt
25a9620a72 FileJournal: correctly check return value of lseek in write_fd
Signed-off-by: Jim Schutt <jaschut@sandia.gov>
2012-09-27 11:09:50 -07:00
Josh Durgin
3144690937 doc: fix injectargs syntax
The OSD processes only a single string. The existing example wouldn't
even be passed to the OSD, since it would be interpreted as an option
to the ceph command.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-09-27 10:19:59 -07:00
Gary Lowell
e48859474c v0.52 2012-09-27 16:26:11 +00:00
Sage Weil
9e9c5f2591 osd: make 'pg <pgid> revert ...' command idempotent
A failure in the ceph tool -> osd connection may mean this command is sent
twice.  This regularly causes failures in QA.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-09-27 08:11:58 -07:00
Sage Weil
d3d1b7b377 Merge remote-tracking branch 'gh/wip-rbd-docs' 2012-09-26 18:43:34 -07:00
Sage Weil
de5bb62e9c Merge remote-tracking branch 'gh/wip_coverity_osd'
Conflicts:
	src/librbd/internal.cc

Reviewed-by: Sage Weil <sage@inktank.com>
2012-09-26 18:43:12 -07:00
Sage Weil
f6da4377d0 Merge branch 'wip-rpm-doc' 2012-09-26 18:42:52 -07:00
Sam Lang
175465bbd1 cephfs: Fix breakage of cephfs link
Add libcommon.la to LDADD for cephfs.

Signed-off-by: Sam Lang <sam.lang@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
2012-09-26 17:50:19 -07:00
Josh Durgin
8c3bfaa30a doc: update ceph-authtool man page
* document osd capabilities
* fix librados user example
* fix example with outdated syntax (pool= and uid= are not supported)
* ignore auid, object prefix, and class restrictions for now since
  they aren't usable yet
* fix header for keyring file section

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-09-26 17:41:03 -07:00
Josh Durgin
3b0e1205ce doc: clarify rbd caching
* note that it's only for librbd
* put settings in the [client] section for clarity
* fix typo
* re-indent and clarify sentence about clustered fs on top of RBD

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-09-26 17:41:03 -07:00
Josh Durgin
fa3a7472f9 doc: fix typo in dev layering notes
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-09-26 17:41:03 -07:00
Josh Durgin
f0a5c562f5 doc: small fixes to the OpenStack page
* 'Ceph common' is not a package name
* config dir is /etc/nova, not /etc/conf
* remove trailing whitespace

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-09-26 17:41:03 -07:00
Josh Durgin
8964f10faf doc: remove MDS from diagram describing RBD and OpenStack
The MDS is not used with RBD or librados.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-09-26 17:41:03 -07:00
Josh Durgin
f586add47b doc: extend QEMU/RBD docs
Describe running a vm from RBD, cache options, and discard support.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-09-26 17:41:03 -07:00
Sage Weil
4ea9b9f34d doc: minor fixups to rpm install doc
Signed-off-by: Sage Weil <sage@inktank.com>
2012-09-26 17:38:24 -07:00
Gary Lowell
85b01517bc doc: draft rpm installation 2012-09-26 17:33:04 -07:00
Sam Lang
cc9d7da5b8 cephfs: Fix warning - use err instead of errno
Signed-off-by: Sam Lang <sam.lang@inktank.com>
2012-09-26 17:28:21 -07:00
Sam Lang
e8c734bbf1 client: Fix compile error: bad {0} initializers
Signed-off-by: Sam Lang <sam.lang@inktank.com>
2012-09-26 17:26:34 -07:00
Sage Weil
e0af6a546e Merge remote-tracking branch 'gh/wip-3186
Reviewed-by: Sage Weil <sage@inktank.com>
2012-09-26 17:06:03 -07:00
Yehuda Sadeh
67535f2dc1 rgw: different test for multi object delete
We need to check for the existence of the sub-resource.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2012-09-26 16:55:15 -07:00
Sage Weil
b74b0f905f Merge branch 'wip-coverity-client'
Reviewed-by: Sage Weil <sage@inktank.com>
2012-09-26 16:45:07 -07:00
Sam Lang
cd15405564 client: Fix coverity UNINIT_CTOR defects
Coverity finds cases where constructors are not initializing
all the members of the struct/class.

Signed-off-by: Sam Lang <sam.lang@inktank.com>
2012-09-26 16:44:47 -07:00
Sam Lang
844ffd6aff client: Fix coverity 716909 [FORWARD_NULL]
If we fill the request path from the dentry instead of the inode, we
need to use the dentry inode.  This fixes a segfault that would occur
in the case where request->inode is in fact null.

Signed-off-by: Sam Lang <sam.lang@inktank.com>
2012-09-26 16:44:47 -07:00
Sam Lang
68dea676d9 client: Add asserts for coverity bugs
Coverity 716907-716909 [FORWARD_NULL} doesn't like using a pointer
that might be null.  Assertions check that pointers are valid
before dereferencing.

Signed-off-by: Sam Lang <sam.lang@inktank.com>
2012-09-26 16:44:47 -07:00
Sam Lang
10186fe795 client: Fixes coverity defect 716891
Fix for coverity defect 716891 [DEADCODE] in
Client::encode_dentry_release where the released var is initialized
to 0, but never set, so the pre-emptive release of the dentry
capability (if requested by the drop flag) never happens.

Signed-off-by: Sam Lang <sam.lang@inktank.com>
2012-09-26 16:44:47 -07:00
Sam Lang
7945f8bf9f client: Fixes coverity defect 716890 [DEADCODE]
In choose_target_mds, the mds number is initialized to 0 and
then a separate target mds number is chosen based on the inode
set in the request.  If the inode isn't set, we drop to choosing
a random mds, but only if the mds number is < 0, which doesn't
happen with the initialize to 0.  This fix initializes the mds
number to -1, ensuring a random mds is chosen.

Signed-off-by: Sam Lang <sam.lang@inktank.com>
2012-09-26 16:44:47 -07:00
Sam Lang
65700fc4f6 client: Coverity fixes for 716841-716844
Fixes coverity errors (CHECKED_RETURN) for all calls to
Client::path_walk() where return value wasn't getting checked
in case of error.

Signed-off-by: Sam Lang <sam.lang@inktank.com>
2012-09-26 16:44:47 -07:00
Sam Lang
bc45cded3f cephfs: Fixes for coverity bugs 716840 and 716970
Fixes for two coverity bugs in cephfs.cc.

716840 (CHECKED_RETURN) reported that the return value from
fstat wasn't getting checked.  It now is checked, reports an
error and returns to the caller.

716970 (NEGATIVE_RETURNS) reported that the file descriptor passed
to fstat (*fd) might be negative, which isn't allowed.  The check at
the top that open failed wasn't aborting the function (when *fd < 0),
now it does.

Signed-off-by: Sam Lang <sam.lang@inktank.com>
2012-09-26 16:44:47 -07:00
Yehuda Sadeh
bba17662fa rgw: copy_object should not override ETAG implicitly
When copying an object with new attrs, we still need to
maintain the ETAG.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2012-09-26 16:14:02 -07:00
Sam Lang
a9e304115f mds: Move check for empty path lookup to getattr
Signed-off-by: Sam Lang <sam.lang@inktank.com>
2012-09-26 16:04:50 -07:00
Mike Ryan
c689556896 PG, OSD: reject backfills when an OSD is nearly full
Reject backfills when an OSD reaches a configurable full ratio. Retry
backfilling periodically in the hopes that the OSD has become less full.

This changeset introduces two configuration options for dealing with
this: osd_refuse_backfill_full_ratio and osd_backfill_retry_interval.

We also introduce two new state transitions in the PG's Active state.

Signed-off-by: Mike Ryan <mike.ryan@inktank.com>
2012-09-26 11:57:31 -07:00
Mike Ryan
a6b0d55b2b timer: add unsafe callbacks option
Using unsafe callbacks drops the lock between invocations of event
callbacks. It is useful under some circumstances, but the user must take
caution. See the comment in Timer.h for full details.

Signed-off-by: Mike Ryan <mike.ryan@inktank.com>
2012-09-26 11:57:20 -07:00
John Wilkins
5b232a66b9 doc: Fixed typo.
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
2012-09-26 11:06:26 -07:00
Samuel Just
9f6ee01e8d JournalingObjectStore: lock journal_lock at top of journal_replay
CID 716968: Data race condition (MISSING_LOCK)At (6): Accessing "this->op_seq"
("JournalingObjectStore.op_seq") requires the "Mutex._m" lock.

Doesn't really matter, but this should satisfy coverity.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-09-26 10:16:24 -07:00
Samuel Just
e02258516c FlatIndex: terminate dir_name buffer passed to strncpy
CID 716836: Buffer not null terminated (BUFFER_SIZE_WARNING)At (1): Calling
strncpy with a maximum size argument of 4096 bytes on destination array
"dir_name" of size 4096 bytes might leave the destination string unterminated.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-09-26 10:16:24 -07:00
Samuel Just
d3bd9cbd30 FileStore: uninit var in ctor OpSequencer::parent
CID 717334: Uninitialized pointer field (UNINIT_CTOR)At (2): Non-static class
member "parent" is not initialized in this constructor nor in any functions
that it calls.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-09-26 10:16:24 -07:00
Samuel Just
0e73313bb9 FileStore: fix omap_store and dbomap leaks in mount
CID 717093: Resource leak (RESOURCE_LEAK)At (48): Variable "omap_store" going
out of scope leaks the storage it points to.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-09-26 10:16:24 -07:00
Samuel Just
3bef5eb4d7 FileStore: don't leak r in mount
ID 717092: Resource leak (RESOURCE_LEAK)At (40): Handle variable "r" going out
of scope leaks the handle.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-09-26 10:16:24 -07:00
Samuel Just
f9c5ac3664 FileStore: fix fd and tmpfd leaks in _detect_fs()
CID 717088: Resource leak (RESOURCE_LEAK)At (11): Handle variable "tmpfd" going
out of scope leaks the handle.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-09-26 10:16:24 -07:00
Samuel Just
b99979cffc FileStore: fix leaked fd and check lseek in _test_fiemap
CID 716861: Other violation (CHECKED_RETURN)At (3): Calling function "lseek(fd,
off, 0)" without checking return value. This library function may fail and
return an error code.

CID 717090: Resource leak (RESOURCE_LEAK)At (10): Handle variable "fd" going
out of scope leaks the handle.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-09-26 10:16:24 -07:00
Samuel Just
620701df49 FileStore: fix filedescriptor leak in mkfs
CID 717091: Resource leak (RESOURCE_LEAK)At (39): Handle variable "fd" going
out of scope leaks the handle.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-09-26 10:16:24 -07:00
Samuel Just
33f96181dd FileStore: fix statfs,fstatfs,fstat ret val checks
CID 716863: Other violation (CHECKED_RETURN)At (20): Calling function
"fstat(basedir_fd, &basest)" without checking return value. This library
function may fail and return an error code.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-09-26 10:16:18 -07:00
Samuel Just
ea91ee58ff FileJournal: uninit var in ctor aio_ctx FileJournal
CID 717333: Uninitialized pointer field (UNINIT_CTOR)At (2): Non-static class
member "aio_ctx" is not initialized in this constructor nor in any functions
that it calls.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-09-26 10:15:13 -07:00