HBASE-10844 Coprocessor failure during batchmutation leaves the memstore datastructs in an inconsistent state
Signed-off-by: Andrew Purtell <apurtell@apache.org>
This commit is contained in:
parent
45aafb25b7
commit
ecba08829d
|
@ -1444,7 +1444,14 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi
|
|||
|
||||
// close each store in parallel
|
||||
for (final Store store : stores.values()) {
|
||||
assert abort || store.getFlushableSize() == 0 || writestate.readOnly;
|
||||
long flushableSize = store.getFlushableSize();
|
||||
if (!(abort || flushableSize == 0 || writestate.readOnly)) {
|
||||
getRegionServerServices().abort("Assertion failed while closing store "
|
||||
+ getRegionInfo().getRegionNameAsString() + " " + store
|
||||
+ ". flushableSize expected=0, actual= " + flushableSize
|
||||
+ ". Current memstoreSize=" + getMemstoreSize() + ". Maybe a coprocessor "
|
||||
+ "operation failed and left the memstore in a partially updated state.", null);
|
||||
}
|
||||
completionService
|
||||
.submit(new Callable<Pair<byte[], Collection<StoreFile>>>() {
|
||||
@Override
|
||||
|
|
Loading…
Reference in New Issue