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]