]>
git.apps.os.sepia.ceph.com Git - ceph.git/log
Greg Farnum [Wed, 6 Jan 2010 00:48:17 +0000 (16:48 -0800)]
msgr: SimpleMessenger takes responsibility for Messenger functions.
Greg Farnum [Tue, 5 Jan 2010 20:02:59 +0000 (12:02 -0800)]
msgr: All SimpleMessenger uses are now on the heap for appropriate destruction
Greg Farnum [Tue, 5 Jan 2010 00:04:28 +0000 (16:04 -0800)]
msgr: SimpleMessenger is now a Messenger itself -- sort of
Greg Farnum [Mon, 4 Jan 2010 18:01:41 +0000 (10:01 -0800)]
msgr: remove rank number from endpoint, since there's only one.
Remove Endpoint's wait() method as it's unused.
Sage Weil [Thu, 7 Jan 2010 00:08:29 +0000 (16:08 -0800)]
todo
Sage Weil [Thu, 7 Jan 2010 00:03:31 +0000 (16:03 -0800)]
osd: fix MASKTRUNC
This was looking at the wrong osd_op for the truncate_seq, which made it
essentially broken. This was problematic any time the client SETTRUNC
reached an object (on a write after truncate) before the MDS TRIMTRUNC did.
Sage Weil [Wed, 23 Dec 2009 22:49:32 +0000 (14:49 -0800)]
qa: dl pjd.tgz
Then we can switch the symlink later
Sage Weil [Wed, 23 Dec 2009 22:49:16 +0000 (14:49 -0800)]
todo, sepia reformat
Sage Weil [Wed, 23 Dec 2009 20:09:41 +0000 (12:09 -0800)]
mds: change MClientReconnect encoding (mds protocol change)
This simplifies the encoding to make life easier for the kclient.
Sage Weil [Wed, 23 Dec 2009 20:04:39 +0000 (12:04 -0800)]
uclient: clean up mark_down of failed mds
Set inst at the time we see it change, otherwise we may miss an mds that
replayed but failed before it fully recovered.
Sage Weil [Wed, 23 Dec 2009 19:52:19 +0000 (11:52 -0800)]
mds: add NEW session state
We want to register new sessions in the map so that they can be found when
we replay ESession events in the log. Otherwise a client that connects
to the mds early will have one Session* on the connection, and another in
the map, and reconnect will fail.
Make sure we remove NEW sessions from the map on connection reset, so that
things gets freed.
Also, take mds_lock in ms_verify_authorizer.
Sage Weil [Wed, 23 Dec 2009 19:49:51 +0000 (11:49 -0800)]
msgr: drop rank lock while verifying authorizer
This easily causes a lock inversion if the verify callback takes any
locks. e.g.
09.12.23 11:43:32.335042
1482578256 lockdep: ------------------------------------
09.12.23 11:43:32.335072
1482578256 lockdep: existing dependency MDS::mds_lock (10) -> SimpleMessenger::lock (6) at:
1: (Mutex::Lock(bool)+0x3a) [0x6f581c]
2: (SimpleMessenger::submit_message(Message*, entity_inst_t const&, bool)+0xc0) [0x6f900c]
3: (SimpleMessenger::Endpoint::send_message(Message*, entity_inst_t)+0x1ab) [0x6f9c85]
4: (MonClient::_send_mon_message(Message*, bool)+0xa2) [0x9682dc]
5: (MonClient::send_mon_message(Message*)+0x37) [0x740e17]
6: (MDS::beacon_send()+0x226) [0x710b02]
7: (MDS::beacon_start()+0x15) [0x711fc5]
8: (MDS::init()+0xd5) [0x71238b]
9: (main()+0x2cd) [0x6eb6af]
10: (__libc_start_main()+0xe6) [0x7f22954811a6]
11: /tmp/cmds.
20091223 .114259 [0x6eb0d9]
09.12.23 11:43:32.335289
1482578256 lockdep: new dependency SimpleMessenger::lock (6) -> MDS::mds_lock (10) creates a cycle at
1: (Mutex::Lock(bool)+0x3a) [0x6f581c]
2: (Mutex::Locker::Locker(Mutex&)+0x2c) [0x705f2c]
3: (MDS::ms_verify_authorizer(Connection*, int, int, buffer::list&, buffer::list&, bool&)+0x48) [0x70d6c6]
4: (Messenger::ms_deliver_verify_authorizer(Connection*, int, int, buffer::list&, buffer::list&, bool&)+0x74) [0x702d5e]
5: (SimpleMessenger::verify_authorizer(Connection*, int, int, buffer::list&, buffer::list&, bool&)+0x6b) [0x6f6279]
6: (SimpleMessenger::Pipe::accept()+0xc7d) [0x6ffba5]
7: (SimpleMessenger::Pipe::reader()+0x32) [0x700de8]
8: (SimpleMessenger::Pipe::Reader::entry()+0x19) [0x6f4e2d]
9: (Thread::_entry_func(void*)+0x20) [0x705944]
10: /lib/libpthread.so.0 [0x7f22962effc7]
11: (clone()+0x6d) [0x7f22955325ad]
09.12.23 11:43:32.335497
1482578256 lockdep: btw, i am holding these locks:
09.12.23 11:43:32.335511
1482578256 lockdep: SimpleMessenger::lock (6)
common/lockdep.cc: In function 'int lockdep_will_lock(const char*, int)':
common/lockdep.cc:184: FAILED assert(0)
1: (lockdep_will_lock(char const*, int)+0x765) [0x9776a9]
2: (Mutex::_will_lock()+0x1f) [0x6f43bf]
3: (Mutex::Lock(bool)+0x3a) [0x6f581c]
4: (Mutex::Locker::Locker(Mutex&)+0x2c) [0x705f2c]
5: (MDS::ms_verify_authorizer(Connection*, int, int, buffer::list&, buffer::list&, bool&)+0x48) [0x70d6c6]
6: (Messenger::ms_deliver_verify_authorizer(Connection*, int, int, buffer::list&, buffer::list&, bool&)+0x74) [0x702d5e]
7: (SimpleMessenger::verify_authorizer(Connection*, int, int, buffer::list&, buffer::list&, bool&)+0x6b) [0x6f6279]
8: (SimpleMessenger::Pipe::accept()+0xc7d) [0x6ffba5]
9: (SimpleMessenger::Pipe::reader()+0x32) [0x700de8]
10: (SimpleMessenger::Pipe::Reader::entry()+0x19) [0x6f4e2d]
11: (Thread::_entry_func(void*)+0x20) [0x705944]
12: /lib/libpthread.so.0 [0x7f22962effc7]
13: (clone()+0x6d) [0x7f22955325ad]
NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
Sage Weil [Wed, 23 Dec 2009 19:48:32 +0000 (11:48 -0800)]
uclient: don't renew caps while mds is recovering
waste of time and memory
Sage Weil [Wed, 23 Dec 2009 23:54:50 +0000 (15:54 -0800)]
mds: expose projected ctime is client is last versionlock wrlocker
This fixes the problem where the client does a setattr on CTIME, but
doesn't actually see it.
Probably, though, the exposed ctime should be more precise: something like
the most recent projected value that the client is responsible, since we
may have multiple clients projecting pipelined values on the inode.
Sage Weil [Wed, 23 Dec 2009 02:32:00 +0000 (18:32 -0800)]
todo
Sage Weil [Tue, 22 Dec 2009 22:54:46 +0000 (14:54 -0800)]
osd: prioritized repop acks
This may not make much of a difference, but it won't hurt.
Sage Weil [Tue, 22 Dec 2009 22:50:38 +0000 (14:50 -0800)]
qa: don't fail rm of old log
Sage Weil [Tue, 22 Dec 2009 21:45:40 +0000 (13:45 -0800)]
qa: make logging more forgiving
Sage Weil [Wed, 23 Dec 2009 02:03:00 +0000 (18:03 -0800)]
msgr: separate incoming queue from local_endpoint
For now it's bundled into dispatch_queue.
Fixes a race with local_endpoint shutdown and incoming message delivery.
Sage Weil [Wed, 23 Dec 2009 01:50:33 +0000 (17:50 -0800)]
osd: put meta_coll const in OSD.{cc,h}
Sage Weil [Wed, 23 Dec 2009 01:43:18 +0000 (17:43 -0800)]
filejournal: delete[] not delete
Sage Weil [Tue, 22 Dec 2009 21:29:07 +0000 (13:29 -0800)]
backtrace: fix #includes for ppc
Sage Weil [Tue, 22 Dec 2009 21:26:47 +0000 (13:26 -0800)]
hash: use native appropriately sized hash for word, not native host word size
These shouldn't be used over the wire or on disk, but just in case.
Also, i suspect the 64-bit hash is probably faster than the 32bit one
twice?
Sage Weil [Tue, 22 Dec 2009 21:25:46 +0000 (13:25 -0800)]
change LP64 ifdefs to casts for printf formatting
Sage Weil [Tue, 22 Dec 2009 21:22:56 +0000 (13:22 -0800)]
logger: cleanup 64
Sage Weil [Tue, 22 Dec 2009 21:21:33 +0000 (13:21 -0800)]
todo, confs
Sage Weil [Tue, 22 Dec 2009 19:42:29 +0000 (11:42 -0800)]
msgr: include features in connection handshake (protocol change)
Sage Weil [Tue, 22 Dec 2009 19:41:47 +0000 (11:41 -0800)]
msgr: put tid in ceph_msg_header (protocol change)
Sage Weil [Tue, 22 Dec 2009 00:46:05 +0000 (16:46 -0800)]
todo more bugs
Sage Weil [Tue, 22 Dec 2009 00:28:27 +0000 (16:28 -0800)]
assert: leave cruft off top of assert failure backtrace
no more
1: (__ceph_assert_fail(char const*, char const*, int, char const*)+0x34) [0x7ea7ea]
Sage Weil [Tue, 22 Dec 2009 00:26:07 +0000 (16:26 -0800)]
backtrace: demangle c++ names
Finally!
Sage Weil [Sun, 20 Dec 2009 05:09:23 +0000 (21:09 -0800)]
todo bugs
Greg Farnum [Sat, 19 Dec 2009 00:13:42 +0000 (16:13 -0800)]
mds: new commands!
issue_caps inodenumber calls locker->issue_caps
try_eval inodenumber mask calls locker->try_eval
Greg Farnum [Thu, 17 Dec 2009 22:29:13 +0000 (14:29 -0800)]
mds: new command kill session xxxx ends that client session
Greg Farnum [Thu, 17 Dec 2009 22:27:26 +0000 (14:27 -0800)]
create a new function end_session to end client sessions
Sage Weil [Wed, 16 Dec 2009 22:06:01 +0000 (14:06 -0800)]
vstart: allow -o 'some option for config file = whatever'
Sage Weil [Tue, 15 Dec 2009 22:27:56 +0000 (14:27 -0800)]
osd: fix PG print log bound check
Sage Weil [Thu, 17 Dec 2009 19:32:21 +0000 (11:32 -0800)]
todo (bugs)
Greg Farnum [Tue, 15 Dec 2009 23:50:00 +0000 (15:50 -0800)]
Make a more flexible 'tell' command to replace injectargs
osd/mds: make a handle_command function; don't parse all MMonCommands as config
mon: Send injectargs to osd/mds in new format;
accept tells for mds and osd
Sage Weil [Tue, 15 Dec 2009 22:13:23 +0000 (14:13 -0800)]
todo (bugs, filestore notes)
Sage Weil [Tue, 15 Dec 2009 22:13:12 +0000 (14:13 -0800)]
osd: include last_epoch_split in PG::Info::History
Also drop backward compat encoding for same_up_since;
overall osd format as reved since then.
Sage Weil [Tue, 15 Dec 2009 22:11:16 +0000 (14:11 -0800)]
msgr: don't keep sent messages on lossy connections
Sage Weil [Tue, 15 Dec 2009 22:10:37 +0000 (14:10 -0800)]
mds: log client timeouts
Sage Weil [Mon, 14 Dec 2009 22:14:10 +0000 (14:14 -0800)]
mds: don't croak on stray ACK
This can happen after replay:
- AGREE and update op in journal
- table resends AGREE
- client resends COMMIT
- client gets AGREE, resends COMMIT
- table gets 2 COMMITS, replies with 2 ACKs
- second ACK can be ignored.
Greg Farnum [Tue, 15 Dec 2009 21:23:23 +0000 (13:23 -0800)]
qa: Copy the output of each test to a log file
Greg Farnum [Mon, 14 Dec 2009 23:46:06 +0000 (15:46 -0800)]
qa: Whoops, never added the runonkclient script
Yehuda Sadeh [Mon, 14 Dec 2009 19:27:48 +0000 (11:27 -0800)]
auth: rename mutex so that it doesn't confuse lockdep
Sage Weil [Fri, 11 Dec 2009 21:40:53 +0000 (13:40 -0800)]
msgr: maintain per-pipe in_qlen; avoid list.size(); some cleanup
Sage Weil [Fri, 11 Dec 2009 20:42:43 +0000 (12:42 -0800)]
librados: fix locking slightly
Lock was missing on aio_read.
Sage Weil [Fri, 11 Dec 2009 18:19:51 +0000 (10:19 -0800)]
qa: fix runallonce target dir verification
Sage Weil [Fri, 11 Dec 2009 18:18:03 +0000 (10:18 -0800)]
filestore: disable USERTRANS for now
Sage Weil [Fri, 11 Dec 2009 20:03:29 +0000 (12:03 -0800)]
todo
Sage Weil [Fri, 11 Dec 2009 20:03:24 +0000 (12:03 -0800)]
librados: less noisy
Sage Weil [Fri, 11 Dec 2009 00:51:42 +0000 (16:51 -0800)]
vstart: fix small bash thing
Sage Weil [Fri, 11 Dec 2009 16:37:19 +0000 (08:37 -0800)]
osd: drop backlog on recovery completion (when we mark PG_STATE_CLEAN)
Sage Weil [Fri, 11 Dec 2009 16:36:53 +0000 (08:36 -0800)]
osd: split pg log too
Sage Weil [Fri, 11 Dec 2009 16:34:27 +0000 (08:34 -0800)]
osd: make osd thread pool sizes adjustable
Rename osd_maxthreads to osd_op_threads to be consistent.
Sage Weil [Fri, 11 Dec 2009 15:52:59 +0000 (07:52 -0800)]
init-ceph: use pkill, not killall, so that c$type.$date is also killed
Sage Weil [Fri, 11 Dec 2009 05:57:05 +0000 (21:57 -0800)]
mon: fix mon injectargs
If !connection, we know it's local delivery.
Sage Weil [Fri, 11 Dec 2009 05:50:12 +0000 (21:50 -0800)]
mon: fix null pointer ref on connection
Sage Weil [Fri, 11 Dec 2009 00:20:06 +0000 (16:20 -0800)]
crush: fix grammer to parse hash
Greg Farnum [Thu, 10 Dec 2009 22:57:09 +0000 (14:57 -0800)]
msgr: lockdep found some not-actually-possible bad dependencies; they've
been removed to make it happy
Greg Farnum [Thu, 10 Dec 2009 22:32:13 +0000 (14:32 -0800)]
msgr: Add at least a little documentation
Greg Farnum [Thu, 10 Dec 2009 22:09:22 +0000 (14:09 -0800)]
msgr: Remove noisy debug output.
Greg Farnum [Thu, 10 Dec 2009 22:07:25 +0000 (14:07 -0800)]
msgr: discard_queue now removes empty pipe queues from endpoint's map
This prevents bad pointer dereferences
Greg Farnum [Thu, 10 Dec 2009 19:16:40 +0000 (11:16 -0800)]
msgr: Cover qlen with a Spinlock for faster access and to limit blocking
Greg Farnum [Thu, 10 Dec 2009 03:30:22 +0000 (19:30 -0800)]
msgr: That unlock's not in the right spot
Greg Farnum [Thu, 10 Dec 2009 03:10:45 +0000 (19:10 -0800)]
msgr: Fix a number of locking and deletion bugs. Appears to work.
Greg Farnum [Thu, 10 Dec 2009 00:19:27 +0000 (16:19 -0800)]
msgr: Fix blocking locks and another potential block.
Greg Farnum [Wed, 9 Dec 2009 23:12:00 +0000 (15:12 -0800)]
msgr: rename locks for clarity; move some around to prevent blocking.
Greg Farnum [Wed, 9 Dec 2009 03:52:20 +0000 (19:52 -0800)]
msgr: implement round-robin pipe message delivery.
Greg Farnum [Wed, 9 Dec 2009 00:17:57 +0000 (16:17 -0800)]
msgr: Remove Endpoint::dispatch_queue and queue_message;
set up local pipe and necessary routing code.
Also, fix potential locking issue by pushing message onto
queue before pushing queue to round-robin
Greg Farnum [Tue, 8 Dec 2009 01:58:33 +0000 (17:58 -0800)]
msgr: Add queues, etc needed for message delivery by round-robin pipe
Greg Farnum [Mon, 7 Dec 2009 22:30:54 +0000 (14:30 -0800)]
msgr: rename pipe's outbound message queue
Sage Weil [Thu, 10 Dec 2009 21:01:35 +0000 (13:01 -0800)]
config: parse 'lockdep' option in .conf
Sage Weil [Thu, 10 Dec 2009 21:01:27 +0000 (13:01 -0800)]
ceph.conf.sepia: more osds, lockdep
Sage Weil [Thu, 10 Dec 2009 18:03:44 +0000 (10:03 -0800)]
mon: log error, don't abort, on stray pg_stat notify
Sage Weil [Thu, 10 Dec 2009 17:56:54 +0000 (09:56 -0800)]
osd: set pg_stat.created
Sage Weil [Thu, 10 Dec 2009 17:46:15 +0000 (09:46 -0800)]
osd: respond to query on uncreated pg with empty info; do not create
We should never create a PG* for an uncreated pg except through the mkpg
path.
Sage Weil [Thu, 10 Dec 2009 16:28:31 +0000 (08:28 -0800)]
mon: stop trying to create localized pgs >= max osd|device
If lpg_num == lpgp_num, and the preferred osd no longer exists, there is
no guarantee that the parent and child pgs will land on the same osd. This
happens when we are creating pgs for a new osd, they don't finish getting
created, and then we destroy that OSD again.
Care should be taken to avoid expanding the OSD count _and_ lpg_num
simultaneously...
Sage Weil [Thu, 10 Dec 2009 00:06:45 +0000 (16:06 -0800)]
todo
Sage Weil [Wed, 9 Dec 2009 23:56:53 +0000 (15:56 -0800)]
osd: fix mark_down on heartbeat_messenger addrs
This fixes residual outgoing connect attempts and
subsequent 'wrong node' messages from old outgoing
osd_ping messages that never leave our queues.
Sage Weil [Wed, 9 Dec 2009 21:38:25 +0000 (13:38 -0800)]
filestore: avoid string copy after collection_list sort
Sage Weil [Wed, 9 Dec 2009 19:58:55 +0000 (11:58 -0800)]
osd: don't forcefeed bad (large) device ids to crush
Sage Weil [Wed, 9 Dec 2009 18:43:37 +0000 (10:43 -0800)]
filestore: test xattrs on basedir/fsid, not basedir
The basedir might have differing permissions.
Sage Weil [Wed, 9 Dec 2009 18:27:52 +0000 (10:27 -0800)]
ceph.conf.cosd changes
Sage Weil [Wed, 9 Dec 2009 18:21:04 +0000 (10:21 -0800)]
osd: drop old osdmap compatibility cruft
This is old enough to have been superceded by a full disk format rev.
Sage Weil [Wed, 9 Dec 2009 18:17:30 +0000 (10:17 -0800)]
osd: fix decoding for old osdmaps (pre osd hb change)
Including ugly hack to work around badly encoded v3 maps
Sage Weil [Tue, 8 Dec 2009 19:58:31 +0000 (11:58 -0800)]
mds: mark down stray connections on reset
Sage Weil [Tue, 8 Dec 2009 16:25:34 +0000 (08:25 -0800)]
vstart: add --smallmds option
Sage Weil [Tue, 8 Dec 2009 16:25:21 +0000 (08:25 -0800)]
logger: avoid dup lines when we get behind
If we get behind (say, after SIGSTOP ... SIGCONT),
instead of printing dup lines for every interval we missed,
print just the first and last. That will make any graph
have a nice, hopefully obvious perfectly horizontal line.
Yehuda Sadeh [Tue, 8 Dec 2009 00:48:35 +0000 (16:48 -0800)]
qa: add bonnie++ to the workunits
Sage Weil [Mon, 7 Dec 2009 22:28:45 +0000 (14:28 -0800)]
filestore: limit size of flusher queue
Limit the size of the flusher queue to avoid hitting max open files
limit. If we hit the max, just don't queue async flush, so we close the
fd immediately.
Sage Weil [Mon, 7 Dec 2009 21:47:50 +0000 (13:47 -0800)]
osd: rev cluster protocol to match osd hearbeat change
Greg Farnum [Sat, 5 Dec 2009 02:23:12 +0000 (18:23 -0800)]
msgr: Only allow one local endpoint; now has simpler, less iterative code!
Greg Farnum [Fri, 4 Dec 2009 22:37:28 +0000 (14:37 -0800)]
osd: Now uses separate messenger for heartbeats.
Includes changes to OSDMonitor and OSDMap so things keep working
Greg Farnum [Fri, 4 Dec 2009 19:40:41 +0000 (11:40 -0800)]
rados: benching sequential reads can now have a time limit
Greg Farnum [Fri, 4 Dec 2009 19:06:35 +0000 (11:06 -0800)]
rados: change benchmark interface and record objects written/size to osds
Sage Weil [Fri, 4 Dec 2009 20:07:31 +0000 (12:07 -0800)]
mds: debug reconnect timeouts
Sage Weil [Fri, 4 Dec 2009 20:07:18 +0000 (12:07 -0800)]
debian: only upload tarball whem building amd64
For some reason lenny32-packager includes binaries in
the 'make dist' tarball. Lame.