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