Commit Graph

10256 Commits

Author SHA1 Message Date
Sage Weil
7c0df05407 mds: do not reset filelock state when checking max_size during recovery
This was broken by d5574993 (probably, that commit fixed a similar
problem).  The rejoin_ack initializes replica state properly, so we can't
go changing it now.  I'm not sure why this was resetting the state to
LOCK, because that's clearly not allowed.

Print when check_max_size does a no-op so that this is a bit easier to see
next time.
2010-06-02 22:14:54 -07:00
Sage Weil
15c6651ff5 mds: lock->sync replica state is lock, not sync
It's not readable yet.  And after the lock->sync gather completes we send
out a SYNC.

Fixes failed assertion like:

10.06.02_21:27:04.444202 7f17a25ac910 mds1.locker handle_file_lock a=sync on (ifile sync) from mds0 [inode 1 [...2,head] / rep@0.2 v7 snaprealm=0xe27400 f(v0 m10.06.02_21:26:13.366344 1=0+1) ds=1=0+1 rb=0 rf=0 rd=0 (iauth sync) (ilink sync) (idft sync) (isnap sync) (inest sync) (ifile sync) (ixattr sync) (iversion lock) | nref=1 0x7f179c006280]
mds/Locker.cc: In function 'void Locker::handle_file_lock(ScatterLock*, MLock*)':
mds/Locker.cc:3468: FAILED assert(lock->get_state() == 2 || lock->get_state() == 15 || lock->get_state() == 21)
 1: (Locker::handle_file_lock(ScatterLock*, MLock*)+0x1d8) [0x86d70a]
 2: (Locker::handle_lock(MLock*)+0x191) [0x86e30f]
 3: (Locker::dispatch(Message*)+0x41) [0x870f27]
 4: (MDS::_dispatch(Message*)+0x1a17) [0x7364cb]
 5: (MDS::ms_dispatch(Message*)+0x2f) [0x737961]
 6: (Messenger::ms_deliver_dispatch(Message*)+0x55) [0x72918d]
 7: (SimpleMessenger::dispatch_entry()+0x532) [0x71710a]
 8: (SimpleMessenger::DispatchThread::entry()+0x29) [0x711f25]
 9: (Thread::_entry_func(void*)+0x20) [0x7232f4]
 10: /lib/libpthread.so.0 [0x7f17a407073a]
 11: (clone()+0x6d) [0x7f17a329469d]

Signed-off-by: Sage Weil <sage@newdream.net>
2010-06-02 21:33:40 -07:00
Sage Weil
1c930f9b38 msg: add missing msg_types.cc 2010-06-02 19:37:44 -07:00
Sage Weil
5262a96a07 mds: add export_dir command 2010-06-02 12:40:23 -07:00
Sage Weil
4075b95c5c mds: add MDCache::cache_traverse() 2010-06-02 12:40:15 -07:00
Sage Weil
eac36cb5b3 initscript: unmount btrfs if we mounted it 2010-06-02 11:50:29 -07:00
Sage Weil
0d1e5dbf4c move addr parse() into entity_addr_t 2010-06-02 11:50:29 -07:00
Sage Weil
a3323c98d6 tcp: parse ipv4 and ipv6 addresses 2010-06-02 11:50:29 -07:00
Greg Farnum
08afc8df68 mon: fix unsynchronized clock logic;
change output for clarity
2010-06-02 11:34:40 -07:00
Sage Weil
b441fbdc9f mds: lookup exact snap dn on import 2010-06-01 16:34:16 -07:00
Sage Weil
38cb2403c0 mds: update dn->first too when lock state adjusts inode->first
This keeps dn->first in sync with inode->first
2010-06-01 16:33:53 -07:00
Sage Weil
9248cd9e64 mds: don't change lock states on replicated inode
The reconnect will infer some client caps, which will affect what lock
states we want.  If we're not replicated, fine, just pick something good.
Otherwise, try_eval() and go through the proper channels.

This _might_ be the source of #165...
2010-06-01 15:23:46 -07:00
Sage Weil
afadb12245 mds: fix root null deref in recalc_auth_bits
Root may be null if we don't have any subtrees besides ~mds$id.
2010-06-01 15:02:56 -07:00
Sage Weil
364f3cb061 mds: adjust subtree map when unlinking dirs
Otherwise we get subtree bounds in the stray dir and get confused down
the line.
2010-06-01 14:14:23 -07:00
Sage Weil
c4bbb0008b mds: discover snapped paths on retried ops
This is intended to mitigate a livelock issue with traversing to snapped
metadata.  The client specifies all snap requests relative to a non-snap
inode.  The traversal through the snapped portion of the namespace will
normally happen on the auth node, but the actual target may be on another
node that does not have that portion of the namespace.  To avoid indefinite
request ping-pong, the mds will begin to discover and replicate the snapped
path components if the request has been retried.

This doesn't perform optimally, but it will at least work.
2010-06-01 12:57:23 -07:00
Greg Farnum
464e46c81d mon: add wiggle room for clock synchronization check 2010-06-01 11:39:58 -07:00
Greg Farnum
7f8a743c29 mds: add case for CEPH_LOCK_DVERSION to LockType 2010-06-01 10:30:05 -07:00
Greg Farnum
00c3dafd5a xlist: add assert to catch invalid iterator usage 2010-05-29 18:36:05 -07:00
Greg Farnum
79b3962545 ObjectCacher: do not try to deref an invalidated xlist::iterator
Fixes #159
2010-05-29 11:06:15 -07:00
Sage Weil
83094d97a5 paxos: fix store_state fix 2010-05-28 13:21:19 -07:00
Sage Weil
62e290e87f msgr: print bind errors to stderr 2010-05-28 12:59:25 -07:00
Sage Weil
3a705ded1e paxos: cleanup 2010-05-28 12:50:37 -07:00
Sage Weil
3c3e82e0f5 paxos: only store committed values in store_state
The uncommitted value is handled specially by handle_last()
2010-05-28 12:48:41 -07:00
Sage Weil
187011cdbc initscript: fix typo with $lockfile stuff 2010-05-28 12:41:41 -07:00
Sage Weil
6b72d70be4 paxos: set last_committed in share_state()
It wasn't getting set for LAST message, which broke recovery somewhat.

Broken by 8e76c5a1d827e01f77149245679bd00ba27120e0.
2010-05-28 12:37:24 -07:00
Sage Weil
4b79774563 mds: fix null dn deref during anchor_prepare 2010-05-27 16:32:43 -07:00
Sage Weil
892a0e25cc config: parse in $host from conf file
So you can do stuff like
	log dir = /data/$host
2010-05-27 14:59:27 -07:00
Sage Weil
594d45687f osdmaptool: include raw, up, acting mappings 2010-05-27 14:59:27 -07:00
Sage Weil
0a1d526bd3 osdmap: assert maxrep >= minrep 2010-05-27 14:59:27 -07:00
Sage Weil
a1a1350237 mkcephfs: pass -c to cmon --mkfs 2010-05-27 14:59:27 -07:00
Sage Weil
330e1e21e6 osd: warn, don't crash, on purged_snaps shrinkage 2010-05-27 14:59:27 -07:00
Sage Weil
d2c40055c4 initscript: incorporate Josef's fedora fixes
Add 'status' command.
Add chkconfig line.
Do lockfile stuff only if /var/run/subsys exists.

Still specifying the runlevels, though.  The init script bails out (with
success code) if the ceph.conf is missing.
2010-05-27 14:58:56 -07:00
Sage Weil
08f69663e8 ceph.spec: build-required libatomic_ops-devel, not libatomic_ops
And no perl-devel.
2010-05-27 14:24:37 -07:00
Sage Weil
a3dc4bdac2 sample.ceph.conf: include debug options, commented out 2010-05-26 21:47:35 -07:00
Greg Farnum
05256bb030 rados: you can now set the crush rule to use when creating a pool 2010-05-26 16:58:38 -07:00
Greg Farnum
8044f7ac7e librados: add crush_rule parameter to create_pool functions 2010-05-26 16:58:38 -07:00
Greg Farnum
a9e1727172 objecter: add optional crush_rule parameter; set in pool_op_submit as needed 2010-05-26 16:58:38 -07:00
Greg Farnum
78375cfde9 mon: add crush_rule data member to MPoolOp; use it in new pool creation on mon 2010-05-26 16:58:38 -07:00
Sage Weil
648ce97628 mds: LAYZIO is not liked, but it is allowed 2010-05-26 14:47:49 -07:00
Sage Weil
297d3ecd45 client: update ioctl.h (lazyio, invalidate_range) 2010-05-26 14:47:49 -07:00
Sage Weil
a13b5b1c16 mds: include LAYZIO cap in sync->mix and mix->sync transitions 2010-05-26 14:47:49 -07:00
Sage Weil
a92df208ff mds: include LAZYIO in CEPH_CAP_ANY set 2010-05-26 14:47:49 -07:00
Greg Farnum
75de272367 mon: warn to log, not just dout, on clock drift 2010-05-26 14:35:15 -07:00
Greg Farnum
9b4d25b9b1 mon: detect and warn on clock synchronization problems;
change MMonPaxos::lease_expire to lease_timestamp
2010-05-26 14:35:15 -07:00
Christian Brunner
bee74a1e4c ceph: add conversion to qemu coding style
Hi Yehuda,

I've added a small hack to make push_to_qemu.pl convert tabs to spaces.

Christian
2010-05-26 14:11:25 -07:00
Sage Weil
a1c99811ba paxos: use helper to store committed state; fix master mon catch up using stash
The catch up logic in handle_last didn't handle the stashed state, so we
crashed and burned if it was the master that was behind and caught up.
Use a helper that does the work for handle_commit AND handle_last.
2010-05-26 10:59:21 -07:00
Sage Weil
c0df916a79 cfuse: bail out on mount() errors 2010-05-26 10:01:49 -07:00
Sage Weil
32d34f063e Merge branch 'lazyio' into unstable
Conflicts:
	src/mds/locks.c
2010-05-25 16:40:34 -07:00
Sage Weil
e6b9055f8d interval_set: fix union_of, intersection_of size accounting 2010-05-25 14:44:16 -07:00
Sage Weil
2b9ef64411 init-ceph: use = not == for comparison operator 2010-05-25 13:47:14 -07:00