[jboss-jira] [JBoss JIRA] (DROOLS-1103) FireAllRules can trigger java.util.concurrent.RejectedExecutionException from the JDKTimerService
Juan Carlos Garcia (JIRA)
issues at jboss.org
Wed Mar 23 07:53:00 EDT 2016
Juan Carlos Garcia created DROOLS-1103:
------------------------------------------
Summary: 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
Reporter: Juan Carlos Garcia
Assignee: Mark Proctor
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