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

James Taylor commented on PHOENIX-1226:
---------------------------------------

Do you mean "phoenix.<actual key>.type" for the Phoenix column names? Would you 
mind giving me an example?

The rough idea would be that the annotation key would map directly to a column 
name in the Phoenix tracing table. We have APIs that can lookup a type in the 
schema given a column name, so you wouldn't need to encode the type in the 
annotation.



> Exception in Tracing
> --------------------
>
>                 Key: PHOENIX-1226
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1226
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.1
>         Environment: 0.98.5 hbase, 4.1.0 phoenix
>            Reporter: Dan Di Spaltro
>            Assignee: Jesse Yates
>         Attachments: phoenix-1226-4.0-v0.patch, phoenix-1226-4.0-v1.patch
>
>
> I was exposed to an exception in the tracing code, during my test setup of 
> Phoenix in the following code:
> {code}
> 58062 [defaultRpcServer.handler=2,queue=0,port=53950] WARN  
> org.apache.hadoop.ipc.RpcServer  - 
> defaultRpcServer.handler=2,queue=0,port=53950: caught: 
> java.lang.IllegalArgumentException: offset (0) + length (4) exceed the 
> capacity of the array: 3
>       at 
> org.apache.hadoop.hbase.util.Bytes.explainWrongLengthOrOffset(Bytes.java:600)
>       at org.apache.hadoop.hbase.util.Bytes.toInt(Bytes.java:749)
>       at org.apache.hadoop.hbase.util.Bytes.toInt(Bytes.java:725)
>       at 
> org.apache.phoenix.trace.TracingCompat.readAnnotation(TracingCompat.java:56)
>       at 
> org.apache.phoenix.trace.TraceMetricSource.receiveSpan(TraceMetricSource.java:121)
>       at org.cloudera.htrace.Tracer.deliver(Tracer.java:81)
>       at org.cloudera.htrace.impl.MilliSpan.stop(MilliSpan.java:70)
>       at org.cloudera.htrace.TraceScope.close(TraceScope.java:70)
>       at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:106)
>       at 
> org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:114)
>       at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:94)
>       at java.lang.Thread.run(Thread.java:744)
> {code}
> It is related to the following line of code where we interpret all KV 
> annotation values as byte-wise integers here:
> https://github.com/apache/phoenix/blob/v4.1.0/phoenix-hadoop-compat/src/main/java/org/apache/phoenix/trace/TracingCompat.java#L56
> Here is where HBase is adding a non-integer KV annotation:
> https://github.com/apache/hbase/blob/0.98.5/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RequestContext.java#L105
> The fix should be simple, but I am not aware of all the related issues in 
> changing this.
> cc [~jesse_yates], [[email protected]], [~giacomotaylor]



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

Reply via email to