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

stack commented on HBASE-19876:
-------------------------------

.001 rebase of [~chia7712] patch.

> The exception happening in converting pb mutation to hbase.mutation messes up 
> the CellScanner
> ---------------------------------------------------------------------------------------------
>
>                 Key: HBASE-19876
>                 URL: https://issues.apache.org/jira/browse/HBASE-19876
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Chia-Ping Tsai
>            Assignee: Chia-Ping Tsai
>            Priority: Critical
>             Fix For: 1.3.2, 1.5.0, 1.2.7, 2.0.0-beta-2, 1.4.2
>
>         Attachments: HBASE-19876.master.001.patch, HBASE-19876.v0.patch, 
> HBASE-19876.v1.patch, HBASE-19876.v2.patch, HBASE-19876.v3.patch, 
> HBASE-19876.v3.patch, HBASE-19876.v3.patch, HBASE-19876.v3.patch
>
>
> {code:java}
> 2018-01-27 22:51:43,794 INFO  [hconnection-0x3291b443-shared-pool11-t6] 
> client.AsyncRequestFutureImpl(778): id=5, table=testQuotaStatusFromMaster3, 
> attempt=6/16 failed=20ops, last 
> exception=org.apache.hadoop.hbase.client.WrongRowIOException: 
> org.apache.hadoop.hbase.client.WrongRowIOException: The row in xxx doesn't 
> match the original one aaa
>       at org.apache.hadoop.hbase.client.Mutation.add(Mutation.java:776)
>       at org.apache.hadoop.hbase.client.Put.add(Put.java:282)
>       at 
> org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil.toPut(ProtobufUtil.java:642)
>       at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.doBatchOp(RSRpcServices.java:952)
>       at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.doNonAtomicRegionMutation(RSRpcServices.java:896)
>       at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.multi(RSRpcServices.java:2591)
>       at 
> org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:41560)
>       at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:404)
>       at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:130)
>       at 
> org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324)
>       at 
> org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304){code}
> I noticed this bug when testing the table space quota.
> When rs are converting pb mutation to hbase.mutation, the quota exception or 
> cell exception may be thrown.
> {code}
> Unable to find source-code formatter for language: 
> rsrpcservices#dobatchop.java. Available languages are: actionscript, ada, 
> applescript, bash, c, c#, c++, cpp, css, erlang, go, groovy, haskell, html, 
> java, javascript, js, json, lua, none, nyan, objc, perl, php, python, r, 
> rainbow, ruby, scala, sh, sql, swift, visualbasic, xml, yaml      for 
> (ClientProtos.Action action: mutations) {
>         MutationProto m = action.getMutation();
>         Mutation mutation;
>         if (m.getMutateType() == MutationType.PUT) {
>           mutation = ProtobufUtil.toPut(m, cells);
>           batchContainsPuts = true;
>         } else {
>           mutation = ProtobufUtil.toDelete(m, cells);
>           batchContainsDelete = true;
>         }
>         mutationActionMap.put(mutation, action);
>         mArray[i++] = mutation;
>         checkCellSizeLimit(region, mutation);
>         // Check if a space quota disallows this mutation
>         spaceQuotaEnforcement.getPolicyEnforcement(region).check(mutation);
>         quota.addMutation(mutation);
>       }
> {code}
> rs has caught the exception but it doesn't have the cellscanner skip the 
> failed cells.
> {code:java}
>     } catch (IOException ie) {
>       if (atomic) {
>         throw ie;
>       }
>       for (Action mutation : mutations) {
>         builder.addResultOrException(getResultOrException(ie, 
> mutation.getIndex()));
>       }
>     }
> {code}
> The bug results in the WrongRowIOException to remaining mutations since they 
> refer to invalid cells.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to