[
https://issues.apache.org/jira/browse/HBASE-3787?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13811853#comment-13811853
]
Ted Yu commented on HBASE-3787:
-------------------------------
In all the failed tests, I saw:
{code}
2013-11-02 02:30:15,355 ERROR [RpcServer.handler=4,port=35527]
ipc.RpcServer(2020): Unexpected throwable object
java.lang.AssertionError
at
org.apache.hadoop.hbase.regionserver.HRegion$ReplayBatch.getMutationsForCoprocs(HRegion.java:1970)
at
org.apache.hadoop.hbase.regionserver.HRegion.doMiniBatchMutation(HRegion.java:2244)
at
org.apache.hadoop.hbase.regionserver.HRegion.batchMutate(HRegion.java:2040)
at
org.apache.hadoop.hbase.regionserver.HRegion.batchReplay(HRegion.java:2004)
at
org.apache.hadoop.hbase.regionserver.HRegionServer.doReplayBatchOp(HRegionServer.java:4234)
at
org.apache.hadoop.hbase.regionserver.HRegionServer.replay(HRegionServer.java:3915)
at
org.apache.hadoop.hbase.protobuf.generated.AdminProtos$AdminService$2.callBlockingMethod(AdminProtos.java:19809)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:1983)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:92)
at
org.apache.hadoop.hbase.ipc.SimpleRpcScheduler.consumerLoop(SimpleRpcScheduler.java:160)
at
org.apache.hadoop.hbase.ipc.SimpleRpcScheduler.access$000(SimpleRpcScheduler.java:38)
{code}
which was due to this in ReplayBatch:
{code}
+ public Mutation[] getMutationsForCoprocs() {
+ assert false;
+ throw new RuntimeException("Should not be called for replay batch");
+ }
{code}
> Increment is non-idempotent but client retries RPC
> --------------------------------------------------
>
> Key: HBASE-3787
> URL: https://issues.apache.org/jira/browse/HBASE-3787
> Project: HBase
> Issue Type: Bug
> Components: Client
> Affects Versions: 0.94.4, 0.95.2
> Reporter: dhruba borthakur
> Assignee: Sergey Shelukhin
> Priority: Blocker
> Attachments: HBASE-3787-partial.patch, HBASE-3787-v0.patch,
> HBASE-3787-v1.patch, HBASE-3787-v2.patch, HBASE-3787-v3.patch,
> HBASE-3787-v4.patch, HBASE-3787-v5.patch, HBASE-3787-v5.patch,
> HBASE-3787-v6.patch
>
>
> The HTable.increment() operation is non-idempotent. The client retries the
> increment RPC a few times (as specified by configuration) before throwing an
> error to the application. This makes it possible that the same increment call
> be applied twice at the server.
> For increment operations, is it better to use
> HConnectionManager.getRegionServerWithoutRetries()? Another option would be
> to enhance the IPC module to make the RPC server correctly identify if the
> RPC is a retry attempt and handle accordingly.
--
This message was sent by Atlassian JIRA
(v6.1#6144)