]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
msgr: stop accepter on socket error
authorSage Weil <sage@newdream.net>
Wed, 17 Dec 2008 18:30:42 +0000 (10:30 -0800)
committerSage Weil <sage@newdream.net>
Wed, 17 Dec 2008 18:32:09 +0000 (10:32 -0800)
Only if we get a few in a row.

src/msg/SimpleMessenger.cc

index daf8998c60cd11fad9733fc065c314701c2f018a..a3c9bd9f8fae88f362ced2808e9e46392b579800 100644 (file)
@@ -208,6 +208,7 @@ void *Rank::Accepter::entry()
   dout(10) << "accepter starting" << dendl;
   
   fd_set fds;
+  int errors = 0;
   while (!done) {
     FD_ZERO(&fds);
     FD_SET(listen_sd, &fds);
@@ -222,6 +223,7 @@ void *Rank::Accepter::entry()
     socklen_t slen = sizeof(addr);
     int sd = ::accept(listen_sd, (sockaddr*)&addr, &slen);
     if (sd >= 0) {
+      errors = 0;
       opened_socket();
       dout(10) << "accepted incoming on sd " << sd << dendl;
       
@@ -242,7 +244,9 @@ void *Rank::Accepter::entry()
       }
       rank.lock.Unlock();
     } else {
-      dout(10) << "accepter no incoming connection?  sd = " << sd << " errno " << errno << " " << strerror(errno) << dendl;
+      dout(0) << "accepter no incoming connection?  sd = " << sd << " errno " << errno << " " << strerror(errno) << dendl;
+      if (++errors > 4)
+       break;
     }
   }