[jboss-jira] [JBoss JIRA] (DROOLS-2426) ParallelEvaluationTest.testFireUntilHaltWithExpiration2 fails with lower amount of processors

Tibor Zimányi (JIRA) issues at jboss.org
Wed Mar 28 04:01:04 EDT 2018


    [ https://issues.jboss.org/browse/DROOLS-2426?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13552548#comment-13552548 ] 

Tibor Zimányi commented on DROOLS-2426:
---------------------------------------

It looks like it is a race condition between fireUntilHalt thread and expire thread. I put some debugging output to the engine and this is the log for a failed run [1]. At the end of the log there are 2 deletes, so that means the facts deleted didn't produce activations because they expired. 

Passing run has this output [2].

[1] https://gist.github.com/baldimir/0c4189c86e20b12a42db724f1d945501
[2] https://gist.github.com/baldimir/aaab2d01c6afcda2c0c5138a872823c1

> ParallelEvaluationTest.testFireUntilHaltWithExpiration2 fails with lower amount of processors
> ---------------------------------------------------------------------------------------------
>
>                 Key: DROOLS-2426
>                 URL: https://issues.jboss.org/browse/DROOLS-2426
>             Project: Drools
>          Issue Type: Bug
>          Components: core engine
>    Affects Versions: 7.7.0.Final
>            Reporter: Tibor Zimányi
>            Assignee: Mario Fusco
>
> The test ParallelEvaluationTest.testFireUntilHaltWithExpiration2 fails randomly, when the machine on which it is run has smaller amount of processors (tested with 2). It fails because the engine doesn't produce expected amount of rule fires, so the test waits on a CountDownLatch. One idea what happens is that one agenda thread expires events from second agenda on some race condition. But that is a first guess after looking at the code. 
> Steps to reproduce: 
> 1. Change the number of parallel partitions to 2 here [1]
> 2. Rebuild drools-core
> 3. Run the test from PR [2] few times. 
> [1] https://github.com/kiegroup/drools/blob/63ea870c89591dfeae1276f582d825670fe7ec3a/drools-core/src/main/java/org/drools/core/common/RuleBasePartitionId.java#L31
> [2] https://github.com/kiegroup/drools/pull/1843



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)



More information about the jboss-jira mailing list