Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1160146

Summary: Verifier is slow with duplicate OR constraints
Product: [JBoss] JBoss Enterprise BRMS Platform 5 Reporter: Toshiya Kobayashi <tkobayas>
Component: BRM (Guvnor)Assignee: Toni Rikkola <trikkola>
Status: CLOSED UPSTREAM QA Contact:
Severity: medium Docs Contact:
Priority: unspecified    
Version: BRMS 5.3.1   
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2025-02-10 03:43:27 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:
Attachments:
Description Flags
repository_export_duplicate_OR.zip none

Description Toshiya Kobayashi 2014-11-04 07:12:50 UTC
Description of problem:

If you have rules with duplicate OR constraints and run [QA]->[Run Analysis] or [Source]->[Verify], it will become very slow.

The reproducer has just 4 rules with 50 OR(||) constratints per rule. This leads to OOME because of BZ1160106. But using debugger, I observed that inserting org.drools.verifier.components.WorkingMemory took more than 3 minutes in VerifierImpl.analyse() hence looks like another bottle-neck (If you have more rules, the bottle-neck takes more time).


124     private boolean analyse(ScopesAgendaFilter scopesAgendaFilter) {
...
134             for ( Object object : result.getVerifierData().getAll() ) {
135                 ksession.insert( object );
136             }


Steps to Reproduce:

# Assuming BZ1160106 is resolved.

1. Start BRMS 5.3.1 with -Xmx4g
2. Import the attached repository_export_duplicate_OR.zip to Guvnor
3. [QA]->[Run Analysis]

Actual results:

Takes more than 3 minutes.

Expected results:

Finish Verifying faster.

"faster" is not a good word for bug reporting. If you find anything to fix in this behaviour, please fix. I don't set a specific value for "how much fast".

Comment 1 Toshiya Kobayashi 2014-11-04 07:14:43 UTC
Created attachment 953482 [details]
repository_export_duplicate_OR.zip

Comment 2 Toshiya Kobayashi 2014-11-04 07:16:16 UTC
I have attached BRMS531Ex74_verifier_slow.zip in BZ1160106 as a JBDS project.

To reproduce the issue in JBDS, please use Sample_OR_duplicate.drl in the project.

String drlFile = "Sample_OR_duplicate.drl";

Comment 4 Red Hat Bugzilla 2025-02-10 03:43:27 UTC
This product has been discontinued or is no longer tracked in Red Hat Bugzilla.