You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by sy...@apache.org on 2021/04/19 06:52:48 UTC

[zookeeper] branch branch-3.6 updated: ZOOKEEPER-4275: Prevent unnecessary client connection retry caused by slow SASL login

This is an automated email from the ASF dual-hosted git repository.

symat pushed a commit to branch branch-3.6
in repository https://gitbox.apache.org/repos/asf/zookeeper.git


The following commit(s) were added to refs/heads/branch-3.6 by this push:
     new 55317e9  ZOOKEEPER-4275: Prevent unnecessary client connection retry caused by slow SASL login
55317e9 is described below

commit 55317e9f6ac22b33b30d4114b8705ac4c318b385
Author: Ravi Kishore Valeti <v....@gmail.com>
AuthorDate: Mon Apr 19 06:46:15 2021 +0000

    ZOOKEEPER-4275: Prevent unnecessary client connection retry caused by slow SASL login
    
    Slowness in sasl login or subject.doAs() causes zk client to falsely assume that the server did not respond, closes connection and goes to unnecessary retries.
    
    Raising the PR for master - approved for 3.5 branch already.
    
    Author: Ravi Kishore Valeti <v....@gmail.com>
    
    Reviewers: Mate Szalay-Beko <sy...@apache.org>, Norbert Kalmar <nk...@apache.org>, Mohammad Arshad <ar...@apache.org>
    
    Closes #1685 from rvaleti/ZOOKEEPER-4275_master
    
    (cherry picked from commit c583a6e79654359b5daad5093d1730e370d3b75b)
---
 zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxn.java | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxn.java b/zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxn.java
index a727082..aeb95b6 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxn.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxn.java
@@ -1208,6 +1208,8 @@ public class ClientCnxn {
                         }
                         onConnecting(serverAddress);
                         startConnect(serverAddress);
+                        // Update now to start the connection timer right after we make a connection attempt
+                        clientCnxnSocket.updateNow();
                         clientCnxnSocket.updateLastSendAndHeard();
                     }