]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
12 years agocls_refcount: add type tests
Sage Weil [Fri, 12 Jul 2013 18:14:19 +0000 (11:14 -0700)]
cls_refcount: add type tests

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agodoc/dev: add corpus.rst
Sage Weil [Fri, 12 Jul 2013 17:36:38 +0000 (10:36 -0700)]
doc/dev: add corpus.rst

Structure of the corpus dir, how to add to it.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: reenable pg_query_t test
Sage Weil [Fri, 12 Jul 2013 02:08:43 +0000 (19:08 -0700)]
osd: reenable pg_query_t test

This was disabled back in 4ce17cca2e924b2ef9565d5c345cd602bcc6dd98; not
sure why.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon: add encoding tests for newish MMonSync, MMonScrub
Sage Weil [Fri, 12 Jul 2013 02:08:01 +0000 (19:08 -0700)]
mon: add encoding tests for newish MMonSync, MMonScrub

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomds: add encoding test for inode_backtrace_t; note incompat in corpus
Sage Weil [Fri, 12 Jul 2013 02:07:36 +0000 (19:07 -0700)]
mds: add encoding test for inode_backtrace_t; note incompat in corpus

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: add encoding tests for PushOp, PullOp, PushReplyOp
Sage Weil [Fri, 12 Jul 2013 02:07:11 +0000 (19:07 -0700)]
osd: add encoding tests for PushOp, PullOp, PushReplyOp

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon: add encoding tests for MonitorDBStore data types
Sage Weil [Fri, 12 Jul 2013 02:06:47 +0000 (19:06 -0700)]
mon: add encoding tests for MonitorDBStore data types

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoceph-object-corpus: new objects for almost-dumpling
Sage Weil [Fri, 12 Jul 2013 01:47:18 +0000 (18:47 -0700)]
ceph-object-corpus: new objects for almost-dumpling

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd/OSDmap: fix OSDMap::Incremental::dump() for new pool names
Sage Weil [Fri, 12 Jul 2013 01:43:24 +0000 (18:43 -0700)]
osd/OSDmap: fix OSDMap::Incremental::dump() for new pool names

The name is always present when pools are created, but not when they are
modified.  Also, a name may be present with a new_pools entry if the pool
is just renamed.  Separate it out completely in the dump.

Backport: cuttlefish, bobtail
Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomsg/Message: use old footer for encoded message dump
Sage Weil [Thu, 11 Jul 2013 18:42:02 +0000 (11:42 -0700)]
msg/Message: use old footer for encoded message dump

This avoids the need for a conditional decoding check on ceph-dencoder,
and makes it match up with what encode_message() is doing.  The new(ish)
fields in the footer (the signature) is not useful for the object
corpus.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agotest/encoding/import-genearted: fix
Sage Weil [Thu, 11 Jul 2013 03:47:08 +0000 (20:47 -0700)]
test/encoding/import-genearted: fix

Dest dir was wrong, cp shortcut check was wrong.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomds: make rename_rollback::drec not assert on unexpected d_type
Sage Weil [Thu, 11 Jul 2013 03:40:24 +0000 (20:40 -0700)]
mds: make rename_rollback::drec not assert on unexpected d_type

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomds: fix rename_rollback::drec cctor
Sage Weil [Thu, 11 Jul 2013 03:33:15 +0000 (20:33 -0700)]
mds: fix rename_rollback::drec cctor

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agocls/rgw: init op in rgw_cls_obj_complete_op ctor
Sage Weil [Thu, 11 Jul 2013 03:25:12 +0000 (20:25 -0700)]
cls/rgw: init op in rgw_cls_obj_complete_op ctor

Turned up by the encoding/decoding unit tests.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoMerge pull request #420 from gregsfortytwo/master
Yehuda Sadeh [Thu, 11 Jul 2013 01:42:18 +0000 (18:42 -0700)]
Merge pull request #420 from gregsfortytwo/master

radosgw-admin help command naming and text improvements

Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
12 years agoPGMonitor: fix stat comparison in prepare_pg_stats
Samuel Just [Thu, 11 Jul 2013 01:29:54 +0000 (18:29 -0700)]
PGMonitor: fix stat comparison in prepare_pg_stats

Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agoGet device-by-path by looking for it instead of assuming 3rd entry.
Sandon Van Ness [Wed, 10 Jul 2013 21:55:52 +0000 (14:55 -0700)]
Get device-by-path by looking for it instead of assuming 3rd entry.

On some systems (virtual machines so far) the device-by-path entry
from udevadm is not always in the same spot so instead actually
look for the right output instead of blindy assuming that its a
specific field in the output.

Signed-off-by: Sandon Van Ness <sandon@inktank.com>
Reviewed-by: Gary Lowell <gary.lowell@inktank.com>
12 years agoMerge branch 'next'
Josh Durgin [Wed, 10 Jul 2013 20:27:58 +0000 (13:27 -0700)]
Merge branch 'next'

12 years agotest_rados: don't use assert_greater
Josh Durgin [Wed, 10 Jul 2013 20:13:25 +0000 (13:13 -0700)]
test_rados: don't use assert_greater

It's only present in very recent versions of nose, and doesn't provide
much beyond a simple assert.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Reviewed-by: Dan Mick <dan.mick@inktank.com>
12 years agoPython Ioctx.get_xattrs does not take xattr_name
Johannes Erdfelt [Tue, 9 Jul 2013 15:15:33 +0000 (08:15 -0700)]
Python Ioctx.get_xattrs does not take xattr_name

Fixes bug 5528

Since it returns all xattrs, it does not take an xattr_name. Also,
add unit tests for the Object xattrs methods.

Signed-off-by: Johannes Erdfelt <johannes@erdfelt.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
12 years agoosd: fix warning
Sage Weil [Wed, 10 Jul 2013 18:32:34 +0000 (11:32 -0700)]
osd: fix warning

From 653e04a79430317e275dd77a46c2b17c788b860b

Backport: cuttlefish, bobtail
Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: limit number of inc osdmaps send to peers, clients
Sage Weil [Wed, 10 Jul 2013 18:02:08 +0000 (11:02 -0700)]
osd: limit number of inc osdmaps send to peers, clients

We should not send an unbounded number of inc maps to our peers or clients.
In particular, if a peer is not contacted for a while, we may think they
have a very old map (say, 10000 epochs ago) and send thousands of inc maps
when the distribution shifts and we need to peer.

Note that if we do not send enough maps, the peers will make do by
requesting the map from somewhere else (currently the mon).  Regardless
of the source, however, we must limit the amount that we speculatively
share as it usually is not needed.

Backport: cuttlefish, bobtail
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
12 years agomon: do not populate MMonCommand paxos version field
Sage Weil [Wed, 10 Jul 2013 17:17:45 +0000 (10:17 -0700)]
mon: do not populate MMonCommand paxos version field

The field is not used or useful since the monitor does not even look
at it (in Monitor::handle_command()).  Avoid populating it and the
subsequent confusion for poor developers.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomessages/MPGStats: do not set paxos version to osdmap epoch
Sage Weil [Wed, 10 Jul 2013 17:06:20 +0000 (10:06 -0700)]
messages/MPGStats: do not set paxos version to osdmap epoch

The PaxosServiceMessage version field is meant for client-coordinated
ordering of messages when switching between monitors (and is rarely
used).  Do not fill it with the osdmap epoch lest it be compared to a
pgmap version, which may cause the mon to (near) indefinitely put it on
a wait queue until the pgmap version catches up.

Backport: cuttlefish
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
12 years agorgw-admin: add some of the newer flags and specify their use 420/head
Greg Farnum [Wed, 10 Jul 2013 17:08:07 +0000 (10:08 -0700)]
rgw-admin: add some of the newer flags and specify their use

Signed-off-by: Greg Farnum <greg@inktank.com>
12 years agorgw-admin: use 'get' instead of 'show' or info for geo stuff
Greg Farnum [Wed, 10 Jul 2013 15:55:45 +0000 (08:55 -0700)]
rgw-admin: use 'get' instead of 'show' or info for geo stuff

These all output data that you can put back in via 'set', so they're
a 'get' rather than something else.

Signed-off-by: Greg Farnum <greg@inktank.com>
12 years agoMerge pull request #419 from dalgaaf/wip-da-fix-build-rados-classes
Sage Weil [Wed, 10 Jul 2013 16:34:40 +0000 (09:34 -0700)]
Merge pull request #419 from dalgaaf/wip-da-fix-build-rados-classes

ceph.spec.in: add missing %{_libdir}/rados-classes/libcls_* files

12 years agoqa/workunits/cls/test_cls_rgw: add new rgw class tests
Sage Weil [Wed, 10 Jul 2013 16:30:19 +0000 (09:30 -0700)]
qa/workunits/cls/test_cls_rgw: add new rgw class tests

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
12 years agoMerge pull request #418 from dalgaaf/wip-da-fix-build-ceph-test
Sage Weil [Wed, 10 Jul 2013 16:21:05 +0000 (09:21 -0700)]
Merge pull request #418 from dalgaaf/wip-da-fix-build-ceph-test

Fix build and packaging of ceph-test package

Reviewed-by: Sage Weil <sage@inktank.com>
12 years agoMerge pull request #417 from dalgaaf/wip-da-fix-CRYPTO_LIBS
Sage Weil [Wed, 10 Jul 2013 16:20:03 +0000 (09:20 -0700)]
Merge pull request #417 from dalgaaf/wip-da-fix-CRYPTO_LIBS

Makefile.am: fix build, use $(CRYPTO_LIBS)

Reviewed-by: Sage Weil <sage@Inktank.com>
12 years agoceph.spec.in: add missing %{_libdir}/rados-classes/libcls_* files 419/head
Danny Al-Gaaf [Wed, 10 Jul 2013 16:12:05 +0000 (18:12 +0200)]
ceph.spec.in: add missing %{_libdir}/rados-classes/libcls_* files

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agodebian/ceph-test.install: add missing files 418/head
Danny Al-Gaaf [Wed, 10 Jul 2013 15:55:52 +0000 (17:55 +0200)]
debian/ceph-test.install: add missing files

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agoceph.spec.in: add some more ceph_test_cls_rgw_* files
Danny Al-Gaaf [Wed, 10 Jul 2013 15:43:13 +0000 (17:43 +0200)]
ceph.spec.in: add some more ceph_test_cls_rgw_* files

Add new ceph_test_cls_rgw_* files to ceph-test package section.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agosrc/Makefile.am: rename cls_test_rgw_*
Danny Al-Gaaf [Wed, 10 Jul 2013 15:41:24 +0000 (17:41 +0200)]
src/Makefile.am: rename cls_test_rgw_*

Rename files from cls_test_rgw_* to ceph_test_cls_rgw_* to fit the current
naming scheme.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agoceph.spec.in: add some ceph_test_cls_* files
Danny Al-Gaaf [Wed, 10 Jul 2013 15:37:59 +0000 (17:37 +0200)]
ceph.spec.in: add some ceph_test_cls_* files

Add some installed but not packaged ceph_test_cls_* files to
the ceph-test package.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agoMakefile.am: fix build, use $(CRYPTO_LIBS) 417/head
Danny Al-Gaaf [Wed, 10 Jul 2013 15:15:00 +0000 (17:15 +0200)]
Makefile.am: fix build, use $(CRYPTO_LIBS)

Use $(CRYPTO_LIBS) instead of -lcryptopp to work also with
nss crypto lib.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agoMerge pull request #400 from ceph/wip-mon-newsync
Sage Weil [Wed, 10 Jul 2013 00:12:28 +0000 (17:12 -0700)]
Merge pull request #400 from ceph/wip-mon-newsync

simpler mon sync

Reviewed-by: Greg Farnum <greg@inktank.com>
Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
12 years agoMerge branch 'wip-4982-4983-oloc-rebase'
David Zafman [Tue, 9 Jul 2013 23:24:22 +0000 (16:24 -0700)]
Merge branch 'wip-4982-4983-oloc-rebase'

fixes: #4982
fixes: #4983

Reviewed-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
Reviewed-by: David Zafman <david.zafman@inktank.com>
12 years agoMerge pull request #415 from ceph/rgw-next
Sage Weil [Tue, 9 Jul 2013 22:34:05 +0000 (15:34 -0700)]
Merge pull request #415 from ceph/rgw-next

12 years agomon: do not scrub if scrub is in progress
Sage Weil [Tue, 9 Jul 2013 21:12:15 +0000 (14:12 -0700)]
mon: do not scrub if scrub is in progress

This prevents an assert from unexpected scrub results from the previous
scrub on the leader.

Backport: cuttlefish
Signed-off-by: Sage Weil <sage@inktank.com>
12 years agounittest_pglog: fix unittest
Sage Weil [Tue, 9 Jul 2013 21:11:37 +0000 (14:11 -0700)]
unittest_pglog: fix unittest

This was broken by the pg_stat_t::reported cleanup.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoMerge branch 'master' into wip-4982-4983-oloc-rebase 394/head
David Zafman [Tue, 9 Jul 2013 21:10:42 +0000 (14:10 -0700)]
Merge branch 'master' into wip-4982-4983-oloc-rebase

12 years agolibrados/misc.cc: reverse offset and length on write call
Samuel Just [Tue, 9 Jul 2013 17:35:09 +0000 (10:35 -0700)]
librados/misc.cc: reverse offset and length on write call

Signed-off-by: Samuel Just <sam.just@inktank.com>
12 years agoosd: Add namespace to dump_watchers output
David Zafman [Tue, 9 Jul 2013 06:56:56 +0000 (23:56 -0700)]
osd: Add namespace to dump_watchers output

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agoosd: Clean-up redundant use of object_locator_t
David Zafman [Tue, 9 Jul 2013 01:58:12 +0000 (18:58 -0700)]
osd: Clean-up redundant use of object_locator_t

Remove locator arg from get_object_context()/find_object_context()
Remove locator from object_info_t but retain encode format
Remove locator from object_info_t dump output
Remove OLOC_BLANK

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agoosd: Add the ability to set capabilities on namespaces
David Zafman [Fri, 28 Jun 2013 22:45:27 +0000 (15:45 -0700)]
osd: Add the ability to set capabilities on namespaces

Parse namespace spec in osd caps and use in is_match()
Add test cases to unit test

feature: #4983 (OSD: namespaces pt 2 (caps))

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agoosd: Prepare for nspace match with simpler is_match_all()
David Zafman [Fri, 28 Jun 2013 21:20:23 +0000 (14:20 -0700)]
osd: Prepare for nspace match with simpler is_match_all()

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agotest: Add namespace list test cases to librados test
David Zafman [Tue, 25 Jun 2013 22:08:55 +0000 (15:08 -0700)]
test: Add namespace list test cases to librados test

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agotest: Add namespace test cases to librados tests
David Zafman [Tue, 25 Jun 2013 05:37:50 +0000 (22:37 -0700)]
test: Add namespace test cases to librados tests

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agorados: Add namespace arg (--namespace, -N) to rados command
David Zafman [Wed, 3 Jul 2013 19:32:17 +0000 (12:32 -0700)]
rados: Add namespace arg (--namespace, -N) to rados command

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agolibrados: Add operate()/operate_read() log messages
David Zafman [Fri, 21 Jun 2013 22:19:41 +0000 (15:19 -0700)]
librados: Add operate()/operate_read() log messages

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agolibrados, os, osd, osdc, test: Add support for client specified namespaces
David Zafman [Tue, 11 Jun 2013 01:18:59 +0000 (18:18 -0700)]
librados, os, osd, osdc, test: Add support for client specified namespaces

Add rados_ioctx_namespace_set_key() and librados::IoCtx::namespace_set_key()
Add namespace to admin-daemon operations
Support namespace in osd map command
Add namespace to object_locator_t and hobject_t
Add random namespaces to psim program

Feature: #4982 (OSD: namespaces pt 1 (librados/osd, not caps))

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agoMerge branch 'wip-mon-osdmap-trim'
Sage Weil [Tue, 9 Jul 2013 20:43:25 +0000 (13:43 -0700)]
Merge branch 'wip-mon-osdmap-trim'

Reviewed-by: Samuel Just <sam.just@inktank.com>
12 years agoosd: change pg_stat_t::reported from eversion_t to a pair of fields
Sage Weil [Mon, 8 Jul 2013 21:31:29 +0000 (14:31 -0700)]
osd: change pg_stat_t::reported from eversion_t to a pair of fields

This rarely represents an actual eversion_t as the epoch and seq values are
bumped semi-independently to ensure it is always unique.  Break it into
two separate fields to avoid confusion.

Drop now-unused and slightly curious inc() method.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon: be smarter about calculating last_epoch_clean lower bound
Sage Weil [Mon, 8 Jul 2013 22:57:48 +0000 (15:57 -0700)]
mon: be smarter about calculating last_epoch_clean lower bound

We need to take PGs whose mapping has not changed in a long time into
account.  For them, the pg state will indicate it was clean at the time of
the report, in which case we can use that as a lower-bound on their actual
latest epoch clean.  If they are not currently clean (at report time), use
the last_epoch_clean value.

Fixes: #5519
Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: report pg stats to mon at least every N (=500) epochs
Sage Weil [Mon, 8 Jul 2013 20:27:58 +0000 (13:27 -0700)]
osd: report pg stats to mon at least every N (=500) epochs

The mon needs a moderately accurate last_epoch_clean value in order to trim
old osdmaps.  To prevent a PG that hasn't peered or received IO in forever
from preventing this, send pg stats at some minimum frequency.  This will
increase the pg stat report workload for the mon over an idle pool, but
should be no worse that a cluster that is getting actual IO and sees these
updates from normal stat updates.

This makes the reported update a bit more aggressive/useful in that the epoch
is the last map epoch processed by this PG and not just one that is >= the
currenting interval.  Note that the semantics of this field are pretty useless
at this point.

See #5519

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/OSDMonitor: allow osdmap trimming to be forced via a config option
Sage Weil [Mon, 8 Jul 2013 21:55:44 +0000 (14:55 -0700)]
mon/OSDMonitor: allow osdmap trimming to be forced via a config option

In certain cases the admin may know that it is safe to trim old osdmaps but
a bug or other issue is preventing the Monitor from deciding on its own.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/OSDMonitor: make 'osd crush rm ...' slightly more idempotent
Sage Weil [Tue, 9 Jul 2013 04:09:09 +0000 (21:09 -0700)]
mon/OSDMonitor: make 'osd crush rm ...' slightly more idempotent

This particular failure is easily triggered by the crush_ops.sh
workunit.  Make it a bit less likely to fail.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
12 years agodoc/release-notes: v0.66
Sage Weil [Tue, 9 Jul 2013 18:45:34 +0000 (11:45 -0700)]
doc/release-notes: v0.66

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoMerge branch 'wip-mon-trim'
Sage Weil [Tue, 9 Jul 2013 18:10:30 +0000 (11:10 -0700)]
Merge branch 'wip-mon-trim'

Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
12 years agomon/PaxosService: update docs a bit
Sage Weil [Tue, 9 Jul 2013 05:06:31 +0000 (22:06 -0700)]
mon/PaxosService: update docs a bit

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/PaxosService: inline trim()
Sage Weil [Tue, 9 Jul 2013 05:04:10 +0000 (22:04 -0700)]
mon/PaxosService: inline trim()

This is now trivial; pull it into the caller.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/PaxosService: move paxos_service_trim_max into caller, clean up
Sage Weil [Tue, 9 Jul 2013 05:02:00 +0000 (22:02 -0700)]
mon/PaxosService: move paxos_service_trim_max into caller, clean up

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/PaxosService: simplify paxos_service_trim_min check
Sage Weil [Tue, 9 Jul 2013 04:58:13 +0000 (21:58 -0700)]
mon/PaxosService: simplify paxos_service_trim_min check

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon: make service trim_to stateless
Sage Weil [Tue, 9 Jul 2013 04:54:53 +0000 (21:54 -0700)]
mon: make service trim_to stateless

Call get_trim_to() when we need to know how much to trim (if any), and
calculate it then.  No need to keep this in a hidden trim_version
variable and remember to update it.  This drops several helpers and
accessors and makes get_trim_to() a single method that services need to
override.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/PaxosService: pass trim target into encode_trim()
Sage Weil [Tue, 9 Jul 2013 18:09:44 +0000 (11:09 -0700)]
mon/PaxosService: pass trim target into encode_trim()

This will help us in a few patches...

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon: preserve last_committed_floor across sync 400/head
Sage Weil [Tue, 9 Jul 2013 17:55:05 +0000 (10:55 -0700)]
mon: preserve last_committed_floor across sync

Add a paranoid check to prevent us from forgetting how far ahead our
last_committed was when we sync.  This prevents an i'll-timed forced-sync
from allowing paxos to warp back in time.

This should never happen unless there is a perfect storm of bad admin
decisions and/or bugs, but we guard against it anyway.

See: #5256
Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon: no need to reset sync state on restart
Sage Weil [Tue, 9 Jul 2013 17:52:48 +0000 (10:52 -0700)]
mon: no need to reset sync state on restart

If we are in or forcing a sync, we can leave these there until the sync
completes.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon: drop single-use is_sync_on_going() check
Sage Weil [Fri, 5 Jul 2013 23:46:38 +0000 (16:46 -0700)]
mon: drop single-use is_sync_on_going() check

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon: rev the internal mon protocol
Sage Weil [Tue, 9 Jul 2013 00:51:18 +0000 (17:51 -0700)]
mon: rev the internal mon protocol

This captures the new sync.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/MonitorDBStore: drop unused single prefix synchronizer
Sage Weil [Fri, 5 Jul 2013 19:29:36 +0000 (12:29 -0700)]
mon/MonitorDBStore: drop unused single prefix synchronizer

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon: add --force-sync startup option
Sage Weil [Fri, 5 Jul 2013 19:14:13 +0000 (12:14 -0700)]
mon: add --force-sync startup option

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/Paxos: move consistent check into Paxos::init()
Sage Weil [Fri, 5 Jul 2013 19:11:17 +0000 (12:11 -0700)]
mon/Paxos: move consistent check into Paxos::init()

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/Paxos: remove unnecessary trim enable/disable
Sage Weil [Fri, 5 Jul 2013 17:36:54 +0000 (10:36 -0700)]
mon/Paxos: remove unnecessary trim enable/disable

The sync no longer cares if we trim Paxos versions as we go, as long as we
don't trim so fast that we fall behind between GET_CHUNK messages, which
we can consider a tuning problem.

Remove this extra complexity!

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/Paxos: config min paxos txns to keep separately
Sage Weil [Fri, 5 Jul 2013 17:34:46 +0000 (10:34 -0700)]
mon/Paxos: config min paxos txns to keep separately

We were using paxos_max_join_drift to control the minimum number of
paxos transactions to keep around.  Instead, make this explicit, and
separate from the join drift.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon: implement a simpler sync
Sage Weil [Tue, 9 Jul 2013 01:13:31 +0000 (18:13 -0700)]
mon: implement a simpler sync

The previous sync implementation was highly stateful and very complex.
This made it very hard to understand and to debug, and there were bugs
still lurking in the timeout code (at least).

Replace it with something much simpler:

 - sync providers are almost stateless.  they keep an iterator, identified
   by a unique cookie, that times out in a simple way.
 - sync requesters sync from whomever they fancy.  namely anyone with newer
   committed paxos state.

There are a few extra fields that might allow sync continuation later, but
this is complex and not necessary at this point.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/PGMonitor: cleanup: use const strings for pgmap prefixes
Sage Weil [Tue, 9 Jul 2013 00:01:06 +0000 (17:01 -0700)]
mon/PGMonitor: cleanup: use const strings for pgmap prefixes

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agorgw: warn on the lack of curl_multi_wait() 415/head
Yehuda Sadeh [Tue, 9 Jul 2013 16:19:16 +0000 (09:19 -0700)]
rgw: warn on the lack of curl_multi_wait()

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
12 years agorgw: fix args parsing
Yehuda Sadeh [Tue, 9 Jul 2013 07:35:00 +0000 (00:35 -0700)]
rgw: fix args parsing

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
12 years agoos: Add missing pool to hobject_t:::dump() and hobject_t::decode()
David Zafman [Mon, 8 Jul 2013 22:53:38 +0000 (15:53 -0700)]
os: Add missing pool to hobject_t:::dump() and hobject_t::decode()

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agoos: Remove unused hobject_t::set_filestore_key()
David Zafman [Wed, 3 Jul 2013 18:27:11 +0000 (11:27 -0700)]
os: Remove unused hobject_t::set_filestore_key()

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agolibrados, osdc: Refactor IoCtxImpl to use operate()/operate_read()
David Zafman [Thu, 13 Jun 2013 03:51:09 +0000 (20:51 -0700)]
librados, osdc: Refactor IoCtxImpl to use operate()/operate_read()

Add ObjectOperation::write() that includes len instead of using bufferlist length
Have selfmanaged_snap_rollback_object() use mutate()

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agoTestRados: Output error for improper usage instead of Floating Point Exception
David Zafman [Wed, 3 Jul 2013 22:24:45 +0000 (15:24 -0700)]
TestRados: Output error for improper usage instead of Floating Point Exception

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agoosd: Fix object_locator_t::get_pool() return type
David Zafman [Mon, 10 Jun 2013 21:55:04 +0000 (14:55 -0700)]
osd: Fix object_locator_t::get_pool() return type

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agolibrados: Fix lock names
David Zafman [Tue, 25 Jun 2013 06:15:45 +0000 (23:15 -0700)]
librados: Fix lock names

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agopsim.cc: Fix comment on how to create .ceph_osdmap
David Zafman [Mon, 10 Jun 2013 22:58:44 +0000 (15:58 -0700)]
psim.cc: Fix comment on how to create .ceph_osdmap

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agoos: Code conformance in LFNIndex.cc
David Zafman [Fri, 7 Jun 2013 20:52:04 +0000 (13:52 -0700)]
os: Code conformance in LFNIndex.cc

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agorgw: call appropriate curl calls for waiting on sockets
Yehuda Sadeh [Tue, 9 Jul 2013 01:55:19 +0000 (18:55 -0700)]
rgw: call appropriate curl calls for waiting on sockets

If libcurl supports curl_multi_wait() then use it, otherwise
use select() and force a timeout, even if it has been disabled.
Otherwise we may wait forever for events that we can't wait for
as select() only uses fds < 1024.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
12 years agoconfigure.ac: detect whether libcurl supports curl_multi_wait()
Yehuda Sadeh [Tue, 9 Jul 2013 01:54:23 +0000 (18:54 -0700)]
configure.ac: detect whether libcurl supports curl_multi_wait()

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
12 years agoMerge branch 'next'
Gary Lowell [Tue, 9 Jul 2013 06:17:50 +0000 (23:17 -0700)]
Merge branch 'next'

12 years agoMerge remote-tracking branch 'gh/next'
Sage Weil [Tue, 9 Jul 2013 05:17:51 +0000 (22:17 -0700)]
Merge remote-tracking branch 'gh/next'

12 years agomon/PaxosService: prevent reads until initial service commit is done
Sage Weil [Mon, 8 Jul 2013 17:49:28 +0000 (10:49 -0700)]
mon/PaxosService: prevent reads until initial service commit is done

Do not process reads (or, by PaxosService::dispatch() implication, writes)
until we have committed the initial service state.  This avoids things like
EPERM due to missing keys when we race with mon creation, triggered by
teuthology tests doing their health check after startup.

Fixes: #5515
Backport: cuttlefish
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
12 years agomon/PaxosService: unwind should_trim()
Sage Weil [Tue, 9 Jul 2013 04:44:05 +0000 (21:44 -0700)]
mon/PaxosService: unwind should_trim()

Inline the single-caller helper.  This will help us in a moment...

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/PaxosService: unwind service_should_trim() helper
Sage Weil [Tue, 9 Jul 2013 04:41:55 +0000 (21:41 -0700)]
mon/PaxosService: unwind service_should_trim() helper

Nobody overloads it; put it inline in should_trim().

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/MDSMonitor: remove unnecessary service_should_trim()
Sage Weil [Tue, 9 Jul 2013 04:41:34 +0000 (21:41 -0700)]
mon/MDSMonitor: remove unnecessary service_should_trim()

We never set_trim_to(), so this is unnecessary.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/OSDMonitor: remove dup service_should_trim() implementation
Sage Weil [Tue, 9 Jul 2013 04:40:36 +0000 (21:40 -0700)]
mon/OSDMonitor: remove dup service_should_trim() implementation

This matches the parent.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/PaxosService: trim periodically instead of via propose_pending
Sage Weil [Tue, 9 Jul 2013 04:38:11 +0000 (21:38 -0700)]
mon/PaxosService: trim periodically instead of via propose_pending

We want to trim old states even if there is no update activity.  For
example, if a long-running rebalance finishes all osdmap updates will
stop and we won't trim out old maps to free space.

Instead, trim at the same time as tick().  Remove the trim during
propose_pending() to force all trims through this path and avoid
introducing a new and rarely-exercised behavior.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
12 years agomon/PaxosService: reorder definitions
Sage Weil [Tue, 9 Jul 2013 04:33:37 +0000 (21:33 -0700)]
mon/PaxosService: reorder definitions

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/PaxosService: uninline should_trim()
Sage Weil [Tue, 9 Jul 2013 04:33:22 +0000 (21:33 -0700)]
mon/PaxosService: uninline should_trim()

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoMerge branch 'master' of https://github.com/ceph/ceph
John Wilkins [Tue, 9 Jul 2013 01:11:57 +0000 (18:11 -0700)]
Merge branch 'master' of https://github.com/ceph/ceph