You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by li...@apache.org on 2018/04/16 08:07:43 UTC
hbase git commit: HBASE-20419 Fix potential NPE in
ZKUtil#listChildrenAndWatchForNewChildren callers
Repository: hbase
Updated Branches:
refs/heads/master 125767b44 -> 1339ff966
HBASE-20419 Fix potential NPE in ZKUtil#listChildrenAndWatchForNewChildren callers
Signed-off-by: Yu Li <li...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/1339ff96
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/1339ff96
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/1339ff96
Branch: refs/heads/master
Commit: 1339ff9666f449d8850236802c008a27307b7c61
Parents: 125767b
Author: lujie <lu...@ict.ac.cn>
Authored: Mon Apr 16 16:01:49 2018 +0800
Committer: Yu Li <li...@apache.org>
Committed: Mon Apr 16 16:06:57 2018 +0800
----------------------------------------------------------------------
.../apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java | 6 +++++-
.../apache/hadoop/hbase/procedure/ZKProcedureMemberRpcs.java | 8 ++++++--
2 files changed, 11 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/1339ff96/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java
----------------------------------------------------------------------
diff --git a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java
index a9f8284..659343c 100644
--- a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java
+++ b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java
@@ -354,7 +354,11 @@ final class RSGroupInfoManagerImpl implements RSGroupInfoManager {
//Overwrite any info stored by table, this takes precedence
try {
if(ZKUtil.checkExists(watcher, groupBasePath) != -1) {
- for(String znode: ZKUtil.listChildrenAndWatchForNewChildren(watcher, groupBasePath)) {
+ List<String> children = ZKUtil.listChildrenAndWatchForNewChildren(watcher, groupBasePath);
+ if (children == null) {
+ return RSGroupInfoList;
+ }
+ for(String znode: children) {
byte[] data = ZKUtil.getData(watcher, ZNodePaths.joinZNode(groupBasePath, znode));
if(data.length > 0) {
ProtobufUtil.expectPBMagicPrefix(data);
http://git-wip-us.apache.org/repos/asf/hbase/blob/1339ff96/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/ZKProcedureMemberRpcs.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/ZKProcedureMemberRpcs.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/ZKProcedureMemberRpcs.java
index f29d133..57d929d 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/ZKProcedureMemberRpcs.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/ZKProcedureMemberRpcs.java
@@ -135,8 +135,12 @@ public class ZKProcedureMemberRpcs implements ProcedureMemberRpcs {
LOG.debug("Checking for aborted procedures on node: '" + zkController.getAbortZnode() + "'");
try {
// this is the list of the currently aborted procedues
- for (String node : ZKUtil.listChildrenAndWatchForNewChildren(zkController.getWatcher(),
- zkController.getAbortZnode())) {
+ List<String> children = ZKUtil.listChildrenAndWatchForNewChildren(zkController.getWatcher(),
+ zkController.getAbortZnode());
+ if (children == null || children.isEmpty()) {
+ return;
+ }
+ for (String node : children) {
String abortNode = ZNodePaths.joinZNode(zkController.getAbortZnode(), node);
abort(abortNode);
}