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

weichiu pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/trunk by this push:
     new db73e99  HADOOP-16881. KerberosAuthentication does not disconnect 
HttpURLConnection leading to CLOSE_WAIT cnxns. Contributed by Attila Magyar.
db73e99 is described below

commit db73e994edac5dee86d38ba891d8cd13be50773d
Author: Attila Magyar <[email protected]>
AuthorDate: Thu Dec 3 12:01:54 2020 -0800

    HADOOP-16881. KerberosAuthentication does not disconnect HttpURLConnection 
leading to CLOSE_WAIT cnxns. Contributed by Attila Magyar.
    
    Signed-off-by: Wei-Chiu Chuang <[email protected]>
---
 .../security/authentication/client/KerberosAuthenticator.java      | 7 ++++++-
 .../token/delegation/web/DelegationTokenAuthenticator.java         | 6 +++++-
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git 
a/hadoop-common-project/hadoop-auth/src/main/java/org/apache/hadoop/security/authentication/client/KerberosAuthenticator.java
 
b/hadoop-common-project/hadoop-auth/src/main/java/org/apache/hadoop/security/authentication/client/KerberosAuthenticator.java
index 3bfa349..c035dd4 100644
--- 
a/hadoop-common-project/hadoop-auth/src/main/java/org/apache/hadoop/security/authentication/client/KerberosAuthenticator.java
+++ 
b/hadoop-common-project/hadoop-auth/src/main/java/org/apache/hadoop/security/authentication/client/KerberosAuthenticator.java
@@ -183,8 +183,9 @@ public class KerberosAuthenticator implements Authenticator 
{
     if (!token.isSet()) {
       this.url = url;
       base64 = new Base64(0);
+      HttpURLConnection conn = null;
       try {
-        HttpURLConnection conn = token.openConnection(url, connConfigurator);
+        conn = token.openConnection(url, connConfigurator);
         conn.setRequestMethod(AUTH_HTTP_METHOD);
         conn.connect();
 
@@ -218,6 +219,10 @@ public class KerberosAuthenticator implements 
Authenticator {
       } catch (AuthenticationException ex){
         throw wrapExceptionWithMessage(ex,
             "Error while authenticating with endpoint: " + url);
+      } finally {
+        if (conn != null) {
+          conn.disconnect();
+        }
       }
     }
   }
diff --git 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/token/delegation/web/DelegationTokenAuthenticator.java
 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/token/delegation/web/DelegationTokenAuthenticator.java
index 4e2ee4f..8546a76 100644
--- 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/token/delegation/web/DelegationTokenAuthenticator.java
+++ 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/token/delegation/web/DelegationTokenAuthenticator.java
@@ -312,8 +312,9 @@ public abstract class DelegationTokenAuthenticator 
implements Authenticator {
       dt = ((DelegationTokenAuthenticatedURL.Token) 
token).getDelegationToken();
       ((DelegationTokenAuthenticatedURL.Token) token).setDelegationToken(null);
     }
+    HttpURLConnection conn = null;
     try {
-      HttpURLConnection conn = aUrl.openConnection(url, token);
+      conn = aUrl.openConnection(url, token);
       conn.setRequestMethod(operation.getHttpMethod());
       HttpExceptionUtils.validateResponse(conn, HttpURLConnection.HTTP_OK);
       if (hasResponse) {
@@ -339,6 +340,9 @@ public abstract class DelegationTokenAuthenticator 
implements Authenticator {
       if (dt != null) {
         ((DelegationTokenAuthenticatedURL.Token) token).setDelegationToken(dt);
       }
+      if (conn != null) {
+        conn.disconnect();
+      }
     }
     return ret;
   }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to