]>
git.apps.os.sepia.ceph.com Git - ceph.git/log
Sage Weil [Thu, 18 Mar 2010 04:47:00 +0000 (21:47 -0700)]
mds: drop gather if it's empty
This can happen from scatter_nudge, which may add a sub and then
complete it, emptying out the C_Gather.
Sage Weil [Thu, 18 Mar 2010 04:46:00 +0000 (21:46 -0700)]
context: don't complete C_Gather until finisher is set
We often create a C_Gather, add a bunch of subs, and set a
finisher at the end. Occasionally we create a sub and it gets
finished immediately, in which case we don't want the gather to
get finished and deleted already. So don't 'complete' the gather
until it's by activated by setting the finisher.
Sage Weil [Wed, 17 Mar 2010 16:46:02 +0000 (09:46 -0700)]
init-ceph: do already running check early to avoid extra work
Sage Weil [Thu, 18 Mar 2010 17:20:34 +0000 (10:20 -0700)]
todo
Sage Weil [Thu, 18 Mar 2010 17:20:10 +0000 (10:20 -0700)]
mds: session is always defined in handle_client_reconnect
Sage Weil [Thu, 18 Mar 2010 00:01:19 +0000 (17:01 -0700)]
qa: make pjd test behave when run twice in same dir
Sage Weil [Wed, 17 Mar 2010 23:17:59 +0000 (16:17 -0700)]
mds: acknowledge reconnect success with a session open message
Sage Weil [Wed, 17 Mar 2010 18:49:16 +0000 (11:49 -0700)]
qa: add fsx workunit
Greg Farnum [Wed, 17 Mar 2010 21:52:50 +0000 (14:52 -0700)]
mon: msg: better output
Greg Farnum [Wed, 17 Mar 2010 18:57:18 +0000 (11:57 -0700)]
mon: don't use get_priv() without put!
Greg Farnum [Wed, 17 Mar 2010 17:57:24 +0000 (10:57 -0700)]
mon: forwarded messages should use the same connection as their carrier message
Greg Farnum [Wed, 17 Mar 2010 17:56:42 +0000 (10:56 -0700)]
mon: when possible, fill PaxosServiceMap::caps before exiting ms_dispatch
Greg Farnum [Wed, 17 Mar 2010 16:08:21 +0000 (09:08 -0700)]
mon: let ms_dispatch be non-locking for forwards
Greg Farnum [Tue, 16 Mar 2010 21:48:31 +0000 (14:48 -0700)]
mon: Encapsulate forwarded PaxosServiceMessages into MForward with their caps
Greg Farnum [Wed, 17 Mar 2010 16:03:45 +0000 (09:03 -0700)]
mon: Use PaxosServiceMessage::caps instead of Session::caps where applicable
Greg Farnum [Tue, 16 Mar 2010 19:53:44 +0000 (12:53 -0700)]
msg: Add a new MForward message for encapsulating client caps and messages
Sage Weil [Wed, 17 Mar 2010 18:13:53 +0000 (11:13 -0700)]
qa: add loopall.sh
Sage Weil [Wed, 17 Mar 2010 18:08:21 +0000 (11:08 -0700)]
mds: fix up root/base inode special cases
Sage Weil [Wed, 17 Mar 2010 17:45:03 +0000 (10:45 -0700)]
todo: more kclient bugs
Sage Weil [Tue, 16 Mar 2010 22:48:35 +0000 (15:48 -0700)]
qa: runallonce.sh each workunit in a clean directory
Sage Weil [Tue, 16 Mar 2010 17:53:45 +0000 (10:53 -0700)]
filestore: fix CLONE_RANGE detection
Sage Weil [Tue, 16 Mar 2010 21:36:04 +0000 (14:36 -0700)]
todo kclient osd_client bug
Sage Weil [Tue, 16 Mar 2010 21:28:05 +0000 (14:28 -0700)]
mds: fix SimpleLock::try_clear_more()
We were dropping gather state on the floor, which resulted in
general confusion and errors like this
10.03.16 14:17:17.622280 mds0.locker handle_simple_lock lock(a=lockack dn
1000000019c /NEWS1_1B.PRN snap head) on (dn xlock x=1 by 0x307c050) [dentry #1/clients/client2/~dmtmp/WORDPRO/NEWS1_1B.PRN [2,head] auth{1=1} (dn xlock x=1 by 0x307c050) v=90 inode=0x7f2fe90a7980 | nref=5 0x7f2fe0349b80]
mds/Locker.cc: In function 'void Locker::handle_simple_lock(SimpleLock*, MLock*)':
mds/Locker.cc:2424: FAILED assert(lock->get_state() == 7 || lock->get_state() == 12)
1: (Locker::handle_simple_lock(SimpleLock*, MLock*)+0x374) [0x8607bc]
2: (Locker::handle_lock(MLock*)+0x18b) [0x861b91]
3: (Locker::dispatch(Message*)+0x41) [0x86470b]
4: (MDS::_dispatch(Message*)+0x1b42) [0x72ce68]
5: (MDS::ms_dispatch(Message*)+0x2f) [0x72e1e9]
6: (Messenger::ms_deliver_dispatch(Message*)+0x55) [0x72086b]
7: (SimpleMessenger::dispatch_entry()+0x4f4) [0x70d50e]
8: (SimpleMessenger::DispatchThread::entry()+0x29) [0x7095bd]
9: (Thread::_entry_func(void*)+0x20) [0x71a9e1]
10: /lib/libpthread.so.0 [0x7f2fe8d6573a]
11: (clone()+0x6d) [0x7f2fe7f906dd]
NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
Sage Weil [Tue, 16 Mar 2010 20:58:03 +0000 (13:58 -0700)]
mds: fix add_replica_dir to use is_base() helper for adjusting subtree auth
Sage Weil [Tue, 16 Mar 2010 19:51:58 +0000 (12:51 -0700)]
mds: fix SimpleLock state encode/decode
This was broken when we changed the size of SimpleLock::state
to __u16.
Sage Weil [Tue, 16 Mar 2010 19:39:17 +0000 (12:39 -0700)]
Merge branch 'unstable' into mds
Sage Weil [Tue, 16 Mar 2010 19:35:28 +0000 (12:35 -0700)]
mds: remove unlinked metadata after replay
We can get unlink metadata after replay:
create some auth metadata (possibly a whole tree)
export to another mds
other mds deletes it
reimport tree, original link to root is broken by EImportStart
-> entire tree is unlinked
Find any unlinked metadata (that's not a base inode) and remove
it (recursively) after journal replay.
Sage Weil [Tue, 16 Mar 2010 19:14:22 +0000 (12:14 -0700)]
mds: do not add null dentry to frozen dir
Otherwise we get confused when we unfreeze:
mds/mdstypes.h:1193: FAILED assert(ref_set.count(by) > 0)
1: (MDSCacheObject::bad_put(int)+0x3e) [0x79acfc]
2: (MDSCacheObject::put(int)+0x5a) [0x79e332]
3: (CDentry::finish_export()+0x52) [0x8874ba]
4: (Migrator::finish_export_dir(CDir*, std::list<Context*, std::allocator<Context*> >&, utime_t)+0x1a4) [0x8751fc]
5: (Migrator::finish_export_dir(CDir*, std::list<Context*, std::allocator<Context*> >&, utime_t)+0x243) [0x87529b]
Sage Weil [Tue, 16 Mar 2010 18:41:50 +0000 (11:41 -0700)]
mon: declare class MonCaps in PaxosServiceMessage
Sage Weil [Tue, 16 Mar 2010 17:11:21 +0000 (10:11 -0700)]
osd: do no index reqid for CLONE ops (or BACKLOG ops)
We don't want to index the Log::Entry reqid for CLONE ops because
each CLONE is followed by a real op with the same reqid.. that's
the one that should get indexed. Introduce a helper to keep
the logic consistent.
Sage Weil [Tue, 16 Mar 2010 18:37:57 +0000 (11:37 -0700)]
ceph: drop (broken) poll mode (use -w instead)
It wasn't working anyway.
Sage Weil [Tue, 16 Mar 2010 18:37:40 +0000 (11:37 -0700)]
ceph: add -s|--status command
Print one-shot summary of each paxos service.
Greg Farnum [Tue, 16 Mar 2010 18:16:44 +0000 (11:16 -0700)]
Revert "mon: PaxosServiceMessages now routed through paxos_dispatch and get caps set"
This reverts commit
0c688f94bef805ce6c6a777885406e3e43b90b65 .
Revert "mon: Use PaxosServiceMessage::caps instead of Session::caps where applicable"
This reverts commit
e33e17ec2f8994527d23fbc6bd1d064e90c7fce8 .
This needs to be reworked slightly to handle inter-mon communication better.
Greg Farnum [Tue, 16 Mar 2010 18:09:50 +0000 (11:09 -0700)]
mon: handle_route uses lazy_send_message for unknown MRoutes
Greg Farnum [Tue, 16 Mar 2010 16:34:19 +0000 (09:34 -0700)]
mon: add encode/decode functions to MonCaps
Sage Weil [Tue, 16 Mar 2010 18:10:58 +0000 (11:10 -0700)]
mds: adjust rdlock forwarding on replicas
Include LOCK, MIX, and associated gather states. An EXCL on the
auth (which is not temporary) is a LOCK on the replica, so fw.
(Otherwise we'd need another state.) MIX should fw too, since
it is also stable and the replcia can't rdlock.
Include leading states because rdlock waits for WAIT_RD, not
stable.
Sage Weil [Tue, 16 Mar 2010 16:54:36 +0000 (09:54 -0700)]
mds: send resolve to resolve_set
Not RESOLVE|REJOIN|CLIENTREPLAY|ACTIVE|STOPPING, according to
the current MDSMap.
Fixes problem where the resolve_set is empty, but we send
resolves out, and got != needed because got is a superset.
Sage Weil [Fri, 12 Mar 2010 00:52:44 +0000 (16:52 -0800)]
mds: fix replica dentry linkage updates
Previously we have a broken hack that would drop a replicated
null dentry if it got new linkage. We already get an explicit
message if it was unlinked, that unlinks it cleanly. Do the
same for links, and replicate the newly linked inode as
needed. This is much cleaner and more correct.
Specifically, this fixes a problem where a create (link) and
unlink are pipelined by the same client under the same xlock,
so that the previous hack (in the handle_lock handler) never
triggers because the lock state doesn't toggle between the link
and unlink.
send_dentry_link sends current, not projected, linkage
Sage Weil [Tue, 16 Mar 2010 05:13:05 +0000 (22:13 -0700)]
osd: only insert non-zero intervals into interval_set
Sage Weil [Tue, 16 Mar 2010 05:00:58 +0000 (22:00 -0700)]
qa: fix snaptest1.sh
Sage Weil [Tue, 16 Mar 2010 04:56:49 +0000 (21:56 -0700)]
mds: add array bounds check for null dentry lease
Greg Farnum [Tue, 16 Mar 2010 00:02:09 +0000 (17:02 -0700)]
mon: Use PaxosServiceMessage::caps instead of Session::caps where applicable
Greg Farnum [Mon, 15 Mar 2010 23:53:33 +0000 (16:53 -0700)]
mon: PaxosServiceMessages now routed through paxos_dispatch and get caps set
Greg Farnum [Mon, 15 Mar 2010 22:58:52 +0000 (15:58 -0700)]
msg: PaxosServiceMessage includes a MonCap*
Greg Farnum [Mon, 15 Mar 2010 21:45:30 +0000 (14:45 -0700)]
mon: Add a Session operator<<, use it in OSDMonitor
Sage Weil [Mon, 15 Mar 2010 18:01:50 +0000 (11:01 -0700)]
mds: avoid null deref of SimpleLock::_unstable
Sage Weil [Mon, 15 Mar 2010 17:58:57 +0000 (10:58 -0700)]
mds: use CDir::item_new for LogSegment::new_dirfrags elist
Greg Farnum [Mon, 15 Mar 2010 17:37:22 +0000 (10:37 -0700)]
auth: update documentation on caps
Greg Farnum [Mon, 15 Mar 2010 17:03:39 +0000 (10:03 -0700)]
mon: return error codes from prepare_new_pool
Greg Farnum [Fri, 12 Mar 2010 23:45:31 +0000 (15:45 -0800)]
mon: add warning/debugging prints to prepare_new_pool
Sage Weil [Sat, 13 Mar 2010 00:48:32 +0000 (16:48 -0800)]
Merge branch 'mds_mem' into unstable
Sage Weil [Sat, 13 Mar 2010 00:08:36 +0000 (16:08 -0800)]
mds: be consistent about list<>::item naming (item_foo)
Sage Weil [Fri, 12 Mar 2010 23:57:04 +0000 (15:57 -0800)]
dlist: fix pop_front/back
Sage Weil [Fri, 12 Mar 2010 23:28:27 +0000 (15:28 -0800)]
xlist: clean up interface
Sage Weil [Fri, 12 Mar 2010 23:26:15 +0000 (15:26 -0800)]
dlist: clean up interface
Sage Weil [Fri, 12 Mar 2010 23:26:02 +0000 (15:26 -0800)]
mds: use elist instead of dlist
Sage Weil [Fri, 12 Mar 2010 18:13:20 +0000 (10:13 -0800)]
elist: simpler embedded list
This is more or less equivalent to the linux kernel list_head:
each embedded item struct has only a next and prev pointer. As
long as the same member item is always used, at a fixed offset
from the containing class, we can go from an item to a contained
class.
The offset can either be passed to the list (head) constructor,
or to the begin(), front(), back() members explicitly.
Iterator has 3 modes.. current (list_for_each), cache_next
(list_for_each_safe), and magic (uses cached next iff current is
empty). Magic will work most of the time... as long as we don't
re-add ourselves to a different list inside the iterator loop.
(Note that if we do, we will iterator up to the other list's
head, not detect it is a head, an get an invalid pointer and
crash.)
elist: add to makefile
elist: require offset for cosntructor
elist: fix pop_front/back
Greg Farnum [Fri, 12 Mar 2010 22:24:17 +0000 (14:24 -0800)]
rgw: remove unused refcount data member from XMLObj. Also clears up ctor
Greg Farnum [Thu, 11 Mar 2010 22:49:27 +0000 (14:49 -0800)]
rgw: Add documentation
Sage Weil [Fri, 12 Mar 2010 17:09:09 +0000 (09:09 -0800)]
Merge branch 'mds_mem' into unstable
Sage Weil [Fri, 12 Mar 2010 16:40:04 +0000 (08:40 -0800)]
cephx: initialize values
Sage Weil [Thu, 11 Mar 2010 17:40:09 +0000 (09:40 -0800)]
synclient: print mount error
Sage Weil [Fri, 12 Mar 2010 05:43:56 +0000 (21:43 -0800)]
xlist: clean up users
Sage Weil [Fri, 12 Mar 2010 05:43:37 +0000 (21:43 -0800)]
mds: use dlist instead of xlist for main cache objects
Sage Weil [Fri, 12 Mar 2010 05:43:23 +0000 (21:43 -0800)]
dlist: simpler version of xlist without _list pointer
Sage Weil [Fri, 12 Mar 2010 05:11:08 +0000 (21:11 -0800)]
mds: reduce MDSCacheObject footprint a bit
Save 8 bytes. Whoop.
Sage Weil [Fri, 12 Mar 2010 05:07:00 +0000 (21:07 -0800)]
mds: replica_nonce can wrap; fix asserts
Sage Weil [Fri, 12 Mar 2010 04:50:29 +0000 (20:50 -0800)]
mds: put rare state in more_bits_t in ScatterLock
Saves 48 bytes per ScatterLock, 144 bytes per CInode.
Sage Weil [Fri, 12 Mar 2010 04:29:21 +0000 (20:29 -0800)]
mds: show xlist overhead
Sage Weil [Thu, 11 Mar 2010 18:52:32 +0000 (10:52 -0800)]
mds: move unstable SimpleLock state into separate struct
Allocated as needed, freed when lock returns to stable state.
Also make remaining int fields a bit smaller.
Sage Weil [Fri, 12 Mar 2010 05:38:04 +0000 (21:38 -0800)]
debian: specify mirror explicitly when creating pbuilder image
Sage Weil [Fri, 12 Mar 2010 00:07:33 +0000 (16:07 -0800)]
mds: make mds stopping work (with new mdsdir changes)
Sage Weil [Thu, 11 Mar 2010 23:39:55 +0000 (15:39 -0800)]
mds: don't do_cap_update() if not inode auth
I'm surprised this one didn't bite sooner.
Sage Weil [Thu, 11 Mar 2010 23:39:30 +0000 (15:39 -0800)]
mds: detach mdsdir inode from hierarchy
Attaching mdsdir to the root hierarchy means that random mds X
can't push replicas of everything needed for mds Y to reach a
stray item, because Y may not have the /.ceph/mds# dentries and
inode. So detach myin from the hierarchy.
This simplifies startup/mkfs somewhat because non-root mds's
don't have to traverse through /.ceph.
We can still make it reachable via /.ceph/mds# with a remote
dentry (although we haven't done that yet).
MDS stopping is currently broken, since we can't export the stray
dir any more (it's auth mds fixed).
Sage Weil [Thu, 11 Mar 2010 19:44:19 +0000 (11:44 -0800)]
mds: don't assume lock parent is inode in eval_gather
Sage Weil [Thu, 11 Mar 2010 19:36:08 +0000 (11:36 -0800)]
mds: notify replica on XLOCKDONE -> SYNC transition
Sage Weil [Thu, 11 Mar 2010 17:57:36 +0000 (09:57 -0800)]
mds: simplify LocalLock wrlock methods
Sage Weil [Thu, 11 Mar 2010 17:41:30 +0000 (09:41 -0800)]
mds: add locallock statemachine
This is just for consistency; it's trivial. We lost the get_sm()
pointer test, though.
Sage Weil [Thu, 11 Mar 2010 17:40:09 +0000 (09:40 -0800)]
synclient: print mount error
Sage Weil [Thu, 11 Mar 2010 17:30:10 +0000 (09:30 -0800)]
mds: create abstract LockType that includes numeric type and state machine
This eliminates 1 field in each SimpleLock.
Sage Weil [Thu, 11 Mar 2010 17:05:37 +0000 (09:05 -0800)]
debian: build binary-arch debs only from builddebs.sh
Otherwise we rebuild the source .dsc, which isn't what we want.
Sage Weil [Wed, 10 Mar 2010 05:38:43 +0000 (21:38 -0800)]
debian: clean out unused debhelper rules steps
Sage Weil [Wed, 10 Mar 2010 05:38:30 +0000 (21:38 -0800)]
debian: put debian/ in .diff.gz, not release tarball
Sage Weil [Tue, 9 Mar 2010 23:16:54 +0000 (15:16 -0800)]
msgr: remove dead kill_after code bits
Sage Weil [Tue, 9 Mar 2010 23:08:08 +0000 (15:08 -0800)]
todo multi-mds issue
Greg Farnum [Wed, 10 Mar 2010 20:56:37 +0000 (12:56 -0800)]
mon: users can now change pool owners.
This requires them to have write permission on both the current
and the new auid.
Greg Farnum [Wed, 10 Mar 2010 18:20:44 +0000 (10:20 -0800)]
osd: Check auid permissions in get_pool_cap
Greg Farnum [Wed, 10 Mar 2010 00:46:45 +0000 (16:46 -0800)]
mon: use MonCaps::check_privileges in prepare_new_pool
Greg Farnum [Wed, 10 Mar 2010 00:42:29 +0000 (16:42 -0800)]
Revert "mon: add check_privileges function to OSDMon."
Deprecated by the existence of MonCaps::check_privileges
This reverts commit
07df67f3948e50a24365e0936bd0de3c7dc1a1f2 .
Greg Farnum [Wed, 10 Mar 2010 00:38:33 +0000 (16:38 -0800)]
mon: add check_privileges function to MonCaps
Greg Farnum [Wed, 10 Mar 2010 00:02:31 +0000 (16:02 -0800)]
vstart: use 'allow *' notation instead of 'allow rwx'
Greg Farnum [Wed, 10 Mar 2010 00:01:38 +0000 (16:01 -0800)]
osd: accept 'allow *' as an admin flag that sets allow_all
in the OSDCap.
Greg Farnum [Tue, 9 Mar 2010 23:50:08 +0000 (15:50 -0800)]
osd: OSDCaps parses and stores auid permissions
Greg Farnum [Tue, 9 Mar 2010 22:14:22 +0000 (14:14 -0800)]
mon: AuthMonitor doesn't overwrite allow_all bit
on incoming messages, only on initial connect.
Greg Farnum [Tue, 9 Mar 2010 22:13:38 +0000 (14:13 -0800)]
mon: Add basic operator<< to MonCaps
Greg Farnum [Tue, 9 Mar 2010 22:12:45 +0000 (14:12 -0800)]
mon: Accept 'allow *' as an admin flag that sets allow_all
in MonCaps.
Greg Farnum [Tue, 9 Mar 2010 22:09:36 +0000 (14:09 -0800)]
mon: MonCaps parses and stores auid permissions
Also, rename MonServiceCap -> MonCap
Sage Weil [Tue, 9 Mar 2010 23:02:30 +0000 (15:02 -0800)]
thread: mask all signals on child threads
Mask all signals on any threads we create. Since we don't use
signals for anything, this leaves the signal behavior to the
original parent thread or process linking in librados or
libceph.
Sage Weil [Tue, 9 Mar 2010 22:51:05 +0000 (14:51 -0800)]
timer: kill unused g_timer
Sage Weil [Tue, 9 Mar 2010 22:05:52 +0000 (14:05 -0800)]
mds: create mds.$id debug log symlink
...in addition to the current mds$num