Description
During system test on Windows, we observed the following in master log:
2015-11-23 11:31:38,853 ERROR org.apache.hadoop.hbase.master.normalizer.RegionNormalizerChore: Caught error^M java.lang.NullPointerException^M at org.apache.hadoop.hbase.master.HMaster.normalizeRegions(HMaster.java:1396)^M at org.apache.hadoop.hbase.master.normalizer.RegionNormalizerChore.chore(RegionNormalizerChore.java:49)^M at org.apache.hadoop.hbase.ScheduledChore.run(ScheduledChore.java:185)^M at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)^M at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)^M at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)^M at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)^M at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)^M at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)^M at java.lang.Thread.run(Thread.java:745)^M
The NullPointerException came from the second line below:
for(TableName table : allEnabledTables) { if (table.isSystemTable() || !getTableDescriptors().get(table).isNormalizationEnabled()) {
It seems TableDescriptor for some table was absent.
normalizeRegions() should deal with such scenario without producing NPE.