[ https://issues.apache.org/jira/browse/HBASE-19876?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16350174#comment-16350174 ]
Hadoop QA commented on HBASE-19876: ----------------------------------- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 0s{color} | {color:blue} Docker mode activated. {color} | | {color:red}-1{color} | {color:red} patch {color} | {color:red} 0m 4s{color} | {color:red} HBASE-19876 does not apply to master. Rebase required? Wrong Branch? See https://yetus.apache.org/documentation/0.7.0/precommit-patchnames for help. {color} | \\ \\ || Subsystem || Report/Notes || | JIRA Issue | HBASE-19876 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12908964/HBASE-19876.v3.patch | | Console output | https://builds.apache.org/job/PreCommit-HBASE-Build/11360/console | | Powered by | Apache Yetus 0.7.0 http://yetus.apache.org | This message was automatically generated. > 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.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)