[
https://issues.apache.org/jira/browse/HBASE-10844?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13969218#comment-13969218
]
Lars Hofhansl commented on HBASE-10844:
---------------------------------------
If writeToWal is false for all mutations in this batch then the point of no
return is the flushing of the memstore.
Luckily the memstore flusher waits for all priot MVCC transactions to finish.
And since in doMiniBatchMutation we call the post hook before
{{mvcc.completeMemstoreInsert(w)}} we're safe from concurrent flushes.
Hence in that case it would be OK in theory to fail post hook and then roll
back the memstore.
> Coprocessor failure during batchmutation leaves the memstore datastructs in
> an inconsistent state
> -------------------------------------------------------------------------------------------------
>
> Key: HBASE-10844
> URL: https://issues.apache.org/jira/browse/HBASE-10844
> Project: HBase
> Issue Type: Bug
> Components: regionserver
> Reporter: Devaraj Das
> Assignee: Devaraj Das
> Fix For: 0.99.0, 0.94.19, 0.98.2, 0.96.3
>
> Attachments: 10844-1.txt
>
>
> Observed this in the testing with Phoenix. The test in Phoenix -
> MutableIndexFailureIT deliberately fails the batchmutation call via the
> installed coprocessor. But the update is not rolled back. That leaves the
> memstore inconsistent. In particular, I observed that getFlushableSize is
> updated before the coprocessor was called but the update is not rolled back.
> When the region is being closed at some later point, the assert introduced in
> HBASE-10514 in the HRegion.doClose() causes the RegionServer to shutdown
> abnormally.
--
This message was sent by Atlassian JIRA
(v6.2#6252)