Bug 1028779

Summary: Intermittent 'entry point not found' issue with SLAViolation drools rule
Product: [JBoss] JBoss Fuse Service Works 6 Reporter: Gary Brown <gbrown>
Component: RT GovernanceAssignee: Gary Brown <gbrown>
Status: CLOSED CURRENTRELEASE QA Contact: Jiri Pechanec <jpechane>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: 6.0.0 GACC: atangrin, gbrown, ldimaggi, soa-p-jira
Target Milestone: ER7   
Target Release: 6.0.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 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:

Description Gary Brown 2013-11-10 18:09:00 UTC
Description of problem:

Drools 6.0.0.CR5 appears to have introduced an intermittent issue where events being processed against the SLAViolation rule do not locate the 'ServiceResponseTimes' entry point.

With drools debug enabled, it shows:

15:47:59,902 INFO  [org.drools.compiler.kie.builder.impl.KieRepositoryImpl] (ServerService Thread Pool -- 66) KieModule was added:MemoryKieModule[ ReleaseId=org.default:artifact:1.0.0-SNAPSHOT]
15:47:59,901 INFO  [org.drools.compiler.kie.builder.impl.KieRepositoryImpl] (ServerService Thread Pool -- 72) KieModule was added:MemoryKieModule[ ReleaseId=org.default:artifact:1.0.0-SNAPSHOT]
15:48:00,040 DEBUG [org.drools.core.reteoo.ReteooRuleBase] (ServerService Thread Pool -- 66) Starting Engine in PHREAK mode
15:48:00,042 DEBUG [org.drools.core.reteoo.ReteooRuleBase] (ServerService Thread Pool -- 72) Starting Engine in PHREAK mode
15:48:00,115 TRACE [org.drools.core.phreak.AddRemoveRule] (ServerService Thread Pool -- 66) Adding Rule Create situation to represent exception
15:48:00,149 TRACE [org.drools.core.phreak.AddRemoveRule] (ServerService Thread Pool -- 72) Adding Rule Create situation to represent exception
15:48:00,175 TRACE [org.drools.core.reteoo.SegmentMemory] (ServerService Thread Pool -- 72) LinkNode notify=true nmask=1 smask=1 spos=0 rules=[RuleMem Create situation to represent exception]
15:48:00,176 TRACE [org.drools.core.reteoo.SegmentMemory] (ServerService Thread Pool -- 66) LinkNode notify=true nmask=1 smask=1 spos=0 rules=[RuleMem Create situation to represent exception]
15:48:00,192 FINEST [org.overlord.rtgov.ep.drools.DroolsEventProcessor] (ServerService Thread Pool -- 72) DroolsEventProcessor init: ruleName=SLAViolation session=org.drools.core.impl.StatefulKnowledgeSessionImpl@7b1868c3
15:48:00,192 FINEST [org.overlord.rtgov.ep.drools.DroolsEventProcessor] (ServerService Thread Pool -- 66) DroolsEventProcessor init: ruleName=RaiseSituationForException session=org.drools.core.impl.StatefulKnowledgeSessionImpl@7f861957

Two different rules are being initialized in separate threads, 'SLAViolation' and 'RaiseSituationForException'. However in the TRACE lines, it shows that one rules has been initialized in both threads.

Solution is to synchronize the creation of the session.

Comment 3 JBoss JIRA Server 2013-11-10 18:33:49 UTC
Gary Brown <gary> updated the status of jira RTGOV-312 to Resolved

Comment 4 Len DiMaggio 2013-11-11 17:12:19 UTC
Gary - can you set the severity value for this bugzilla? Thanks!

Comment 5 Gary Brown 2013-11-12 19:39:01 UTC
Removed sync based on reviewing David's code and discussion with Mark and Edson.

Comment 6 Jiri Pechanec 2014-01-07 13:34:51 UTC
Verified in ER8

Comment 7 JBoss JIRA Server 2014-07-02 09:19:02 UTC
Gary Brown <gary> updated the status of jira RTGOV-312 to Closed