Description
When I ran TestHBaseFsck, I sometimes saw:
testNoVersionFile(org.apache.hadoop.hbase.util.TestHBaseFsck) Time elapsed: 0.003 sec <<< ERROR! java.io.IOException: java.lang.NullPointerException at org.apache.hadoop.hbase.master.TableLockManager$ZKTableLockManager.reapAllExpiredLocks(TableLockManager.java:433) at org.apache.hadoop.hbase.util.hbck.TableLockChecker.fixExpiredTableLocks(TableLockChecker.java:83) at org.apache.hadoop.hbase.util.HBaseFsck.checkAndFixTableLocks(HBaseFsck.java:2483) at org.apache.hadoop.hbase.util.HBaseFsck.onlineHbck(HBaseFsck.java:460) at org.apache.hadoop.hbase.util.hbck.HbckTestingUtil.doFsck(HbckTestingUtil.java:65) at org.apache.hadoop.hbase.util.hbck.HbckTestingUtil.doFsck(HbckTestingUtil.java:41) at org.apache.hadoop.hbase.util.hbck.HbckTestingUtil.doFsck(HbckTestingUtil.java:36) at org.apache.hadoop.hbase.util.TestHBaseFsck.testNoVersionFile(TestHBaseFsck.java:1086) ... Caused by: java.lang.NullPointerException at org.apache.hadoop.hbase.zookeeper.lock.ZKInterProcessLockBase.reapExpiredLocks(ZKInterProcessLockBase.java:393) at org.apache.hadoop.hbase.master.TableLockManager$ZKTableLockManager.reapAllExpiredLocks(TableLockManager.java:427) ... 37 more
This was due to null being returned from ZKUtil.listChildrenNoWatch() at line 384:
children = ZKUtil.listChildrenNoWatch(zkWatcher, parentLockNode);