Bug 1248661

Summary: NullPointerException on LeftTupleIndexHashTable.remove()
Product: [Retired] JBoss BRMS Platform 6 Reporter: Tibor Zimanyi <tzimanyi>
Component: BREAssignee: Mario Fusco <mfusco>
Status: CLOSED INSUFFICIENT_DATA QA Contact: Tibor Zimanyi <tzimanyi>
Severity: unspecified Docs Contact:
Priority: high    
Version: 6.1.0CC: kverlaen, tzimanyi
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1249261 (view as bug list) Environment:
Last Closed: 2015-09-28 17:54:32 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1249261    

Description Tibor Zimanyi 2015-07-30 14:25:59 UTC
Description of problem: 

LeftTupleIndexHashTable.remove() operation ended on NPE when called in test DinnerPartyPerformanceTest.solveModel_wedding01() from optaplanner community repo. I cannot reproduce it, so it's probably some specific case of add, remove operations combination. We can probably exclude concurrency from possible causes because optaplanner is single-threaded. I'll try to create a reproducer for this, but it's a tricky stuff, so it will take longer. Here's the stack trace: 

java.lang.NullPointerException: null
	at org.drools.core.util.index.LeftTupleIndexHashTable.remove(LeftTupleIndexHashTable.java:386)
	at org.drools.core.phreak.PhreakNotNode.doRightUpdates(PhreakNotNode.java:334)
	at org.drools.core.phreak.PhreakNotNode.doNode(PhreakNotNode.java:57)
	at org.drools.core.phreak.RuleNetworkEvaluator.switchOnDoBetaNode(RuleNetworkEvaluator.java:526)
	at org.drools.core.phreak.RuleNetworkEvaluator.evalBetaNode(RuleNetworkEvaluator.java:507)
	at org.drools.core.phreak.RuleNetworkEvaluator.innerEval(RuleNetworkEvaluator.java:319)
	at org.drools.core.phreak.RuleNetworkEvaluator.outerEval(RuleNetworkEvaluator.java:149)
	at org.drools.core.phreak.RuleNetworkEvaluator.evaluateNetwork(RuleNetworkEvaluator.java:106)
	at org.drools.core.phreak.RuleExecutor.reEvaluateNetwork(RuleExecutor.java:161)
	at org.drools.core.phreak.RuleExecutor.evaluateNetworkAndFire(RuleExecutor.java:57)
	at org.drools.core.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:987)
	at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1301)
	at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1286)
	at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1259)
	at org.optaplanner.core.impl.score.director.drools.DroolsScoreDirector.calculateScore(DroolsScoreDirector.java:87)
	at org.optaplanner.core.impl.solver.scope.DefaultSolverScope.calculateScore(DefaultSolverScope.java:110)
	at org.optaplanner.core.impl.phase.scope.AbstractPhaseScope.calculateScore(AbstractPhaseScope.java:123)
	at org.optaplanner.core.impl.localsearch.decider.LocalSearchDecider.processMove(LocalSearchDecider.java:162)
	at org.optaplanner.core.impl.localsearch.decider.LocalSearchDecider.doMove(LocalSearchDecider.java:149)
	at org.optaplanner.core.impl.localsearch.decider.LocalSearchDecider.decideNextStep(LocalSearchDecider.java:121)
	at org.optaplanner.core.impl.localsearch.DefaultLocalSearchPhase.solve(DefaultLocalSearchPhase.java:66)
	at org.optaplanner.core.impl.solver.DefaultSolver.runPhases(DefaultSolver.java:213)
	at org.optaplanner.core.impl.solver.DefaultSolver.solve(DefaultSolver.java:176)
	at org.optaplanner.examples.common.app.SolverPerformanceTest.solve(SolverPerformanceTest.java:79)
	at org.optaplanner.examples.common.app.SolverPerformanceTest.runSpeedTest(SolverPerformanceTest.java:63)
	at org.optaplanner.examples.common.app.SolverPerformanceTest.runSpeedTest(SolverPerformanceTest.java:58)
	at org.optaplanner.examples.dinnerparty.app.DinnerPartyPerformanceTest.solveModel_wedding01(DinnerPartyPerformanceTest.java:46)


Version-Release number of selected component (if applicable): 6.2.0.Final-redhat-9

Additional info: 

Test failed running on aix7 environment with ibm jdk 7

Comment 4 Mario Fusco 2015-09-28 17:54:32 UTC
We are still unable to reproduce the reported problem so I'm closing this issue for now. Feel free to reopen it if you can provide a reproducer.