From: Greg Farnum Date: Mon, 13 Sep 2010 19:02:30 +0000 (-0700) Subject: msgr: Test reconnect protocol changes. X-Git-Tag: v0.22~168^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7349bce8a304231855468503eb32d0167d6955bb;p=ceph.git msgr: Test reconnect protocol changes. --- diff --git a/src/config.cc b/src/config.cc index 5820b10370da..edfe208b1c1d 100644 --- a/src/config.cc +++ b/src/config.cc @@ -280,7 +280,7 @@ static struct config_option config_optionsp[] = { OPTION(fake_clock, 0, OPT_BOOL, false), OPTION(fakemessenger_serialize, 0, OPT_BOOL, true), OPTION(kill_after, 0, OPT_INT, 0), - OPTION(debug, 0, OPT_INT, 0), + OPTION(debug, 0, OPT_INT, 1), OPTION(debug_lockdep, 0, OPT_INT, 0), OPTION(debug_mds, 0, OPT_INT, 1), OPTION(debug_mds_balancer, 0, OPT_INT, 1), diff --git a/src/msg/Message.h b/src/msg/Message.h index f4a460160c0f..6c64ce20d507 100644 --- a/src/msg/Message.h +++ b/src/msg/Message.h @@ -146,12 +146,12 @@ struct RefCountedObject { virtual ~RefCountedObject() {} RefCountedObject *get() { - //generic_dout(0) << "RefCountedObject::get " << this << " " << nref.read() << " -> " << (nref.read() + 1) << dendl; + generic_dout(1) << "RefCountedObject::get " << this << " " << nref.read() << " -> " << (nref.read() + 1) << dendl; nref.inc(); return this; } void put() { - //generic_dout(0) << "RefCountedObject::put " << this << " " << nref.read() << " -> " << (nref.read() - 1) << dendl; + generic_dout(1) << "RefCountedObject::put " << this << " " << nref.read() << " -> " << (nref.read() - 1) << dendl; if (nref.dec() == 0) delete this; } diff --git a/src/msg/SimpleMessenger.cc b/src/msg/SimpleMessenger.cc index f0a2449a6ada..5d6874c64cc2 100644 --- a/src/msg/SimpleMessenger.cc +++ b/src/msg/SimpleMessenger.cc @@ -865,6 +865,7 @@ int SimpleMessenger::Pipe::accept() out_seq = existing->out_seq; in_seq = existing->in_seq; in_seq_acked = in_seq; + last_close = existing->last_close; dout(10) << "accept out_seq " << out_seq << " in_seq " << in_seq << dendl; for (map >::iterator p = existing->out_q.begin(); p != existing->out_q.end(); @@ -1661,7 +1662,14 @@ void SimpleMessenger::Pipe::writer() } continue; } - + dout(1) << "out_seq:" << out_seq << dendl; + if (!policy.lossy && policy.server && out_seq > last_close && !(out_seq % 25)) { + dout(0) << "closing sd on out_seq " << out_seq + << " for testing, last_close is " << last_close << dendl; + last_close = out_seq; + close(sd); + sd = -1; + } // wait dout(20) << "writer sleeping" << dendl; cond.Wait(pipe_lock); diff --git a/src/msg/SimpleMessenger.h b/src/msg/SimpleMessenger.h index 0b9b46ee7655..1669d14f015f 100644 --- a/src/msg/SimpleMessenger.h +++ b/src/msg/SimpleMessenger.h @@ -152,6 +152,7 @@ private: __u32 connect_seq, peer_global_seq; uint64_t out_seq; uint64_t in_seq, in_seq_acked; + uint64_t last_close; int accept(); // server handshake int connect(); // client handshake @@ -211,11 +212,15 @@ private: reader_running(false), reader_joining(false), writer_running(false), in_qlen(0), keepalive(false), connect_seq(0), peer_global_seq(0), - out_seq(0), in_seq(0), in_seq_acked(0), + out_seq(0), in_seq(0), in_seq_acked(0), last_close(0), reader_thread(this), writer_thread(this) { connection_state->pipe = get(); + generic_dout(1) << "creating pipe " << this << " with connection " + << connection_state << dendl; } ~Pipe() { + generic_dout(1) << "deleting pipe " << this << " with connection " + << connection_state << dendl; for (map::item* >::iterator i = queue_items.begin(); i != queue_items.end(); ++i) { diff --git a/src/vstart.sh b/src/vstart.sh index 282ce17a2ff7..58ddff74c7d7 100755 --- a/src/vstart.sh +++ b/src/vstart.sh @@ -157,17 +157,17 @@ else debug mon = 20 debug paxos = 20 debug auth = 20 - debug ms = 1' + debug ms = 20' COSDDEBUG=' lockdep = 1 - debug ms = 1 + debug ms = 20 debug osd = 25 debug monc = 20 debug journal = 20 debug filestore = 10' CMDSDEBUG=' lockdep = 1 - debug ms = 1 + debug ms = 20 debug mds = 20 debug auth = 20 debug monc = 20