HBASE-1436 Killing regionserver can make corrupted hfile

git-svn-id: https://svn.apache.org/repos/asf/hadoop/hbase/trunk@777168 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Michael Stack 2009-05-21 16:35:43 +00:00
parent b6813c6e58
commit b4315595b9
3 changed files with 25 additions and 2 deletions

View File

@ -149,6 +149,7 @@ Release 0.20.0 - Unreleased
HBASE-1415 Stuck on memcache flush HBASE-1415 Stuck on memcache flush
HBASE-1257 base64 encoded values are not contained in quotes during the HBASE-1257 base64 encoded values are not contained in quotes during the
HBase REST JSON serialization (Brian Beggs via Stack) HBase REST JSON serialization (Brian Beggs via Stack)
HBASE-1436 Killing regionserver can make corrupted hfile
IMPROVEMENTS IMPROVEMENTS
HBASE-1089 Add count of regions on filesystem to master UI; add percentage HBASE-1089 Add count of regions on filesystem to master UI; add percentage

View File

@ -356,7 +356,15 @@ public class Store implements HConstants {
LOG.warn("Skipping " + p + " because its empty. HBASE-646 DATA LOSS?"); LOG.warn("Skipping " + p + " because its empty. HBASE-646 DATA LOSS?");
continue; 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(); long storeSeqId = curfile.getMaxSequenceId();
if (storeSeqId > this.maxSeqId) { if (storeSeqId > this.maxSeqId) {
this.maxSeqId = storeSeqId; this.maxSeqId = storeSeqId;

View File

@ -7,9 +7,12 @@
import="org.apache.hadoop.hbase.HConstants" import="org.apache.hadoop.hbase.HConstants"
import="org.apache.hadoop.hbase.master.MetaRegion" import="org.apache.hadoop.hbase.master.MetaRegion"
import="org.apache.hadoop.hbase.client.HBaseAdmin" 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.HServerInfo"
import="org.apache.hadoop.hbase.HServerAddress" import="org.apache.hadoop.hbase.HServerAddress"
import="org.apache.hadoop.hbase.HBaseConfiguration" 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" %><% import="org.apache.hadoop.hbase.HTableDescriptor" %><%
HMaster master = (HMaster)getServletContext().getAttribute(HMaster.MASTER); HMaster master = (HMaster)getServletContext().getAttribute(HMaster.MASTER);
HBaseConfiguration conf = master.getConfiguration(); HBaseConfiguration conf = master.getConfiguration();
@ -29,6 +32,17 @@
<meta http-equiv="refresh" content="300"/> <meta http-equiv="refresh" content="300"/>
<title>HBase Master: <%= master.getMasterAddress().getHostname()%>:<%= master.getMasterAddress().getPort() %></title> <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/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> </head>
<body> <body>
@ -83,7 +97,7 @@
%> %>
<table> <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()]); <% String[] serverNames = serverToServerInfos.keySet().toArray(new String[serverToServerInfos.size()]);
Arrays.sort(serverNames); Arrays.sort(serverNames);
for (String serverName: serverNames) { for (String serverName: serverNames) {