]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
13 years agoObjectCacher: add some asserts about when the lock is held
Josh Durgin [Wed, 21 Mar 2012 17:33:58 +0000 (10:33 -0700)]
ObjectCacher: add some asserts about when the lock is held

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
13 years agolibrbd: flush cache before creating a snapshot
Josh Durgin [Mon, 9 Apr 2012 18:42:48 +0000 (11:42 -0700)]
librbd: flush cache before creating a snapshot

This is a temporary workaround until the ObjectCacher
is smarter about snapshots.

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
13 years agolibrbd: fix bytes read accounting in read_iterate
Josh Durgin [Thu, 5 Apr 2012 21:14:07 +0000 (14:14 -0700)]
librbd: fix bytes read accounting in read_iterate

ObjectCacher will never do short reads, and always returns 0.
librados may do short reads at the end of an object.

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
13 years agolibrbd: check for writes to snapshots
Josh Durgin [Thu, 5 Apr 2012 20:54:24 +0000 (13:54 -0700)]
librbd: check for writes to snapshots

librados does this for us normally, but caching does not check for this.
We might as well check early to avoid scheduling a bunch of aios anyway.

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
13 years agolibrbd: allow writeback caching
Josh Durgin [Mon, 9 Apr 2012 20:06:40 +0000 (13:06 -0700)]
librbd: allow writeback caching

This uses the existing infrastructure of ObjectCacher for
buffer management and expiry.

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
13 years agolibrbd: remove writeback window
Josh Durgin [Tue, 20 Mar 2012 18:01:27 +0000 (11:01 -0700)]
librbd: remove writeback window

This is superseded by a full-fledged writeback cache.

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
13 years agoObjectCacher: remove dependency on Objecter
Josh Durgin [Mon, 9 Apr 2012 20:04:41 +0000 (13:04 -0700)]
ObjectCacher: remove dependency on Objecter

Abstract out how writeback is done with a WritebackHandler object.
For RBD caching, this will be done by librados, but the Client uses
the Objecter directly.

This also requires different locks, since librbd does not have access
to the lock the underlying Objecter uses. Thus, both lock and the
writeback handler are parameters of the ObjectCacher constructor.

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
13 years agoFiler: make file_to_extents static
Josh Durgin [Mon, 9 Apr 2012 19:54:54 +0000 (12:54 -0700)]
Filer: make file_to_extents static

Now the ObjectCacher has no need for a Filer instance (not that
it had a good reason for one before).

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
13 years agoObjectCacher: check for read/write errors
Josh Durgin [Wed, 14 Mar 2012 23:44:38 +0000 (16:44 -0700)]
ObjectCacher: check for read/write errors

The objecter doesn't fix every error for us.

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
13 years agolibrados: do aio callbacks in async thread
Sage Weil [Thu, 5 Apr 2012 22:55:50 +0000 (15:55 -0700)]
librados: do aio callbacks in async thread

Call user completions in an async thread.  This allows callers to call back
into librados from the callback, and allows them to take locks in their
callbacks that they hold when queuing requests (making their life much
easier).

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agolibrados: unconditonally associate IoCtxImpl with AioCompletionImpl
Sage Weil [Thu, 5 Apr 2012 04:49:40 +0000 (21:49 -0700)]
librados: unconditonally associate IoCtxImpl with AioCompletionImpl

We were only setting the pointer if we were on the aio_write_list.  Set
this pointer for any aio.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agofilestore: flush log on failure injection
Sage Weil [Sat, 14 Apr 2012 00:21:12 +0000 (17:21 -0700)]
filestore: flush log on failure injection

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoMerge branch 'wip-2226b'
Sage Weil [Sat, 14 Apr 2012 03:41:17 +0000 (20:41 -0700)]
Merge branch 'wip-2226b'

Conflicts:
src/common/config_opts.h
src/os/FileStore.cc
src/os/FileStore.h

13 years agorun_seed_to: assume tool is in path, not cwd
Sage Weil [Sat, 14 Apr 2012 00:04:24 +0000 (17:04 -0700)]
run_seed_to: assume tool is in path, not cwd

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agorun_seed_to_range.sh: run filestore idempotent sequence tests over a range
Sage Weil [Sat, 14 Apr 2012 00:04:07 +0000 (17:04 -0700)]
run_seed_to_range.sh: run filestore idempotent sequence tests over a range

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agorun_seed_to.sh: set -e
Sage Weil [Fri, 13 Apr 2012 23:14:57 +0000 (16:14 -0700)]
run_seed_to.sh: set -e

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agofilestore: use our assert
Sage Weil [Fri, 13 Apr 2012 23:12:19 +0000 (16:12 -0700)]
filestore: use our assert

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agotest_idempotent_sequence: simple test script
Sage Weil [Fri, 13 Apr 2012 21:46:46 +0000 (14:46 -0700)]
test_idempotent_sequence: simple test script

Takes seed and kill point, then verifies the result.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoDeterministicOpSequence: writing to object being cloned in the same tx.
Joao Eduardo Luis [Fri, 13 Apr 2012 15:35:52 +0000 (16:35 +0100)]
DeterministicOpSequence: writing to object being cloned in the same tx.

We write to the object being cloned prior to the clone to ensure we are
cloning a valid range of bytes.

The write and the clone were being done in two distinct transactions,
which would trigger a diff mismatch if a failure happened to occur within
the write tx. By not differentiating the transactions when building a
pristine copy, we were executing one more transaction (the clone_range one)
than the transactions that were executed in the failed filestore, thus
triggering the mismatch (one more object in the pristine filestore than on
the failed filestore).

Now we issue a single transaction, containing both the clone_range()
preceded by a write().

Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
13 years agotest_idempotent_sequence: outputting collection being diff'ed.
Joao Eduardo Luis [Fri, 13 Apr 2012 15:24:06 +0000 (16:24 +0100)]
test_idempotent_sequence: outputting collection being diff'ed.

Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
13 years agotest_idempotent_sequence: Add more info on diff's dout's.
Joao Eduardo Luis [Fri, 13 Apr 2012 00:16:48 +0000 (01:16 +0100)]
test_idempotent_sequence: Add more info on diff's dout's.

Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
13 years agoFileStore: don't return ENOENT from object_map getters
Samuel Just [Thu, 12 Apr 2012 23:24:02 +0000 (16:24 -0700)]
FileStore: don't return ENOENT from object_map getters

ENOENT in those contexts means that the object_map does not know
about the object, not that the object does not exist.

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
13 years agotest_idempotent_sequence: make get-last-op return 0 if no txns applied
Sage Weil [Thu, 12 Apr 2012 23:14:44 +0000 (16:14 -0700)]
test_idempotent_sequence: make get-last-op return 0 if no txns applied

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agotest_idempotent_sequence: return true from diff if different
Sage Weil [Thu, 12 Apr 2012 22:44:17 +0000 (15:44 -0700)]
test_idempotent_sequence: return true from diff if different

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agotest_idempotent_sequence: include object name in diff output
Sage Weil [Thu, 12 Apr 2012 22:30:35 +0000 (15:30 -0700)]
test_idempotent_sequence: include object name in diff output

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agotest_idempotent_sequence: fix diff return value, mount behavior
Sage Weil [Thu, 12 Apr 2012 22:27:28 +0000 (15:27 -0700)]
test_idempotent_sequence: fix diff return value, mount behavior

No mkfs!

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agotest_idempotent_sequence: fix/enable do_coll_add
Sage Weil [Thu, 12 Apr 2012 22:12:49 +0000 (15:12 -0700)]
test_idempotent_sequence: fix/enable do_coll_add

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agotest_idempotent_sequence: use get_obj_at() for clone source
Sage Weil [Thu, 12 Apr 2012 22:03:54 +0000 (15:03 -0700)]
test_idempotent_sequence: use get_obj_at() for clone source

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agotest_idempotent_sequence: fix collection_move arg order
Sage Weil [Thu, 12 Apr 2012 22:00:10 +0000 (15:00 -0700)]
test_idempotent_sequence: fix collection_move arg order

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoVerifyFileStore: delete from tree
Joao Eduardo Luis [Thu, 12 Apr 2012 21:30:07 +0000 (22:30 +0100)]
VerifyFileStore: delete from tree

Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
13 years agoMakefile: remove VerifyFileStore from test_idempotent_sequence build
Joao Eduardo Luis [Thu, 12 Apr 2012 21:29:40 +0000 (22:29 +0100)]
Makefile: remove VerifyFileStore from test_idempotent_sequence build

Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
13 years agotest_idempotent_sequence: Remove references to VerifyFileStore
Joao Eduardo Luis [Thu, 12 Apr 2012 21:59:20 +0000 (22:59 +0100)]
test_idempotent_sequence: Remove references to VerifyFileStore

Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
13 years agotest_idempotent_sequence: diff two stores.
Joao Eduardo Luis [Thu, 12 Apr 2012 21:17:09 +0000 (22:17 +0100)]
test_idempotent_sequence: diff two stores.

Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
13 years agotest_idempotent_sequence: add remove op
Sage Weil [Thu, 12 Apr 2012 21:33:11 +0000 (14:33 -0700)]
test_idempotent_sequence: add remove op

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agotest_idempotent_sequence: remove existing target for collection_add
Sage Weil [Thu, 12 Apr 2012 21:21:35 +0000 (14:21 -0700)]
test_idempotent_sequence: remove existing target for collection_add

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agotest_idempotent_sequence: fewer objects per collection by default
Sage Weil [Thu, 12 Apr 2012 21:11:11 +0000 (14:11 -0700)]
test_idempotent_sequence: fewer objects per collection by default

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agotest_idempotent_sequence: make object names overlap
Sage Weil [Thu, 12 Apr 2012 21:10:50 +0000 (14:10 -0700)]
test_idempotent_sequence: make object names overlap

This way when we move objects between collections they will replace
each other in interesting ways.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agotest_idempotent_sequence: simplify clone
Sage Weil [Thu, 12 Apr 2012 21:10:07 +0000 (14:10 -0700)]
test_idempotent_sequence: simplify clone

- pick existing source
- any target is ok, as long as it != source

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agotest_idempotent_sequence: replace on coll_move
Sage Weil [Thu, 12 Apr 2012 20:36:48 +0000 (13:36 -0700)]
test_idempotent_sequence: replace on coll_move

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agotest_idempotent_sequence: whitesepace
Sage Weil [Thu, 12 Apr 2012 20:36:32 +0000 (13:36 -0700)]
test_idempotent_sequence: whitesepace

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agotest_idempotent_sequence: implement get-last-op
Sage Weil [Thu, 12 Apr 2012 20:23:51 +0000 (13:23 -0700)]
test_idempotent_sequence: implement get-last-op

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agotest_idempotent_sequence: include tx number in each transaction
Sage Weil [Thu, 12 Apr 2012 20:14:41 +0000 (13:14 -0700)]
test_idempotent_sequence: include tx number in each transaction

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agotest_idempotent_sequence: require nonexistent filestore dir
Sage Weil [Thu, 12 Apr 2012 20:05:48 +0000 (13:05 -0700)]
test_idempotent_sequence: require nonexistent filestore dir

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agofilestore: init filestore_kill_at in ctor
Sage Weil [Thu, 12 Apr 2012 17:51:14 +0000 (10:51 -0700)]
filestore: init filestore_kill_at in ctor

Otherwise we don't get the option for FileStore instances created after
common_init_finish() (which does md_config_t::call_all_observers()).

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agotest_idempotent_sequence: Add commands and lose a couple of optional args.
Joao Eduardo Luis [Thu, 12 Apr 2012 19:05:28 +0000 (20:05 +0100)]
test_idempotent_sequence: Add commands and lose a couple of optional args.

Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
13 years agofilestore: name internally
Sage Weil [Thu, 12 Apr 2012 17:40:08 +0000 (10:40 -0700)]
filestore: name internally

We need to allow the perfcounter name to be controlled so that we can have
two instances of FileStore in the same process that don't step on each
other.  Default to 'filestore'.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agotest_idempotent_sequence: no need to reinject value that is already there
Sage Weil [Thu, 12 Apr 2012 17:00:39 +0000 (10:00 -0700)]
test_idempotent_sequence: no need to reinject value that is already there

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agodeterministicopseq: add collection_rename() support
Joao Eduardo Luis [Thu, 12 Apr 2012 13:53:50 +0000 (14:53 +0100)]
deterministicopseq: add collection_rename() support

13 years agotest_idempotent_sequence: Generate a reproducible sequence of txs.
Joao Eduardo Luis [Wed, 11 Apr 2012 20:50:45 +0000 (21:50 +0100)]
test_idempotent_sequence: Generate a reproducible sequence of txs.

With this test we aim at reproducing the same sequence of transactions
as long as we are provided with the same seed between runs.

We also allow failures to be injected onto the filestore if the
--filestore-kill-at <VAL> argument is passed, and we provide verification
when --test-verify-at <VAL> is provided.

Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
13 years agoVerifyFileStore: Check if two FileStore's match after applying a set of operations.
Joao Eduardo Luis [Wed, 11 Apr 2012 20:49:09 +0000 (21:49 +0100)]
VerifyFileStore: Check if two FileStore's match after applying a set of operations.

With DeterministicOpSequence we are able to reproduce exactly the same
sequence of operations, over and over. However, if the filestore fails
(e.g., because we injected a failure), we want to check if it is kept
consistent after replaying its journal.

With VerifyFileStore, which extends DeterministicOpSequence, we are able
to bring a brand new filestore to the state the failed filestore would
reach had it not failed. We can then compare to check if the failure
introduced inconsistencies after replaying the journal.

(This is still work in progress and not fully functional)

Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
13 years agoDeterministicOpSequence: Generate a reproducible sequence of operations.
Joao Eduardo Luis [Wed, 11 Apr 2012 20:42:16 +0000 (21:42 +0100)]
DeterministicOpSequence: Generate a reproducible sequence of operations.

Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
13 years agoTestFileStoreState: Represent a FileStore's state to be used by tests.
Joao Eduardo Luis [Mon, 9 Apr 2012 14:59:23 +0000 (15:59 +0100)]
TestFileStoreState: Represent a FileStore's state to be used by tests.

Instead of having each test creating the same representation of a
FileStore's state, with a map/set of collections and objects, as well as
multiple init() functions for each test that are in all similar in
nature, provide this in a single class that can be inheritted by test
classes.

13 years agofilestore: two-phase guard
Sage Weil [Sat, 14 Apr 2012 00:11:54 +0000 (17:11 -0700)]
filestore: two-phase guard

For certain operations (collection_add) we need a two-phase guard, and an
"in-progress" state.

 - before exposing an object in a new location, we need to mark it so that
   old operations affecting the target name don't touch the new object.
 - can't just set the guard before starting or else we can't distinguish
   between a collection_add that was in-progress and one that happend a
   long time ago.

We may need the same for collection_rename().

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agofilestore: simple failure injections via --filestore-kill-at <n>
Sage Weil [Sat, 14 Apr 2012 00:17:36 +0000 (17:17 -0700)]
filestore: simple failure injections via --filestore-kill-at <n>

This will make filestore suicide (_exit(1)) on the n'th potential failure
call site.  We can potentially fail:

     - before a transaction
     - between each op
     - at the end

Additionally, we instrument the guards:

     - before/after/inside _set_replay_guard
     - between significant steps of callers of _set_replay_guard

All instrumentation points are inside _do_transactions(), so if everything
is done in a single sequencer (or from a single thread) the failure
point is deterministic.

That said, use an atomic so we will still reliably fail (at some point)
when there are multiple filestore threads in action.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agofilestore: fix collection_add argument names
Sage Weil [Fri, 13 Apr 2012 21:43:57 +0000 (14:43 -0700)]
filestore: fix collection_add argument names

No functional changes, just fixing and clarifying argument names so that it
is less confusing/wrong.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agofilestore: replay collection_move using add+remove
Sage Weil [Fri, 13 Apr 2012 18:30:49 +0000 (11:30 -0700)]
filestore: replay collection_move using add+remove

This approximates the buggy collection_move.  It is still buggy.  It is
only there to replay old journals.

Rip out buggy (and now unused) collection_move code.

For the record, the problem there is that a crash between setting the guard
and unlinking the old name will not remove the old name on replay because
the guard for the link stage is indistinguishable from that for the unlink
stage.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agotest_rados.py: add basic tests for the Object class
Josh Durgin [Fri, 13 Apr 2012 21:31:56 +0000 (14:31 -0700)]
test_rados.py: add basic tests for the Object class

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
Reviewed-by: Greg Farnum <gregory.farnum@dreamhost.com>
13 years agorados.py: fix Object.read argument order
Tomasz Paskowski [Fri, 13 Apr 2012 20:53:08 +0000 (13:53 -0700)]
rados.py: fix Object.read argument order

57cfd7673da66d191cc397689da35d0a1f3dc61a switched the argument order but didn't change this caller.

Signed-off-by: Tomasz Paskowski <ss7pro@gmail.com>
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
Reviewed-by: Greg Farnum <gregory.farnum@dreamhost.com>
13 years agofilestore: implement collection_move() as add + remove
Sage Weil [Fri, 13 Apr 2012 16:56:04 +0000 (09:56 -0700)]
filestore: implement collection_move() as add + remove

This ensures we get add and remove steps with different spos values, which
makes the guard work.  The collection_move implementation breaks on replay
because those values match, so the just-set guard prevents unlink from
happening.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoMerge remote branch 'gh/wip-defaults'
Sage Weil [Fri, 13 Apr 2012 05:36:48 +0000 (22:36 -0700)]
Merge remote branch 'gh/wip-defaults'

13 years agoosdmaptool: fix clitest for lpg_num 0
Sage Weil [Fri, 13 Apr 2012 06:16:48 +0000 (23:16 -0700)]
osdmaptool: fix clitest for lpg_num 0

Broke this in 11b93d3af2c0f1bca3e48fe773a14f07f479ccc3

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agoFileStore: don't return ENOENT from object_map getters
Samuel Just [Thu, 12 Apr 2012 23:24:02 +0000 (16:24 -0700)]
FileStore: don't return ENOENT from object_map getters

ENOENT in those contexts means that the object_map does not know
about the object, not that the object does not exist.

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
13 years agoDBObjectMap: check in clone and link that source is not destination
Samuel Just [Thu, 12 Apr 2012 22:16:25 +0000 (15:16 -0700)]
DBObjectMap: check in clone and link that source is not destination

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
13 years agoMerge branch 'wip-2223'
Sage Weil [Thu, 12 Apr 2012 19:16:56 +0000 (12:16 -0700)]
Merge branch 'wip-2223'

Reviewed-by: Sage Weil <sage@newdream.net>
13 years agofilestore: use config observer to start/stop dumping/tracing
Sage Weil [Wed, 11 Apr 2012 05:04:02 +0000 (22:04 -0700)]
filestore: use config observer to start/stop dumping/tracing

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoobjectstore: tweak dump() a bit
Sage Weil [Wed, 11 Apr 2012 05:02:26 +0000 (22:02 -0700)]
objectstore: tweak dump() a bit

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agofilestore: dump transactions sets, include seq and trans_num
Sage Weil [Wed, 11 Apr 2012 04:58:05 +0000 (21:58 -0700)]
filestore: dump transactions sets, include seq and trans_num

Lists of transactions commit as a unit; reflect that in the dump.  Also
include seq and trans_num.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agofilestore: remove commented code, fix whitespace
Sage Weil [Wed, 11 Apr 2012 04:57:19 +0000 (21:57 -0700)]
filestore: remove commented code, fix whitespace

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoObjectStore: Remove code duplication when dumping transactions.
Joao Eduardo Luis [Tue, 10 Apr 2012 11:28:43 +0000 (12:28 +0100)]
ObjectStore: Remove code duplication when dumping transactions.

By using OStreamFormatter, we can have a single function responsible for
dumping a transaction. We keep the same old functions for outputting
directly to a Formatter and to an ostream, but these are only wrappers
for the function that will really handle the dumping.

The "real" dump() function will now take only a Formatter as an argument,
to which we will output. We keep the 'dump(std::ostream& out)' function,
although now it simply creates an OStreamFormatter and passes it to the
dump() function.

Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
13 years agofilestore: dump transaction in json on error
Sage Weil [Wed, 11 Apr 2012 05:21:31 +0000 (22:21 -0700)]
filestore: dump transaction in json on error

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agofilejournal: dump injson
Sage Weil [Wed, 11 Apr 2012 05:21:20 +0000 (22:21 -0700)]
filejournal: dump injson

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agomkcephfs: update man page
Sage Weil [Wed, 11 Apr 2012 23:00:14 +0000 (16:00 -0700)]
mkcephfs: update man page

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agoceph-authtool: update man page
Sage Weil [Wed, 11 Apr 2012 23:00:05 +0000 (16:00 -0700)]
ceph-authtool: update man page

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agomkcephfs: note that btrfs (and --mkbtrfs) are optional and experimental
Sage Weil [Wed, 11 Apr 2012 22:52:58 +0000 (15:52 -0700)]
mkcephfs: note that btrfs (and --mkbtrfs) are optional and experimental

And that --mkbtrfs will be deprecated soon.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoceph-authtool: add warning to man page
Sage Weil [Wed, 11 Apr 2012 22:50:03 +0000 (15:50 -0700)]
ceph-authtool: add warning to man page

- data is not encrypted over the wire
- intended for trusted environments

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: disable localized pgs by default
Sage Weil [Wed, 11 Apr 2012 22:09:26 +0000 (15:09 -0700)]
osd: disable localized pgs by default

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agomon: alloc pgp_num adjustment up and down
Sage Weil [Wed, 11 Apr 2012 21:46:19 +0000 (14:46 -0700)]
mon: alloc pgp_num adjustment up and down

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agodebian: python-support -> dh_python2
Sage Weil [Wed, 11 Apr 2012 20:35:26 +0000 (13:35 -0700)]
debian: python-support -> dh_python2

I followed the instructions on

http://wiki.debian.org/Python/TransitionToDHPython2

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agoCOPYING: doc/ CC BY-SA
Sage Weil [Wed, 11 Apr 2012 19:35:12 +0000 (12:35 -0700)]
COPYING: doc/ CC BY-SA

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agoREADME: update
Sage Weil [Wed, 11 Apr 2012 19:33:57 +0000 (12:33 -0700)]
README: update

- refer to COPYING, SubmittingPatches
- a word about dependencies
- building packages
- drop the list of built binaries... it's incomplete and not very
  interesting.

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agodebian: drop unnecessary conflicts on librgw
Sage Weil [Wed, 11 Apr 2012 17:54:44 +0000 (10:54 -0700)]
debian: drop unnecessary conflicts on librgw

Cut and paste baggage from libcephfs, it looks like.

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agoinit-radosgw: start in runlevel 4
Sage Weil [Wed, 11 Apr 2012 17:51:16 +0000 (10:51 -0700)]
init-radosgw: start in runlevel 4

Fixes lintian error

W: radosgw: init.d-script-missing-start etc/init.d/radosgw 4

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agoobsync: include man page in tarball, packages
Sage Weil [Wed, 11 Apr 2012 17:50:17 +0000 (10:50 -0700)]
obsync: include man page in tarball, packages

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agoceph-rbdnamer: include in dist tarball and debs/rpms
Sage Weil [Wed, 11 Apr 2012 17:46:43 +0000 (10:46 -0700)]
ceph-rbdnamer: include in dist tarball and debs/rpms

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agoinit-ceph: start at all runlevels
Sage Weil [Wed, 11 Apr 2012 17:40:04 +0000 (10:40 -0700)]
init-ceph: start at all runlevels

This fixes lintian error:

W: ceph: init.d-script-missing-start etc/init.d/ceph 4

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agoMerge branch 'stable'
Sage Weil [Wed, 11 Apr 2012 17:03:07 +0000 (10:03 -0700)]
Merge branch 'stable'

13 years agofilestore: cleanup: flip sense of replay guard check
Sage Weil [Tue, 10 Apr 2012 22:30:47 +0000 (15:30 -0700)]
filestore: cleanup: flip sense of replay guard check

The other are all if (_check_replay_guard(..)) do_it;.  Make this one
match.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agofilestore: fix fd leak on collection_rename
Sage Weil [Tue, 10 Apr 2012 22:30:03 +0000 (15:30 -0700)]
filestore: fix fd leak on collection_rename

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agofilestore: fix collection_rename guard
Sage Weil [Tue, 10 Apr 2012 22:29:49 +0000 (15:29 -0700)]
filestore: fix collection_rename guard

If we crash between the rename and setting the guard, we can get EEXIST
or ENOTEMPTY on rename.  Tolerate that.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agofilestore: fix collection_add guard
Sage Weil [Tue, 10 Apr 2012 22:31:21 +0000 (15:31 -0700)]
filestore: fix collection_add guard

If we crash between the link() and setting the guard, we will get
EEXIST.  Tolerate that.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agofilestore: fix collection_move guard
Sage Weil [Tue, 10 Apr 2012 22:24:49 +0000 (15:24 -0700)]
filestore: fix collection_move guard

We had a sequence like:

 1- write A block 1
 2- write A block 2
 3- write A block 3
 4- write A block 4
 5- move A -> B
     - link B
     - unlink A
     - set guard on B   <crash>
  - replay 3, 4, 5

with the result being B with only half of its content.  The problem is that
we destroyed the old link _and_ didn't guard the new content.  Instead,
set the guard before the link, and replay the unlink step here
unconditionally.

Fixes: #2178
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoFileStore: dumping transactions to a file
Joao Eduardo Luis [Tue, 10 Apr 2012 11:07:47 +0000 (12:07 +0100)]
FileStore: dumping transactions to a file

Dump each queued transaction to a predefined file, specified with
--filestore-dump-file, in JSON format.

Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
13 years agoosd: fix heartbeat set_port()
Sage Weil [Wed, 11 Apr 2012 05:13:15 +0000 (22:13 -0700)]
osd: fix heartbeat set_port()

set_port() fails an assert if it isn't an in4 or in6 address, which a
default entity_addr_t is not.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: reenable clone on recovery
Sage Weil [Wed, 11 Apr 2012 04:43:07 +0000 (21:43 -0700)]
osd: reenable clone on recovery

This hasn't turned up problems in QA.

Fixes: #2002
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: allow users to specify the osd heartbeat server address.
Greg Farnum [Tue, 10 Apr 2012 23:11:52 +0000 (16:11 -0700)]
osd: allow users to specify the osd heartbeat server address.

Reported-by: Nick Bartos <nick@pistoncloud.com>
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
Reviewed-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd_types: fix off by one error in is_temp
Samuel Just [Tue, 10 Apr 2012 21:55:50 +0000 (14:55 -0700)]
osd_types: fix off by one error in is_temp

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Reviewed-by: Gregory Farnum <gregory.farnum@dreamhost.com>
13 years agorgw: list multipart response fix
Yehuda Sadeh [Tue, 10 Apr 2012 21:48:33 +0000 (14:48 -0700)]
rgw: list multipart response fix

LastModified was formatted outside of the Part block.

Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
13 years agoMakefile.am: remove some clutter
Yehuda Sadeh [Tue, 10 Apr 2012 21:06:31 +0000 (14:06 -0700)]
Makefile.am: remove some clutter

Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
13 years agov0.45 v0.45
Sage Weil [Tue, 10 Apr 2012 17:42:11 +0000 (10:42 -0700)]
v0.45

13 years agoMerge branch 'next'
Sage Weil [Tue, 10 Apr 2012 04:22:55 +0000 (21:22 -0700)]
Merge branch 'next'