HBASE-12454 Setting didPerformCompaction early in HRegion#compact

This commit is contained in:
Andrew Purtell 2014-11-12 09:29:46 -08:00
parent fb6c5c7fe8
commit b0a434a5ce
3 changed files with 7 additions and 2 deletions

View File

@ -1565,8 +1565,8 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver { //
doRegionCompactionPrep();
try {
status.setStatus("Compacting store " + store);
didPerformCompaction = true;
store.compact(compaction);
didPerformCompaction = true;
} catch (InterruptedIOException iioe) {
String msg = "compaction interrupted";
LOG.info(msg, iioe);

View File

@ -1544,7 +1544,9 @@ public class HStore implements Store {
@Override
public void cancelRequestedCompaction(CompactionContext compaction) {
finishCompactionRequest(compaction.getRequest());
if (compaction != null) {
finishCompactionRequest(compaction.getRequest());
}
}
private void finishCompactionRequest(CompactionRequest cr) {

View File

@ -161,6 +161,9 @@ public class TestCompaction {
}).when(spyR).doRegionCompactionPrep();
// force a minor compaction, but not before requesting a stop
// Accounting: Normally compaction requests go through HStore#requestCompaction
r.reportCompactionRequestStart(false);
spyR.compactStores();
// ensure that the compaction stopped, all old files are intact,