]>
git.apps.os.sepia.ceph.com Git - ceph.git/log
Sage Weil [Fri, 30 Apr 2010 18:05:39 +0000 (11:05 -0700)]
mds: fix trim_dentry on dentry under unlinked dir
We can get a dentry that is trimmable (e.g. null) under a new unlinked dir,
which has no subtree. This will only happen on the auth. In that case,
having no container is harmless--it's only needed for replicas.
This fixes the following crash:
mds/MDCache.cc: In function 'void MDCache::trim_dentry(CDentry*, std::map<int, MCacheExpire*, std::less<int>, std::allocator<std::pair<const int, MCacheExpire*> > >&)':
mds/MDCache.cc:4797: FAILED assert(con)
1: (MDCache::trim(int)+0x214) [0x4ffbc4]
2: (MDS::tick()+0x4c1) [0x48f3b1]
3: (SafeTimer::EventWrapper::finish(int)+0x269) [0x683a89]
4: (Timer::timer_entry()+0x819) [0x685909]
5: (Timer::TimerThread::entry()+0xd) [0x47528d]
6: (Thread::_entry_func(void*)+0x7) [0x48a8a7]
7: /lib/libpthread.so.0 [0x7ffe62356fc7]
8: (clone()+0x6d) [0x7ffe615835ad]
NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
Signed-off-by: Sage Weil <sage@newdream.net>
Sage Weil [Fri, 30 Apr 2010 17:46:17 +0000 (10:46 -0700)]
osd: fix pg_to_acting_osds() calculation to consider pg_temp
The OSD was using pg_to_up_acting, the client uses pg_to_acting, and their
calculations of 'acting' weren't consistent because the latter did not
consider pg_temp.
Use new helpers to clean this up.
Signed-off-by: Sage Weil <sage@newdream.net>
Sage Weil [Fri, 30 Apr 2010 17:11:16 +0000 (10:11 -0700)]
objecter: show osds in laggy debug output
Sage Weil [Fri, 30 Apr 2010 04:43:07 +0000 (21:43 -0700)]
filestore: fail to mount if journal open fails
Clean up error reporting too.
Sage Weil [Fri, 30 Apr 2010 04:12:16 +0000 (21:12 -0700)]
msgr: fix sigint/term signal handler to actually quit (by chaining)
Sage Weil [Thu, 29 Apr 2010 22:05:39 +0000 (15:05 -0700)]
librados: fix blank pool stats
Sage Weil [Thu, 29 Apr 2010 21:26:46 +0000 (14:26 -0700)]
qa: make pjd clean up
Sage Weil [Wed, 28 Apr 2010 20:42:50 +0000 (13:42 -0700)]
mds: clean up MIN/MAX, client_ranges
Avoid double evaluation via macros...
Sage Weil [Thu, 29 Apr 2010 19:50:34 +0000 (12:50 -0700)]
msgr: remove pid file on SIGINT, SIGTERM
Sage Weil [Thu, 29 Apr 2010 18:56:49 +0000 (11:56 -0700)]
config: post-process default config options too
Previously we were only doing the ones we read out of the .conf.
Sage Weil [Thu, 29 Apr 2010 17:43:24 +0000 (10:43 -0700)]
mon: use (robust) buffer::list::write_fd() to write to disk
Sage Weil [Thu, 29 Apr 2010 17:22:13 +0000 (10:22 -0700)]
mon: m->get_session() may return null if session has closed
because the session close clears connection->priv. We need to check at
each site anyway, either for null session, or for session->closed. So
check for null session.
Sage Weil [Wed, 28 Apr 2010 22:55:22 +0000 (15:55 -0700)]
configure: remove second AM_INIT_AUTOMAKE line
Sage Weil [Wed, 28 Apr 2010 21:07:20 +0000 (14:07 -0700)]
msgr: fix segfault sending msg on closed Connection/pipe
Sage Weil [Mon, 26 Apr 2010 17:14:58 +0000 (10:14 -0700)]
mds: fix snaprealm split on capless inode
Sage Weil [Fri, 23 Apr 2010 23:21:05 +0000 (16:21 -0700)]
buffer: clean up namespace pollution
Yehuda Sadeh [Sat, 24 Apr 2010 17:10:00 +0000 (10:10 -0700)]
poolop: rename and move definitions to ceph_fs.h
This was done so that we can use it in the kclient
Sage Weil [Fri, 23 Apr 2010 22:50:29 +0000 (15:50 -0700)]
Makefile: define __CEPH__ in ceph builds. use it.
Avoid breakage when headers are used outside of ceph build (librados-dev)
Sage Weil [Fri, 23 Apr 2010 22:22:29 +0000 (15:22 -0700)]
mds: fix req use-after-free to get connection to direct reply
Greg Farnum [Fri, 23 Apr 2010 22:13:35 +0000 (15:13 -0700)]
atomic: reverse if test so we don't break things on separately-compiled librados
Greg Farnum [Wed, 21 Apr 2010 18:06:06 +0000 (11:06 -0700)]
mds: remove unused variable from Locker
Sage Weil [Fri, 23 Apr 2010 21:50:26 +0000 (14:50 -0700)]
debian: build-depends libatomicops-dev
Sage Weil [Fri, 23 Apr 2010 21:47:39 +0000 (14:47 -0700)]
Merge branch 'snaps' into unstable
Sage Weil [Fri, 23 Apr 2010 21:46:57 +0000 (14:46 -0700)]
mon: clean up mon snap type checks
Sage Weil [Fri, 23 Apr 2010 21:38:31 +0000 (14:38 -0700)]
osd: no error checking in data structure (caller should do it)
Sage Weil [Fri, 23 Apr 2010 21:38:15 +0000 (14:38 -0700)]
mon: don't create/delete unmanaged snaps if pool snaps exist
Sage Weil [Fri, 23 Apr 2010 21:33:11 +0000 (14:33 -0700)]
librados: clean up headres
Sage Weil [Tue, 13 Apr 2010 17:54:43 +0000 (10:54 -0700)]
objecter: do pool op result parsing in Objecter completion wrapper
Greg Farnum [Tue, 13 Apr 2010 17:34:59 +0000 (10:34 -0700)]
librados: Adjust snapid allocation ufnctions and implement new objecter spec
Greg Farnum [Tue, 13 Apr 2010 17:34:25 +0000 (10:34 -0700)]
objecter: Implement bufferlist-based return code for pool ops
Greg Farnum [Fri, 9 Apr 2010 23:53:13 +0000 (16:53 -0700)]
mon: OSDMonitor fills in MPoolOpReply's bufferlist on unmanaged snap creation
Greg Farnum [Fri, 9 Apr 2010 23:46:05 +0000 (16:46 -0700)]
msg: Give MPoolOpReply a bufferlist for reply data
Greg Farnum [Fri, 9 Apr 2010 23:40:18 +0000 (16:40 -0700)]
mon: change the unmanaged snap interface for better distinction of reply codes
and snapid numbers.
Of course, this now means that the snapid isn't actually passed
back to the client, but that is about to change.
Greg Farnum [Fri, 9 Apr 2010 21:53:29 +0000 (14:53 -0700)]
librados: Set selfmanaged snap functions to use int instead of int64_t, too
Greg Farnum [Fri, 9 Apr 2010 20:52:24 +0000 (13:52 -0700)]
librados: add small bit of documentation, fix headers
Greg Farnum [Fri, 9 Apr 2010 20:47:49 +0000 (13:47 -0700)]
mon: don't crash if a client tries to self-manage managed snaps, or vice versa
Greg Farnum [Fri, 9 Apr 2010 19:33:23 +0000 (12:33 -0700)]
librados: add functions for client-managed snapshots in all the interfaces
Greg Farnum [Thu, 8 Apr 2010 22:54:40 +0000 (15:54 -0700)]
objecter: New functions for client-managed snapshots.
Greg Farnum [Thu, 8 Apr 2010 22:54:05 +0000 (15:54 -0700)]
mon: OSDMonitor handles client-managed snapshot requests.
Greg Farnum [Thu, 8 Apr 2010 21:45:57 +0000 (14:45 -0700)]
osd: pg_pool_t gets new functions for unmanaged (ie, client-managed) snaps
Greg Farnum [Thu, 8 Apr 2010 22:53:23 +0000 (15:53 -0700)]
msg: Add space for snapid in MPoolOp. Reply now uses an int64_t replyCode.
This allows space for a full 64-bit snapid to be returned, which is about
to be necessary.
Sage Weil [Fri, 23 Apr 2010 21:30:23 +0000 (14:30 -0700)]
msgr: fix atomic_t test
Missed this in merge
50285ecf5c404b456a0427eb7d6d1097ffc0ea83
Sage Weil [Fri, 23 Apr 2010 21:22:41 +0000 (14:22 -0700)]
Merge branch 'atomic' into unstable
Sage Weil [Fri, 23 Apr 2010 21:22:04 +0000 (14:22 -0700)]
Merge branch 'msgr' into unstable
Conflicts:
src/TODO
src/mds/Server.cc
src/msg/SimpleMessenger.cc
src/msg/SimpleMessenger.h
src/osd/OSD.cc
Sage Weil [Fri, 23 Apr 2010 19:10:24 +0000 (12:10 -0700)]
v0.20
Sage Weil [Fri, 23 Apr 2010 18:07:16 +0000 (11:07 -0700)]
mds: skip client snap notification on unlink
This is cheating a bit, but should be harmless. Basically, we spit off the
snaprealm when we unlink to keep the hierarchy vs snaprealm invariants
intact. But we don't really care if the client does so, so we skip the
client_snap notifications.
That means the client will leave unlinked inodes in the realm they were
in at the time of unlink. I'm pretty sure that won't cause problems
later.
Sage Weil [Thu, 22 Apr 2010 22:05:55 +0000 (15:05 -0700)]
osd: more useful debugging on repop version, out of order completion
Sage Weil [Thu, 22 Apr 2010 21:09:51 +0000 (14:09 -0700)]
osd: print a bit more debug info about compat problems
Sage Weil [Thu, 22 Apr 2010 20:41:17 +0000 (13:41 -0700)]
mds: verify mdsmap compatset on startup
Sage Weil [Thu, 22 Apr 2010 20:41:02 +0000 (13:41 -0700)]
mds: add CompatSet to mdsmap
Yehuda Sadeh [Thu, 22 Apr 2010 21:40:09 +0000 (14:40 -0700)]
rbd: change rbd header disk format, update protocol version
Sage Weil [Thu, 22 Apr 2010 20:10:40 +0000 (13:10 -0700)]
msgr: never (re)open pipe when sending message directly to Connection*
Sage Weil [Thu, 22 Apr 2010 19:04:01 +0000 (12:04 -0700)]
mdsmap: add separate struct version for extended portion of mdsmap
Sage Weil [Thu, 22 Apr 2010 18:43:37 +0000 (11:43 -0700)]
cauthtool: add --gen-print-key
Just generate a random cryptokey and print it out.
Sage Weil [Thu, 22 Apr 2010 18:39:40 +0000 (11:39 -0700)]
auth: take key or file containing key on command line
e.g.
ceph --key AQBggdBLCJwLABAAuPVK/qJ3/ySbRvEnJHNJ8w== -s
ceph --keyfile file_with_key -s
ceph -K file_with_key -s
ceph -k keyring.bin -s
Sage Weil [Thu, 22 Apr 2010 18:27:00 +0000 (11:27 -0700)]
cauthtool: always print entire encoded CryptoKey
Make cauthtool -l output consistent with what you need to feed to
mount.ceph(8).
Sage Weil [Thu, 22 Apr 2010 14:37:13 +0000 (07:37 -0700)]
msgr: increment connect_seq when STANDBY->CONNECTING
Otherwise we get this on the peer:
msg/SimpleMessenger.cc: In function 'int SimpleMessenger::Pipe::accept()':
msg/SimpleMessenger.cc:767: FAILED assert(existing->state == STATE_CONNECTING)
1: (SimpleMessenger::Pipe::accept()+0x14b2) [0x654888]
2: (SimpleMessenger::Pipe::reader()+0x32) [0x65538c]
3: (SimpleMessenger::Pipe::Reader::entry()+0x19) [0x649493]
4: (Thread::_entry_func(void*)+0x20) [0x659b06]
5: /lib/libpthread.so.0 [0x7fcdc782f73a]
6: (clone()+0x6d) [0x7fcdc6a5969d]
NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
Sage Weil [Wed, 21 Apr 2010 22:28:48 +0000 (15:28 -0700)]
Merge remote branch 'origin/mdssnaps' into unstable
Sage Weil [Wed, 21 Apr 2010 22:23:46 +0000 (15:23 -0700)]
filestore: default to writeahead journal, and no btrfs snaps
At least until btrfs snap deletion doesn't require a full commit (i.e. each
commit cycle doesn't do a commit for the snap creation AND another for the
old snap deletion).
Sage Weil [Wed, 21 Apr 2010 21:56:35 +0000 (14:56 -0700)]
rbdtool: add, use prettybyte_t type
Sage Weil [Wed, 21 Apr 2010 21:52:29 +0000 (14:52 -0700)]
rbdtool: add --info, --resize commands
Sage Weil [Wed, 21 Apr 2010 21:52:15 +0000 (14:52 -0700)]
auth: make 'admin' the default user
We don't create a 'guest' user anyway.
Sage Weil [Wed, 21 Apr 2010 21:23:52 +0000 (14:23 -0700)]
librados: adjust C++ aio completion creation api
Sage Weil [Wed, 21 Apr 2010 19:18:19 +0000 (12:18 -0700)]
sample.ceph.conf: add example on writeahead (vs parallel) journal
Sage Weil [Wed, 21 Apr 2010 19:08:59 +0000 (12:08 -0700)]
osd: create 'rbd' pool
Sage Weil [Wed, 21 Apr 2010 17:58:29 +0000 (10:58 -0700)]
debian: require hdparm, recommend btrfs-tools
Sage Weil [Wed, 21 Apr 2010 17:58:29 +0000 (10:58 -0700)]
debian: require hdparm, recommend btrfs-tools
Sage Weil [Tue, 20 Apr 2010 23:06:21 +0000 (16:06 -0700)]
mds: always use get_newest_seq (not snap) when doing cow
Sage Weil [Tue, 20 Apr 2010 19:40:11 +0000 (12:40 -0700)]
mds: rename move_to_realm(), add debugging (cleanup)
Sage Weil [Tue, 20 Apr 2010 19:39:23 +0000 (12:39 -0700)]
mds: don't cow already cowed dentry
Sage Weil [Tue, 20 Apr 2010 23:20:11 +0000 (16:20 -0700)]
sample.ceph.conf: updated
Sage Weil [Tue, 20 Apr 2010 22:25:00 +0000 (15:25 -0700)]
fetch_config: enable fetching ceph.conf from a remote location
fetch_config: always fetch if script exists and is executable
fetch_config: make /etc/ceph/sample.fetch_config +x
Makefile: fix whitespace
Sage Weil [Tue, 20 Apr 2010 17:47:10 +0000 (10:47 -0700)]
osd: don't capture SIGINT/SIGTERM; journal and/or btrfs snaps are sufficient.
We used to do this to avoid corrupting the filestore, but since we can now
either roll forward with the writeahead journal OR roll back using btrfs
snaps, this is useless. It wasn't a full solution anyway.
Sage Weil [Tue, 20 Apr 2010 17:39:23 +0000 (10:39 -0700)]
auth: less noisy debug
Sage Weil [Tue, 20 Apr 2010 16:59:16 +0000 (09:59 -0700)]
mds: drop mutation locks
Saw this one, but fixed others that appear broken as well:
mds/MDCache.h: In function 'virtual Mutation::~Mutation()':
mds/MDCache.h:115: FAILED assert(pins.empty())
1: (Mutation::~Mutation()+0x46) [0x791716]
2: (MDCache::truncate_inode_logged(CInode*, Mutation*)+0x7b) [0x7bd6b7]
3: (C_MDC_TruncateLogged::finish(int)+0x2c) [0x84100e]
4: (finish_contexts(std::list<Context*, std::allocator<Context*> >&, int)+0x1af) [0x74a807]
5: (Journaler::_finish_flush(int, long, utime_t, bool)+0x873) [0x92ea71]
6: (Journaler::C_Flush::finish(int)+0x43) [0x936503]
7: (Objecter::handle_osd_op_reply(MOSDOpReply*)+0xcf5) [0x8ff00f]
8: (MDS::_dispatch(Message*)+0x1ee0) [0x726372]
9: (MDS::ms_dispatch(Message*)+0x2f) [0x7274b9]
10: (Messenger::ms_deliver_dispatch(Message*)+0x55) [0x719949]
11: (SimpleMessenger::dispatch_entry()+0x4f4) [0x7074b2]
12: (SimpleMessenger::DispatchThread::entry()+0x29) [0x7039d1]
13: (Thread::_entry_func(void*)+0x20) [0x71412e]
14: /lib/libpthread.so.0 [0x7f25474e073a]
15: (clone()+0x6d) [0x7f254670a69d]
Sage Weil [Tue, 20 Apr 2010 03:43:22 +0000 (20:43 -0700)]
osd: fix snapset loading from _snapdir
Another masked variable! In the same block as the last one! Aie.
Sage Weil [Tue, 20 Apr 2010 03:29:14 +0000 (20:29 -0700)]
mds: clone dentry for multiversion dir if linkage is changing...
...even if the inode itself doesn't need to be cowed. In particular, we
do the pre_cow_old_inode() thing, so it frequently doesn't need to be cowed,
but the dentry does when we are say unlinking a directory or some such.
Sage Weil [Mon, 19 Apr 2010 23:38:53 +0000 (16:38 -0700)]
mds: avoid null deref when hiding .ceph dir
Greg Farnum [Mon, 19 Apr 2010 21:32:36 +0000 (14:32 -0700)]
mds: rename send_message_client to send_message_client_counted
Greg Farnum [Mon, 19 Apr 2010 21:22:50 +0000 (14:22 -0700)]
mds: fix erroneous uses of send_message that need to be send_message_client
Greg Farnum [Mon, 19 Apr 2010 21:22:23 +0000 (14:22 -0700)]
mds: Add new Connection-based send_message_client that uses inc_push_seq too
Jim Schutt [Fri, 16 Apr 2010 22:25:49 +0000 (16:25 -0600)]
autoconf: Fix detection of sync_file_range.
Without this patch, on CentOS 5.4 ./configure reports that
sync_file_range is missing, but HAVE_SYNC_FILE_RANGE ends
up being defined in src/acconfig.h anyway.
Compile tested on CentOS 5.4 (which does not have sync_file_range(2)
in distro glibc) and Fedora 11 (which does).
Signed-off-by: Jim Schutt <jaschut@sandia.gov>
Greg Farnum [Fri, 16 Apr 2010 22:51:55 +0000 (15:51 -0700)]
remove references to [group] and [mount] in sample.ceph.conf
Greg Farnum [Fri, 16 Apr 2010 22:18:26 +0000 (15:18 -0700)]
add executables to .gitignore
Greg Farnum [Fri, 16 Apr 2010 21:55:07 +0000 (14:55 -0700)]
mds: Fix bad pointer dereference brought about by switch to Message ref-counting
Sage Weil [Fri, 16 Apr 2010 20:51:58 +0000 (13:51 -0700)]
mds: xlock versionlock on rename if witnesses
This ensures that we don't pipeline dentry linkage updates when there
are witnesses. That can cause problems because replicas don't see
projected dentry linkage info, and will get confused when they look at
the replica of the srcdn and it's, say, NULL and not srci.
Greg Farnum [Fri, 16 Apr 2010 19:30:44 +0000 (12:30 -0700)]
mds: use Connection-based send_message in handle_discover
Greg Farnum [Fri, 16 Apr 2010 19:28:56 +0000 (12:28 -0700)]
msg: Remove "asker" data member from MDiscover.
Fix uses.
Greg Farnum [Fri, 16 Apr 2010 19:28:14 +0000 (12:28 -0700)]
mds: Fix some compile-time issues.
Greg Farnum [Fri, 16 Apr 2010 17:39:09 +0000 (10:39 -0700)]
mds: Subsystems generally use the connection-based send_message when possible.
This isn't a very deep change, though -- a lot of the remaining instances
could probably be fixed up just by changing passthrough variables and whatnot.
Greg Farnum [Fri, 16 Apr 2010 16:36:30 +0000 (09:36 -0700)]
mds: create send_message(Message *m, Connection *c) passthrough
Yehuda Sadeh [Fri, 16 Apr 2010 00:04:43 +0000 (17:04 -0700)]
rados: aio, reorder callback completion handler creation
Greg Farnum [Thu, 15 Apr 2010 23:34:17 +0000 (16:34 -0700)]
mds: set trivial uses of send_message to use the Connection version.
Greg Farnum [Thu, 15 Apr 2010 20:38:19 +0000 (13:38 -0700)]
osd: send_message via Connection when possible
Greg Farnum [Thu, 15 Apr 2010 20:24:45 +0000 (13:24 -0700)]
osd: send reply via connection for MOSDSubOps
Greg Farnum [Thu, 15 Apr 2010 20:19:22 +0000 (13:19 -0700)]
osd: Send messages via Connection * when possible.
Also, rename a message shadowing its trigger message so that we can.
Greg Farnum [Thu, 15 Apr 2010 19:23:19 +0000 (12:23 -0700)]
msgr: Implement new send_message[_lazy](Message *m, Connection *con) functions.
These can reduce the number of lookups and should be able to recover
from any pipes being destroyed while the Connection is still active.
Sage Weil [Thu, 15 Apr 2010 21:44:17 +0000 (14:44 -0700)]
filestore: be thorough about wiping out old osd data content during mkfs
Delete any subvols or directories that we fine.
Greg Farnum [Thu, 15 Apr 2010 19:07:37 +0000 (12:07 -0700)]
msgr: if a pipe** is passed in to submit_message, it's used.
This is a double pointer because it's possible that a Pipe has
been destroyed since the send_message call, so we want to check
that the Pipe * remains set after we've taken the main lock.
Greg Farnum [Thu, 15 Apr 2010 20:10:47 +0000 (13:10 -0700)]
msgr: give submit_message new interface.