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

jaanai updated PHOENIX-5226:
----------------------------
    Description: 
We use a tag of cell to indicat that some properties should not be derived from 
the base table for view table. VIEW_MODIFIED_PROPERTY_BYTES is used a tag 
bytes, but the format is incorrect, the below is a reference from KeyValue 
interface:
{quote}KeyValue can optionally contain Tags. When it contains tags, it is added 
in the byte array after
 * the value part. The format for this part is: 
<code><tagslength><tagsbytes></code>.
 * <code>tagslength</code> maximum is <code>Short.MAX_SIZE</code>. The 
<code>tagsbytes</code>
 * contain one or more tags where as each tag is of the form
 * <code><taglength><tagtype><tagbytes></code>. <code>tagtype</code> is one byte
 * and <code>taglength</code> maximum is <code>Short.MAX_SIZE</code> and it 
includes 1 byte type
 * length and actual tag bytes length.{quote}
The CATALOG table will be badly affected. Some errors will be caused when reads 
CATALOG table.

 
{code:java}
0: jdbc:phoenix:thin:url=http://localhost> drop view "test_2"; Error: Error -1 
(00000) : Error while executing SQL "drop view "test_2"": Remote driver error: 
RuntimeException: org.apache.phoenix.exception.PhoenixIOException: 
org.apache.hadoop.hbase.DoNotRetryIOException: test_2: 4 at 
org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:114) at 
org.apache.phoenix.coprocessor.MetaDataEndpointImpl.dropTable(MetaDataEndpointImpl.java:2729)
 at 
org.apache.phoenix.coprocessor.generated.MetaDataProtos$MetaDataService.callMethod(MetaDataProtos.java:17078)
 at org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:8210) 
at 
org.apache.hadoop.hbase.regionserver.RSRpcServices.execServiceOnRegion(RSRpcServices.java:2475)
 at 
org.apache.hadoop.hbase.regionserver.RSRpcServices.execService(RSRpcServices.java:2457)
 at 
org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:42010)
 at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:418) at 
org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:136) at 
org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324) at 
org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304) 
Caused by: java.lang.ArrayIndexOutOfBoundsException: 4 at 
org.apache.hadoop.hbase.ArrayBackedTag.<init>(ArrayBackedTag.java:97) at 
org.apache.hadoop.hbase.CellUtil$5.next(CellUtil.java:1107) at 
org.apache.hadoop.hbase.CellUtil$5.next(CellUtil.java:1094) at 
org.apache.hadoop.hbase.regionserver.querymatcher.ScanQueryMatcher.isCellTTLExpired(ScanQueryMatcher.java:153)
 at 
org.apache.hadoop.hbase.regionserver.querymatcher.ScanQueryMatcher.preCheck(ScanQueryMatcher.java:198)
 at 
org.apache.hadoop.hbase.regionserver.querymatcher.NormalUserScanQueryMatcher.match(NormalUserScanQueryMatcher.java:64)
 at 
org.apache.hadoop.hbase.regionserver.StoreScanner.next(StoreScanner.java:578)
{code}
 

  was:
We use a tag of cell to indicat that some properties should not be derived from 
the base table for view table.  VIEW_MODIFIED_PROPERTY_BYTES is used a tag 
bytes, but the format is incorrect, the below is a reference from KeyValue 
interface:

{quote}
KeyValue can optionally contain Tags. When it contains tags, it is added in the 
byte array after
 * the value part. The format for this part is: 
<code>&lt;tagslength&gt;&lt;tagsbytes&gt;</code>.
 * <code>tagslength</code> maximum is <code>Short.MAX_SIZE</code>. The 
<code>tagsbytes</code>
 * contain one or more tags where as each tag is of the form
 * <code>&lt;taglength&gt;&lt;tagtype&gt;&lt;tagbytes&gt;</code>. 
<code>tagtype</code> is one byte
 * and <code>taglength</code> maximum is <code>Short.MAX_SIZE</code> and it 
includes 1 byte type
 * length and actual tag bytes length.
{quote}

The CATALOG table will be badly affected. Some errors will be caused when reads 
CATALOG table.


>  The format of VIEW_MODIFIED_PROPERTY_BYTES is incorrect as a tag of the cell
> -----------------------------------------------------------------------------
>
>                 Key: PHOENIX-5226
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5226
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 5.0.0, 4.14.1
>            Reporter: jaanai
>            Assignee: jaanai
>            Priority: Critical
>         Attachments: Screen Shot 2019-04-01 at 16.09.23.png, Screen Shot 
> 2019-04-01 at 16.13.10.png
>
>
> We use a tag of cell to indicat that some properties should not be derived 
> from the base table for view table. VIEW_MODIFIED_PROPERTY_BYTES is used a 
> tag bytes, but the format is incorrect, the below is a reference from 
> KeyValue interface:
> {quote}KeyValue can optionally contain Tags. When it contains tags, it is 
> added in the byte array after
>  * the value part. The format for this part is: 
> <code><tagslength><tagsbytes></code>.
>  * <code>tagslength</code> maximum is <code>Short.MAX_SIZE</code>. The 
> <code>tagsbytes</code>
>  * contain one or more tags where as each tag is of the form
>  * <code><taglength><tagtype><tagbytes></code>. <code>tagtype</code> is one 
> byte
>  * and <code>taglength</code> maximum is <code>Short.MAX_SIZE</code> and it 
> includes 1 byte type
>  * length and actual tag bytes length.{quote}
> The CATALOG table will be badly affected. Some errors will be caused when 
> reads CATALOG table.
>  
> {code:java}
> 0: jdbc:phoenix:thin:url=http://localhost> drop view "test_2"; Error: Error 
> -1 (00000) : Error while executing SQL "drop view "test_2"": Remote driver 
> error: RuntimeException: org.apache.phoenix.exception.PhoenixIOException: 
> org.apache.hadoop.hbase.DoNotRetryIOException: test_2: 4 at 
> org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:114) at 
> org.apache.phoenix.coprocessor.MetaDataEndpointImpl.dropTable(MetaDataEndpointImpl.java:2729)
>  at 
> org.apache.phoenix.coprocessor.generated.MetaDataProtos$MetaDataService.callMethod(MetaDataProtos.java:17078)
>  at 
> org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:8210) 
> at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.execServiceOnRegion(RSRpcServices.java:2475)
>  at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.execService(RSRpcServices.java:2457)
>  at 
> org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:42010)
>  at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:418) at 
> org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:136) at 
> org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324) at 
> org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304) 
> Caused by: java.lang.ArrayIndexOutOfBoundsException: 4 at 
> org.apache.hadoop.hbase.ArrayBackedTag.<init>(ArrayBackedTag.java:97) at 
> org.apache.hadoop.hbase.CellUtil$5.next(CellUtil.java:1107) at 
> org.apache.hadoop.hbase.CellUtil$5.next(CellUtil.java:1094) at 
> org.apache.hadoop.hbase.regionserver.querymatcher.ScanQueryMatcher.isCellTTLExpired(ScanQueryMatcher.java:153)
>  at 
> org.apache.hadoop.hbase.regionserver.querymatcher.ScanQueryMatcher.preCheck(ScanQueryMatcher.java:198)
>  at 
> org.apache.hadoop.hbase.regionserver.querymatcher.NormalUserScanQueryMatcher.match(NormalUserScanQueryMatcher.java:64)
>  at 
> org.apache.hadoop.hbase.regionserver.StoreScanner.next(StoreScanner.java:578)
> {code}
>  



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

Reply via email to