From patchwork Tue Nov 20 17:18:21 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [3.5.yuz, extended, stable] Patch "libceph: reset connection retry on successfully" has been added to staging queue Date: Tue, 20 Nov 2012 07:18:21 -0000 From: Herton Ronaldo Krzesinski X-Patchwork-Id: 200461 Message-Id: <1353431901-10090-1-git-send-email-herton.krzesinski@canonical.com> To: Sage Weil Cc: Alex Elder , kernel-team@lists.ubuntu.com, Yehuda Sadeh This is a note to let you know that I have just added a patch titled libceph: reset connection retry on successfully to the linux-3.5.y-queue branch of the 3.5.yuz extended stable tree which can be found at: http://kernel.ubuntu.com/git?p=ubuntu/linux.git;a=shortlog;h=refs/heads/linux-3.5.y-queue If you, or anyone else, feels it should not be added to this tree, please reply to this email. For more information about the 3.5.yuz tree, see https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable Thanks. -Herton ------ >From b8e83dd39db9311d5e939a95875777832d45a8a6 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 30 Jul 2012 16:22:05 -0700 Subject: [PATCH 53/78] libceph: reset connection retry on successfully negotiation commit 85effe183dd45854d1ad1a370b88cddb403c4c91 upstream. 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 Reviewed-by: Yehuda Sadeh Reviewed-by: Alex Elder Signed-off-by: Herton Ronaldo Krzesinski --- net/ceph/messenger.c | 2 ++ 1 file changed, 2 insertions(+) -- 1.7.9.5 diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c index a477998..07204f1 100644 --- a/net/ceph/messenger.c +++ b/net/ceph/messenger.c @@ -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;