[JBoss JIRA] (DROOLS-5603) Refactor super invocation setting
by Gabriele Cardosi (Jira)
[ https://issues.redhat.com/browse/DROOLS-5603?page=com.atlassian.jira.plug... ]
Gabriele Cardosi closed DROOLS-5603.
------------------------------------
> Refactor super invocation setting
> ---------------------------------
>
> Key: DROOLS-5603
> URL: https://issues.redhat.com/browse/DROOLS-5603
> Project: Drools
> Issue Type: Task
> Reporter: Gabriele Cardosi
> Assignee: Gabriele Cardosi
> Priority: Major
> Labels: TrustyAI
>
> Currently in sources generation the super invocation is managed by field index
> {code:java}
> // Some comments here
> ExplicitConstructorInvocationStmt superStatement = (ExplicitConstructorInvocationStmt) statement;
> NameExpr algorithmNameExpr = (NameExpr) superStatement.getArgument(2);
> algorithmNameExpr.setName(String.format("\"%s\"", treeModel.getAlgorithmName()));
> {code}
> This must be changed so that field to be set is looked for by name and - if not found, an exception must be thrown (as for the AssignExpr)
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years, 1 month
[JBoss JIRA] (DROOLS-5607) DRLDumper corrupts accumulate over conjunction of patterns
by Mario Fusco (Jira)
[ https://issues.redhat.com/browse/DROOLS-5607?page=com.atlassian.jira.plug... ]
Mario Fusco resolved DROOLS-5607.
---------------------------------
Resolution: Done
Fixed by https://github.com/kiegroup/drools/commit/89db4bc94119821c4c934e175201c7f...
> DRLDumper corrupts accumulate over conjunction of patterns
> ----------------------------------------------------------
>
> Key: DROOLS-5607
> URL: https://issues.redhat.com/browse/DROOLS-5607
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Affects Versions: 7.42.0.Final
> Reporter: Matteo Casalino
> Assignee: Mario Fusco
> Priority: Major
> Attachments: parser-dumper-with-accumulate-on-and.zip
>
>
> The following valid accumulate clause:
> {noformat}
> Set(size>=1) from accumulate(
> $p1:Pattern1(...)
> and
> $p2:Pattern2(...)
> , collectSet($p1)
> ){noformat}
> is modified as follows when parsed and re-serialized with DRLParser/DRLDumper:
> {noformat}
> Set(size>=1) from accumulate(
> ($p1:Pattern1(...)
> and
> $p2:Pattern2(...))
> , collectSet($p1)
> ){noformat}
> The latter syntax is rejected by the Drools compiler with the following error:
> {noformat}
> Error Messages:
> Message [id=1, kieBase=defaultKieBase, level=ERROR, path=org/example/rules.drl, line=14, column=0
> text=Invalid accumulate pattern in rule 'round trips accumulate'.]{noformat}
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years, 1 month
[JBoss JIRA] (DROOLS-5615) Deadlock in ProjectClassLoader
by Michael Osganian (Jira)
Michael Osganian created DROOLS-5615:
----------------------------------------
Summary: Deadlock in ProjectClassLoader
Key: DROOLS-5615
URL: https://issues.redhat.com/browse/DROOLS-5615
Project: Drools
Issue Type: Bug
Components: core engine
Affects Versions: 6.5.0.Final
Reporter: Michael Osganian
Assignee: Mario Fusco
Hi I am using 6.5.0.Final of drools and I have a deadlock situation that is hard to reproduce. We are running about 4 threads each running its own rule engine with the same set of rules but different data. Below is the deadlock on 3 of the threads and looks like the ProjectClassLoader is at the root of the problem:
Found one Java-level deadlock:Found one Java-level deadlock:============================="InferenceThread-4": waiting to lock monitor 0x00007fd5cc044a38 (object 0x0000000081b0ee18, a org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader), which is held by "InferenceThread-2""InferenceThread-2": waiting to lock monitor 0x00007fd5cc044ae8 (object 0x0000000081a2a4a8, a org.drools.core.common.ProjectClassLoader$DefaultInternalTypesClassLoader), which is held by "InferenceThread-1""InferenceThread-1": waiting to lock monitor 0x00007fd5bc01fd28 (object 0x0000000081acc610, a org.drools.core.common.ProjectClassLoader), which is held by "InferenceThread-2"
Java stack information for the threads listed above:==================================================="InferenceThread-4": at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:348) at org.mvel2.util.ParseTools.forNameWithInner(ParseTools.java:2187) at org.mvel2.ParserConfiguration.checkForDynamicImport(ParserConfiguration.java:169) at org.mvel2.ParserConfiguration.hasImport(ParserConfiguration.java:197) at org.mvel2.ParserContext.hasImport(ParserContext.java:373) at org.mvel2.compiler.AbstractParser.createPropertyToken(AbstractParser.java:1399) at org.mvel2.compiler.AbstractParser.nextToken(AbstractParser.java:903) at org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:111) at org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:52) at org.mvel2.MVEL.compileExpression(MVEL.java:810) at org.drools.core.base.mvel.MVELCompilationUnit.compile(MVELCompilationUnit.java:451) at org.drools.core.base.mvel.MVELCompilationUnit.getCompiledExpression(MVELCompilationUnit.java:273) at org.drools.core.rule.constraint.MvelConstraint.createMvelConditionEvaluator(MvelConstraint.java:269) at org.drools.core.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:249) at org.drools.core.rule.constraint.MvelConstraint.isAllowedCachedLeft(MvelConstraint.java:227) at org.drools.core.common.TripleBetaConstraints.isAllowedCachedLeft(TripleBetaConstraints.java:118) at org.drools.core.phreak.PhreakJoinNode.doLeftInserts(PhreakJoinNode.java:113) at org.drools.core.phreak.PhreakJoinNode.doNode(PhreakJoinNode.java:76) at org.drools.core.phreak.RuleNetworkEvaluator.switchOnDoBetaNode(RuleNetworkEvaluator.java:519) at org.drools.core.phreak.RuleNetworkEvaluator.evalBetaNode(RuleNetworkEvaluator.java:505) at org.drools.core.phreak.RuleNetworkEvaluator.evalNode(RuleNetworkEvaluator.java:341) at org.drools.core.phreak.RuleNetworkEvaluator.innerEval(RuleNetworkEvaluator.java:301) at org.drools.core.phreak.RuleNetworkEvaluator.outerEval(RuleNetworkEvaluator.java:136) at org.drools.core.phreak.RuleNetworkEvaluator.evaluateNetwork(RuleNetworkEvaluator.java:94) at org.drools.core.phreak.RuleExecutor.reEvaluateNetwork(RuleExecutor.java:194) at org.drools.core.phreak.RuleExecutor.evaluateNetworkAndFire(RuleExecutor.java:73) at org.drools.core.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:970) at org.drools.core.common.DefaultAgenda.fireLoop(DefaultAgenda.java:1312) at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1251) at org.drools.core.impl.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1359) at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1350) at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1331) at ActivityInferenceSession.fireRules(ActivityInferenceSession.java:261) at InferenceRunnable.doTryInference(InferenceRunnable.java:226) at InferenceRunnable.doInference(InferenceRunnable.java:129) at InferenceRunnable.run(InferenceRunnable.java:100) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)"InferenceThread-2": at java.lang.ClassLoader.loadClass(ClassLoader.java:404) - waiting to lock <0x0000000081a2a4a8> (a org.drools.core.common.ProjectClassLoader$DefaultInternalTypesClassLoader) at org.drools.core.common.ProjectClassLoader$DefaultInternalTypesClassLoader.loadType(ProjectClassLoader.java:394) at org.drools.core.common.ProjectClassLoader.loadType(ProjectClassLoader.java:172) at org.drools.core.common.ProjectClassLoader.loadClass(ProjectClassLoader.java:143) - locked <0x0000000081acc610> (a org.drools.core.common.ProjectClassLoader) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader.loadClass(JavaDialectRuntimeData.java:646) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:348) at org.mvel2.util.ParseTools.forNameWithInner(ParseTools.java:2187) at org.mvel2.ParserConfiguration.checkForDynamicImport(ParserConfiguration.java:169) at org.mvel2.ParserConfiguration.hasImport(ParserConfiguration.java:197) at org.mvel2.ParserContext.hasImport(ParserContext.java:373) at org.mvel2.compiler.AbstractParser.createPropertyToken(AbstractParser.java:1399) at org.mvel2.compiler.AbstractParser.nextToken(AbstractParser.java:903) at org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:111) at org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:52) at org.mvel2.MVEL.compileExpression(MVEL.java:810) at org.drools.core.base.mvel.MVELCompilationUnit.compile(MVELCompilationUnit.java:451) at org.drools.core.base.mvel.MVELCompilationUnit.getCompiledExpression(MVELCompilationUnit.java:273) at org.drools.core.rule.constraint.MvelConstraint.createMvelConditionEvaluator(MvelConstraint.java:269) at org.drools.core.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:249) at org.drools.core.rule.constraint.MvelConstraint.isAllowedCachedLeft(MvelConstraint.java:227) at org.drools.core.common.TripleBetaConstraints.isAllowedCachedLeft(TripleBetaConstraints.java:118) at org.drools.core.phreak.PhreakJoinNode.doLeftInserts(PhreakJoinNode.java:113) at org.drools.core.phreak.PhreakJoinNode.doNode(PhreakJoinNode.java:76) at org.drools.core.phreak.RuleNetworkEvaluator.switchOnDoBetaNode(RuleNetworkEvaluator.java:519) at org.drools.core.phreak.RuleNetworkEvaluator.evalBetaNode(RuleNetworkEvaluator.java:505) at org.drools.core.phreak.RuleNetworkEvaluator.evalNode(RuleNetworkEvaluator.java:341) at org.drools.core.phreak.RuleNetworkEvaluator.innerEval(RuleNetworkEvaluator.java:301) at org.drools.core.phreak.RuleNetworkEvaluator.outerEval(RuleNetworkEvaluator.java:136) at org.drools.core.phreak.RuleNetworkEvaluator.evaluateNetwork(RuleNetworkEvaluator.java:94) at org.drools.core.phreak.RuleExecutor.reEvaluateNetwork(RuleExecutor.java:194) at org.drools.core.phreak.RuleExecutor.evaluateNetworkAndFire(RuleExecutor.java:73) at org.drools.core.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:970) at org.drools.core.common.DefaultAgenda.fireLoop(DefaultAgenda.java:1312) at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1251) at org.drools.core.impl.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1359) at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1350) at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1331) at ActivityInferenceSession.fireRules(ActivityInferenceSession.java:261) at InferenceRunnable.doTryInference(InferenceRunnable.java:226) at InferenceRunnable.doInference(InferenceRunnable.java:129) at InferenceRunnable.run(InferenceRunnable.java:100) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)"InferenceThread-1": at org.drools.core.common.ProjectClassLoader$DefaultInternalTypesClassLoader.loadClass(ProjectClassLoader.java:385) - waiting to lock <0x0000000081acc610> (a org.drools.core.common.ProjectClassLoader) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:348) at com.sun.beans.finder.ClassFinder.findClass(ClassFinder.java:103) at java.beans.Introspector.findCustomizerClass(Introspector.java:1301) at java.beans.Introspector.getTargetBeanDescriptor(Introspector.java:1295) at java.beans.Introspector.getBeanInfo(Introspector.java:425) at java.beans.Introspector.getBeanInfo(Introspector.java:173) at org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDescriptors(PropertyUtilsBean.java:980) at org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDescriptors(PropertyUtilsBean.java:1084) at org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDescriptor(PropertyUtilsBean.java:912) at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1319) at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:770) at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:846) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.getMethod(ReflectiveAccessorOptimizer.java:1120) at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.getMethod(ReflectiveAccessorOptimizer.java:1003) at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.compileGetChain(ReflectiveAccessorOptimizer.java:396) at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeAccessor(ReflectiveAccessorOptimizer.java:163) at org.mvel2.ast.ASTNode.optimize(ASTNode.java:159) at org.mvel2.ast.ASTNode.getReducedValueAccelerated(ASTNode.java:115) at org.mvel2.ast.BinaryOperation.getReducedValueAccelerated(BinaryOperation.java:117) at org.mvel2.compiler.ExecutableAccessor.getValue(ExecutableAccessor.java:38) at org.mvel2.ast.Substatement.getReducedValueAccelerated(Substatement.java:44) at org.mvel2.ast.Or.getReducedValueAccelerated(Or.java:34) at org.mvel2.compiler.ExecutableAccessor.getValue(ExecutableAccessor.java:38) at org.mvel2.ast.Substatement.getReducedValueAccelerated(Substatement.java:44) at org.mvel2.ast.And.getReducedValueAccelerated(And.java:34) at org.mvel2.MVELRuntime.execute(MVELRuntime.java:85) at org.mvel2.compiler.CompiledExpression.getDirectValue(CompiledExpression.java:123) at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:119) at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:113) at org.mvel2.MVEL.executeExpression(MVEL.java:929) at org.drools.core.base.mvel.MVELEvalExpression.evaluate(MVELEvalExpression.java:104) at org.drools.core.rule.EvalCondition.isAllowed(EvalCondition.java:118) at org.drools.core.phreak.PhreakEvalNode.doLeftInserts(PhreakEvalNode.java:72) at org.drools.core.phreak.PhreakEvalNode.doNode(PhreakEvalNode.java:56) at org.drools.core.phreak.RuleNetworkEvaluator.evalNode(RuleNetworkEvaluator.java:349) at org.drools.core.phreak.RuleNetworkEvaluator.innerEval(RuleNetworkEvaluator.java:301) at org.drools.core.phreak.RuleNetworkEvaluator.outerEval(RuleNetworkEvaluator.java:136) at org.drools.core.phreak.RuleNetworkEvaluator.evaluateNetwork(RuleNetworkEvaluator.java:94) at org.drools.core.phreak.RuleExecutor.reEvaluateNetwork(RuleExecutor.java:194) at org.drools.core.phreak.RuleExecutor.evaluateNetworkAndFire(RuleExecutor.java:73) at org.drools.core.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:970) at org.drools.core.common.DefaultAgenda.fireLoop(DefaultAgenda.java:1312) at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1251) at org.drools.core.impl.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1359) at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1350) at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1331) at ActivityInferenceSession.fireRules(ActivityInferenceSession.java:261) at InferenceRunnable.doTryInference(InferenceRunnable.java:226) at InferenceRunnable.doInference(InferenceRunnable.java:129) at InferenceRunnable.run(InferenceRunnable.java:100) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
Found 1 deadlock.
I know there has been other issues entered on deadlock with ProjectClassLoader and they have either been fixed in an earlier version or closed as not reproducible. Its hard to reproduce this as it has only happened in production a few times. In some of the rules we are running we are using PropertyUtilsBean as you can see in one of the deadlock threads so not sure if that is a cause for concern here or not but in our situation each thread has its own PropertyUtilsBean instance.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years, 1 month
[JBoss JIRA] (WFWIP-343) Bootable JAR - FeaturePack element exposes misleading Galleon concepts
by Jean Francois Denise (Jira)
[ https://issues.redhat.com/browse/WFWIP-343?page=com.atlassian.jira.plugin... ]
Jean Francois Denise resolved WFWIP-343.
----------------------------------------
Resolution: Done
> Bootable JAR - FeaturePack element exposes misleading Galleon concepts
> ----------------------------------------------------------------------
>
> Key: WFWIP-343
> URL: https://issues.redhat.com/browse/WFWIP-343
> Project: WildFly WIP
> Issue Type: Bug
> Reporter: Jean Francois Denise
> Assignee: Jean Francois Denise
> Priority: Major
>
> When providing a list of feature-packs, each feature-pack item can be configured in a way that is not applicable to Bootable JAR. Furthermore some default values are not correct. This comes from the fack that the featurePack item is shared with the galleon generic maven plugin that offers more capabilities than the bootable JAR.
> In order to simplify configuration of feature-pack elements the following changes are required in the wildfly-jar-maven-plugin:
> * Remove inherit-configs item. It is implicitly false.
> * Make inherit-packages false by default.
> * Remove included-configs and excluded-configs elements. In a bootable JAR context a single configuration can be included.
> * Introduce "included-default-config"=[name of included config, eg:standalone-microprofile.xml]. Used to identify the default configuration to include in the bootable JAR.
> * Remove transitive attribute.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years, 1 month
[JBoss JIRA] (JGRP-2369) Remove message indicating that UFC is not needed when using a TCP transport
by Bela Ban (Jira)
[ https://issues.redhat.com/browse/JGRP-2369?page=com.atlassian.jira.plugin... ]
Bela Ban closed JGRP-2369.
--------------------------
Resolution: Won't Fix
> Remove message indicating that UFC is not needed when using a TCP transport
> ----------------------------------------------------------------------------
>
> Key: JGRP-2369
> URL: https://issues.redhat.com/browse/JGRP-2369
> Project: JGroups
> Issue Type: Bug
> Affects Versions: 4.0.11
> Environment: Red Hat JBoss Data Grid
> * 7.2 (which uses JGroups 4.0.11)
> Reporter: Jonathan Mason
> Assignee: Bela Ban
> Priority: Minor
>
> By default, protocol UFC is removed from the default TCP stack (in JDG). However, depending on the type of cache replication used (i.e., ASYNC), the UFC protocol may be of some benefit. Adding the UFC protocol into the TCP stack results in a message [1] indicating that it is not needed. This message should be removed.
> [1]
> INFO [org.jgroups.protocols.UFC] (MSC service thread 1-7) UFC is not needed (and can be removed) as we're running on a TCP transport
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years, 1 month