From 6981c9a66ca52a20366119df605c1a3667271394 Mon Sep 17 00:00:00 2001 From: Sean Xiao Yutong Date: Wed, 27 Jul 2022 17:39:10 +0800 Subject: [PATCH 1/3] HBASE-27246 RSGroupMappingScript#getRSGroup Should be Synchronized --- .../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java index 3b7c30ddb010..a2aa031d8369 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java @@ -219,7 +219,7 @@ static class RSGroupMappingScript { ); } - String getRSGroup(String namespace, String tablename) { + synchronized String getRSGroup(String namespace, String tablename) { if (rsgroupMappingScript == null) { return null; } From fec3c67a2ec89d138881732910624b7b6c0137e7 Mon Sep 17 00:00:00 2001 From: Sean Xiao Yutong Date: Thu, 11 Aug 2022 10:34:38 +0800 Subject: [PATCH 2/3] Make ShellCommandExecutor local variable --- .../hbase/rsgroup/RSGroupInfoManagerImpl.java | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java index a2aa031d8369..e1fd14c4ff1a 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java @@ -206,23 +206,22 @@ static class RSGroupMappingScript { static final String RS_GROUP_MAPPING_SCRIPT = "hbase.rsgroup.table.mapping.script"; static final String RS_GROUP_MAPPING_SCRIPT_TIMEOUT = "hbase.rsgroup.table.mapping.script.timeout"; - private Shell.ShellCommandExecutor rsgroupMappingScript; - RSGroupMappingScript(Configuration conf) { - String script = conf.get(RS_GROUP_MAPPING_SCRIPT); - if (script == null || script.isEmpty()) { - return; - } + private final String script; + private final long scriptTimeout; - rsgroupMappingScript = new Shell.ShellCommandExecutor(new String[] { script, "", "" }, null, - null, conf.getLong(RS_GROUP_MAPPING_SCRIPT_TIMEOUT, 5000) // 5 seconds - ); + RSGroupMappingScript(Configuration conf) { + script = conf.get(RS_GROUP_MAPPING_SCRIPT); + scriptTimeout = conf.getLong(RS_GROUP_MAPPING_SCRIPT_TIMEOUT, 5000); // 5 seconds } - synchronized String getRSGroup(String namespace, String tablename) { - if (rsgroupMappingScript == null) { + String getRSGroup(String namespace, String tablename) { + if (script == null || script.isEmpty()) { return null; } + Shell.ShellCommandExecutor rsgroupMappingScript = new Shell.ShellCommandExecutor(new String[] + { script, "", "" }, null, null, scriptTimeout); + String[] exec = rsgroupMappingScript.getExecString(); exec[1] = namespace; exec[2] = tablename; From 3412f8be66a1182adbf1ae098e104621b1dfacaf Mon Sep 17 00:00:00 2001 From: Sean Xiao Yutong Date: Wed, 24 Aug 2022 10:26:19 +0800 Subject: [PATCH 3/3] Applied spoltess --- .../apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java index e1fd14c4ff1a..5332c6e84506 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java @@ -219,8 +219,8 @@ String getRSGroup(String namespace, String tablename) { if (script == null || script.isEmpty()) { return null; } - Shell.ShellCommandExecutor rsgroupMappingScript = new Shell.ShellCommandExecutor(new String[] - { script, "", "" }, null, null, scriptTimeout); + Shell.ShellCommandExecutor rsgroupMappingScript = + new Shell.ShellCommandExecutor(new String[] { script, "", "" }, null, null, scriptTimeout); String[] exec = rsgroupMappingScript.getExecString(); exec[1] = namespace;