Commit Graph

11469 Commits

Author SHA1 Message Date
Sage Weil
dead368d97 Makefile: add cdebugpack.in to EXTRA_DIST 2010-10-12 11:17:45 -07:00
Greg Farnum
b438b3d65b mds: Fix projection in rename code paths.
We aren't actually projecting the inode unless destdn->is_auth(),
so check for that before projecting the snaprealm (which requires
a projected inode)!
Then on rename_apply, open the snaprealm on non-auth MDSes.
2010-10-12 07:49:56 -07:00
Greg Farnum
4ba060ccfa mds: CInode doesn't always call assimilate_dirty_rstate_inodes_finish
This was causing a mis-match in the projection code, since
assimilate_...finish() calls pop_and_dirty_projected_inode(), but
the first half is only called on CEPH_LOCK_INEST locks. So make them match!
2010-10-12 07:49:56 -07:00
Greg Farnum
c56ab53fe7 mds: Locker::local_wrlock_finish now calls finish_waiters!
Fixes a bug that could cause requests to hang since they were
put to sleep and never woken up.
2010-10-12 07:49:56 -07:00
Greg Farnum
53fe418d39 mds: MDCache should adjust_nested_anchors once the op's been logged.
Fixes crashes from assert(nested_anchors >= 0) failures
when updating at the wrong point.
2010-10-12 07:49:56 -07:00
Sage Weil
fc609846d4 mds: avoid EXCL if mds_caps_wanted in _do_cap_update
The file_excl() trigger asserts mds_caps_wanted is empty.  The caller
shouldn't call it if that's the case.  If it is, just go to LOCK instead.
All we're doing is picking a state to move to that will allow us to
update max_size.

Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-11 21:25:17 -07:00
Sage Weil
fa2c371f6e mds: bump dirstat.version during link/unlink/mtime update
Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-11 21:13:00 -07:00
Sage Weil
9e5a203da8 mds: fix get_xlock() assert on slave xlock
If we do a slave request xlock, the state is LOCK, not XLOCK.  Weaken
the SimpleLock::get_xlock() assert accordingly.

Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-11 20:57:46 -07:00
Sage Weil
f9b102e0d5 mds: bump rstat version in predirty_journal_parents
When we propagate the rstat to inode in predirty_journal_parents (because
we hold the nestlock), bump the rstat version as well.  This avoids
confusing any replicas, who expect the rstat to have a new version or to
remain unchanged when the lock scatters.

Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-11 20:32:31 -07:00
Sage Weil
d2175ee830 filestore: don't start commit if nothing new is _applied_
We were starting a commit if we had started a new op, but that left a
window in which the op could be being journaled, and nothing new has been
applied to disk.  With this fix we only commit if committing/committed
will increase.  Now the check matches the

 committing_seq = applied_seq;

a few lines down, and all is well.

The actual crash this fixes was:

2010-10-07 16:20:36.245301 7f07e66d3710 filestore(/mnt/osd3) taking snap 'snap_23230'
2010-10-07 16:20:36.245428 7f07e66d3710 filestore(/mnt/osd3) snap create 'snap_23230' got -1 File exists
os/FileStore.cc: In function 'void FileStore::sync_entry()':
os/FileStore.cc:1738: FAILED assert(r == 0)
 ceph version 0.22~rc (1d77c14bc310aed31d6cfeb2c87e87187d3527ea)
 1: (FileStore::sync_entry()+0x6ee) [0x793148]
 2: (FileStore::SyncThread::entry()+0x19) [0x761d43]
 3: (Thread::_entry_func(void*)+0x20) [0x667822]
 4: (()+0x68ba) [0x7f07eac248ba]
 5: (clone()+0x6d) [0x7f07e9bd802d]

Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-08 17:23:19 -07:00
Yehuda Sadeh
55370d3acd cdebugpack: update Makefile.am, add missing line 2010-10-08 13:55:13 -07:00
Yehuda Sadeh
0b26f3153f mon: class library encodes/decodes activated class
This fixes bug #470
2010-10-07 23:21:15 -07:00
Sage Weil
873095beef osd: fix merge_log cut point
Look at the eversion.version field (not the whole eversion) when deciding
what is divergent.  That way if we have

our log: 100'10 (0'0) m 10000004d3a.00000000/head by client4225.1:18529
new log: 122'10 (0'0) m 10000004d3a.00000000/head by client4225.1:18529

The 100'10 is divergent and the 122'10 wins and we don't get a dup
reqid in the log.

Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-07 16:17:09 -07:00
Sage Weil
6bcda253e5 osd: loosen caller_ops asserts
The problem is that merge_log adds new items to the log before it unindexes
divergent items, and that behavior is needed by the current implementation
of merge_old_entry().  Since the divergent items may be the same requests
(and frequently are) these asserts needs to be loosened up.

Now, the most recent addition "wins," and we only remove the entry in
unindex() if it points to us.

Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-07 16:17:09 -07:00
Sage Weil
6679c27459 osd: move to boot state if down OR wrong address in map
Saw an OSD that was up in the map, but the address didn't match.  Caused
all kinds of strange behavior.  I'm not sure what I had in mind when the
original test only checked for down AND same address before moving to boot
state, since having the wrong address is clearly bad news.

Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-07 16:17:09 -07:00
Sage Weil
6545f3ca1c cdebugpack: behave when /bin/sh is dash
Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-07 09:47:34 -07:00
Sage Weil
af749e62cb cdebugpack: man page
Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-07 09:38:37 -07:00
Sage Weil
9805eb5b6b cdebugpack: include cdebugpack.XXXX dir in tarball
Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-07 09:31:31 -07:00
Sage Weil
2c49ac4d46 cdebugpack: include .tar.gz in usage filename 2010-10-07 09:31:13 -07:00
Sage Weil
3b1b8f89ff cdebugpack: include in deb, rpm 2010-10-07 09:25:26 -07:00
Sage Weil
f10906b3fd mds: respawn (instead of suicide) on being marked down
This makes temporarily laggy daemons will restart and rejoin the cluster
in standby mode.

Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-07 07:52:50 -07:00
Sage Weil
a2bcb419c4 debug: always append to log
We were truncating if we were in log_per_instance mode.  But normally those
logs don't exist.  And if they do, we probably don't want to truncate
them.  This is particularly true if we respawn ourselves (e.g. after being
marked down) and restart with the same pid.

Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-07 07:52:02 -07:00
Sage Weil
a7deada229 init-ceph: DTRT when cconf returns host = localhost
cconf behavior was just changed by bcf1bdef56

Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-07 07:28:58 -07:00
Yehuda Sadeh
a18213d6fa debugpack: add ceph-pg-dump 2010-10-06 20:30:11 -07:00
Yehuda Sadeh
f6e49cbbc2 cdebugpack: save some more info
ceph.conf
ceph -s
ceph osd dump
ceph mds dump
2010-10-06 20:04:38 -07:00
Greg Farnum
8b716c6db8 mds: Check the lock state, not the inode state!
This was causing a lot of slowdowns.
Additionally, pin the inode when exporting caps -- otherwise it could
disappear out from under a cap ack. This was probably just exposed
by fixing the lock check.
2010-10-06 16:42:22 -07:00
Sage Weil
48196f91f0 Merge branch 'testing' into unstable
Conflicts:
	src/osd/ReplicatedPG.cc
2010-10-06 13:42:04 -07:00
Sage Weil
e5882981b5 osd: fix pull completion tests, again
op->complete==false is inconclusive.

Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-06 13:21:07 -07:00
Sage Weil
47f2efb2c3 osd: log error instead of crashing on failed pull attempt
If peering screws up and the primary mistakenly tries to pull an object
from us we don't have, log an error instead of crashing.  This will still
throw off recovery (it will hang), but that's better than crashing
outright.
2010-10-06 13:21:05 -07:00
Sage Weil
f6b47e386d osd: clean out redundant (and wrong) complete calculation
Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-06 13:01:16 -07:00
Sage Weil
1bb60b45a8 osd: make sparse data/clone push behave with partial object push
We can't error out if we don't get everything we want in one go now that
we support pushing objects in pieces.  Remove this check entirely, since
we don't have a good error handling case anyway.
2010-10-06 13:01:13 -07:00
Sage Weil
5ef975629b Merge branch 'osd_lost_objects' into unstable 2010-10-06 09:45:16 -07:00
Yehuda Sadeh
ed3976ce56 rgw: change default content type to binary/octet-stream 2010-10-06 00:06:51 -07:00
Sage Weil
1f94a8fed5 monclient: fix leaks in build_initial_monmap address lookup
Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-05 22:04:13 -07:00
Sage Weil
7935e30e34 monclient: fix off-by-one buffer overrun
Still leaked, though.

Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-05 22:02:55 -07:00
Sage Weil
16f053f7f5 addr_parsing: remove unused mount_path logic
This was breaking parsing if any of the hosts included a ":port" too.

Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-05 22:01:34 -07:00
Sage Weil
b277497986 Merge remote branch 'origin/testing' into unstable 2010-10-05 16:47:37 -07:00
Sage Weil
6a53d7337c Merge branch 'unstable' of ssh://ceph.newdream.net/home/sage/ceph.newdream.net/git/ceph into unstable 2010-10-05 16:47:34 -07:00
Yehuda Sadeh
109dcdf6aa cdebugpack: add a utility to generate a debug package 2010-10-05 16:26:58 -07:00
Sage Weil
4bc4cba575 osd: ignore info queries on deleting pgs
Since we cancel deletion on pg change, we will only receive these from
old primaries, so we can safely ignore.

Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-05 15:47:13 -07:00
Sage Weil
a4eb59969a osd: cancel deletion on pg change
If the primary changes, cancel deletion so that the new primary has the
benefit of considering whether they need anything we have.  Before we were
only canceling if our role changed, but that makes little sense.

Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-05 15:47:08 -07:00
Sage Weil
ed2eee54e6 config: fix address list parsing
Skip past comma, whitespace.

Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-05 15:47:04 -07:00
Colin Patrick McCabe
414bc4f9fb cmon: better error handling
If we can't create the mon0/magic file, show an error message rather
than calling assert(). These cases are probably cluster configuration
problems.

Signed-off-by: Colin McCabe <colinm@hq.newdream.net>
2010-10-05 15:44:25 -07:00
Yehuda Sadeh
bcf1bdef56 conf: cconf return default values from config.cc if not found 2010-10-05 15:02:01 -07:00
Sage Weil
12373a6e75 mds: allow do_null_snapflush on multiversion inodes
The _do_snap_update() can handle a multiversion inode.  Behave when
_do_null_snapflush() encounters one.

Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-05 12:38:43 -07:00
Yehuda Sadeh
e064796bea signal handlers: be more elaborate about caught signals 2010-10-05 12:26:17 -07:00
Sage Weil
22c38466d0 mds: don't call mrk_dirty_rstat for base/root inodes
Base inodes have no parent.

Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-05 12:16:02 -07:00
Sage Weil
d600596aaf mds: fix EMetaBlob dir_layout lifecycle
Initialize, delete pointer.

Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-05 11:54:25 -07:00
Sage Weil
11a24f5e91 mds: set root dir_layout during mkfs
Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-05 11:54:25 -07:00
Sage Weil
09b2db7368 mds: use helper to update inode from EMetaBlob during replay
Removes 3 copies of this code.

Signed-off-by: Sage Weil <sage@newdream.net>
2010-10-05 11:54:25 -07:00