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
|
// close each store in parallel
|
||||||
for (final Store store : stores.values()) {
|
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
|
completionService
|
||||||
.submit(new Callable<Pair<byte[], Collection<StoreFile>>>() {
|
.submit(new Callable<Pair<byte[], Collection<StoreFile>>>() {
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue