[ 
https://issues.apache.org/jira/browse/PHOENIX-3514?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yongxian Yuan updated PHOENIX-3514:
-----------------------------------
    Attachment: log.txt
                IndexMaintainer.java

We found that the variables in the method which has been changed

> java.lang.IndexOutOfBoundsException
> -----------------------------------
>
>                 Key: PHOENIX-3514
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3514
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.7.0
>            Reporter: Yongxian Yuan
>         Attachments: IndexMaintainer.java, log.txt
>
>
> When paged queries of second page and serached by local index 
> automatically´╝îthe hbase sever sometime throw execption:
> 2016-11-30 14:59:58,205 DEBUG 
> [B.DefaultRpcServer.handler=0,queue=0,port=60020] ipc.RpcServer: 
> B.DefaultRpcServer.handler=0,queue=0,port=60020: callId: 34776 service: 
> ClientService methodName: Scan size: 25 connection: 172.25.21.13:31201
> org.apache.hadoop.hbase.DoNotRetryIOException: 
> _LOCAL_IDX_GSMS_MSG_PACK_SMS,\xFF\xFF\xFE\xA7\xDA;C\xFF\x00\x00,1480416200074.f40d810e2caa8be6d1c3d01f8cd58c4f.:
>  
>         at 
> org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:87)
>         at 
> org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:53)
>         at 
> org.apache.phoenix.coprocessor.BaseScannerRegionObserver$2.nextRaw(BaseScannerRegionObserver.java:352)
>         at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:76)
>         at 
> org.apache.hadoop.hbase.regionserver.HRegionServer.scan(HRegionServer.java:3336)
>         at 
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:32492)
>         at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2197)
>         at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:104)
>         at 
> org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:133)
>         at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:108)
>         at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.RuntimeException: 
>         at 
> org.apache.phoenix.index.IndexMaintainer.buildDataRowKey(IndexMaintainer.java:653)
>         at 
> org.apache.phoenix.util.IndexUtil.wrapResultUsingOffset(IndexUtil.java:506)
>         at 
> org.apache.phoenix.coprocessor.BaseScannerRegionObserver$2.nextRaw(BaseScannerRegionObserver.java:339)
>         ... 8 more
> Caused by: java.lang.IndexOutOfBoundsException
>         at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:151)
>         at java.io.DataOutputStream.write(DataOutputStream.java:107)
>         at 
> org.apache.phoenix.index.IndexMaintainer.buildDataRowKey(IndexMaintainer.java:653)
>         ... 10 more
> When I modified the 4.7 source code to get more log(the source code and the 
> log in the Attachments),I found the "indexRowKeyPtr" has bean changed.
> Throws this execption is because ScanRegionObserver.class is a Singleton and 
> the property of ptr(ImmutableBytesWritable.class) is not synchronised.
> So changing the property of ptr to a temporary variable will solve the problem



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

Reply via email to