[jboss-jira] [JBoss JIRA] (DROOLS-1103) FireAllRules can trigger java.util.concurrent.RejectedExecutionException from the JDKTimerService

Juan Carlos Garcia (JIRA) issues at jboss.org
Fri Jul 22 05:20:02 EDT 2016


     [ https://issues.jboss.org/browse/DROOLS-1103?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Juan Carlos Garcia updated DROOLS-1103:
---------------------------------------
    Affects Version/s: 6.4.0.Final


> FireAllRules can trigger java.util.concurrent.RejectedExecutionException from the JDKTimerService
> -------------------------------------------------------------------------------------------------
>
>                 Key: DROOLS-1103
>                 URL: https://issues.jboss.org/browse/DROOLS-1103
>             Project: Drools
>          Issue Type: Bug
>    Affects Versions: 6.3.0.Final, 6.4.0.Final
>            Reporter: Juan Carlos Garcia
>            Assignee: Mario Fusco
>
> Under very rare circumstance we have found the following exception *java.util.concurrent.RejectedExecutionException* in our production log.
> Our guess is that the Drools Session is on its way to be dispose, while a new incoming request is in the middle of a fireAllRules operation (race condition).
> I will try to provide a reproducible testcase for this.
> {code}
> Caused by: java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask at 3e896443 rejected from java.util.concurrent.ScheduledThreadPoolExecutor at 71cc2f4c[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0]
>         at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2047)
>         at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:823)
>         at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExecute(ScheduledThreadPoolExecutor.java:326)
>         at java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:549)
>         at org.drools.core.time.impl.JDKTimerService.internalSchedule(JDKTimerService.java:118)
>         at org.drools.core.time.impl.JDKTimerService.scheduleJob(JDKTimerService.java:101)
>         at org.drools.core.phreak.PhreakTimerNode.scheduleTimer(PhreakTimerNode.java:304)
>         at org.drools.core.phreak.PhreakTimerNode.scheduleLeftTuple(PhreakTimerNode.java:233)
>         at org.drools.core.phreak.PhreakTimerNode.doLeftUpdates(PhreakTimerNode.java:131)
>         at org.drools.core.phreak.PhreakTimerNode.doNode(PhreakTimerNode.java:65)
>         at org.drools.core.phreak.RuleNetworkEvaluator.innerEval(RuleNetworkEvaluator.java:357)
>         at org.drools.core.phreak.RuleNetworkEvaluator.outerEval(RuleNetworkEvaluator.java:161)
>         at org.drools.core.phreak.RuleNetworkEvaluator.evaluateNetwork(RuleNetworkEvaluator.java:116)
>         at org.drools.core.phreak.RuleExecutor.reEvaluateNetwork(RuleExecutor.java:194)
>         at org.drools.core.phreak.RuleExecutor.evaluateNetworkAndFire(RuleExecutor.java:67)
>         at org.drools.core.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:935)
>         at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1200)
>         at org.drools.core.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:957)
>         at org.drools.core.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:936)
>         at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:260)
>         at XXXXXX.XXXXX.XXXXX.processEventDrools(EventProcessorImpl.java:128)
>         at XXXXXX.XXXXX.XXXXX.processEvent(EventProcessorImpl.java:101)
> {code} 



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the jboss-jira mailing list