phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Taylor (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PHOENIX-1226) Exception in Tracing
Date Tue, 02 Sep 2014 19:24:20 GMT

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

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

My idea was to always encode the data written to the sink as strings. Is that what is done
today for the metrics written out by HBase? Then use the key to lookup the column in the Phoenix
tracing table. If found, then translate the string to the type of the column. If not, store
the value as a string. No need then to prefix the key with 'phoenix' or encode the type in
the key. It'd just be a general way of _typing_ the trace data.

> 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], [~samarth.jain@gmail.com], [~giacomotaylor]



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

Mime
View raw message