From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bob Peterson Date: Mon, 24 Apr 2017 08:37:03 -0400 (EDT) Subject: [Cluster-devel] DLM: Do not count redundant connection attempts against retries In-Reply-To: <20170420203338.GA525@redhat.com> References: <483789947.17531984.1492718540635.JavaMail.zimbra@redhat.com> <20170420203338.GA525@redhat.com> Message-ID: <66949810.339276.1493037423473.JavaMail.zimbra@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit ----- Original Message ----- | On Thu, Apr 20, 2017 at 04:02:20PM -0400, Bob Peterson wrote: | > Hi, | > | > Before this patch, multiple GFS2 mounts would result in multiple | > connection attempts. They were all ignored, and rightly so, but | > they were being counted against the connection attempt retries. | > This patch moves the retry check later those redundant attempts | > are simply ignored, as they should be. | | Each mount/dlm_new_lockspace() calls dlm_lowcomm_connect_node() to | establish connections to other nodes in the lockspace. If a connection to | a node already exists, nothing is needed, but it seems strange this isn't | checked earlier, e.g. in dlm_lowcomms_connect_node() or | lowcomms_connect_sock(). Maybe concurrent closes or connects require | checking things in tcp_connect_to_sock()? | | Dave | | > | > Signed-off-by: Bob Peterson | > --- | > diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c | > index 7d398d3..42c8457 100644 | > --- a/fs/dlm/lowcomms.c | > +++ b/fs/dlm/lowcomms.c | > @@ -1123,13 +1123,13 @@ static void tcp_connect_to_sock(struct connection | > *con) | > } | > | > mutex_lock(&con->sock_mutex); | > - if (con->retries++ > MAX_CONNECT_RETRIES) | > - goto out; | > - | > /* Some odd races can cause double-connects, ignore them */ | > if (con->sock) | > goto out; | > | > + if (con->retries++ > MAX_CONNECT_RETRIES) | > + goto out; | > + | > /* Create a socket to communicate with */ | > result = sock_create_kern(&init_net, dlm_local_addr[0]->ss_family, | > SOCK_STREAM, IPPROTO_TCP, &sock); | Hi, Perhaps we should ask Chrissie, since afaik, she authored lowcomms.c, and patch 391fbdc5d5 in particular, which added function dlm_lowcomms_connect_node(). She might have more insight than me, having known the original intent of the code. Adding her to the cc. Regards, Bob Peterson Red Hat File Systems