]>
git.apps.os.sepia.ceph.com Git - ceph.git/log
Sage Weil [Wed, 8 Jul 2009 23:30:41 +0000 (16:30 -0700)]
mds: do not include trace with replayed replies
Sage Weil [Wed, 8 Jul 2009 22:55:03 +0000 (15:55 -0700)]
kclient: track and kick flushing caps per-mds
After an MDS restarts, we need to resend cap flush messages we
were trying to write back. So, track flushing caps per-session,
with a global counter to make ceph_mdsc_sync simple. When the
MDS goes active, re-flush anything that was flushing.
Also change old 'sync' terminology to more descriptive 'flushing'.
Sage Weil [Wed, 8 Jul 2009 22:11:28 +0000 (15:11 -0700)]
mds: adjust all lock states in process_reconnected_caps
The old code only adjusted the filelock, and didn't do it
correctly.
Sage Weil [Wed, 8 Jul 2009 17:47:54 +0000 (10:47 -0700)]
mds: set cap_id on caps reconnected after a delayed load
Sage Weil [Wed, 8 Jul 2009 16:39:35 +0000 (09:39 -0700)]
mds: replay client ops one at a time
Before we were assuming we could queue up all replayed ops and the locking
would ensure they'd occur in the proper order (and in so doing unwind
any dependencies). Not so fast. Instead, do one at a time and queue
the next up as each finishes.
Sage Weil [Wed, 8 Jul 2009 16:23:08 +0000 (09:23 -0700)]
mds: maybe eval instead of eval_gather on file recovery
This fixes an assertion failure, but not the underlying issues with the
current file recovery strategy.
Sage Weil [Wed, 8 Jul 2009 03:11:31 +0000 (20:11 -0700)]
mds: reissue all caps after recovery
This ensures that locks get kicked after recovery. Otherwise we may have
a client who ends up with the caps they had before, waiting for the MDS to
issue say RD and no progress being made.
Sage Weil [Tue, 7 Jul 2009 23:08:22 +0000 (16:08 -0700)]
kclient: make mds map checks more robust
Look at state AND address to reliably determine when an MDS has failed
and restarted. Otherwise we may skip from reconnect to (the next
incarnation's) reconnect and not 'notice'.
Sage Weil [Tue, 7 Jul 2009 23:07:27 +0000 (16:07 -0700)]
kclient: clean out caps that don't reconnect
We still need some additional work to turn these into EBADF.
Sage Weil [Tue, 7 Jul 2009 22:13:18 +0000 (15:13 -0700)]
kclient: request _next_ mdsmap epoch
We were off by.
Sage Weil [Tue, 7 Jul 2009 22:12:53 +0000 (15:12 -0700)]
kclient: send mds reconnect regardless of who we get the mdsmap from
Sure, the MDS will always send it to us, but if we've already seen it,
we'll ignore the message. Make the reconnect check more robust.
Sage Weil [Tue, 7 Jul 2009 16:51:27 +0000 (09:51 -0700)]
kclient: don't skip most recent mds op
We were skipping the most recent. last_tid is the last tid we used.
Sage Weil [Tue, 7 Jul 2009 04:51:13 +0000 (21:51 -0700)]
mds: add reconnected caps whose paths are loaded
We weren't calling in->reconnect_cap. Do so via rejoin_import_cap(),
even tho the naming is a bit weird.
Greg Farnum [Tue, 7 Jul 2009 19:01:27 +0000 (12:01 -0700)]
libceph: Split into .h and .cc files
And now builds as a library, if I did it right.
Greg Farnum [Tue, 7 Jul 2009 17:16:30 +0000 (10:16 -0700)]
libceph: Now exists! client/libceph.h.
The automake magic may not be done though.
Greg Farnum [Tue, 7 Jul 2009 17:00:54 +0000 (10:00 -0700)]
mon:Initialize rank to NULL to avoid warning.
Sage Weil [Mon, 6 Jul 2009 19:08:35 +0000 (12:08 -0700)]
osd: no need for RMW flags in op reply
In particular, they may not have even been calculated when we reply to
the message.
Sage Weil [Mon, 6 Jul 2009 17:07:41 +0000 (10:07 -0700)]
filer: remove bad memset
OSDOp has a proper constructor. Also remove unnecessary
bufferlist instances.
Sage Weil [Mon, 6 Jul 2009 17:03:27 +0000 (10:03 -0700)]
msg: allow multiple dispatchers to chain together
Sage Weil [Mon, 6 Jul 2009 17:03:12 +0000 (10:03 -0700)]
mds: alloc cleanup, log recoverable journal errors
Sage Weil [Mon, 6 Jul 2009 16:18:50 +0000 (09:18 -0700)]
mds: fix session close ino release journaling
Sage Weil [Thu, 2 Jul 2009 22:09:16 +0000 (15:09 -0700)]
uclient: make_request returns int, not MClientReply
Simplifies callers.
Sage Weil [Thu, 2 Jul 2009 21:53:14 +0000 (14:53 -0700)]
uclient: insert_trace in reply handler
This will avoid the ugly kickback crap.
Also, after mds reconnect, we may get a safe reply (after we already
got an unsafe from the previous mds) that includes the new cap.
Sage Weil [Thu, 2 Jul 2009 21:31:52 +0000 (14:31 -0700)]
uclient: fix make_long_path, and thus reconnect
Sage Weil [Thu, 2 Jul 2009 21:15:20 +0000 (14:15 -0700)]
uclient: fix op replay
Clear msg payload so it gets reencoded with adjusted values.
Greg Farnum [Wed, 1 Jul 2009 22:59:53 +0000 (15:59 -0700)]
uclient: Cleaned up resend_unsafe_requests; handle_client_reply; debugging.
Sage Weil [Thu, 2 Jul 2009 17:21:51 +0000 (10:21 -0700)]
mds: drop loner on gather before doing waiters
Otherwise we would reissue/use caps on loner in non-loner states, and go
back.
Sage Weil [Thu, 2 Jul 2009 00:04:11 +0000 (17:04 -0700)]
uclient: fix order of session cap removal
Remove caps and kick reqeusts before erasing session.
Sage Weil [Thu, 2 Jul 2009 00:03:23 +0000 (17:03 -0700)]
mds: refcount MDRequest so that timed out client sessions behave
We need to ref count MDRequest so that it will remain valid over the
(possibly extended) lifetime C_RetryRequest.
Give ownership of {client,slave}_request to MDRequest so that cleanup
is consistent.
Sage Weil [Wed, 1 Jul 2009 23:46:36 +0000 (16:46 -0700)]
uclient: use session->caps list an lru
Touch caps on use, via bool caps_issued_mask(mask)
Sage Weil [Wed, 1 Jul 2009 20:50:54 +0000 (13:50 -0700)]
osd: change log terminology: bottom..top -> tail..head
Hopefully less confusing.
Sage Weil [Wed, 1 Jul 2009 22:43:46 +0000 (15:43 -0700)]
uclient: fix kickback, reply handler logic
We kickback cond test used to look at the request map, but since the
reply handler removes that, it was never true. Instead, clear the
dispatch_cond pointer.
Also fix up the reply handler logic. Any reply implies unsafe. If it
is the first, signal the calling thread.
Sage Weil [Wed, 1 Jul 2009 22:25:27 +0000 (15:25 -0700)]
uclient: fix MMDSGetMap 'have' epoch
This broke with the monitor changes last week.
Sage Weil [Wed, 1 Jul 2009 22:21:33 +0000 (15:21 -0700)]
Merge commit 'gregskinny/unstable' into unstable
Conflicts:
src/client/Client.cc
Greg Farnum [Wed, 1 Jul 2009 21:46:12 +0000 (14:46 -0700)]
DON'T USE, BROKEN. uclient's MetaRequest extra ref counts removed.
Greg Farnum [Wed, 1 Jul 2009 19:02:42 +0000 (12:02 -0700)]
BROKEN, DON'T USE.
uclient changes that somehow broke message delivery without changing anything in that process
Sage Weil [Wed, 1 Jul 2009 18:43:10 +0000 (11:43 -0700)]
mon: better warning with injectargs on non-up mds
Sage Weil [Wed, 1 Jul 2009 18:41:38 +0000 (11:41 -0700)]
osd: make write mode per-PG
We can't do it per-object because the access mode determines the order
we append to the log, and that has to be sequential. It has to be per-PG,
unless a whole ton of other stuff is reworked.
This lets us capture the best access mode at least on a per-pool basis,
instead of imposing a global default.
Sage Weil [Wed, 1 Jul 2009 18:39:59 +0000 (11:39 -0700)]
uclient: support mds recall_state
Trim old caps. Still need to make it an LRU.
Sage Weil [Wed, 1 Jul 2009 18:20:37 +0000 (11:20 -0700)]
uclient: remove debug print
Greg Farnum [Wed, 1 Jul 2009 15:10:12 +0000 (08:10 -0700)]
uclient: DOESN'T WORK, but more ref counting stuff. Now attempts to resend unsafe ops on a reconnect.
Greg Farnum [Tue, 30 Jun 2009 17:01:45 +0000 (10:01 -0700)]
uclient: MetaRequests go on the heap and are ref-counted; safe/unsafe replies dealt with better.
Sage Weil [Tue, 30 Jun 2009 20:30:58 +0000 (13:30 -0700)]
kclient: checkpatch fixes
Sage Weil [Tue, 30 Jun 2009 20:26:30 +0000 (13:26 -0700)]
kclient: use list_for_each_entry macro when possible
Sage Weil [Tue, 30 Jun 2009 21:20:13 +0000 (14:20 -0700)]
osd: fix hb down check
Sage Weil [Tue, 30 Jun 2009 20:10:49 +0000 (13:10 -0700)]
osd: fix failure report on already-down osd
We were potentially sending an osd failure on an osd that was already
down. Double check before doing so.
Sage Weil [Tue, 30 Jun 2009 20:10:07 +0000 (13:10 -0700)]
osd: fix log msg after var name changes
Sage Weil [Fri, 26 Jun 2009 23:50:00 +0000 (16:50 -0700)]
mds: don't choke on path_traverse_to_dir that fully exists
Sage Weil [Fri, 26 Jun 2009 23:47:56 +0000 (16:47 -0700)]
osd: nicer scrub ok message
Sage Weil [Fri, 26 Jun 2009 23:47:44 +0000 (16:47 -0700)]
osd: rearrange make_writeable prints
Sage Weil [Fri, 26 Jun 2009 23:45:03 +0000 (16:45 -0700)]
osd: fix pg log trimming
We were zeroing out too much of the pg log!
Sage Weil [Tue, 30 Jun 2009 19:16:54 +0000 (12:16 -0700)]
initscripts: fix do_root_cmd
sudo bash -c "echo foo" works, sudo "echo foo" does not.
Sage Weil [Fri, 26 Jun 2009 22:32:29 +0000 (15:32 -0700)]
msgs: clean up v in message prints
Greg Farnum [Fri, 26 Jun 2009 23:28:32 +0000 (16:28 -0700)]
uclient: Kick requests and renew caps on stale.
Sage Weil [Fri, 26 Jun 2009 22:25:28 +0000 (15:25 -0700)]
uclient: fix bad merge
Sage Weil [Fri, 26 Jun 2009 22:08:31 +0000 (15:08 -0700)]
monc: debug option
Sage Weil [Fri, 26 Jun 2009 21:26:53 +0000 (14:26 -0700)]
osd: switch to MonClient, fix cmds and ceph
Sage Weil [Fri, 26 Jun 2009 21:12:56 +0000 (14:12 -0700)]
mds, objecter, ceph: use MonClient
Sage Weil [Fri, 26 Jun 2009 20:51:49 +0000 (13:51 -0700)]
monc: create send_mon_message helper
Sage Weil [Fri, 26 Jun 2009 20:49:12 +0000 (13:49 -0700)]
monclient: refactor MonMap into MonClient
Sage Weil [Fri, 26 Jun 2009 19:56:18 +0000 (12:56 -0700)]
uclient todo
Greg Farnum [Fri, 26 Jun 2009 22:05:13 +0000 (15:05 -0700)]
uclient: Now handles STALE state nicely.
Sage Weil [Fri, 26 Jun 2009 18:40:35 +0000 (11:40 -0700)]
uclient: fix cap reconnect
Pass cap_id to the mds. Otherwise all subsequent cap ops will
fail due to the mismatch.
Sage Weil [Fri, 26 Jun 2009 17:13:07 +0000 (10:13 -0700)]
buffer: throw exceptions instead of always asserting.
We still assert when the user is doing something wrong. We throw
asserts for failed memory allocs, and for buffer overruns. I
think that'll align with usage... esp the encoding/decoding.
Sage Weil [Fri, 26 Jun 2009 16:44:37 +0000 (09:44 -0700)]
assert: throw FailedAssertion exception instead of inducing segfault
This will allow callers to catch failed assertions, if they so
choose.
Sage Weil [Fri, 26 Jun 2009 04:26:15 +0000 (21:26 -0700)]
cosd: valgrind off
Sage Weil [Fri, 26 Jun 2009 00:01:20 +0000 (17:01 -0700)]
auth: use string instead of const char* for maps
Sage Weil [Fri, 26 Jun 2009 00:00:10 +0000 (17:00 -0700)]
mds: attach requests to session; cleanup on session close
This is a partial solution.. we also need mdr refcounting
so that any contexts with an mdr* won't do bad things.
Sage Weil [Fri, 26 Jun 2009 04:24:02 +0000 (21:24 -0700)]
osd: fix _scrub head_exists test
Sage Weil [Fri, 26 Jun 2009 04:09:35 +0000 (21:09 -0700)]
uclient: fix test condition
If the dentries item exists, dn must be non-null.
Sage Weil [Fri, 26 Jun 2009 00:49:59 +0000 (17:49 -0700)]
uclient: verify dentries belong to current session
Check against session cap_gen
Greg Farnum [Fri, 26 Jun 2009 00:32:23 +0000 (17:32 -0700)]
Client: put guards around some dentries[foo] accesses without checking for existence.
Sage Weil [Thu, 25 Jun 2009 22:42:37 +0000 (15:42 -0700)]
kclient: typo
Sage Weil [Thu, 25 Jun 2009 22:36:58 +0000 (15:36 -0700)]
paxos: allow wait on newer version
Sage Weil [Thu, 25 Jun 2009 22:36:23 +0000 (15:36 -0700)]
kclient: set have_version in MOSDGetMap
Greg Farnum [Thu, 25 Jun 2009 22:03:17 +0000 (15:03 -0700)]
No more VERSION_T; just 0.
Sage Weil [Thu, 25 Jun 2009 21:58:46 +0000 (14:58 -0700)]
mon: remove old asserts conflicting with new readable semantics
We may now call update_from_paxos while updating OR active.
Greg Farnum [Thu, 25 Jun 2009 21:51:11 +0000 (14:51 -0700)]
messages: Clean up of PaxosServiceMessages, and some fixes for their users.
Greg Farnum [Thu, 25 Jun 2009 19:05:15 +0000 (12:05 -0700)]
messages/MClass[Ack]: Roll back some unification.
version_t last and PaxosServiceMessage::version shouldn't
be the same in these messages. Remove that and add a new
constructor that does set the version (but it's unneeded).
Greg Farnum [Thu, 25 Jun 2009 19:03:56 +0000 (12:03 -0700)]
mon/objecter: The monitors and Objecter now use the version in messages.
Sage Weil [Thu, 25 Jun 2009 21:03:44 +0000 (14:03 -0700)]
initscripts: do mount/mkfs as root, otherwise as any user
We want cosd to run unprivileged if possible.
Sage Weil [Thu, 25 Jun 2009 20:01:16 +0000 (13:01 -0700)]
osd: update primary's notion of peer last_update on activate
We are pushing the peer the log to bring it up to date, so
update our peer_info[peer].last_update to match. Otherwise,
we get confused if we get, say, stray content and peer() is
called later, and we have out of date peer stats.
Sage Weil [Thu, 25 Jun 2009 19:45:35 +0000 (12:45 -0700)]
osd: force RMW ordering globally
We can't mix RMW and DELAYED in the same PG without screwing
up the ordering of writes, the pg log, and so forth.
So force RMW throughout. This won't affect the mds log
appends because the client is constant. It will slow down
concurrent writes to the same object by multiple clients, but
we don't have many (any?) of those yet.
This needs a real solution... :/
Sage Weil [Thu, 25 Jun 2009 19:44:04 +0000 (12:44 -0700)]
osd: fix TMAPUP bug
Trailing bit was put in the wrong place.
Sage Weil [Thu, 25 Jun 2009 17:32:40 +0000 (10:32 -0700)]
osd: fix tmapup
Various problems with decoding and applying an update.
Sage Weil [Thu, 25 Jun 2009 17:22:33 +0000 (10:22 -0700)]
initscripts: allow 'user' option, defaults to current user
Sage Weil [Thu, 25 Jun 2009 17:21:51 +0000 (10:21 -0700)]
mds: fix CDir decoding
Sage Weil [Thu, 25 Jun 2009 04:22:44 +0000 (21:22 -0700)]
mds: rev format (for TMAP changes)
Sage Weil [Thu, 25 Jun 2009 04:16:28 +0000 (21:16 -0700)]
osd: fix head_existed check
ssc isn't always defined, as we pass here for !may_read() too.
Sage Weil [Thu, 25 Jun 2009 04:00:58 +0000 (21:00 -0700)]
Merge branch 'mdsmap' into unstable
Conflicts:
src/mds/CDir.cc
Sage Weil [Thu, 25 Jun 2009 03:57:48 +0000 (20:57 -0700)]
todo
Sage Weil [Thu, 25 Jun 2009 03:48:39 +0000 (20:48 -0700)]
osd: print lost objects
We still need to figure out how to continue...
Sage Weil [Thu, 25 Jun 2009 03:48:21 +0000 (20:48 -0700)]
osd: rebuild missing OI_ATTR from log entry when possible
Sage Weil [Wed, 24 Jun 2009 21:09:57 +0000 (14:09 -0700)]
osd: fix proc_replica_log stop condition
This fixes condition from
4b5572a .
osd/PG.cc: In function 'void PG::activate(ObjectStore::Transaction&, std::map<int, MOSDPGInfo*, std::less<int>, std::allocator<std::pair<const int, MOSDPGInfo*> > >*)':
osd/PG.cc:1401: FAILED assert(log.backlog)
1: ./cosd(_Z18__ceph_assert_failPKcS0_iS0_+0x3a) [0x7a838b]
2: ./cosd(_ZN2PG8activateERN11ObjectStore11TransactionEPSt3mapIiP10MOSDPGInfoSt4lessIiESaISt4pairIKiS5_EEE+0xbe8) [0x71ff88]
3: ./cosd(_ZN2PG4peerERN11ObjectStore11TransactionERSt3mapIiS3_I4pg_tNS_5QueryESt4lessIS4_ESaISt4pairIKS4_S5_EEES6_IiESaIS8_IKiSC_EEEPS3_IiP10MOSDPGInfoSD_SaIS8_ISE_SK_EEE+0xfa0) [0x722852]
4: ./cosd(_ZN3OSD16_process_pg_infoEjiRN2PG4InfoERNS0_3LogERNS0_7MissingEPSt3mapIiP10MOSDPGInfoSt4lessIiESaISt4pairIKiS9_EEERi+0x712) [0x6a7000]
5: ./cosd(_ZN3OSD13handle_pg_logEP9MOSDPGLog+0x126) [0x6a7768]
6: ./cosd(_ZN3OSD9_dispatchEP7Message+0x34a) [0x6abe6c]
7: ./cosd(_ZN3OSD13dispatch_implEP7Message+0x408) [0x6ac9c4]
8: ./cosd(_ZN10Dispatcher8dispatchEP7Message+0x63) [0x61a4af]
9: ./cosd(_ZN9Messenger8dispatchEP7Message+0x56) [0x6298f8]
10: ./cosd(_ZN15SimpleMessenger8Endpoint14dispatch_entryEv+0x5ae) [0x62340a]
11: ./cosd(_ZN15SimpleMessenger8Endpoint14DispatchThread5entryEv+0x19) [0x62fc9d]
12: ./cosd(_ZN6Thread11_entry_funcEPv+0x20) [0x629e48]
13: /lib/libpthread.so.0 [0x7fb482c933f7]
Sage Weil [Thu, 25 Jun 2009 03:49:41 +0000 (20:49 -0700)]
todo
Sage Weil [Thu, 25 Jun 2009 03:49:24 +0000 (20:49 -0700)]
osd: rev ondisk format, protocols
For monitor message changes AND osd snapset changes.
Sage Weil [Thu, 25 Jun 2009 03:43:01 +0000 (20:43 -0700)]
osd: store snapset in _snapdir object if head dne
If the _head doesn't logically exist, we can't keep it around just for
the SnapSet or else an 'ls' will have to stat in order to tell if the
head object logically exists and should be included. That's no good,
so:
- put snapset in SS_ATTR on head if it exists
- otherwise, put it SS_ATTR on a _snapdir object
Sage Weil [Thu, 25 Jun 2009 03:13:45 +0000 (20:13 -0700)]
osd: zero out pg_pool_t in constructor
Most things were getting initialized, but not snap_seq.
Sage Weil [Thu, 25 Jun 2009 03:13:08 +0000 (20:13 -0700)]
mon: set snap epoch for poolsnap removal, too
Sage Weil [Thu, 25 Jun 2009 02:58:19 +0000 (19:58 -0700)]
osd: fix MOSDBoot, MOSDGetMap initialization