ctx->at_version should match the head of the new log entries
during issue_repop. This could cause the scrub hang bug as
last_update would be less than last_update_applied.
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Holger Macht [Thu, 15 Dec 2011 16:51:04 +0000 (17:51 +0100)]
ceph.spec: Clean up and fix spec file and build for a couple of distributions
Clean up and fix the spec file. This includes cleaning up of build and
installed system dependencies, LSB compliance fixes, splitting up into
several sub-packages (lib*) and so on. It now builds fine for the
following distributions in the Open Build Service and should be
considered as a starting point for further fixes:
- CentOS 6
- Fedora 15
- RedHat Enterprise Linux 6
- openSUSE 11.4
- openSUSE 12.1
- openSUSE Factory
- SUSE Linux Enterprise 11 (SP1 and SP2)
Andre Noll [Fri, 9 Dec 2011 17:57:44 +0000 (18:57 +0100)]
doc: Add missing documentation for osd pool get.
"osd pool set" was already documented, but the corresponding "get"
command was not. This patch adds the list of valid fields for this
command, together with short descriptions.
Thanks to Gregory Farnum for pointing out a flaw in the description
of lpl_num and lpgp_num in an earlier version of the patch.
Andre Noll [Fri, 9 Dec 2011 17:57:41 +0000 (18:57 +0100)]
doc: Add documentation of missing osd commands.
The set of OSD commands which added by the previous commit is
incomplete. This patch adds documentation for the following
OSD commands which were previously missing: dump, tree, crush,
cluster_snap, lost, create, rm.
Andre Noll [Fri, 9 Dec 2011 17:57:40 +0000 (18:57 +0100)]
doc: Import the list of ceph subcommands from wiki.
This adds the content of the wiki page at
http://ceph.newdream.net/wiki/Monitor_commands
to doc/control.rst in order to make it available at the new official
location for the ceph documentation. This first patch is just the
result of a cut-and-paste operation. There are no changes in content,
but the text was converted to rst format.
Greg Farnum [Thu, 8 Dec 2011 00:44:28 +0000 (16:44 -0800)]
messenger: fix up fault()'s "onconnect" parameter.
We should be setting this true when calling fault() from connect().
And rename it in the header -- it does produce less output when set,
but it's actually useful because it changes the shutdown logic
slightly.
Greg Farnum [Wed, 7 Dec 2011 22:19:23 +0000 (14:19 -0800)]
mds: mark_disposable when closing a Client connection.
This is causing issues since the Client's ack of the MClientSession
is somehow not getting back to the MDS. We should make the
Client/SimpleMessenger be better-behaved about shutdown, but for
now this solution matches how we're working elsewhere in our codebase.
Sage Weil [Wed, 7 Dec 2011 17:07:38 +0000 (09:07 -0800)]
crush: fix force to behave with non-root TAKE
If the (first) TAKE in the crush rule is not the root, see if they picked
a point somewhere beneath the appropriate part of the hierachy. If not,
continue with a normal mapping.
Previously we would simply error out in this case and map nothing.
Samuel Just [Fri, 9 Dec 2011 22:42:21 +0000 (14:42 -0800)]
pybind: add object locator support to pybind pool listing
list_objects returns Object(). Object therefore now has an optional
locator_key parameter which will set up the object locator on Object()
methods to allow objects returned from list_objects with locator keys to
be used normally.
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Josh Durgin [Fri, 9 Dec 2011 00:36:45 +0000 (16:36 -0800)]
udev: drop device number from name
The device number depends on how many rbd images have been
mapped. Removing it makes the name determined solely by the name,
image, and snapshot that are mapped, for ease of scripting or persistence
across reboots.
Samuel Just [Thu, 1 Sep 2011 21:56:01 +0000 (14:56 -0700)]
librados,Objecter,PG: list objects now includes the locator key
Previously, there was no way to recover the locator key used to create
and object. Now, rados_objects_list_next and ObjectIterator will return
the key as well as the object name.
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Samuel Just [Wed, 30 Nov 2011 18:38:09 +0000 (10:38 -0800)]
object.h: Sort hobject_t by nibble reversed hash
To match the HashIndex ordering, we need to sort hobject_t by the nibble
reversed hash. We store objects in the filestore in a directory tree
with the least significant nibble at the top and the most at the bottom
to facilitate pg splitting in the future.
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Samuel Just [Tue, 6 Dec 2011 21:23:03 +0000 (13:23 -0800)]
ReplicatedPG: don't crash on empty data_subset in sub_op_push
If data_subset is empty (i.e., the data we pulled is no longer useful),
we should mark complete false and continue rather than fail the
assert in range_end().
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Greg Farnum [Tue, 6 Dec 2011 22:24:08 +0000 (14:24 -0800)]
ReplicatedPG: do not ->put() scrub messages when adding to a WorkQueue.
This function is passing a reference from PG::active_rep_scrub to
the req_scrub_wq, not eliminating the reference (and the WorkQueue
doesn't grab a new reference itself, either).
The other alternative is to convert the WorkQueue to grab a
reference, but since they can cycle through the WorkQueue more than
once, and need to be ->put() outside the WorkQueue, I don't like
that option.
This should fix #1758.
Also add an assert to PG::_request_scrub_map to check on the other
possible cause of this bug (and fix the indentation).
Tommi Virtanen [Tue, 6 Dec 2011 20:13:03 +0000 (12:13 -0800)]
doc: Reorganize pip calls to use a requirements file.
The conditional before running pip install was unnecessary,
"pip install" on already installed packages is fast (as long
as it's not --upgrade), and --quiet makes it not spam the
console.
Signed-off-by: Tommi Virtanen <tommi.virtanen@dreamhost.com>