hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hudson (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-13662) RSRpcService.scan() throws an OutOfOrderScannerNext if the scan has a retriable failure
Date Tue, 12 May 2015 20:28:01 GMT

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

Hudson commented on HBASE-13662:
--------------------------------

SUCCESS: Integrated in HBase-1.1 #484 (See [https://builds.apache.org/job/HBase-1.1/484/])
HBASE-13662 RSRpcService.scan() throws an OutOfOrderScannerNext if the scan has a retriable
failure (matteo.bertozzi: rev e9352b2a34ae87c35fde4a2a618f20a8ef8afef7)
* hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestScannerRetriableFailure.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java


> RSRpcService.scan() throws an OutOfOrderScannerNext if the scan has a retriable failure
> ---------------------------------------------------------------------------------------
>
>                 Key: HBASE-13662
>                 URL: https://issues.apache.org/jira/browse/HBASE-13662
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 2.0.0, 1.0.1, 1.1.0, 0.98.10.1
>            Reporter: Matteo Bertozzi
>            Assignee: Matteo Bertozzi
>             Fix For: 2.0.0, 0.98.13, 1.0.2, 1.2.0, 1.1.1
>
>         Attachments: HBASE-13662-v0.patch, HBASE-13662-v1.patch
>
>
> while fixing HBASE-13651 I noticed that if we have a failure inside the RSRpcService.scan(),
when the request has a hasNextCallSeq()  the nextCallSeq is incremented and not rolledback,
which means that the client retry will send a request with a nextCallSeq not up to date, which
result in an OutOfOrderScannerNextException.
> {code}
> if (rows > 0) {
>   if (request.hasNextCallSeq()) {
>     if (request.getNextCallSeq() != rsh.nextCallSeq) {
>       throw new OutOfOrderScannerNextException(...)
>     }
>     // Increment the nextCallSeq value which is the next expected from client.
>     rsh.nextCallSeq++;
>   }
> }
> try {
>   ...scan code...
> }
> {code}
> after the scanner heartbeat patches HBASE-13090, we seems to be able to recover from
that OutOfOrder exception, but the error show up anyway.
> After a discussion with [~saint.ack@gmail.com] we ended up saying that decrementing the
callSeq on exception seems to be fine. but we had the open question about having that nextCallSeq
to be atomic, if that was supposed to prevent concurrent requests with the same id. any thoughts?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message