Commit Graph

9044 Commits

Author SHA1 Message Date
Greg Farnum
032d9751e0 msgr: SimpleMessenger is now a Messenger itself -- sort of 2010-01-06 17:18:48 -08:00
Greg Farnum
98bdb8bf46 msgr: remove rank number from endpoint, since there's only one.
Remove Endpoint's wait() method as it's unused.
2010-01-06 17:18:48 -08:00
Sage Weil
11fed1b078 todo 2010-01-06 16:08:29 -08:00
Sage Weil
d52e8d2a51 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.
2010-01-06 16:03:31 -08:00
Sage Weil
14f2c78614 qa: dl pjd.tgz
Then we can switch the symlink later
2009-12-28 20:05:32 -08:00
Sage Weil
a929438706 todo, sepia reformat 2009-12-28 20:05:32 -08:00
Sage Weil
2de29d2b81 mds: change MClientReconnect encoding (mds protocol change)
This simplifies the encoding to make life easier for the kclient.
2009-12-28 20:05:32 -08:00
Sage Weil
2492449195 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.
2009-12-28 20:05:32 -08:00
Sage Weil
ed96d871de 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.
2009-12-28 20:05:32 -08:00
Sage Weil
076e0dd798 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.
2009-12-28 20:05:32 -08:00
Sage Weil
6d2bfb5647 uclient: don't renew caps while mds is recovering
waste of time and memory
2009-12-28 20:05:32 -08:00
Sage Weil
93dd9f03ac 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.
2009-12-23 15:54:50 -08:00
Sage Weil
40bcc6b41c todo 2009-12-23 08:52:18 -08:00
Sage Weil
e7892cd0e0 osd: prioritized repop acks
This may not make much of a difference, but it won't hurt.
2009-12-23 08:52:18 -08:00
Sage Weil
3ef32643f2 qa: don't fail rm of old log 2009-12-23 08:52:18 -08:00
Sage Weil
775d6825b2 qa: make logging more forgiving 2009-12-23 08:52:18 -08:00
Sage Weil
e357203e84 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.
2009-12-23 08:52:18 -08:00
Sage Weil
87682d1116 osd: put meta_coll const in OSD.{cc,h} 2009-12-23 08:52:18 -08:00
Sage Weil
eae3004968 filejournal: delete[] not delete 2009-12-23 08:52:18 -08:00
Sage Weil
37f04d9b96 backtrace: fix #includes for ppc 2009-12-23 08:52:18 -08:00
Sage Weil
4bfa758bf5 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?
2009-12-23 08:52:18 -08:00
Sage Weil
e5ff1489d4 change LP64 ifdefs to casts for printf formatting 2009-12-23 08:52:18 -08:00
Sage Weil
2c328d123f logger: cleanup 64 2009-12-23 08:52:17 -08:00
Sage Weil
0fb2ac19e1 todo, confs 2009-12-23 08:52:17 -08:00
Sage Weil
d06992d70f msgr: include features in connection handshake (protocol change) 2009-12-23 08:52:13 -08:00
Sage Weil
4e7b383b42 msgr: put tid in ceph_msg_header (protocol change) 2009-12-22 11:41:47 -08:00
Sage Weil
b3808b45c3 todo more bugs 2009-12-21 16:46:05 -08:00
Sage Weil
bef2ac0c7b assert: leave cruft off top of assert failure backtrace
no more
 1: (__ceph_assert_fail(char const*, char const*, int, char const*)+0x34) [0x7ea7ea]
2009-12-21 16:28:27 -08:00
Sage Weil
6dbb7188b9 backtrace: demangle c++ names
Finally!
2009-12-21 16:26:07 -08:00
Sage Weil
a4f1430b08 todo bugs 2009-12-19 21:09:23 -08:00
Greg Farnum
f579387102 mds: new commands!
issue_caps inodenumber calls locker->issue_caps
try_eval inodenumber mask calls locker->try_eval
2009-12-18 16:13:42 -08:00
Greg Farnum
b6b7ba57c8 mds: new command kill session xxxx ends that client session 2009-12-17 14:29:13 -08:00
Greg Farnum
196f277912 create a new function end_session to end client sessions 2009-12-17 14:27:59 -08:00
Sage Weil
6dce782635 vstart: allow -o 'some option for config file = whatever' 2009-12-17 11:32:42 -08:00
Sage Weil
00f6cf573e osd: fix PG print log bound check 2009-12-17 11:32:28 -08:00
Sage Weil
299d620aff todo (bugs) 2009-12-17 11:32:21 -08:00
Greg Farnum
54b8cd34fe 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
2009-12-15 16:17:29 -08:00
Sage Weil
e066744d4d todo (bugs, filestore notes) 2009-12-15 14:13:37 -08:00
Sage Weil
22701b3c9a 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.
2009-12-15 14:13:37 -08:00
Sage Weil
e2ca4eb7da msgr: don't keep sent messages on lossy connections 2009-12-15 14:13:37 -08:00
Sage Weil
687cc4141e mds: log client timeouts 2009-12-15 14:13:37 -08:00
Sage Weil
dd2eeeff71 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.
2009-12-15 14:13:37 -08:00
Greg Farnum
580dd13514 qa: Copy the output of each test to a log file 2009-12-15 13:23:23 -08:00
Greg Farnum
796d3ba3c5 qa: Whoops, never added the runonkclient script 2009-12-14 15:46:06 -08:00
Yehuda Sadeh
6fc3f5e1b9 auth: rename mutex so that it doesn't confuse lockdep 2009-12-14 11:29:44 -08:00
Sage Weil
6e72b201e1 msgr: maintain per-pipe in_qlen; avoid list.size(); some cleanup 2009-12-11 13:40:53 -08:00
Sage Weil
e243c7fb3f librados: fix locking slightly
Lock was missing on aio_read.
2009-12-11 12:42:43 -08:00
Sage Weil
43ab6e519c qa: fix runallonce target dir verification 2009-12-11 11:56:27 -08:00
Sage Weil
2611a57fdb filestore: disable USERTRANS for now 2009-12-11 11:56:27 -08:00
Sage Weil
105b6698ac todo 2009-12-11 12:03:29 -08:00