[ 
https://issues.apache.org/jira/browse/HBASE-10844?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Devaraj Das reopened HBASE-10844:
---------------------------------

Thinking about it (and in offline discussions with [~jeffreyz] and [~enis]), it 
seems we should remove the 'assert' from the code that causes the RegionServer 
to abort. The reason being that coprocessors could fail. The assert was 
introduced in HBASE-10514.
{noformat}
         // close each store in parallel
         for (final Store store : stores.values()) {
+          assert abort? true: store.getFlushableSize() == 0;
{noformat}
Thoughts?

> 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
>         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.3.4#6332)

Reply via email to