I believe Guvnor may not be at fault, but a potential problem with the compilation process within Drools Expert.
If you construct a smaller KnowledgeBase from a DRL String containing the erroneous regular expression does it compile (not using Guvnor)?
Ideally it'd be good to try to construct a DRL String containing all of your rules outside of Guvnor but this may not be possible as I believe you are using Guvnor's Decision Tables.
I am just trying to think of a way to find a minimal failing unit test that the Drools Expert developers may be able to use to trace any problem.
we have hundreds of rules created in Guvnor 5.3..Final.
some of them use regular expressions when using the matches operator.
when business users enter an incorrect regular expression and rules are
built in guvnor subsequently, we have noticed heap consumption grow quite a
bit and not released subsequenlty.
currently, on a windows server that has approximately 1.3 GB heap available,
running 1 or builds consumes the whole memory and eventually crashes the
server.
The following is from one such log trace
[Near : {... **HST ....}]
^
[Line: 1, Column: 3]
[Error: Missing left node]
[Near : {... **HST ....}]
^
[Line: 1, Column: 3]
at
org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:293)
at
org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:62)
at
org.drools.rule.builder.PatternBuilder.setInputs(PatternBuilder.java:903)
at
org.drools.rule.builder.PatternBuilder.buildRelationalExpression(PatternBuilder.java:599)
at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:540)
at
org.drools.rule.builder.PatternBuilder.processConstraintsAndBinds(PatternBuilder.java:398)
at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:314)
at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:131)
at
org.drools.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:65)
at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:2289)
at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:807)
at
org.drools.guvnor.server.contenthandler.GuidedDTContentHandler.compile(GuidedDTContentHandler.java:63)
at
org.drools.guvnor.server.builder.PackageAssembler.loadAllButDRLAssets(PackageAssembler.java:83)
at
org.drools.guvnor.server.builder.PackageAssembler.loadAssets(PackageAssembler.java:73)
at
org.drools.guvnor.server.builder.PackageAssembler.buildPackage(PackageAssembler.java:65)
at
org.drools.guvnor.server.builder.PackageAssembler.compile(PackageAssembler.java:55)
at
org.drools.guvnor.server.RepositoryPackageOperations.buildPackage(RepositoryPackageOperations.java:506)
at
org.drools.guvnor.server.RepositoryPackageOperations.buildPackage(RepositoryPackageOperations.java:475)
at
org.drools.guvnor.server.RepositoryPackageService.buildPackage(RepositoryPackageService.java:314)
Any thoughts or suggestions around these memory leak issues?
--
View this message in context: http://drools.46999.n3.nabble.com/memory-leak-in-Guvnor-5-3-when-rules-have-incorrect-regular-expressions-tp3711977p3711977.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users