]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
msgr: Test reconnect protocol changes.
authorGreg Farnum <gregf@hq.newdream.net>
Mon, 13 Sep 2010 19:02:30 +0000 (12:02 -0700)
committerGreg Farnum <gregf@hq.newdream.net>
Mon, 13 Sep 2010 19:02:30 +0000 (12:02 -0700)
src/config.cc
src/msg/Message.h
src/msg/SimpleMessenger.cc
src/msg/SimpleMessenger.h
src/vstart.sh

index 5820b10370dac6db2d9478938d41e2998ee99b10..edfe208b1c1da732b77b1b79abc8bcf254c11d58 100644 (file)
@@ -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),
index f4a460160c0fe7e3d14520f9e714e34923c1ce80..6c64ce20d507d7d17100e78e19f0f24c68f3a731 100644 (file)
@@ -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;
   }
index f0a2449a6adaa51c2be32ff7ed78e9181cac4715..5d6874c64cc2aaae520f1064118a138d878863e7 100644 (file)
@@ -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<int, list<Message*> >::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);
index 0b9b46ee76552f5d4e7e7de60df4b8f7aa1072ab..1669d14f015f3eb38f4cdae503c3e8d5324e8a07 100644 (file)
@@ -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<int, xlist<Pipe *>::item* >::iterator i = queue_items.begin();
           i != queue_items.end();
           ++i) {
index 282ce17a2ff7123070e40e67ae582521fc8640ed..58ddff74c7d7bd7f2429a03e11f688a3b66ee697 100755 (executable)
@@ -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