]>
git.apps.os.sepia.ceph.com Git - ceph.git/log
Sage Weil [Tue, 14 Jul 2009 17:35:03 +0000 (10:35 -0700)]
msgr: fix race with signals vs select with pselect
Fixes hang where accepter thread misses the stop signal and
doesn't shut down.
Sage Weil [Mon, 13 Jul 2009 22:24:22 +0000 (15:24 -0700)]
mkcephfs: chown/chmod mount point if non-root
Sage Weil [Tue, 14 Jul 2009 00:44:28 +0000 (17:44 -0700)]
mds: reconnect caps added via replay+issue_new_caps
Also, set up the initial lock states after reconnecting them!
Sage Weil [Mon, 13 Jul 2009 20:21:37 +0000 (13:21 -0700)]
mds: check client ranges on mds restart
Sage Weil [Mon, 13 Jul 2009 20:18:40 +0000 (13:18 -0700)]
mds: adjust client range on open existing for write
Sage Weil [Mon, 13 Jul 2009 20:13:37 +0000 (13:13 -0700)]
mds: journal recovered mtime; cleanup
Also avoid using in->inode as that may fail with concurrent updates
(if that's even possible?).
Sage Weil [Mon, 13 Jul 2009 19:54:30 +0000 (12:54 -0700)]
mds: do not check_inode_max_size in eval() path
This is super dangerous, since we may journal something in the
middle of preparing another journal entry. (This is notably a
problem with calls to issue_new_caps).
Kill fugly NO_SIZE_CHECK flag too, yay.
Sage Weil [Mon, 13 Jul 2009 19:46:39 +0000 (12:46 -0700)]
mds: set client_range on open O_TRUNC
Set client_ranges explicitly. Move get_layout_size_inc into
inode_t.
Sage Weil [Mon, 13 Jul 2009 18:31:31 +0000 (11:31 -0700)]
mds: base client_ranges update on issued|wanted, not just issued
Sage Weil [Mon, 13 Jul 2009 18:25:08 +0000 (11:25 -0700)]
mds: use SCAN state for file recovery on mds restart
This ensures we revoke other caps before scanning for file
sizes.
Sage Weil [Mon, 13 Jul 2009 17:39:25 +0000 (10:39 -0700)]
Makefile: fix whitespace
Sage Weil [Fri, 10 Jul 2009 17:43:48 +0000 (10:43 -0700)]
initscript: fix 'reload'
Sage Weil [Fri, 10 Jul 2009 17:43:38 +0000 (10:43 -0700)]
initscripts: do what we can to run as user specified in the conf
Sage Weil [Mon, 13 Jul 2009 17:30:43 +0000 (10:30 -0700)]
initscripts: substitute in proper autoconf paths
Based on
http://www.gnu.org/software/hello/manual/autoconf/Installation-Directory-Variables.html
Sage Weil [Fri, 10 Jul 2009 22:32:10 +0000 (15:32 -0700)]
mds todos
Sage Weil [Fri, 10 Jul 2009 22:31:17 +0000 (15:31 -0700)]
kclient: simplify/fix cap delay timeouts
Do NOT reset timeouts at the top of ceph_check_caps.. that's just
wrong, and screws up cap release logic.
Reset timeouts when we requeue the cap, since that's what all the
callers do.
Sage Weil [Fri, 10 Jul 2009 22:14:48 +0000 (15:14 -0700)]
mds: on restart, only recover files affected by missing clients
Sage Weil [Fri, 10 Jul 2009 21:59:12 +0000 (14:59 -0700)]
mds: maintain per-client write ranges instead of single max_size
We need to track individual clients' ability to write to a file in
order to behave rationally when a client dies or fails to reconnect
after an mds restart.
There is also a behavior change hiding in here: before we were
adjusting max_size based on _wanted_ caps, but that was unsafe,
since a client may have the old max_size value and initiate a write
after informing the mds it no longer wants said caps. There will
undoubtably be some fallout from that change...
Also clean up instances of memset() on inode_t and friends. Define
and use constructors instead.
Sage Weil [Fri, 10 Jul 2009 21:45:46 +0000 (14:45 -0700)]
uclient: fix getdir() to use new readdir_r return value
Sage Weil [Fri, 10 Jul 2009 19:44:38 +0000 (12:44 -0700)]
uclient: stop using mds inode_t
Sage Weil [Fri, 10 Jul 2009 19:25:53 +0000 (12:25 -0700)]
mds: add SCAN, PRE_SCAN lock states
Also clean up state machine array sizes
Sage Weil [Fri, 10 Jul 2009 17:10:50 +0000 (10:10 -0700)]
osd: less hexdump on tmap updates
Yehuda Sadeh [Fri, 10 Jul 2009 20:17:48 +0000 (13:17 -0700)]
objecter: fix pool objects listing
Sage Weil [Thu, 9 Jul 2009 23:44:09 +0000 (16:44 -0700)]
kclient: fix uninitialized vars
Sage Weil [Thu, 9 Jul 2009 23:34:54 +0000 (16:34 -0700)]
todo
Sage Weil [Thu, 18 Jun 2009 22:01:57 +0000 (15:01 -0700)]
Revert "kclient: strip out kernel version compatibility cruft"
This reverts commit
ac1cf5dc7343953462aa27dc3526dd5ccec9cb53 .
Sage Weil [Thu, 9 Jul 2009 23:29:36 +0000 (16:29 -0700)]
Merge branch 'master' of ssh://ceph.newdream.net/git/ceph
Sage Weil [Thu, 9 Jul 2009 23:28:18 +0000 (16:28 -0700)]
s3gw: make compilation optional (./configure --with-s3gw)
Sage Weil [Thu, 9 Jul 2009 22:50:29 +0000 (15:50 -0700)]
uclient: include tid in cap flush, flushsnap
Sage Weil [Thu, 9 Jul 2009 22:41:23 +0000 (15:41 -0700)]
kclient: include tid in cap flush, flushsnap
This avoids (dirty 1, flush 1, dirty 2, flush 2, flush_ack 1 ->
mark clean) badness.
Sage Weil [Thu, 9 Jul 2009 22:35:22 +0000 (15:35 -0700)]
mds: add tid to cap flush/flushsnap ops
And include in the ACK.
Sage Weil [Thu, 9 Jul 2009 22:11:52 +0000 (15:11 -0700)]
kclient: assign seq to cap flush; avoid starvation on sync_fs
Assign a seq# to each cap flush. When we sync_fs, wait only for
prior cap flushes to complete.
Also, fix wait_unsafe_requests.
Sage Weil [Thu, 9 Jul 2009 21:35:09 +0000 (14:35 -0700)]
kclient: debug output cleanup
Sage Weil [Thu, 9 Jul 2009 21:32:05 +0000 (14:32 -0700)]
uclient: assign sequence to cap flushes, avoiding sync_fs starvation
Order flushes, so we can wait for them without possibility of
starvation.
Sage Weil [Thu, 9 Jul 2009 20:51:36 +0000 (13:51 -0700)]
kclient: fix write_inode; force dirty cap flush by mdsc_sync
Adding flag to ceph_check_flags to flush any dirty data. Pass
through from mdsc_sync.
Also, flush if i_ceph_flags & CEPH_I_FLUSH to avoid letting
write_inode calls similarly leak through.
Greg Farnum [Thu, 9 Jul 2009 21:06:43 +0000 (14:06 -0700)]
Merged Makefile.am
Greg Farnum [Thu, 9 Jul 2009 21:04:06 +0000 (14:04 -0700)]
libceph: SimpleMessenger usage bugfix, added testceph.cc, fixed dependencies
Sage Weil [Thu, 9 Jul 2009 19:00:17 +0000 (12:00 -0700)]
kclient: make sync_fs wait on unsafe mds requests
Sage Weil [Thu, 9 Jul 2009 18:54:22 +0000 (11:54 -0700)]
libceph: add dependencies to the Makefile
Greg Farnum [Thu, 9 Jul 2009 18:40:24 +0000 (11:40 -0700)]
libceph: Added getdir to the C++ interface.
Used by hypertable
Greg Farnum [Thu, 9 Jul 2009 18:16:21 +0000 (11:16 -0700)]
Hypertable:Completed initial Cephbroker. Requires testing.
Greg Farnum [Wed, 8 Jul 2009 19:00:38 +0000 (12:00 -0700)]
hypertable: added skeleton .h and .cc CephBroker
These are meant to be built in Hypertable, obviously.
Sage Weil [Thu, 9 Jul 2009 18:17:39 +0000 (11:17 -0700)]
uclient: resend cap flushes on mds restart
Fuse doesn't implement sync_fs, so this is difficult to test. :/
Sage Weil [Thu, 9 Jul 2009 17:29:05 +0000 (10:29 -0700)]
uclient: change readdir_r return value
1 on success (got a dirent), 0 on end of dir, <0 on error. This
isn't exactly posix, but is a little less silly.
Sage Weil [Thu, 9 Jul 2009 16:11:57 +0000 (09:11 -0700)]
mds: make clientreplay go faster
Queue up next op as soon as we submit the journal entry. That maintains
ordering while avoiding any waiting for the journal to flush.
Sage Weil [Wed, 8 Jul 2009 23:31:58 +0000 (16:31 -0700)]
uclient: track issue_seq; reset on reconnect
Sage Weil [Wed, 8 Jul 2009 23:31:39 +0000 (16:31 -0700)]
kclient: reset issue_seq on reconnect
Sage Weil [Wed, 8 Jul 2009 23:31:25 +0000 (16:31 -0700)]
mds: ignore cap updates in replayed ops
We already have the caps they think they have; these releases are
obsolete.
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.