]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
14 years agoAdd -ltr to libcommon
Colin Patrick McCabe [Thu, 28 Jul 2011 23:30:44 +0000 (16:30 -0700)]
Add -ltr to libcommon

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoMakefile: -lrt for libglobal.la only
Sage Weil [Thu, 28 Jul 2011 23:28:27 +0000 (16:28 -0700)]
Makefile: -lrt for libglobal.la only

Debugging linking is a pita.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agounittest_bufferlist: change include order
Sage Weil [Thu, 28 Jul 2011 23:26:58 +0000 (16:26 -0700)]
unittest_bufferlist: change include order

fixes a build error (int type conflicts) for me on fatty.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agomds: fix log trimming races
Sage Weil [Thu, 28 Jul 2011 22:24:23 +0000 (15:24 -0700)]
mds: fix log trimming races

trim() would iterate over segments.  It would take the *p segment, ++p,
then call try_expire().  But the _expired() function would also clean up
and (if possible) retire subsequent segments on the list if they were on
the expired list, invalidating the p iterator.

Untangle the mess by making expired segment trimming (i.e. removing from
segment list) a separate operation performed only by trim() (probably a
good idea anyway).  This keeps the iterator safe/stable.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agomds: separate type for gratuitous debug ESubtreeMaps
Sage Weil [Thu, 28 Jul 2011 21:51:06 +0000 (14:51 -0700)]
mds: separate type for gratuitous debug ESubtreeMaps

Give these a different type so they are not interpreted as subtree
boundaries during replay.  Otherwise we break the truncate_finish code,
which references the truncate_start logsegment by offset.  Probably other
stuff too.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agomon: 'ceph mon dump [--format=json]'
Sage Weil [Thu, 28 Jul 2011 21:08:08 +0000 (14:08 -0700)]
mon: 'ceph mon dump [--format=json]'

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoheartbeatmap: unit test
Sage Weil [Thu, 28 Jul 2011 20:31:50 +0000 (13:31 -0700)]
heartbeatmap: unit test

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoheartbeatmap: we don't care about pthread_t
Sage Weil [Thu, 28 Jul 2011 20:24:51 +0000 (13:24 -0700)]
heartbeatmap: we don't care about pthread_t

Workers don't have to be threads.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoclient: open session with all mds targets
Sage Weil [Thu, 28 Jul 2011 18:27:25 +0000 (11:27 -0700)]
client: open session with all mds targets

If we have an open session with an mds, we need to have an open session.

The problem is if we, say,

- client has old mdsmap
- mds A adds B as target in mdsmap
- send request to mds A
- A exports to B
- we get the EXPORT, but B isn't listed as a target for A in client map
- client gets updated map

At the time we receive the map we need to open the session to B.   We can't
really do it when we get the EXPORT because we don't know the target MDS.

We can either track which exports are pending to do it, or just blindly
open sessions with targets for any MDSs we have caps with.  Which is
basically every session we have open.  That's simplest for now.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoMakefile: fix unittest_ceph_argparse build
Sage Weil [Thu, 28 Jul 2011 22:53:03 +0000 (15:53 -0700)]
Makefile: fix unittest_ceph_argparse build

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoinjectargs: complain about unparsed args
Colin Patrick McCabe [Thu, 28 Jul 2011 22:17:38 +0000 (15:17 -0700)]
injectargs: complain about unparsed args

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoinjectargs: print out what is changing
Colin Patrick McCabe [Thu, 28 Jul 2011 21:48:31 +0000 (14:48 -0700)]
injectargs: print out what is changing

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agorgw: fix base64 check
Yehuda Sadeh [Thu, 28 Jul 2011 21:40:02 +0000 (14:40 -0700)]
rgw: fix base64 check

14 years agorgw: check content md5 validity when doing auth
Yehuda Sadeh [Thu, 28 Jul 2011 21:29:52 +0000 (14:29 -0700)]
rgw: check content md5 validity when doing auth

14 years agorgw: fix date checks
Yehuda Sadeh [Thu, 28 Jul 2011 21:03:20 +0000 (14:03 -0700)]
rgw: fix date checks

14 years agorgw: fix authentication
Yehuda Sadeh [Thu, 28 Jul 2011 19:34:30 +0000 (12:34 -0700)]
rgw: fix authentication

14 years agoscatterlock: convert [un]scatter_wanted to a bitfield
Greg Farnum [Thu, 28 Jul 2011 19:42:17 +0000 (12:42 -0700)]
scatterlock: convert [un]scatter_wanted to a bitfield

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agomds: Handle unscatter_wanted in try_eval(lock, need_issue)
Greg Farnum [Thu, 28 Jul 2011 19:33:25 +0000 (12:33 -0700)]
mds: Handle unscatter_wanted in try_eval(lock, need_issue)

commit:dac1dc83ee5598ca97c29cd5d0b12150685cd05b added handling
for scatter_wanted, but we need to handle unscatter_wanted here too.

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agomds: Split the CInode::scatter_wanted field in two
Greg Farnum [Thu, 28 Jul 2011 18:34:09 +0000 (11:34 -0700)]
mds: Split the CInode::scatter_wanted field in two

We use this field to indicate we want a scatter or an unscatter. Make
that distinction explicit.
Also, clear the unscatter_wanted in simple_lock when we start a gather!

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agoheartbeatmap: fix mode
Sage Weil [Thu, 28 Jul 2011 17:09:58 +0000 (10:09 -0700)]
heartbeatmap: fix mode

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoheartbeatmap: warn if previous deadline is missed
Sage Weil [Thu, 28 Jul 2011 17:10:51 +0000 (10:10 -0700)]
heartbeatmap: warn if previous deadline is missed

This will generate missed deadline noise in the log that may otherwise be
missed by an infrequent heartbeat_interval.  We generally want to know if
deadlines are missed, but we don't necessarily need to touch the heartbeat
file every second.  This gets us both.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoceph_context: only wake up periodically if heartbeat_interval is set
Sage Weil [Thu, 28 Jul 2011 16:50:53 +0000 (09:50 -0700)]
ceph_context: only wake up periodically if heartbeat_interval is set

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoosd: no need to explicitly check health
Sage Weil [Thu, 28 Jul 2011 16:47:46 +0000 (09:47 -0700)]
osd: no need to explicitly check health

The service thread does it now.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agovstart: set heartbeat file
Sage Weil [Thu, 28 Jul 2011 16:47:13 +0000 (09:47 -0700)]
vstart: set heartbeat file

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoceph_context: check internal heartbeat in cct service thread
Sage Weil [Thu, 28 Jul 2011 16:39:15 +0000 (09:39 -0700)]
ceph_context: check internal heartbeat in cct service thread

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoheartbeatmap: config options, method to touch a file if healthy
Sage Weil [Thu, 28 Jul 2011 16:38:51 +0000 (09:38 -0700)]
heartbeatmap: config options, method to touch a file if healthy

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoheartbeatmap: use atomic_t
Sage Weil [Thu, 28 Jul 2011 16:15:27 +0000 (09:15 -0700)]
heartbeatmap: use atomic_t

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoheartbeatmap: put in ceph namespace
Sage Weil [Thu, 28 Jul 2011 16:15:07 +0000 (09:15 -0700)]
heartbeatmap: put in ceph namespace

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoheartbeatmap: simplify api
Sage Weil [Thu, 28 Jul 2011 16:10:17 +0000 (09:10 -0700)]
heartbeatmap: simplify api

reset_timeout(), clear_timeout() makes more sense than "touch".

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoheartbeatmap: fix stupid race
Sage Weil [Thu, 28 Jul 2011 16:07:02 +0000 (09:07 -0700)]
heartbeatmap: fix stupid race

atomic_t is probably better here, actually... :/

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoheartbeatmap: use a list<> instead of map<>
Sage Weil [Thu, 28 Jul 2011 16:02:07 +0000 (09:02 -0700)]
heartbeatmap: use a list<> instead of map<>

Don't need a map<> here.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoworkqueue: register and time out worker threads
Sage Weil [Thu, 28 Jul 2011 05:49:12 +0000 (22:49 -0700)]
workqueue: register and time out worker threads

Register and unregister worker threads.  Periodically touch heartbeat
when idle.  Set heartbeat timeout before processing a queue item.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoworkqueue: provide op timeout to workqueue constructor
Sage Weil [Thu, 28 Jul 2011 05:47:41 +0000 (22:47 -0700)]
workqueue: provide op timeout to workqueue constructor

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoheartbeatmap: introduce heartbeat_map
Sage Weil [Thu, 28 Jul 2011 05:38:43 +0000 (22:38 -0700)]
heartbeatmap: introduce heartbeat_map

Each thread registered and gets a private structure it can write a timeout
value to.  The timeout is time_t and always fits in a single word, so no
locking is used to update it.

Anyone can call is_healthy() to find out if any timeouts have expired.
Eventually some background thread will do this.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: mark ambig imports in ESubtreeMap during resolve
Sage Weil [Thu, 28 Jul 2011 04:44:44 +0000 (21:44 -0700)]
mds: mark ambig imports in ESubtreeMap during resolve

During resolve we may journal EImportFinish(true/false) as we resolve our
imports/exports.  And as a side-effect we may journal an ESubtreeMap.  We
need to properly mark ambig subtrees in that entry based on the
my_ambiguous_imports (resolve state), not just the migrator state (for the
active mds).

Note that the other Migrator::is_ambiguous_import() user
(send_resolve_now()) already does this correctly.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: pin inodes on LogSegment::truncating_inodes list
Sage Weil [Thu, 28 Jul 2011 04:29:05 +0000 (21:29 -0700)]
mds: pin inodes on LogSegment::truncating_inodes list

For active MDS, pin when we add to the list, unpin when we finish
truncating.

For replay, pin when we replay a truncate start, unpin when we replay a
truncate finish.  Use a nice helper for both.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: handle aborted slave rename while waiting for second prep
Sage Weil [Thu, 28 Jul 2011 03:46:03 +0000 (20:46 -0700)]
mds: handle aborted slave rename while waiting for second prep

When we get the first prep, we may respond to the master with an expanded
list of witnesses for the rename before making any change (or rollback
plan).  If the master fails before sending the second prep attempt, we
may end up in the abort path of _commit_slave_rename() with an empty
rollback_bl.  That's fine; don't crash.  We still need to unfreeze the
srci, but can skip the do_rename_rollback since we didn't actually journal
a change.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: honor scatter_wanted while freezing
Sage Weil [Wed, 27 Jul 2011 21:38:38 +0000 (14:38 -0700)]
mds: honor scatter_wanted while freezing

- mds A authpins item on mds B
- mds B starts to freeze tree containing item
- mds A tries wrlock_start on A, sends REQSCATTER to B
- mds B lock is unstable, sets scatter_wanted
- mds B lock stabilizes, calls try_eval, defers because freezing.
-> deadlock

In general, we want to avoid the eval while freezing to prevent starvation.
However, in this case with the multi-mds locking, we need to honor
the scatter_wanted even so.

Insert this check in try_eval().  This will catch it on the first try_eval
call after the lock stabilizes.  The ambiguous auth will never catch us
while freezing, and the master holds an auth_pin to prevent a freeze, so
we will never defer the eval; no need to do the same logic in the other
eval method (eval(MDSCacheObject*, ...)) used for retry.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agomds: try_eval in many places
Sage Weil [Wed, 27 Jul 2011 21:32:24 +0000 (14:32 -0700)]
mds: try_eval in many places

These are the obvious places where we drop locks and may need to defer the
eval until after unfreeze.  There are probably more; a full audit is in
order.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agomds: implement try_eval() on a single lock
Sage Weil [Wed, 27 Jul 2011 20:13:38 +0000 (13:13 -0700)]
mds: implement try_eval() on a single lock

We frequently call eval() on locks, usually after dropping an rd/wr/xlock.
At that point the eval() may do nothing because the object is now freezing
or frozen.  However, we still need to do the eval eventually.

These callers should eventually all switch to try_eval(), and retry as
needed.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: better debugging for scatter_wanted flag
Sage Weil [Wed, 27 Jul 2011 20:08:57 +0000 (13:08 -0700)]
mds: better debugging for scatter_wanted flag

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agomdsmon: Fix handling of follow-by-name MDSes.
Greg Farnum [Thu, 28 Jul 2011 00:42:24 +0000 (17:42 -0700)]
mdsmon: Fix handling of follow-by-name MDSes.

We were accidentally setting them to standby-for-rank -1 if their
leader MDS wasn't active on startup. Things worked out in the end
anyway since they would go from standby to active for the appropriate
rank, but we want them to be in proper standby-replay!

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agovstart: use paired MDSes with a specified standby.
Greg Farnum [Thu, 28 Jul 2011 00:41:09 +0000 (17:41 -0700)]
vstart: use paired MDSes with a specified standby.

I think this is a bit cleaner than specifying ranks manually.

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agoPG: add an assert for negative entries in the scrub map
Greg Farnum [Wed, 27 Jul 2011 19:01:38 +0000 (12:01 -0700)]
PG: add an assert for negative entries in the scrub map

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agoosd: label ReplicatedPG::_scrub as virtual.
Greg Farnum [Tue, 26 Jul 2011 20:48:12 +0000 (13:48 -0700)]
osd: label ReplicatedPG::_scrub as virtual.

It is virtual in the parent class PG, and the style guide says to
label them in all classes so people don't forget.

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agoosd: turn down debug level on repop commit message
Greg Farnum [Tue, 26 Jul 2011 20:45:46 +0000 (13:45 -0700)]
osd: turn down debug level on repop commit message

We really don't need that to be the only thing sitting in logs.

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agorgw: parse date from http header
Yehuda Sadeh [Thu, 28 Jul 2011 00:02:17 +0000 (17:02 -0700)]
rgw: parse date from http header

14 years agorgw: return required error when conent length missing on PUT
Yehuda Sadeh [Wed, 27 Jul 2011 23:04:36 +0000 (16:04 -0700)]
rgw: return required error when conent length missing on PUT

14 years agoMerge branch 'next'
Sage Weil [Wed, 27 Jul 2011 19:43:47 +0000 (12:43 -0700)]
Merge branch 'next'

14 years agomds: make two passes on scatter_nudge
Sage Weil [Wed, 27 Jul 2011 19:42:21 +0000 (12:42 -0700)]
mds: make two passes on scatter_nudge

It's possible for scatter_nudge on a scatterlock in LOCK with dirty set to
go to MIX immediately and remain stable.  Give two 'nudge' passes before
we stop to avoid looping.

This fixes an assert failure where a nudge from log trimming ended up in a
stable state and asserted (!c).  The second pass will go trigger the dirty
writebehind.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agomds: honor scatter_wanted flag in scatter_eval()
Sage Weil [Wed, 27 Jul 2011 19:40:35 +0000 (12:40 -0700)]
mds: honor scatter_wanted flag in scatter_eval()

We do in file_eval, but not here.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agotestrados_delete_pool_while_open: remove from make
Colin Patrick McCabe [Wed, 27 Jul 2011 19:26:42 +0000 (12:26 -0700)]
testrados_delete_pool_while_open: remove from make

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoremove testrados_delete_pool_while_open
Colin Patrick McCabe [Wed, 27 Jul 2011 17:57:37 +0000 (10:57 -0700)]
remove testrados_delete_pool_while_open

This test duplicates the functionality of
testrados_delete_pools_parallel, but not as well.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agomds: fix projected rename adjustment
Sage Weil [Tue, 26 Jul 2011 23:10:48 +0000 (16:10 -0700)]
mds: fix projected rename adjustment

- we may journal one (or _maybe_ both, probably not) of the subtree root
  addition OR the bound addition, depending on whether oldparent and
  newparent are auth.
- we can't rely on get_subtree_root() to move bounds since the projected
  subtree isn't a root in the real tree.  use CDir::contains() instead.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agomds: clean out rename subtree cruft
Sage Weil [Tue, 26 Jul 2011 21:59:44 +0000 (14:59 -0700)]
mds: clean out rename subtree cruft

We used to force these subtrees for rename.  We don't anymore.. this is
old weirdness.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agomds: simplify subtree map after adjusting for rename
Sage Weil [Tue, 26 Jul 2011 21:59:22 +0000 (14:59 -0700)]
mds: simplify subtree map after adjusting for rename

Merge the subtree with the parent if appropriate.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agomds: track projected rename effect on subtree map
Sage Weil [Tue, 26 Jul 2011 21:58:35 +0000 (14:58 -0700)]
mds: track projected rename effect on subtree map

Renames can effect the subtree map.  We don't actually update it until the
rename commits, but while it is in flight to the jouranl we may journal
an ESubtreeMap event, which should reflect the change.

Adjust all callers (that journal) to project their change.

Mirror the logic in adjust_subtree_after_rename() in the subtree map
journaling code.  Be a bit careful, because we only journal subtrees that
we are auth for, so there are some additional checks to get a consistent
result.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agomds: minor cap cleanups
Sage Weil [Tue, 26 Jul 2011 21:11:22 +0000 (14:11 -0700)]
mds: minor cap cleanups

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agomds: only create up renamed diri frag subtrees if they differ from parent
Sage Weil [Tue, 26 Jul 2011 17:52:49 +0000 (10:52 -0700)]
mds: only create up renamed diri frag subtrees if they differ from parent

Commit 00ec86a2041 opens up subtrees with CDIR_AUTH_UNDEF blindly for any
renamed dir inode.  This is correct on the rename target, but not on a
random observer, where we end up with the parent and child having the
same auth.  Oddly the comment seemed to have it right.  Fix the code.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoclient: reencode cap releases for each request
Sage Weil [Tue, 26 Jul 2011 05:17:24 +0000 (22:17 -0700)]
client: reencode cap releases for each request

I think commit f7170f9 was based on some of my bad advice.  Every time the
client sends a request, it should look at what caps it has that might
conflict with the operation and (if possible) release them with the
request.  I suspect I was confusing this with the case on the MDS side of
things where we only process the release(s) when we first receive the
message and not when it is deferred/retried.

Specifically, this fixes a problem where we send a request to mds A and
release some set of caps, A tells us to talk to B instead, and we resend
the same message with (old, now bogus) releases intended for A to B
instead, where they probably make no sense.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoadmin_socket: implement schema request
Colin Patrick McCabe [Tue, 26 Jul 2011 23:41:52 +0000 (16:41 -0700)]
admin_socket: implement schema request

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoperf counters: add back inc type for collectd
Colin Patrick McCabe [Tue, 26 Jul 2011 23:27:34 +0000 (16:27 -0700)]
perf counters: add back inc type for collectd

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoclient/Client.cc: remove superfluous check
Colin Patrick McCabe [Tue, 26 Jul 2011 22:48:11 +0000 (15:48 -0700)]
client/Client.cc: remove superfluous check

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agorgw: get object with range should return 206
Yehuda Sadeh [Tue, 26 Jul 2011 22:48:19 +0000 (15:48 -0700)]
rgw: get object with range should return 206

14 years agorgw: fix bad initialization
Yehuda Sadeh [Tue, 26 Jul 2011 21:54:01 +0000 (14:54 -0700)]
rgw: fix bad initialization

14 years agorgw: fix warning
Yehuda Sadeh [Tue, 26 Jul 2011 21:53:50 +0000 (14:53 -0700)]
rgw: fix warning

14 years agoMakefile: sysconfdir for bash_completion install
Sage Weil [Tue, 26 Jul 2011 21:59:43 +0000 (14:59 -0700)]
Makefile: sysconfdir for bash_completion install

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agorgw: return error on partial object put
Yehuda Sadeh [Tue, 26 Jul 2011 21:34:09 +0000 (14:34 -0700)]
rgw: return error on partial object put

14 years agorgw: modify print macro to log using default log api
Yehuda Sadeh [Tue, 26 Jul 2011 21:27:36 +0000 (14:27 -0700)]
rgw: modify print macro to log using default log api

so that different output fds being used are the same and the log
would actually make sense

14 years agobash_completion: no more injectargs command
Sage Weil [Tue, 26 Jul 2011 21:17:08 +0000 (14:17 -0700)]
bash_completion: no more injectargs command

Use 'ceph [osd|mds|mon] tell injectargs "foo bar"'.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoMakefile: add bash_completion
Wido den Hollander [Tue, 26 Jul 2011 21:03:34 +0000 (14:03 -0700)]
Makefile: add bash_completion

Signed-off-by: Wido den Hollander <wido@widodh.nl>
14 years agobash_completion: Add the bash_completion files to the Debian packages
Wido den Hollander [Tue, 28 Jun 2011 18:28:13 +0000 (20:28 +0200)]
bash_completion: Add the bash_completion files to the Debian packages

Signed-off-by: Wido den Hollander <wido@widodh.nl>
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agobash_completion: Add bash completion for ceph, rados, radosgw_admin and rbd
Wido den Hollander [Tue, 28 Jun 2011 18:28:12 +0000 (20:28 +0200)]
bash_completion: Add bash completion for ceph, rados, radosgw_admin and rbd

Signed-off-by: Wido den Hollander <wido@widodh.nl>
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoAdd ObsyncException
Colin Patrick McCabe [Tue, 26 Jul 2011 18:29:53 +0000 (11:29 -0700)]
Add ObsyncException

This class has subclasses representing temporary and permanent
exceptions, as well as argument parsing errors. An instance of this
class can be created from a message or from another exception.

We always print out the type of exception on the last line of stderr,
right after the exception information.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agorgw: return Bad Request on PUT requests with empty content length
Yehuda Sadeh [Tue, 26 Jul 2011 19:23:36 +0000 (12:23 -0700)]
rgw: return Bad Request on PUT requests with empty content length

14 years agorgw: fix error code returned for bad digest
Yehuda Sadeh [Tue, 26 Jul 2011 18:57:07 +0000 (11:57 -0700)]
rgw: fix error code returned for bad digest

14 years agoadmin socket: handle schema request
Colin Patrick McCabe [Mon, 25 Jul 2011 23:31:59 +0000 (16:31 -0700)]
admin socket: handle schema request

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agosync_filesystem: er, fix #define
Sage Weil [Mon, 25 Jul 2011 20:53:04 +0000 (13:53 -0700)]
sync_filesystem: er, fix #define

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agosync_files: #include _GNU_SOURCE for syncfs()
Sage Weil [Mon, 25 Jul 2011 20:49:39 +0000 (13:49 -0700)]
sync_files: #include _GNU_SOURCE for syncfs()

Hopefully fixes: #1316
Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoadmin_socket: no sock for unprivileged daemons; rename default
Sage Weil [Mon, 25 Jul 2011 20:48:56 +0000 (13:48 -0700)]
admin_socket: no sock for unprivileged daemons; rename default

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoosd: verify src range exists for CLONERANGE
Sage Weil [Sat, 23 Jul 2011 21:36:46 +0000 (14:36 -0700)]
osd: verify src range exists for CLONERANGE

Make sure the source object extent does not extend past EOF when doing a
CLONERANGE.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoobjecter: treat RESETSESSION like a reset
Sage Weil [Mon, 25 Jul 2011 20:15:11 +0000 (13:15 -0700)]
objecter: treat RESETSESSION like a reset

Commit 065cdf5 rewrote ms_handle_reset but didn't adjust
ms_handle_remote_reset (they used to be identical).  The result is lost
MOSDOps if the osd ever sends a RESETSESSION.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoadmin_socket: change request 0 to get version
Colin Patrick McCabe [Mon, 25 Jul 2011 19:53:52 +0000 (12:53 -0700)]
admin_socket: change request 0 to get version

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoAdd more debugging for pthread_create failures
Colin Patrick McCabe [Mon, 25 Jul 2011 18:18:12 +0000 (11:18 -0700)]
Add more debugging for pthread_create failures

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agouse glibc d_type macros, helpers
Sage Weil [Mon, 25 Jul 2011 17:08:45 +0000 (10:08 -0700)]
use glibc d_type macros, helpers

Fixes: #1135
Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoperfcounters: no more stat/ dir, yay!
Sage Weil [Mon, 25 Jul 2011 16:14:08 +0000 (09:14 -0700)]
perfcounters: no more stat/ dir, yay!

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agomds: be careful about calls to try_subtree_merge
Sage Weil [Mon, 25 Jul 2011 05:08:13 +0000 (22:08 -0700)]
mds: be careful about calls to try_subtree_merge

try_subtree_merge will, on occasion, journal something.  And anytime we
journal something we may open a new segment and journal an ESubtreeMap.
That means we subtree state needs to be consistent with any in-progress
or finishing migrations.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: fix subtree_map simplify, again
Sage Weil [Mon, 25 Jul 2011 05:06:16 +0000 (22:06 -0700)]
mds: fix subtree_map simplify, again

Erasing from the vector<> seems to be clobbering the iterator, even when it
preceeds the deletion point.  Use integer index instead. Yuck!

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: journal EImportFinish after updating subtree/import state
Sage Weil [Sun, 24 Jul 2011 22:46:57 +0000 (15:46 -0700)]
mds: journal EImportFinish after updating subtree/import state

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: journal copious ESubtreeMaps if mds_debug_subtrees
Sage Weil [Sun, 24 Jul 2011 22:40:14 +0000 (15:40 -0700)]
mds: journal copious ESubtreeMaps if mds_debug_subtrees

Journal a new subtree map after every event if subtree debugging is
enabled.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: fix stl iterator misuse in create_subtree_map
Sage Weil [Sun, 24 Jul 2011 22:30:33 +0000 (15:30 -0700)]
mds: fix stl iterator misuse in create_subtree_map

q might be the first element, so we can't blindly --q; ++q.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoperfcounters: remove stray #includes
Sage Weil [Sun, 24 Jul 2011 22:29:20 +0000 (15:29 -0700)]
perfcounters: remove stray #includes

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoadmin_socket: fix EINTR check
Sage Weil [Sun, 24 Jul 2011 22:04:25 +0000 (15:04 -0700)]
admin_socket: fix EINTR check

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoadmin_socket: fix busy loop
Sage Weil [Sun, 24 Jul 2011 22:04:09 +0000 (15:04 -0700)]
admin_socket: fix busy loop

Passing timeout==0 will return immediately.  Pass -1 to block until
interesting happens.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: kill useless MDLog::writing_subtree_map
Sage Weil [Sun, 24 Jul 2011 21:45:38 +0000 (14:45 -0700)]
mds: kill useless MDLog::writing_subtree_map

No reason we can't have multiple maps in flight to the journal.  This looks
like baggage from when subtree_map_expire_waiters was used.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: submit_entry last
Sage Weil [Sun, 24 Jul 2011 21:22:12 +0000 (14:22 -0700)]
mds: submit_entry last

MDLog::submit_entry() may journal an ESubtreeMap as a side-effect, so make
sure we have updated our state correctly _before_ calling it.  The safest
is to just do it last.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomon: simplify 'mon tell ...'
Sage Weil [Sun, 24 Jul 2011 21:02:36 +0000 (14:02 -0700)]
mon: simplify 'mon tell ...'

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomon: rip out injectargs command(s)
Sage Weil [Sun, 24 Jul 2011 05:13:14 +0000 (22:13 -0700)]
mon: rip out injectargs command(s)

Use 'ceph [osd|mds|mon] tell <who> injectargs ...'

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoosd: fix OSDOp printer for CLONERANGE
Sage Weil [Sat, 23 Jul 2011 20:32:45 +0000 (13:32 -0700)]
osd: fix OSDOp printer for CLONERANGE

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomon: 'dump [--format=json]'
Sage Weil [Fri, 22 Jul 2011 23:25:14 +0000 (16:25 -0700)]
mon: 'dump [--format=json]'

Signed-off-by: Sage Weil <sage@newdream.net>