You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@eagle.apache.org by "Hao Chen (JIRA)" <ji...@apache.org> on 2016/04/12 07:50:25 UTC

[jira] [Commented] (EAGLE-240) java.lang.ArrayIndexOutOfBoundsException thrown by PolicyProcessExecutor

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

Hao Chen commented on EAGLE-240:
--------------------------------

h3. Root Cause
The org.apache.eagle.metric.reportor.MetricKeyCodeDecoder failed to decode metric name if policy id contains white space.
{code}
metricName.tags = new HashMap<>();
        for (int i = 1; i < parts.length; i++) {
            String[] keyValue = parts[i].split(":");
            if(keyValue.length >1) {
                metricName.tags.put(keyValue[0], keyValue[1]);
            } else {
                throw new IllegalStateException("Failed to decode metric name '"+name+"', because '"+parts[i]+"' is invalid, expected in format: 'key:value'");
            }
        }
{code}
{code}
2016-04-12 13:47:13,509 ERROR [Thread-18-cassandraQueryLogExecutor_0] executor.PolicyProcessExecutor[336]: cassandraQueryLogExecutor, partition 0, error fetching alerts, but continue to run
java.lang.IllegalStateException: Failed to decode metric name 'eagle.policy.eval.count site:sandbox partitionSeq:0 application:cassandraQueryLog source:57347@LM-SHC-00950798 policyId:cf_ customer_details_and_ ks_ dg_keyspace_policy alertExecutorId:cassandraQueryLogExecutor', because 'customer_details_and_' is invalid, expected in format: 'key:value'
	at org.apache.eagle.metric.reportor.MetricKeyCodeDecoder.decodeMetricKey(MetricKeyCodeDecoder.java:48)
	at org.apache.eagle.metric.reportor.MetricKeyCodeDecoder.decodeTSMetricKey(MetricKeyCodeDecoder.java:64)
	at org.apache.eagle.metric.reportor.MetricEntityAdaptor.convert(MetricEntityAdaptor.java:29)
	at org.apache.eagle.metric.reportor.EagleServiceReporterMetricListener.onMetricFlushed(EagleServiceReporterMetricListener.java:48)
	at org.apache.eagle.metric.reportor.EagleCounterMetric.flush(EagleCounterMetric.java:47)
	at org.apache.eagle.metric.reportor.EagleCounterMetric.update(EagleCounterMetric.java:67)
	at org.apache.eagle.policy.executor.PolicyProcessExecutor.updateCounter(PolicyProcessExecutor.java:285)
	at org.apache.eagle.policy.executor.PolicyProcessExecutor.updateCounter(PolicyProcessExecutor.java:291)
	at org.apache.eagle.policy.executor.PolicyProcessExecutor.flatMap(PolicyProcessExecutor.java:325)
	at org.apache.eagle.datastream.storm.JavaStormBoltWrapper.execute(JavaStormBoltWrapper.scala:38)
	at backtype.storm.daemon.executor$fn__3441$tuple_action_fn__3443.invoke(executor.clj:633)
	at backtype.storm.daemon.executor$mk_task_receiver$fn__3364.invoke(executor.clj:401)
	at backtype.storm.disruptor$clojure_handler$reify__1447.onEvent(disruptor.clj:58)
	at backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:125)
	at backtype.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:99)
	at backtype.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:80)
	at backtype.storm.daemon.executor$fn__3441$fn__3453$fn__3500.invoke(executor.clj:748)
	at backtype.storm.util$async_loop$fn__464.invoke(util.clj:463)
	at clojure.lang.AFn.run(AFn.java:24)
	at java.lang.Thread.run(Thread.java:745)
{code}

> java.lang.ArrayIndexOutOfBoundsException thrown by PolicyProcessExecutor
> ------------------------------------------------------------------------
>
>                 Key: EAGLE-240
>                 URL: https://issues.apache.org/jira/browse/EAGLE-240
>             Project: Eagle
>          Issue Type: Bug
>    Affects Versions: v0.3.0
>            Reporter: Hao Chen
>            Assignee: Hao Chen
>              Labels: policy-engine
>
> {code}
> 2016-04-12 12:56:43,491 ERROR [Thread-18-cassandraQueryLogExecutor_0] executor.PolicyProcessExecutor[336]: cassandraQueryLogExecutor, partition 0, error fetching alerts, but continue to run java.lang.ArrayIndexOutOfBoundsException: 1 	at org.apache.eagle.metric.reportor.MetricKeyCodeDecoder.decodeMetricKey(MetricKeyCodeDecoder.java:45) 	at org.apache.eagle.metric.reportor.MetricKeyCodeDecoder.decodeTSMetricKey(MetricKeyCodeDecoder.java:60) 	at org.apache.eagle.metric.reportor.MetricEntityAdaptor.convert(MetricEntityAdaptor.java:29) 	at org.apache.eagle.metric.reportor.EagleServiceReporterMetricListener.onMetricFlushed(EagleServiceReporterMetricListener.java:48) 	at org.apache.eagle.metric.reportor.EagleCounterMetric.flush(EagleCounterMetric.java:47) 	at org.apache.eagle.metric.reportor.EagleCounterMetric.update(EagleCounterMetric.java:67) 	at org.apache.eagle.policy.executor.PolicyProcessExecutor.updateCounter(PolicyProcessExecutor.java:285) 	at org.apache.eagle.policy.executor.PolicyProcessExecutor.updateCounter(PolicyProcessExecutor.java:291) 	at org.apache.eagle.policy.executor.PolicyProcessExecutor.flatMap(PolicyProcessExecutor.java:325) 	at org.apache.eagle.datastream.storm.JavaStormBoltWrapper.execute(JavaStormBoltWrapper.scala:38) 	at backtype.storm.daemon.executor$fn__3441$tuple_action_fn__3443.invoke(executor.clj:633) 	at backtype.storm.daemon.executor$mk_task_receiver$fn__3364.invoke(executor.clj:401) 	at backtype.storm.disruptor$clojure_handler$reify__1447.onEvent(disruptor.clj:58) 	at backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:125) 	at backtype.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:99) 	at backtype.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:80) 	at backtype.storm.daemon.executor$fn__3441$fn__3453$fn__3500.invoke(executor.clj:748) 	at backtype.storm.util$async_loop$fn__464.invoke(util.clj:463) 	at clojure.lang.AFn.run(AFn.java:24) 	at java.lang.Thread.run(Thread.java:745)
> {code}



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