From patchwork Fri Jan 15 14:50:42 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ilya Dryomov X-Patchwork-Id: 8041631 Return-Path: X-Original-To: patchwork-ceph-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 20FA8BEEE5 for ; Fri, 15 Jan 2016 14:51:26 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 52B7D203E1 for ; Fri, 15 Jan 2016 14:51:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7F61820434 for ; Fri, 15 Jan 2016 14:51:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754047AbcAOOvM (ORCPT ); Fri, 15 Jan 2016 09:51:12 -0500 Received: from mail-wm0-f68.google.com ([74.125.82.68]:33933 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754031AbcAOOvL (ORCPT ); Fri, 15 Jan 2016 09:51:11 -0500 Received: by mail-wm0-f68.google.com with SMTP id b14so3233944wmb.1 for ; Fri, 15 Jan 2016 06:51:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=kNqJhOQBCFtRSH5pZozOHQ2mNd6euvOEAbf5LSMf15U=; b=Ms6WSOpocjkawsWu6WW73rvLyHRrUHetgmfi5+9tNmXzKcCfATuhyNAxQHjhr763RV HLhEkrjUS3Euk7kO1JD5Mg7cKgqkZHCaoPw7uNd8sjQryHRozapn9WCMUNs2T6/LwA48 PW0OQ12broEEdgWimbvjvhtRPDmyzszWQ4CfGKgHpVrfGSVZkHg81999fd4GwT8YsGtc qssDqmIJUOypgEt4CYr0MCehVCI3z7trLVmnQtvAtvJmLRXQOSi1qeGalpiQbkxU8C5h Dv5A3pZfzQk/tkVxMqtUViHr1t+Vnd11yRAF9yCg0vhfgquJu2E68LLcQuETbPzAqC9I 1VQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=kNqJhOQBCFtRSH5pZozOHQ2mNd6euvOEAbf5LSMf15U=; b=JhcCFHFQbLDGlAZEc/jv+rit5qmmVVpHKmLJo3t/dQjjR5VpL6qXDeAOpT5tOXLLKV SNsnpNR9hiF/THs3fzqbZv5SAzbPnNOhri87nnD0+zT4XhH4m0S7CHUNz6f2jQdXLIs7 Z0O7A/nvvtZPFmMK0QNvkCF+T4cOcSSvDejAYD7b6Tsfa03aLef9jKQhTs6XXzLC8R0D uKggRGrGibzl3Agel/D6jVcLV8LK8DGxvI5O9LGLfVjZpZX5j+Wt9KXEKE7Le/3uA7BQ b1qu92HY58EyxQgOnolJYyFI/awCjx/+oWupgNDI8upR3R94cM42qOpJlEEZf37l6HA6 PFgw== X-Gm-Message-State: AG10YOS8IiiCFJ88TZ7C+uPgKi8v20qqPL/DqCiXuASFYlJsYTE+rUbrvYhxeZD97Jl/dw== X-Received: by 10.28.30.210 with SMTP id e201mr4087108wme.42.1452869470054; Fri, 15 Jan 2016 06:51:10 -0800 (PST) Received: from dhcp-27-199.brq.redhat.com (nat-pool-brq-t.redhat.com. [213.175.37.10]) by smtp.gmail.com with ESMTPSA id jm4sm10939876wjb.7.2016.01.15.06.51.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Jan 2016 06:51:09 -0800 (PST) From: Ilya Dryomov To: ceph-devel@vger.kernel.org Cc: Sage Weil Subject: [PATCH 1/4] libceph: clear messenger auth_retry flag if we fault Date: Fri, 15 Jan 2016 15:50:42 +0100 Message-Id: <1452869445-10228-2-git-send-email-idryomov@gmail.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1452869445-10228-1-git-send-email-idryomov@gmail.com> References: <1452869445-10228-1-git-send-email-idryomov@gmail.com> Sender: ceph-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: ceph-devel@vger.kernel.org X-Spam-Status: No, score=-6.8 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Commit 20e55c4cc758 ("libceph: clear messenger auth_retry flag when we authenticate") got us only half way there. We clear the flag if the second attempt succeeds, but it also needs to be cleared if that attempt fails, to allow for the exponential backoff to kick in. Otherwise, if ->should_authenticate() thinks our keys are valid, we will busy loop, incrementing auth_retry to no avail: process_connect ffff880079a63830 got BADAUTHORIZER attempt 1 process_connect ffff880079a63830 got BADAUTHORIZER attempt 2 process_connect ffff880079a63830 got BADAUTHORIZER attempt 3 process_connect ffff880079a63830 got BADAUTHORIZER attempt 4 process_connect ffff880079a63830 got BADAUTHORIZER attempt 5 ... Signed-off-by: Ilya Dryomov --- net/ceph/messenger.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c index 3850d1a5bd7c..9cfedf565f5b 100644 --- a/net/ceph/messenger.c +++ b/net/ceph/messenger.c @@ -2827,13 +2827,17 @@ static bool con_backoff(struct ceph_connection *con) static void con_fault_finish(struct ceph_connection *con) { + dout("%s %p\n", __func__, con); + /* * in case we faulted due to authentication, invalidate our * current tickets so that we can get new ones. */ - if (con->auth_retry && con->ops->invalidate_authorizer) { - dout("calling invalidate_authorizer()\n"); - con->ops->invalidate_authorizer(con); + if (con->auth_retry) { + dout("auth_retry %d, invalidating\n", con->auth_retry); + if (con->ops->invalidate_authorizer) + con->ops->invalidate_authorizer(con); + con->auth_retry = 0; } if (con->ops->fault)