You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Jimmy Xiang (JIRA)" <ji...@apache.org> on 2014/08/04 18:58:13 UTC

[jira] [Commented] (HBASE-11659) Region state RPC call is not idempotent

    [ https://issues.apache.org/jira/browse/HBASE-11659?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14084882#comment-14084882 ] 

Jimmy Xiang commented on HBASE-11659:
-------------------------------------

When the first OPEN call timed out on the regionserver side, was there any exception in the master side?
We can't just return if the current state is OPEN. We need to make sure the region is OPEN on the right server with the right open seq number to make sure it is a retry. Do we handle retries for other calls properly?

> Region state RPC call is not idempotent
> ---------------------------------------
>
>                 Key: HBASE-11659
>                 URL: https://issues.apache.org/jira/browse/HBASE-11659
>             Project: HBase
>          Issue Type: Bug
>          Components: Region Assignment
>            Reporter: Virag Kothari
>            Assignee: Virag Kothari
>         Attachments: HBASE-11659.patch
>
>
> Here is the scenario on 0.98 with zk-less assignment
> The master gets an OPEN RPC call from region server.
> So, it moves the region state from PENDING_OPEN to OPEN.
> But, the call timeouts on the region server and region server retries sending the OPEN call. However, now the master throws an Exception saying the region is not PENDING_OPEN. So, the region servers aborts the region on receiving that exception and sends FAILED_OPEN to master. But the master cannot change its state from FAILED_OPEN to OPEN, so eventually the master keeps the state as OPEN while the actual region is no longer open on region server.
> The master should not throw an exception on receiving OPEN RPC calls multiple times.



--
This message was sent by Atlassian JIRA
(v6.2#6252)