HBASE-551 Master stuck splitting server logs in shutdown loop;
on eachiteration, edits are aggregated up into the millions M src/java/org/apache/hadoop/hbase/HLog.java (splitLog): If an exception processing a split, catch it. In finally, close and delete the split. Don't try retrying. While in some circumstance, we might recover, its also likely that we just get same exception again. If so, and multiple files, we'll just accumulate edits until the kingdom comes. git-svn-id: https://svn.apache.org/repos/asf/hadoop/hbase/trunk@643142 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
1197d65839
commit
198a156334
|
@ -1,5 +1,12 @@
|
|||
Hbase Change Log
|
||||
|
||||
BUG FIXES
|
||||
HBASE-550 EOF trying to read reconstruction log stops region deployment
|
||||
HBASE-551 Master stuck splitting server logs in shutdown loop; on each
|
||||
iteration, edits are aggregated up into the millions
|
||||
|
||||
Release 0.1.0
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
HBASE-288 Add in-memory caching of data. Required update of hadoop to
|
||||
0.17.0-dev.2008-02-07_12-01-58. (Tom White via Stack)
|
||||
|
@ -105,7 +112,6 @@ Hbase Change Log
|
|||
HBASE-529 RegionServer needs to recover if datanode goes down
|
||||
HBASE-456 Clearly state which ports need to be opened in order to run HBase
|
||||
HBASE-536 Remove MiniDFS startup from MiniHBaseCluster
|
||||
HBASE-550 EOF trying to read reconstruction log stops region deployment
|
||||
|
||||
Branch 0.1
|
||||
|
||||
|
|
|
@ -596,8 +596,21 @@ public class HLog implements HConstants {
|
|||
if (LOG.isDebugEnabled()) {
|
||||
LOG.debug("Applied " + count + " total edits");
|
||||
}
|
||||
} catch (IOException e) {
|
||||
LOG.warn("Exception processing " + logfiles[i].getPath() +
|
||||
" -- continuing. Possible DATA LOSS!", e);
|
||||
} finally {
|
||||
in.close();
|
||||
try {
|
||||
in.close();
|
||||
} catch (IOException e) {
|
||||
LOG.warn("Close in finally threw exception -- continuing", e);
|
||||
}
|
||||
// Delete the input file now so we do not replay edits. We could
|
||||
// have gotten here because of an exception. If so, probably
|
||||
// nothing we can do about it. Replaying it, it could work but we
|
||||
// could be stuck replaying for ever. Just continue though we
|
||||
// could have lost some edits.
|
||||
fs.delete(logfiles[i].getPath());
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
|
|
Loading…
Reference in New Issue