You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sentry.apache.org by va...@apache.org on 2017/06/14 00:56:53 UTC
[15/52] [abbrv] sentry git commit: SENTRY-1759: UpdatableCache leaks
connections (Alex Kolbasov, reviewed by: Vamsee Yarlagadda, Na Li,
Sergio Pena and Kalyan Kalvagadda)
SENTRY-1759: UpdatableCache leaks connections (Alex Kolbasov, reviewed by: Vamsee Yarlagadda, Na Li, Sergio Pena and Kalyan Kalvagadda)
Change-Id: Ifc8462e9a9f57cc906a46de33c29b5235f70631a
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/22476
Tested-by: Jenkins User
Reviewed-by: Alexander Kolbasov <ak...@cloudera.com>
Project: http://git-wip-us.apache.org/repos/asf/sentry/repo
Commit: http://git-wip-us.apache.org/repos/asf/sentry/commit/d8e22821
Tree: http://git-wip-us.apache.org/repos/asf/sentry/tree/d8e22821
Diff: http://git-wip-us.apache.org/repos/asf/sentry/diff/d8e22821
Branch: refs/for/cdh5-1.5.1_ha
Commit: d8e228212fa2d87c8850a4814c5b9b6f6aca8565
Parents: a32f977
Author: Alexander Kolbasov <ak...@cloudera.com>
Authored: Wed May 10 13:50:59 2017 -0700
Committer: Alexander Kolbasov <ak...@cloudera.com>
Committed: Wed May 10 16:43:56 2017 -0700
----------------------------------------------------------------------
.../provider/db/generic/UpdatableCache.java | 35 ++++++++++++--------
1 file changed, 21 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/sentry/blob/d8e22821/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/generic/UpdatableCache.java
----------------------------------------------------------------------
diff --git a/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/generic/UpdatableCache.java b/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/generic/UpdatableCache.java
index f272630..a126f35 100644
--- a/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/generic/UpdatableCache.java
+++ b/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/generic/UpdatableCache.java
@@ -94,22 +94,29 @@ class UpdatableCache implements TableCache {
String requestor;
requestor = UserGroupInformation.getLoginUser().getShortUserName();
- final SentryGenericServiceClient client = getClient();
- final Set<TSentryRole> tSentryRoles = client.listAllRoles(requestor, componentType);
-
- for (TSentryRole tSentryRole : tSentryRoles) {
- final String roleName = tSentryRole.getRoleName();
- final Set<TSentryPrivilege> tSentryPrivileges = client.listPrivilegesByRoleName(requestor, roleName, componentType, serviceName);
- for (String group : tSentryRole.getGroups()) {
- Set<String> currentPrivileges = tempCache.get(group, roleName);
- if (currentPrivileges == null) {
- currentPrivileges = new HashSet<>();
- tempCache.put(group, roleName, currentPrivileges);
- }
- for (TSentryPrivilege tSentryPrivilege : tSentryPrivileges) {
- currentPrivileges.add(tSentryPrivilegeConverter.toString(tSentryPrivilege));
+ SentryGenericServiceClient client = null;
+ try {
+ client = getClient(); // will be closed in finaly clause
+ final Set<TSentryRole> tSentryRoles = client.listAllRoles(requestor, componentType);
+
+ for (TSentryRole tSentryRole : tSentryRoles) {
+ final String roleName = tSentryRole.getRoleName();
+ final Set<TSentryPrivilege> tSentryPrivileges = client.listPrivilegesByRoleName(requestor, roleName, componentType, serviceName);
+ for (String group : tSentryRole.getGroups()) {
+ Set<String> currentPrivileges = tempCache.get(group, roleName);
+ if (currentPrivileges == null) {
+ currentPrivileges = new HashSet<>();
+ tempCache.put(group, roleName, currentPrivileges);
+ }
+ for (TSentryPrivilege tSentryPrivilege : tSentryPrivileges) {
+ currentPrivileges.add(tSentryPrivilegeConverter.toString(tSentryPrivilege));
+ }
}
}
+ } finally {
+ if (client != null) {
+ client.close();
+ }
}
return tempCache;
}