You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2009/05/21 18:35:43 UTC

svn commit: r777168 - in /hadoop/hbase/trunk: CHANGES.txt src/java/org/apache/hadoop/hbase/regionserver/Store.java src/webapps/master/master.jsp

Author: stack
Date: Thu May 21 16:35:43 2009
New Revision: 777168

URL: http://svn.apache.org/viewvc?rev=777168&view=rev
Log:
HBASE-1436 Killing regionserver can make corrupted hfile

Modified:
    hadoop/hbase/trunk/CHANGES.txt
    hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Store.java
    hadoop/hbase/trunk/src/webapps/master/master.jsp

Modified: hadoop/hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=777168&r1=777167&r2=777168&view=diff
==============================================================================
--- hadoop/hbase/trunk/CHANGES.txt (original)
+++ hadoop/hbase/trunk/CHANGES.txt Thu May 21 16:35:43 2009
@@ -149,6 +149,7 @@
    HBASE-1415  Stuck on memcache flush
    HBASE-1257  base64 encoded values are not contained in quotes during the
                HBase REST JSON serialization (Brian Beggs via Stack)
+   HBASE-1436  Killing regionserver can make corrupted hfile
 
   IMPROVEMENTS
    HBASE-1089  Add count of regions on filesystem to master UI; add percentage

Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Store.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Store.java?rev=777168&r1=777167&r2=777168&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Store.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Store.java Thu May 21 16:35:43 2009
@@ -356,7 +356,15 @@
         LOG.warn("Skipping " + p + " because its empty. HBASE-646 DATA LOSS?");
         continue;
       }
-      StoreFile curfile = new StoreFile(fs, p);
+      StoreFile curfile = null;
+      try {
+        curfile = new StoreFile(fs, p);
+      } catch (IOException ioe) {
+        LOG.warn("Failed open of " + p + "; presumption is that file was " +
+          "corrupted at flush and lost edits picked up by commit log replay. " +
+          "Verify!", ioe);
+        continue;
+      }
       long storeSeqId = curfile.getMaxSequenceId();
       if (storeSeqId > this.maxSeqId) {
         this.maxSeqId = storeSeqId;

Modified: hadoop/hbase/trunk/src/webapps/master/master.jsp
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/webapps/master/master.jsp?rev=777168&r1=777167&r2=777168&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/webapps/master/master.jsp (original)
+++ hadoop/hbase/trunk/src/webapps/master/master.jsp Thu May 21 16:35:43 2009
@@ -7,9 +7,12 @@
   import="org.apache.hadoop.hbase.HConstants"
   import="org.apache.hadoop.hbase.master.MetaRegion"
   import="org.apache.hadoop.hbase.client.HBaseAdmin"
+  import="org.apache.hadoop.hbase.io.ImmutableBytesWritable"
   import="org.apache.hadoop.hbase.HServerInfo"
   import="org.apache.hadoop.hbase.HServerAddress"
   import="org.apache.hadoop.hbase.HBaseConfiguration"
+  import="org.apache.hadoop.hbase.HColumnDescriptor" 
+  import="org.apache.hadoop.hbase.client.tableindexed.IndexSpecification"
   import="org.apache.hadoop.hbase.HTableDescriptor" %><%
   HMaster master = (HMaster)getServletContext().getAttribute(HMaster.MASTER);
   HBaseConfiguration conf = master.getConfiguration();
@@ -29,6 +32,17 @@
       <meta http-equiv="refresh" content="300"/>
 <title>HBase Master: <%= master.getMasterAddress().getHostname()%>:<%= master.getMasterAddress().getPort() %></title>
 <link rel="stylesheet" type="text/css" href="/static/hbase.css" />
+<link rel="stylesheet" type="text/css" href="/static/jquery.treeview.css" />
+<script src="/static/scripts/jquery-1.3.1.min.js" type="text/javascript"></script>
+<script src="/static/scripts/jquery.cookie.js" type="text/javascript"></script>
+<script src="/static/scripts/jquery.treeview.pack.js" type="text/javascript"></script>
+<script>
+$(document).ready(function(){
+	$("#tables").treeview({
+		control: "#tablecontrol",
+		persist: "cookie"
+	});
+});</script>
 </head>
 
 <body>
@@ -83,7 +97,7 @@
 %>
 
 <table>
-<tr><th rowspan=<%= serverToServerInfos.size() + 1%>></th><th>Address</th><th>Start Code</th><th>Load</th></tr>
+<tr><th rowspan="<%= serverToServerInfos.size() + 1%>"></th><th>Address</th><th>Start Code</th><th>Load</th></tr>
 <%   String[] serverNames = serverToServerInfos.keySet().toArray(new String[serverToServerInfos.size()]);
      Arrays.sort(serverNames);
      for (String serverName: serverNames) {