Skip to content

Commit

Permalink
libceph: reset connection retry on successfully negotiation
Browse files Browse the repository at this point in the history
We exponentially back off when we encounter connection errors.  If several
errors accumulate, we will eventually wait ages before even trying to
reconnect.

Fix this by resetting the backoff counter after a successful negotiation/
connection with the remote node.  Fixes ceph issue #2802.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
Reviewed-by: Alex Elder <elder@inktank.com>
  • Loading branch information
Sage Weil committed Jul 31, 2012
1 parent 5469155 commit 85effe1
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions net/ceph/messenger.c
Original file line number Diff line number Diff line change
Expand Up @@ -1629,6 +1629,8 @@ static int process_connect(struct ceph_connection *con)
if (con->in_reply.flags & CEPH_MSG_CONNECT_LOSSY)
set_bit(LOSSYTX, &con->flags);

con->delay = 0; /* reset backoff memory */

prepare_read_tag(con);
break;

Expand Down

0 comments on commit 85effe1

Please sign in to comment.