]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
14 years agoauth: const cleanup
Colin Patrick McCabe [Wed, 20 Apr 2011 21:26:48 +0000 (14:26 -0700)]
auth: const cleanup

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoobysnc: use python2.5 compatible exception syntax
Colin Patrick McCabe [Wed, 20 Apr 2011 21:33:03 +0000 (14:33 -0700)]
obysnc: use python2.5 compatible exception syntax

Apparently using "as" in "except" blocks is a new (and not
backwards-compatible) thing in Python 2.6.x. Who knew?

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoPGMonitor: unregister the config obs in ~PGMonitor
Colin Patrick McCabe [Wed, 20 Apr 2011 20:38:17 +0000 (13:38 -0700)]
PGMonitor: unregister the config obs in ~PGMonitor

Using the new unregister call, unregister the config observer in
~PGMonitor.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoconfig: add remove_observer
Colin Patrick McCabe [Wed, 20 Apr 2011 20:35:32 +0000 (13:35 -0700)]
config: add remove_observer

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoPGMon: use the config observer framework
Greg Farnum [Wed, 20 Apr 2011 20:54:56 +0000 (13:54 -0700)]
PGMon: use the config observer framework

We now register observers on mon_osd_full_ratio and nearfull_ratio
to update the OSD full/nearfull lists.

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agoProfLogger: add NULL to KEYS in the config observer.
Greg Farnum [Wed, 20 Apr 2011 20:51:50 +0000 (13:51 -0700)]
ProfLogger: add NULL to KEYS in the config observer.

I believe that without the null pointer it will overrun into
uninitialized memory.

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agoconfig: add comment clarifying virtual destructor.
Greg Farnum [Wed, 20 Apr 2011 20:51:01 +0000 (13:51 -0700)]
config: add comment clarifying virtual destructor.

Just in case anybody else is like me and gets confused.

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agoPGMap: fill in full OSD sets on decode.
Greg Farnum [Wed, 20 Apr 2011 17:58:23 +0000 (10:58 -0700)]
PGMap: fill in full OSD sets on decode.

Previously these sets were only modified when applying an incremental,
which might have caused problems when restarting monitors. Whoops!

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agoMerge remote branch 'origin/classdist'
Sage Weil [Wed, 20 Apr 2011 04:55:50 +0000 (21:55 -0700)]
Merge remote branch 'origin/classdist'

14 years agoconf: reopen proflogger on conf change
Colin Patrick McCabe [Wed, 20 Apr 2011 00:51:33 +0000 (17:51 -0700)]
conf: reopen proflogger on conf change

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoconf: add observer framework
Colin Patrick McCabe [Tue, 19 Apr 2011 21:24:41 +0000 (14:24 -0700)]
conf: add observer framework

Objects can now register as configuration observers interested in a
subset of the configuration keys. The observers will be told exactly
which keys have changed.

The first user is dout, which now no longer needs the infamous SIGHUP
hack to know when to reopen the config file.

librados: Remove rados_reopen_log, which was basically a means for the
library user to trigger the SIGHUP behavior.

Changes are accumulated and applied all at once by apply_changes. This
function is called as part of common_init, and after every call to
injectargs.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agodout: make dout a member of md_config_t
Colin Patrick McCabe [Tue, 19 Apr 2011 21:24:41 +0000 (14:24 -0700)]
dout: make dout a member of md_config_t

Since logging options are per-config, logically DoutStreambuf instances
should also be per-config. This also allows us to eliminate the
"if (uninitialized)" checks at the beginning of every call to dout.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agodout: remove DOUTSB_FLAG_STDOUT
Colin Patrick McCabe [Tue, 19 Apr 2011 21:43:16 +0000 (14:43 -0700)]
dout: remove DOUTSB_FLAG_STDOUT

This was used to implement log_to_stdout, but that doesn't exist any
more. Instead of we have log_to_stderr and the other stuff.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoPGMap: add redo_full_sets() function for when ratios change.
Greg Farnum [Tue, 19 Apr 2011 22:02:58 +0000 (15:02 -0700)]
PGMap: add redo_full_sets() function for when ratios change.

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agoosdmon: Clean up debug output on map full flag.
Greg Farnum [Tue, 19 Apr 2011 21:30:38 +0000 (14:30 -0700)]
osdmon: Clean up debug output on map full flag.

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agoPGMap: add [near]full_ratio to the Incremental and encoding.
Greg Farnum [Tue, 19 Apr 2011 19:47:14 +0000 (12:47 -0700)]
PGMap: add [near]full_ratio to the Incremental and encoding.

This way these ratios can be distributed by map updates.

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agoPGMap: always decode pg_remove.
Greg Farnum [Tue, 19 Apr 2011 19:39:07 +0000 (12:39 -0700)]
PGMap: always decode pg_remove.

pg_remove has been included for longer than we've had versions
in the struct, so this check for end is useless -- if pg_remove
wasn't encoded we're already broken by decoding the version at
the beginning.

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agocfuse, mds, dout: Do not create "rank" symlinks for log files.
Tommi Virtanen [Tue, 19 Apr 2011 20:54:47 +0000 (13:54 -0700)]
cfuse, mds, dout: Do not create "rank" symlinks for log files.

Signed-off-by: Tommi Virtanen <tommi.virtanen@dreamhost.com>
14 years agoremove old debian build helper scripts.
Sage Weil [Tue, 19 Apr 2011 18:59:46 +0000 (11:59 -0700)]
remove old debian build helper scripts.

This is now handled by ceph-build.git

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agomon: remove class distribution infrastructure
Sage Weil [Tue, 19 Apr 2011 18:33:34 +0000 (11:33 -0700)]
mon: remove class distribution infrastructure

This is now the admin's job.  Removes a lot of code with limited testing
and coverage.

We rev the internal monitor protocol because the state machine ids changed.
This should not affect the on-disk format. Just stop and restart all the
monitors at once during the upgrade.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoosd: move ClassHandler.{cc,h} to osd/
Sage Weil [Tue, 19 Apr 2011 18:11:51 +0000 (11:11 -0700)]
osd: move ClassHandler.{cc,h} to osd/

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoosd: load classes from a fixed location off disk
Sage Weil [Tue, 19 Apr 2011 18:09:54 +0000 (11:09 -0700)]
osd: load classes from a fixed location off disk

Simplify the class loading code to just load out of a local directory.
Do not request classes from the monitor.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agocommon: add environment.cc/environment.h
Colin Patrick McCabe [Tue, 19 Apr 2011 17:28:16 +0000 (10:28 -0700)]
common: add environment.cc/environment.h

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agocommon_init: move version printout to common_init
Colin Patrick McCabe [Tue, 19 Apr 2011 00:49:04 +0000 (17:49 -0700)]
common_init: move version printout to common_init

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agointerval_set: slightly better API for erase
Colin Patrick McCabe [Tue, 19 Apr 2011 00:32:16 +0000 (17:32 -0700)]
interval_set: slightly better API for erase

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoChange some global config options to env vars
Colin Patrick McCabe [Mon, 18 Apr 2011 22:45:54 +0000 (15:45 -0700)]
Change some global config options to env vars

Options that are inherently global, like malloc settings, and also
inherently debugging or profiling settings should be environment
variables.

tcmalloc_profiler_run, profiler_allocation_interval,
profiler_highwater_interval, and buffer_track_alloc fall into this
category.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agojournaler: fix do_flush adjustment
Sage Weil [Mon, 18 Apr 2011 22:32:43 +0000 (15:32 -0700)]
journaler: fix do_flush adjustment

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoosd: assert on query on deleting pg
Sage Weil [Mon, 18 Apr 2011 22:30:50 +0000 (15:30 -0700)]
osd: assert on query on deleting pg

This shouldn't happen; assert if it does.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoosd: do not create pgs on query
Sage Weil [Mon, 18 Apr 2011 22:29:07 +0000 (15:29 -0700)]
osd: do not create pgs on query

We do not need to create the pg on query.  If we are a new replica we can
create it when we get the PGLog activate message.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agojournaler: truncate/zero ahead of write position
Sage Weil [Mon, 18 Apr 2011 22:06:25 +0000 (15:06 -0700)]
journaler: truncate/zero ahead of write position

Remove/zero objects N periods ahead of the journal write position.  This
ensures that when we reprobe the journal length, we will always detect the
end position as the correct write_pos, even when there is weird data
"ahead" of us that we may bump up against.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agofiler: remove whole objects on zero()
Sage Weil [Mon, 18 Apr 2011 21:48:34 +0000 (14:48 -0700)]
filer: remove whole objects on zero()

Make filer::zero() remove any whole objects.  This is required by the
Journaler, given the way it probes the journal length.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agointerval_set: implement erase(iterator)
Sage Weil [Mon, 18 Apr 2011 21:35:10 +0000 (14:35 -0700)]
interval_set: implement erase(iterator)

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoMerge branch 'next'
Sage Weil [Mon, 18 Apr 2011 22:06:47 +0000 (15:06 -0700)]
Merge branch 'next'

14 years agojournaler: check return code on _finish_write_head.
Greg Farnum [Mon, 18 Apr 2011 21:34:14 +0000 (14:34 -0700)]
journaler: check return code on _finish_write_head.

If we get an error code and assume we successfully wrote the head,
there are going to be all kinds of issues on replay!

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agoosd: make ZERO on non-existent object a no-op
Sage Weil [Mon, 18 Apr 2011 20:55:16 +0000 (13:55 -0700)]
osd: make ZERO on non-existent object a no-op

Fixes bug where oi.size gets out of sync with the object size because we
actually write zeros.  (This explains #933.)

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agodout: remove references to g_conf
Colin Patrick McCabe [Mon, 18 Apr 2011 20:10:36 +0000 (13:10 -0700)]
dout: remove references to g_conf

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agovstart tests: specify ceph.conf
Colin Patrick McCabe [Mon, 18 Apr 2011 20:10:16 +0000 (13:10 -0700)]
vstart tests: specify ceph.conf

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agorgw: return appropriate error for unresolvable email in acl
Yehuda Sadeh [Mon, 18 Apr 2011 19:54:02 +0000 (12:54 -0700)]
rgw: return appropriate error for unresolvable email in acl

14 years agoconfig: reorder config_option struct members
Colin Patrick McCabe [Mon, 18 Apr 2011 18:53:30 +0000 (11:53 -0700)]
config: reorder config_option struct members

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoconfig: remove unused OPT_NONE type
Colin Patrick McCabe [Mon, 18 Apr 2011 18:44:00 +0000 (11:44 -0700)]
config: remove unused OPT_NONE type

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoclitests: fix radosgw_admin test
Colin Patrick McCabe [Mon, 18 Apr 2011 18:43:45 +0000 (11:43 -0700)]
clitests: fix radosgw_admin test

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoclitests: eliminate use of old-style section name
Colin Patrick McCabe [Mon, 18 Apr 2011 18:43:23 +0000 (11:43 -0700)]
clitests: eliminate use of old-style section name

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoMDS: move slave rename xlock handling before finish_export_inode.
Greg Farnum [Sat, 16 Apr 2011 01:00:57 +0000 (18:00 -0700)]
MDS: move slave rename xlock handling before finish_export_inode.

finish_export_inode changes states! That's not good for our checks,
so just handle unpinning and stuff before we finish_export_inode.

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agoimprove debug printing
Greg Farnum [Fri, 15 Apr 2011 22:49:46 +0000 (15:49 -0700)]
improve debug printing

14 years agomds: Unify migration-handling code in _commit_slave_rename.
Greg Farnum [Thu, 14 Apr 2011 22:53:09 +0000 (15:53 -0700)]
mds: Unify migration-handling code in _commit_slave_rename.

We need to handle locks and pins on exported inodes but we
were using a separate if block with its own (non-matching!) check
for no good reason.

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agomds: _commit_slave_rename needs to drop auth_pins for exported xlocks.
Greg Farnum [Mon, 11 Apr 2011 23:55:09 +0000 (16:55 -0700)]
mds: _commit_slave_rename needs to drop auth_pins for exported xlocks.

Otherwise these pins are never dropped from the inode since we
don't go through our normal xlock teardown code. Now we do!

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agoMDS: Make _rename_apply inode import auth_pinning more intelligent.
Greg Farnum [Thu, 7 Apr 2011 00:05:26 +0000 (17:05 -0700)]
MDS: Make _rename_apply inode import auth_pinning more intelligent.

We don't want auth_pins on the locallocks (they're never auth_pinned)
and we only want new auth_pins that are for locks on the inode that we
imported -- not for each xlock that the mdr has everywhere (like,
say, on the srcdn)!

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agomds: If we're a slave, clean up xlocks when we export an inode.
Greg Farnum [Thu, 31 Mar 2011 21:02:48 +0000 (14:02 -0700)]
mds: If we're a slave, clean up xlocks when we export an inode.

Because we can do an inode import during a rename that skips the usual
channels, we were getting into an odd state with the xlocks (which we
did as a slave for an inode that we exported away). Clean up the
record of these xlocks for inodes before we get into the request
cleanup (at which point we are labeled as no-longer-auth, and the
standard cleanup routines will break).

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agomds: properly drop imported xlocks.
Greg Farnum [Thu, 31 Mar 2011 00:10:05 +0000 (17:10 -0700)]
mds: properly drop imported xlocks.

Because we can do an inode import during a rename that skips the usual
channels, we were getting into an odd state with the xlocks (which
were formerly remote and are now local). Clean up the record of
those remote xlocks.

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agoMDS: Server takes auth_pins for xlocks on imported inodes.
Greg Farnum [Fri, 25 Mar 2011 23:41:49 +0000 (16:41 -0700)]
MDS: Server takes auth_pins for xlocks on imported inodes.

Should fix #934.

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agoosd: show "full" or "nearfull" in osdmap summary line
Sage Weil [Mon, 18 Apr 2011 16:57:55 +0000 (09:57 -0700)]
osd: show "full" or "nearfull" in osdmap summary line

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoMerge remote branch 'origin/stable'
Sage Weil [Mon, 18 Apr 2011 16:58:15 +0000 (09:58 -0700)]
Merge remote branch 'origin/stable'

Conflicts:
src/osdc/Journaler.cc

14 years agoMerge branch 'rgw_uid'
Yehuda Sadeh [Mon, 18 Apr 2011 16:56:08 +0000 (09:56 -0700)]
Merge branch 'rgw_uid'

14 years agorgw: remove get_user_info() and clean up
Yehuda Sadeh [Mon, 18 Apr 2011 15:56:52 +0000 (08:56 -0700)]
rgw: remove get_user_info() and clean up

rename all the get_uid_by_* to get_user_info_by_*, remove get_user_info()
and call the appropriate function instead (either the by_uid or by_access_key).

14 years agorgw: store user info on all indexes in the same format
Yehuda Sadeh [Mon, 18 Apr 2011 15:32:09 +0000 (08:32 -0700)]
rgw: store user info on all indexes in the same format

this breaks backward compatibility, we'll have to deal with that
later.

14 years agorgw_admin: can lookup user by access key
Yehuda Sadeh [Mon, 18 Apr 2011 15:15:11 +0000 (08:15 -0700)]
rgw_admin: can lookup user by access key

14 years agomount.ceph: behave when CONFIG_KEYS is not compiled in
Sage Weil [Mon, 18 Apr 2011 04:58:27 +0000 (21:58 -0700)]
mount.ceph: behave when CONFIG_KEYS is not compiled in

In that case we get ENOSYS.  This also implies an old version of the client
and that we should fall back.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoradosgw_admin: Update manpage to new syntax
Wido den Hollander [Mon, 18 Apr 2011 00:40:46 +0000 (17:40 -0700)]
radosgw_admin: Update manpage to new syntax

Signed-off-by: Wido den Hollander <wido@widodh.nl>
Signed-off-by: Colin McCabe <cmccabe@alumni.cmu.edu>
14 years agoMDS: Fix Locker::handle_reqrdlock for xlocked locks.
Greg Farnum [Wed, 13 Apr 2011 23:02:51 +0000 (16:02 -0700)]
MDS: Fix Locker::handle_reqrdlock for xlocked locks.

We previously dropped the request but that was inappropriate for that
one case because the replica has no way to trigger a resend.

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: Always _open_parents when opening a new snaprealm
Sage Weil [Wed, 13 Apr 2011 20:57:49 +0000 (13:57 -0700)]
mds: Always _open_parents when opening a new snaprealm

Signed-off-by: Sage Weil <sage@newdream.net>
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agomds: don't run all of try_subtree_merge on a rename across MDSes.
Greg Farnum [Mon, 11 Apr 2011 23:57:50 +0000 (16:57 -0700)]
mds: don't run all of try_subtree_merge on a rename across MDSes.

Previously we'd try and do the whole thing, which meant that
the replica got a lock twiddle before it had finished the export.
That broke things spectacularly, since we weren't respecting our
invariants about who gets remote locking messages.
Now we pass through a flag and respect our invariants.

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: adjust LocalLock can_xlock_local().
Greg Farnum [Thu, 7 Apr 2011 00:03:12 +0000 (17:03 -0700)]
mds: adjust LocalLock can_xlock_local().

I don't remember why we needed can_xlock_local() to begin with, but
I can tell that adding this get_xlock_by() check won't stop anything
working that was ever working to begin with (really it's still not
strong enough a check).

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: Extend use of find_ino_peers.
Greg Farnum [Thu, 7 Apr 2011 00:01:53 +0000 (17:01 -0700)]
mds: Extend use of find_ino_peers.

Missed a few places that need it.

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: Make use of find_ino_peers
Greg Farnum [Fri, 1 Apr 2011 00:25:52 +0000 (17:25 -0700)]
mds: Make use of find_ino_peers

Previously we just had to give up on ESTALE. Now
we can attempt to recover!

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agorandom commenting
Greg Farnum [Thu, 24 Mar 2011 21:26:46 +0000 (14:26 -0700)]
random commenting

14 years agoMDS: Remove inappropriate assert from _logged_slave_rename.
Greg Farnum [Thu, 24 Mar 2011 21:11:06 +0000 (14:11 -0700)]
MDS: Remove inappropriate assert from _logged_slave_rename.

The slave also can hold some auth pins from locks which the
master has asked it to grab. It's possible we can intelligently
determine how many, but for now just drop the assert.

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoMDS: Server::handle_slave_rename_prep now accounts for dir snaplock.
Greg Farnum [Thu, 24 Mar 2011 19:23:38 +0000 (12:23 -0700)]
MDS: Server::handle_slave_rename_prep now accounts for dir snaplock.

Previously it ignored the auth pin required to hold snap xlock, which
is currently always held for a rename on a dir. This would lead to
a permanent hang on the request. Now we account for it!

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoMDS: Don't move inode to snaprealms if not primary inode.
Greg Farnum [Wed, 23 Mar 2011 18:50:43 +0000 (11:50 -0700)]
MDS: Don't move inode to snaprealms if not primary inode.

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoMDCache: update assert to account for being a slave.
Greg Farnum [Wed, 23 Mar 2011 17:41:36 +0000 (10:41 -0700)]
MDCache: update assert to account for being a slave.

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoServer: push_projected_linkage in _link_remote
Greg Farnum [Tue, 22 Mar 2011 22:27:21 +0000 (15:27 -0700)]
Server: push_projected_linkage in _link_remote

_link_remote_finish will pop the linkage if inc==true, so we'd
better push it to match!

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agoServer: ensure slave mdses have full dest tree
Greg Farnum [Tue, 22 Mar 2011 21:23:33 +0000 (14:23 -0700)]
Server: ensure slave mdses have full dest tree

We were already taking rdlocks on the source tree, to make
sure that each slave MDS could traverse to the source dentry. Now,
if there are slave MDSes, we take rdlocks on each destination
ancestor to make sure the slaves can also traverse there.
This fixes an fsstress bug.

Signed-off-by: Sage Weil <sage@newdream.net>
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agorgw: basic support for separate uid and access key
Yehuda Sadeh [Sat, 16 Apr 2011 00:20:44 +0000 (17:20 -0700)]
rgw: basic support for separate uid and access key

14 years agomds: fix null deref in debug
Sage Weil [Fri, 15 Apr 2011 23:32:45 +0000 (16:32 -0700)]
mds: fix null deref in debug

The *dir isn't always non-null (namely, during DISCOVERING state).

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agomds: keep import/export subtree_map state in sync with journal
Sage Weil [Fri, 15 Apr 2011 22:51:50 +0000 (15:51 -0700)]
mds: keep import/export subtree_map state in sync with journal

We were being sloppy before with the ESubtreeMap vs import/export events.
Fix that by doing a few things:

 - add an ambig flag to the subtree map items, and set it for in-progress
   imports.  That means an ESubtreeMap followed by EImportFinish will do
   the right thing now.
 - adjust the dir_auth on EExport journaling (handle_export_dir_ack) so
   that our journaled subtree_map state is always in sync with what we
   see during replay.

Also document clearly what the dir_auth variations actually mean.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agomds: fix export cancel during IMPORT_PREPPING
Sage Weil [Fri, 15 Apr 2011 20:53:54 +0000 (13:53 -0700)]
mds: fix export cancel during IMPORT_PREPPING

If we are in PREPPING, we need to drop the stickydirs() on the inodes, and
not the pins on the dirfrags.  Do this in the helper so we can keep the
call chains simple.

Also deal with the case where we get a cancel in PREPPED state.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agomds: clean up trim_non_auth_subtree output
Sage Weil [Fri, 15 Apr 2011 17:05:50 +0000 (10:05 -0700)]
mds: clean up trim_non_auth_subtree output

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agomds: cancel exports in PREPPING state on any failure
Sage Weil [Thu, 14 Apr 2011 01:36:33 +0000 (18:36 -0700)]
mds: cancel exports in PREPPING state on any failure

The prepping nodes may need to discover bounds from the failed node and
may hang indefinitely.  Meanwhile, we won't send out mds_resolve messages
until in-progress migrations complete.  Deadlock.

In certain cases the importing node can manufacture the replica.  If it
doesn't realize that right off, though, it will get hung up trying to
discover from the wrong node, get referred to the failed node, and block
waiting for recovery.  The replica forging is a bit suspect anyway, so
let's avoid the whole thing if we can!

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agomds: use helpers for import_reverse
Sage Weil [Thu, 14 Apr 2011 01:34:55 +0000 (18:34 -0700)]
mds: use helpers for import_reverse

Use helpers for common code shared between handle_export_cancel and
handle_mds_failure_or_stop.

Also include handling for IMPORT_PREPPING state, even though we don't use
it yet.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agomds: don't skip inodes in journal that may be trimmed during replay
Sage Weil [Fri, 15 Apr 2011 17:02:46 +0000 (10:02 -0700)]
mds: don't skip inodes in journal that may be trimmed during replay

During replay we trim non-auth inodes on EExport or EImportFinish abort.
Subtree trimming may be delayed, too.

Skip parents if the diri is in the same blob, or if it is journaled in the
current segment *and* it is in a subtree that is unambiguously auth.  We can't
easily be more precise than that because the actual event we care about on
replay is EExport, but the migrator doesn't twiddle auth bits to false until
later.

Also, reset last_journaled on import.

This fixes replay bugs like

2011-04-13 18:15:18.064029 7f65588ef710 mds1.journal EImportStart.replay 10000000015 bounds []
2011-04-13 18:15:18.064034 7f65588ef710 mds1.journal EMetaBlob.replay 2 dirlumps by unknown0
2011-04-13 18:15:18.064040 7f65588ef710 mds1.journal EMetaBlob.replay dir 10000000010
2011-04-13 18:15:18.064046 7f65588ef710 mds1.journal EMetaBlob.replay missing dir ino  10000000010
mds/journal.cc: In function 'void EMetaBlob::replay(MDS*, LogSegment*)', in thread '0x7f65588ef710'
mds/journal.cc: 407: FAILED assert(0)
 ceph version 0.25-683-g653580a (commit:653580ae84c471c34872f14a0308c78af71f7243)
 1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x53) [0xa53d26]
 2: (EMetaBlob::replay(MDS*, LogSegment*)+0x7eb) [0x7a737d]

Fixes: #994
Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoconfig: warn about old-style conf section names
Colin Patrick McCabe [Fri, 15 Apr 2011 22:21:36 +0000 (15:21 -0700)]
config: warn about old-style conf section names

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoman: Update cmds documentation.
Greg Farnum [Fri, 15 Apr 2011 22:54:12 +0000 (15:54 -0700)]
man: Update cmds documentation.

You always need to specify a rank if you do journal-check.

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agovstart.sh: use new-style section names in config
Colin Patrick McCabe [Fri, 15 Apr 2011 21:45:56 +0000 (14:45 -0700)]
vstart.sh: use new-style section names in config

Use new-style section names in vstart.sh.
Also update sample.ceph.conf.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agomon:don't check for old-style monitor section name
Colin Patrick McCabe [Fri, 15 Apr 2011 21:40:49 +0000 (14:40 -0700)]
mon:don't check for old-style monitor section name

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agocconf: update man page
Colin Patrick McCabe [Fri, 15 Apr 2011 21:34:39 +0000 (14:34 -0700)]
cconf: update man page

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agomkcephfs, init-ceph: tolerate complete lack of a type
Sage Weil [Fri, 15 Apr 2011 21:03:20 +0000 (14:03 -0700)]
mkcephfs, init-ceph: tolerate complete lack of a type

We were bailing out of mkcephfs with a config with no mds's defined
(because we set -e and grep returns an error here).

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoobjecter: log when we defer a write because of FULL osdmap flag
Sage Weil [Fri, 15 Apr 2011 21:03:40 +0000 (14:03 -0700)]
objecter: log when we defer a write because of FULL osdmap flag

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomkcephfs, init-ceph: tolerate complete lack of a type
Sage Weil [Fri, 15 Apr 2011 21:03:20 +0000 (14:03 -0700)]
mkcephfs, init-ceph: tolerate complete lack of a type

We were bailing out of mkcephfs with a config with no mds's defined
(because we set -e and grep returns an error here).

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoconfig: do not accept old-style section names
Colin Patrick McCabe [Fri, 15 Apr 2011 20:59:57 +0000 (13:59 -0700)]
config: do not accept old-style section names

Stop accepting old-style section names of the form $type$id.  Instead,
we want section names of the form $type.$id.  So [osd0] will no longer
be a valid section name; instead, use [osd.0].

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agocconf: fix usage; clean up some code
Colin Patrick McCabe [Fri, 15 Apr 2011 20:49:55 +0000 (13:49 -0700)]
cconf: fix usage; clean up some code

cconf: fix obsolete usage message. Add --list-all-sections flag.
Use new ceph_argparse stuff. Update tests.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoconfig: normalize key names, cleanup
Colin Patrick McCabe [Fri, 15 Apr 2011 19:03:12 +0000 (12:03 -0700)]
config: normalize key names, cleanup

Normalize key names in md_config_t::get_val and md_config_t::set_val

Remove unused fields from struct config_option.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agorgw: fix other err related issues
Yehuda Sadeh [Fri, 15 Apr 2011 18:15:11 +0000 (11:15 -0700)]
rgw: fix other err related issues

also remove the now redundant formatter->flush()

14 years agorgw: adjustments to error handling
Yehuda Sadeh [Fri, 15 Apr 2011 17:52:14 +0000 (10:52 -0700)]
rgw: adjustments to error handling

fixing mixup between s3 error code and s3 error message

14 years agolibceph: implement ceph_conf_set and ceph_conf_get
Colin Patrick McCabe [Fri, 15 Apr 2011 17:37:05 +0000 (10:37 -0700)]
libceph: implement ceph_conf_set and ceph_conf_get

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agomds: init metablob MDLog* for EImportStart
Sage Weil [Thu, 14 Apr 2011 01:59:14 +0000 (18:59 -0700)]
mds: init metablob MDLog* for EImportStart

This will initialize metablob.my_offset, which makes the parent inode
journaling logic work properly.

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agoinit-ceph: no log_dir default
Sage Weil [Thu, 14 Apr 2011 01:06:29 +0000 (18:06 -0700)]
init-ceph: no log_dir default

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agomds: fix journal offset types
Sage Weil [Thu, 14 Apr 2011 02:01:15 +0000 (19:01 -0700)]
mds: fix journal offset types

Always uint64_t!

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agomds: show migration state names on cancel
Sage Weil [Thu, 14 Apr 2011 02:08:05 +0000 (19:08 -0700)]
mds: show migration state names on cancel

Signed-off-by: Sage Weil <sage@newdream.net>
14 years agorgw: rework error handling a bit
Colin Patrick McCabe [Thu, 14 Apr 2011 23:14:48 +0000 (16:14 -0700)]
rgw: rework error handling a bit

Rados Gateway: get rid of RGWOp::err. We already have req_state::err and
that represents the same thing.

Standardize nomenclature for errors. 'errno' is our internal
representation of the error. 'code' is what is returned by S3.
'message' is the message at the end. Improve rgw_err.

dump_errno shouldn't modify req_state, but just dump the error.
A new function set_req_state_err sets the error based on an 'errno'.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoconfig: add test for override ordering, comment
Colin Patrick McCabe [Thu, 14 Apr 2011 20:45:13 +0000 (13:45 -0700)]
config: add test for override ordering, comment

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoconfig: de-globalize reading config file
Colin Patrick McCabe [Thu, 14 Apr 2011 22:26:20 +0000 (15:26 -0700)]
config: de-globalize reading config file

Reading a config file into any md_config_t structure except g_conf used
to be impossible. This is because the config_option code used to
contain explicit references to g_conf. Those have been removed, so now
any md_config_t should be able to read a configuration file.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>