]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
msgr: tolerate 0 bytes from tcp_read_nonblocking
authorSage Weil <sage@newdream.net>
Tue, 23 Nov 2010 00:12:10 +0000 (16:12 -0800)
committerSage Weil <sage@newdream.net>
Tue, 23 Nov 2010 00:12:10 +0000 (16:12 -0800)
This can happen, I belive when we get a signal or something.

Signed-off-by: Sage Weil <sage@newdream.net>
src/msg/SimpleMessenger.cc

index d649bd2a42e57ad38c46c03cba5539c699752f72..8d160f8e2cad90f2f2878f57d262fa699dc34637 100644 (file)
@@ -1910,11 +1910,12 @@ int SimpleMessenger::Pipe::read_message(Message **pm)
       connection_state->lock.Unlock();
       if (got < 0)
        goto out_dethrottle;
-      assert(got > 0);  // hmm.. right?
-      blp.advance(got);
-      data.append(bp, 0, got);
-      offset += got;
-      left -= got;
+      if (got > 0) {
+       blp.advance(got);
+       data.append(bp, 0, got);
+       offset += got;
+       left -= got;
+      } // else we got a signal or something; just loop.
     }
   }