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/02/01 10:03:39 UTC

[jira] [Resolved] (EAGLE-41) Eagle policy engine supports customizable ExceptionHandler instead of using FetalExceptionHandler

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

Hao Chen resolved EAGLE-41.
---------------------------
    Resolution: Resolved

https://github.com/wso2/siddhi/pull/122

> Eagle policy engine supports customizable ExceptionHandler instead of using FetalExceptionHandler
> -------------------------------------------------------------------------------------------------
>
>                 Key: EAGLE-41
>                 URL: https://issues.apache.org/jira/browse/EAGLE-41
>             Project: Eagle
>          Issue Type: Bug
>    Affects Versions: 0.3.0
>            Reporter: Hao Chen
>            Assignee: Hao Chen
>             Fix For: 0.3.0
>
>
> Currently Eagle Siddhi CEP engine bolt will always crash once caught with any bad message:
> {code:title=Error logs|theme=FadeToGrey|linenumbers=true|language=java|firstline=0001|collapse=true}
> 2015-11-17 01:42:31 b.s.d.executor [INFO] Prepared bolt metricStreamExecutor_0:(8)
> 2015-11-17 01:42:55 STDIO [ERROR] Nov 17, 2015 1:42:55 AM com.lmax.disruptor.FatalExceptionHandler handleEventException
> SEVERE: Exception processing: 1 IndexedEvent{streamIndex=0, event=Event{timestamp=1447749775529, data=[eagle.alert.siddhi.EagleAlertContext@2ce1e618, NA, devdbx-003-12315.phx-os1.stratus.dev.ebay.com, freeSpace, shared, 1547664650590, 10], isExpired=false}}
> java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Double
> 	at org.wso2.siddhi.core.executor.condition.compare.less_than.LessThanCompareConditionExpressionExecutorDoubleInt.execute(LessThanCompareConditionExpressionExecutorDoubleInt.java:31)
> 	at org.wso2.siddhi.core.executor.condition.compare.CompareConditionExpressionExecutor.execute(CompareConditionExpressionExecutor.java:38)
> 	at org.wso2.siddhi.core.executor.condition.compare.CompareConditionExpressionExecutor.execute(CompareConditionExpressionExecutor.java:23)
> 	at org.wso2.siddhi.core.executor.condition.AndConditionExpressionExecutor.execute(AndConditionExpressionExecutor.java:53)
> 	at org.wso2.siddhi.core.executor.condition.AndConditionExpressionExecutor.execute(AndConditionExpressionExecutor.java:24)
> 	at org.wso2.siddhi.core.query.processor.filter.FilterProcessor.process(FilterProcessor.java:49)
> 	at org.wso2.siddhi.core.query.input.ProcessStreamReceiver.processAndClear(ProcessStreamReceiver.java:93)
> 	at org.wso2.siddhi.core.query.input.ProcessStreamReceiver.receive(ProcessStreamReceiver.java:65)
> 	at org.wso2.siddhi.core.stream.StreamJunction.sendEvent(StreamJunction.java:114)
> 	at org.wso2.siddhi.core.stream.StreamJunction$Publisher.send(StreamJunction.java:280)
> 	at org.wso2.siddhi.core.stream.input.InputDistributor.send(InputDistributor.java:32)
> 	at org.wso2.siddhi.core.stream.input.SingleThreadEntryValve.send(SingleThreadEntryValve.java:46)
> 	at org.wso2.siddhi.core.stream.input.SingleStreamEntryValve$SingleEntryValveHandler.sendEvents(SingleStreamEntryValve.java:152)
> 	at org.wso2.siddhi.core.stream.input.SingleStreamEntryValve$SingleEntryValveHandler.onEvent(SingleStreamEntryValve.java:140)
> 	at org.wso2.siddhi.core.stream.input.SingleStreamEntryValve$SingleEntryValveHandler.onEvent(SingleStreamEntryValve.java:110)
> 	at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:113)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> 	at java.lang.Thread.run(Thread.java:745)
> 2015-11-17 01:42:55 o.a.s.z.s.NIOServerCnxnFactory [ERROR] Thread Thread[Siddhi-cc2b5e49-00d8-43ea-bac6-c25d9b7e9332-executor-thread-0,5,main] died
> java.lang.RuntimeException: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Double
> 	at com.lmax.disruptor.FatalExceptionHandler.handleEventException(FatalExceptionHandler.java:45) ~[disruptor-2.10.1.jar:na]
> 	at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:128) ~[disruptor-2.10.1.jar:na]
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_60]
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ~[na:1.7.0_60]
> 	at java.lang.Thread.run(Thread.java:745) ~[na:1.7.0_60]
> Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Double
> 	at org.wso2.siddhi.core.executor.condition.compare.less_than.LessThanCompareConditionExpressionExecutorDoubleInt.execute(LessThanCompareConditionExpressionExecutorDoubleInt.java:31) ~[stormjar.jar:na]
> 	at org.wso2.siddhi.core.executor.condition.compare.CompareConditionExpressionExecutor.execute(CompareConditionExpressionExecutor.java:38) ~[stormjar.jar:na]
> 	at org.wso2.siddhi.core.executor.condition.compare.CompareConditionExpressionExecutor.execute(CompareConditionExpressionExecutor.java:23) ~[stormjar.jar:na]
> 	at org.wso2.siddhi.core.executor.condition.AndConditionExpressionExecutor.execute(AndConditionExpressionExecutor.java:53) ~[stormjar.jar:na]
> 	at org.wso2.siddhi.core.executor.condition.AndConditionExpressionExecutor.execute(AndConditionExpressionExecutor.java:24) ~[stormjar.jar:na]
> 	at org.wso2.siddhi.core.query.processor.filter.FilterProcessor.process(FilterProcessor.java:49) ~[stormjar.jar:na]
> 	at org.wso2.siddhi.core.query.input.ProcessStreamReceiver.processAndClear(ProcessStreamReceiver.java:93) ~[stormjar.jar:na]
> 	at org.wso2.siddhi.core.query.input.ProcessStreamReceiver.receive(ProcessStreamReceiver.java:65) ~[stormjar.jar:na]
> 	at org.wso2.siddhi.core.stream.StreamJunction.sendEvent(StreamJunction.java:114) ~[stormjar.jar:na]
> 	at org.wso2.siddhi.core.stream.StreamJunction$Publisher.send(StreamJunction.java:280) ~[stormjar.jar:na]
> 	at org.wso2.siddhi.core.stream.input.InputDistributor.send(InputDistributor.java:32) ~[stormjar.jar:na]
> 	at org.wso2.siddhi.core.stream.input.SingleThreadEntryValve.send(SingleThreadEntryValve.java:46) ~[stormjar.jar:na]
> 	at org.wso2.siddhi.core.stream.input.SingleStreamEntryValve$SingleEntryValveHandler.sendEvents(SingleStreamEntryValve.java:152) ~[stormjar.jar:na]
> 	at org.wso2.siddhi.core.stream.input.SingleStreamEntryValve$SingleEntryValveHandler.onEvent(SingleStreamEntryValve.java:140) ~[stormjar.jar:na]
> 	at org.wso2.siddhi.core.stream.input.SingleStreamEntryValve$SingleEntryValveHandler.onEvent(SingleStreamEntryValve.java:110) ~[stormjar.jar:na]
> 	at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:113) ~[disruptor-2.10.1.jar:na]
> 	... 3 common frames omitted
> {code}
> To fix the problem, we should support to customize ExceptionHandler for Siddhi CEP engine before starting the Disruptor threads.



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