From f6995e8f29108eb42c1cc174f5ee633bafdafa23 Mon Sep 17 00:00:00 2001 From: Pankaj Date: Thu, 4 Jun 2015 11:11:38 +0530 Subject: [PATCH 2/2] HBASE-13735, Race condition for web interface during master start up --- .../apache/hadoop/hbase/zookeeper/MasterAddressTracker.java | 8 +++++++- .../hadoop/hbase/tmpl/master/BackupMasterStatusTmpl.jamon | 10 ++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/MasterAddressTracker.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/MasterAddressTracker.java index 311202c..8203791 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/MasterAddressTracker.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/MasterAddressTracker.java @@ -83,7 +83,13 @@ public class MasterAddressTracker extends ZooKeeperNodeTracker { */ public int getMasterInfoPort() { try { - final ZooKeeperProtos.Master master = parse(this.getData(false)); + byte[] data = this.getData(false); + if (data == null) { + LOG.warn("Can't get master address from ZooKeeper; znode data == null"); + return 0; + } + + final ZooKeeperProtos.Master master = parse(data); if (master == null) { return 0; } diff --git a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/BackupMasterStatusTmpl.jamon b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/BackupMasterStatusTmpl.jamon index 9d5c2f9..076fff6 100644 --- a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/BackupMasterStatusTmpl.jamon +++ b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/BackupMasterStatusTmpl.jamon @@ -35,6 +35,16 @@ MasterAddressTracker masterAddressTracker = master.getMasterAddressTracker(); ServerName active_master = (masterAddressTracker == null) ? null : masterAddressTracker.getMasterAddress(); assert active_master != null : "Failed to retrieve master's ServerName!"; + if (active_master == null) { + +
+ +
+ <%java> + return; + } int infoPort = (masterAddressTracker == null) ? 0 : masterAddressTracker.getMasterInfoPort();
-- 1.8.4.msysgit.0