Author: apurtell Date: Fri Dec 18 01:33:25 2009 New Revision: 892072 URL: http://svn.apache.org/viewvc?rev=892072&view=rev Log: HBASE-1960 Master should wait for DFS to come up when creating hbase.version
Modified: hadoop/hbase/trunk/CHANGES.txt hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/util/FSUtils.java Modified: hadoop/hbase/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=892072&r1=892071&r2=892072&view=diff ============================================================================== --- hadoop/hbase/trunk/CHANGES.txt (original) +++ hadoop/hbase/trunk/CHANGES.txt Fri Dec 18 01:33:25 2009 @@ -131,6 +131,8 @@ HBASE-2048 Small inconsistency in the "Example API Usage" (Benoit Sigoure via JD) HBASE-2044 HBASE-1822 removed not-deprecated APIs + HBASE-1960 Master should wait for DFS to come up when creating + hbase.version IMPROVEMENTS HBASE-1760 Cleanup TODOs in HTable Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/util/FSUtils.java URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/util/FSUtils.java?rev=892072&r1=892071&r2=892072&view=diff ============================================================================== --- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/util/FSUtils.java (original) +++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/util/FSUtils.java Fri Dec 18 01:33:25 2009 @@ -20,7 +20,6 @@ package org.apache.hadoop.hbase.util; import java.io.DataInputStream; -import java.io.FileNotFoundException; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; @@ -249,10 +248,20 @@ FileSystem fs = FileSystem.get(conf); if (!(fs instanceof DistributedFileSystem)) return; DistributedFileSystem dfs = (DistributedFileSystem)fs; + // Are there any data nodes up yet? + // Currently the safe mode check falls through if the namenode is up but no + // datanodes have reported in yet. + while (dfs.getDataNodeStats().length == 0) { + LOG.info("Waiting for dfs to come up..."); + try { + Thread.sleep(wait); + } catch (InterruptedException e) { + //continue + } + } // Make sure dfs is not in safe mode - String message = "Waiting for dfs to exit safe mode..."; while (dfs.setSafeMode(FSConstants.SafeModeAction.SAFEMODE_GET)) { - LOG.info(message); + LOG.info("Waiting for dfs to exit safe mode..."); try { Thread.sleep(wait); } catch (InterruptedException e) {