From ba140b5a6d1bafe7f953819f682758ab552edfd4 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 17 Dec 2008 10:30:42 -0800 Subject: [PATCH] msgr: stop accepter on socket error Only if we get a few in a row. --- src/msg/SimpleMessenger.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/msg/SimpleMessenger.cc b/src/msg/SimpleMessenger.cc index daf8998c60cd..a3c9bd9f8fae 100644 --- a/src/msg/SimpleMessenger.cc +++ b/src/msg/SimpleMessenger.cc @@ -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; } } -- 2.47.3