[JBoss JIRA] (DROOLS-1383) Deadlock in PackageClassLoader
by Mario Fusco (JIRA)
[ https://issues.jboss.org/browse/DROOLS-1383?page=com.atlassian.jira.plugi... ]
Mario Fusco resolved DROOLS-1383.
---------------------------------
Resolution: Cannot Reproduce Bug
> Deadlock in PackageClassLoader
> ------------------------------
>
> Key: DROOLS-1383
> URL: https://issues.jboss.org/browse/DROOLS-1383
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Affects Versions: 6.4.0.Final
> Reporter: Karen Zhu
> Assignee: Mario Fusco
> Priority: Blocker
> Attachments: ProjectClassLoader.java
>
>
> Found one deadlock in PackageLoader. Did I write rule in a bad way? How did a consequence of a rule will get the lock of PackageLoader which is needed by checkCerts(). Below is threaddump information.
> Found one Java-level deadlock:
> =============================
> "Thread-105-CustomClass-executor[17 17]":
> waiting to lock monitor 0x00007f933c005b38 (object 0x00007f963ed294b0, a java.lang.Object),
> which is held by "Thread-17-CustomClass-executor[33 33]"
> "Thread-17-CustomClass-executor[33 33]":
> waiting to lock monitor 0x00007f933c0031f8 (object 0x00007f963ed294c0, a org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader),
> which is held by "Thread-33-CustomClass-executor[9 9]"
> "Thread-33-CustomClass-executor[9 9]":
> waiting to lock monitor 0x00007f933c005b38 (object 0x00007f963ed294b0, a java.lang.Object),
> which is held by "Thread-17-CustomClass-executor[33 33]"
> Java stack information for the threads listed above:
> ===================================================
> "Thread-105-CustomClass-executor[17 17]":
> at org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader.fastFindClass(JavaDialectRuntimeData.java:662)
> waiting to lock <0x00007f963ed294b0> (a java.lang.Object)
> at org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader.loadClass(JavaDialectRuntimeData.java:642)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
> at org.drools.core.rule.MVELDialectRuntimeData.getParserConfiguration(MVELDialectRuntimeData.java:299)
> at org.drools.core.base.mvel.MVELCompilationUnit.getCompiledExpression(MVELCompilationUnit.java:238)
> at org.drools.core.rule.constraint.MvelConstraint.createMvelConditionEvaluator(MvelConstraint.java:264)
> at org.drools.core.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:248)
> at org.drools.core.rule.constraint.MvelConstraint.isAllowed(MvelConstraint.java:214)
> at org.drools.core.reteoo.AlphaNode.assertObject(AlphaNode.java:131)
> at org.drools.core.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:63)
> at org.drools.core.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:366)
> at org.drools.core.reteoo.ObjectTypeNode.propagateAssert(ObjectTypeNode.java:300)
> at org.drools.core.phreak.PropagationEntry$Insert.execute(PropagationEntry.java:93)
> at org.drools.core.phreak.SynchronizedPropagationList.flush(SynchronizedPropagationList.java:78)
> at org.drools.core.phreak.SynchronizedPropagationList.flush(SynchronizedPropagationList.java:73)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.flushPropagations(StatefulKnowledgeSessionImpl.java:2017)
> at org.drools.core.common.DefaultAgenda.fireLoop(DefaultAgenda.java:1334)
> at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1288)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1306)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1297)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1278)
> "Thread-17-CustomClass-executor[33 33]":
> at java.lang.ClassLoader.checkCerts(ClassLoader.java:942)
> waiting to lock <0x00007f963ed294c0> (a org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader)
> at java.lang.ClassLoader.preDefineClass(ClassLoader.java:666)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:794)
> at org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader.internalDefineClass(JavaDialectRuntimeData.java:694)
> at org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader.fastFindClass(JavaDialectRuntimeData.java:665)
> locked <0x00007f963ed294b0> (a java.lang.Object)
> at org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader.loadClass(JavaDialectRuntimeData.java:642)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
> at org.drools.core.rule.MVELDialectRuntimeData.getParserConfiguration(MVELDialectRuntimeData.java:299)
> at org.drools.core.base.mvel.MVELCompilationUnit.getCompiledExpression(MVELCompilationUnit.java:238)
> at org.drools.core.rule.constraint.MvelConstraint.createMvelConditionEvaluator(MvelConstraint.java:264)
> at org.drools.core.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:248)
> at org.drools.core.rule.constraint.MvelConstraint.isAllowed(MvelConstraint.java:214)
> at org.drools.core.reteoo.AlphaNode.assertObject(AlphaNode.java:131)
> at org.drools.core.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:63)
> at org.drools.core.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:366)
> at org.drools.core.reteoo.ObjectTypeNode.propagateAssert(ObjectTypeNode.java:300)
> at org.drools.core.phreak.PropagationEntry$Insert.execute(PropagationEntry.java:93)
> at org.drools.core.phreak.SynchronizedPropagationList.flush(SynchronizedPropagationList.java:78)
> at org.drools.core.phreak.SynchronizedPropagationList.flush(SynchronizedPropagationList.java:73)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.flushPropagations(StatefulKnowledgeSessionImpl.java:2017)
> at org.drools.core.common.DefaultAgenda.fireLoop(DefaultAgenda.java:1334)
> at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1288)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1306)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1297)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1278)
> "Thread-33-CustomClass-executor[9 9]":
> at org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader.fastFindClass(JavaDialectRuntimeData.java:662)
> waiting to lock <0x00007f963ed294b0> (a java.lang.Object)
> at org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader.loadClass(JavaDialectRuntimeData.java:642)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
> at com.cdr.apEventWrapperRules.ConstructorApBeansWrapper.constructorApBeansWrapper(ConstructorApBeansWrapper.java:55)
> at com.cdr.apEventWrapperRules.Rule_UCR2359988097.defaultConsequence(Rule_UCR2359988097.java:7)
> at com.cdr.apEventWrapperRules.Rule_UCR2359988097DefaultConsequenceInvokerGenerated.evaluate(Unknown Source)
> at com.cdr.apEventWrapperRules.Rule_UCR2359988097DefaultConsequenceInvoker.evaluate(Unknown Source)
> at org.drools.core.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1089)
> at org.drools.core.phreak.RuleExecutor.fire(RuleExecutor.java:121)
> at org.drools.core.phreak.RuleExecutor.evaluateNetworkAndFire(RuleExecutor.java:74)
> at org.drools.core.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1007)
> at org.drools.core.common.DefaultAgenda.fireLoop(DefaultAgenda.java:1350)
> at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1288)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1306)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1297)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1278)
> Found 1 deadlock.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years, 3 months
[JBoss JIRA] (DROOLS-1252) java.lang.ClassCastException: event cannot be cast to org.drools.core.common.InternalFactHandle
by Mario Fusco (JIRA)
[ https://issues.jboss.org/browse/DROOLS-1252?page=com.atlassian.jira.plugi... ]
Mario Fusco resolved DROOLS-1252.
---------------------------------
Resolution: Cannot Reproduce Bug
> java.lang.ClassCastException: event cannot be cast to org.drools.core.common.InternalFactHandle
> -----------------------------------------------------------------------------------------------
>
> Key: DROOLS-1252
> URL: https://issues.jboss.org/browse/DROOLS-1252
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Affects Versions: 6.4.0.Final
> Environment: Drools 6.4.Final
> Fusion (CEP)
> Reporter: Michael Neifeld
> Assignee: Mario Fusco
> Priority: Blocker
> Attachments: RULES_ERRORS.log, Rule_Emergency_Network_Start_No_Active_Call_Rule523993873.java
>
>
> It seems to be similar to another bug DROOLS-1185, but without any Modify.
> this is the rule:
> {code:java}
> declare EmergencyNetworkComplexEvent
> @role(event)
> @timestamp(timestamp)
> @expires(1h)
> end
> ...
> global Logger dlogger;
> .....
> rule "Emergency Network Start No Active Call Rule" //EMERGENCY
> salience 90
> // no-loop true
> when
> //conditions
> $event : EmergencyNetworkComplexEvent( transition == Transition.START)
> $predecessor : CallComplexEvent( radioID == $event.radioID )
> not ( EmergencyActiveCallComplexEvent( getTransition() == Transition.START, getCallID() == $event.callID )
> or EmergencyActiveCallComplexEvent( getTransition() == Transition.START, getRadioID() == $event.radioID ))
> then
> if (dlogger.isTraceEnabled()) dlogger.trace("Emergency Network Start No Active Call Rule: receiving {}, {}",$event, $predecessor);
> // action: create container, add the event to the container
> EmergencyActiveCallComplexEvent container = new EmergencyActiveCallComplexEvent($event);
> insert(container);
> delete($event); // ???
> if (dlogger.isTraceEnabled()) dlogger.trace("Emergency Network Start No Active Call Rule: after delete {}",$event);
> //actions: register new active call, new emergency call
> new ActiveCallSnapshot().addCall($event);
> final EmergencyEventSnapshot snapshot = new EmergencyEventSnapshot();
> snapshot.addEmergencyCall($event);
> //actions: get preceding event and add it to trail
> snapshot.add2Trail($predecessor);
> if (dlogger.isTraceEnabled()) dlogger.trace("Emergency Network Start No Active Call Rule: exiting {}",container);
> end
> {code}
> and this is the classdump of this rule:
> {code:java}
> package com.mot.ssol.cep;
> import com.mot.ssol.cep.model.ComplexEventImpl;import com.mot.nsa.monitor.client.NetworkEvent;import com.mot.ssol.cep.model.PseudoActiveCallComplexEvent;import java.util.Date;import com.mot.nsa.monitor.client.CallEvent.ChannelStatus;import com.mot.ssol.cep.model.ControlCallComplexEvent;import com.mot.nsa.monitor.client.GaugeValue;import org.apache.commons.lang3.StringUtils;import com.mot.ssol.cep.TDMAResolver;import com.mot.ssol.cep.model.CEPEvent;import com.mot.ssol.cep.*;import com.mot.ssol.cep.model.InactiveCallComplexEvent;import org.kie.api.runtime.rule.QueryResults;import com.mot.ssol.cep.EventBuilder;import com.mot.nsa.monitor.client.CallEvent;import com.mot.ssol.cep.model.EmergencyNetworkComplexEvent;import com.mot.nsa.monitor.analyzer.AnalyzedEvent;import com.mot.ssol.cep.TrapSnapshot;import com.mot.nsa.monitor.cepm.mapper.RadioAliasMapper;import com.mot.nsa.monitor.MutableTimestampAware;import com.mot.ssol.cep.model.NetworkComplexEvent;import com.mot.ssol.cep.model.CallComplexEvent;import com.mot.ssol.cep.model.ControlNetworkComplexEvent;import java.util.concurrent.BlockingQueue;import com.mot.nsa.monitor.cepm.model.CallCepmEvent;import java.util.concurrent.LinkedBlockingQueue;import com.mot.ssol.cep.model.GroupRegistrationComplexEvent;import com.mot.nsa.monitor.cepm.mapper.GroupAliasMapper;import com.mot.ssol.cep.model.BusyComplexEventDecorator;import java.util.List;import com.mot.ssol.cep.model.ComplexEvent.Type;import com.mot.ssol.cep.EmergencyEventSnapshot;import com.mot.nsa.monitor.cepm.mapper.ZoneMapper;import com.mot.ssol.cep.model.NetworkComplexEventImpl;import com.mot.ssol.cep.model.ChannelHandle;import com.mot.nsa.monitor.cepm.StatisticModule;import com.mot.nsa.monitor.client.ClientEvent;import com.mot.nsa.monitor.client.RadioEvent;import com.mot.ssol.cep.model.CallComplexEventImpl;import com.mot.ssol.cep.model.ChannelCallComplexEvent;import org.kie.api.runtime.rule.QueryResultsRow;import com.mot.nsa.monitor.MutableTransitionAware;import com.mot.ssol.cep.model.RadioHandle;import com.mot.ssol.cep.ActiveCallSnapshot;import com.mot.nsa.monitor.TransitionAware.Transition;import org.drools.core.spi.KnowledgeHelper;import com.mot.ssol.cep.model.PseudoRadioRegistrationComplexEvent;import com.mot.ssol.cep.model.EmergencyActiveCallComplexEvent;import com.mot.nsa.monitor.cepm.model.NonCallEvent;import org.slf4j.Logger;import com.mot.ssol.cep.model.EmergencyComplexEventDecorator;import org.apache.commons.lang3.time.DateUtils;import com.mot.nsa.monitor.client.NetworkEventImpl;import com.mot.ssol.cep.CallEventSnapshot;import com.mot.ssol.cep.model.PendingComplexEvent;import com.mot.ssol.cep.model.RadioRegistrationComplexEvent;import com.mot.ssol.cep.model.ComplexEvent;import com.mot.nsa.monitor.client.CallEventImpl;import com.mot.ssol.cep.model.ActiveCallComplexEvent;import com.mot.nsa.monitor.cepm.model.CallCepmEventImpl;import com.mot.ssol.cep.model.PseudoCallComplexEvent;import org.drools.core.spi.KnowledgeHelper;import static com.mot.ssol.cep.ClearAll.clearAll;import static com.mot.ssol.cep.EndZoneCall.endZoneCall;import static com.mot.ssol.cep.Busies2End.busies2End;import static com.mot.ssol.cep.EndCallEvents.endCallEvents;import static com.mot.ssol.cep.Events2busy.events2busy;import static com.mot.ssol.cep.EndCall.endCall;import static com.mot.ssol.cep.Emergency2end.emergency2end;
> public class Rule_Emergency_Network_Start_No_Active_Call_Rule523993873 {
> private static final long serialVersionUID = 510l;
> public static void defaultConsequence(KnowledgeHelper drools, com.mot.ssol.cep.model.EmergencyNetworkComplexEvent $event, org.kie.api.runtime.rule.FactHandle $event__Handle__ , com.mot.ssol.cep.model.CallComplexEvent $predecessor, org.kie.api.runtime.rule.FactHandle $predecessor__Handle__ , org.slf4j.Logger dlogger ) throws java.lang.Exception { org.kie.api.runtime.rule.RuleContext kcontext = drools;
> if (dlogger.isTraceEnabled()) dlogger.trace("Emergency Network Start No Active Call Rule: receiving {}, {}",$event, $predecessor);
> // action: create container, add the event to the container
> EmergencyActiveCallComplexEvent container = new EmergencyActiveCallComplexEvent($event);
> drools.insert(container);
> { drools.delete( $event__Handle__ ); }; // ???
> if (dlogger.isTraceEnabled()) dlogger.trace("Emergency Network Start No Active Call Rule: after delete {}",$event);
> //actions: register new active call, new emergency call
> new ActiveCallSnapshot().addCall($event);
> final EmergencyEventSnapshot snapshot = new EmergencyEventSnapshot();
> snapshot.addEmergencyCall($event);
> //actions: get preceding event and add it to trail
> snapshot.add2Trail($predecessor);
> if (dlogger.isTraceEnabled()) dlogger.trace("Emergency Network Start No Active Call Rule: exiting {}",container);
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years, 3 months
[JBoss JIRA] (DROOLS-682) Build and deploy option required in Standalone mode editors
by Mario Fusco (JIRA)
[ https://issues.jboss.org/browse/DROOLS-682?page=com.atlassian.jira.plugin... ]
Mario Fusco resolved DROOLS-682.
--------------------------------
Resolution: Won't Fix
> Build and deploy option required in Standalone mode editors
> -----------------------------------------------------------
>
> Key: DROOLS-682
> URL: https://issues.jboss.org/browse/DROOLS-682
> Project: Drools
> Issue Type: Bug
> Affects Versions: 6.1.0.Final
> Environment: JDK 1.8 / Wildfly 8.1 / Drools Work bench 6.1 Final
> Reporter: Ramesh C
> Assignee: Michael Anstis
> Priority: Blocker
>
> Integration of an asset editor to edit in external application is works well
> for an asset. if user edits and saves the asset it only saves the editor.
> As of now It does not builds the project and deploys the code into local repository and work bench repository. So,it is not possible to use the work bench in standalone mode effectively in production.
> kindly provide build and deploy button in standalone mode asset editors.
> So, Admins can edit, build and deploy the changes to repository and in the application, it will be read dynamically using ReleaseId mechanism or Scan mechanism. In this way, it will help for rules editing and building
> without restarting the application servers.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years, 3 months
[JBoss JIRA] (DROOLS-587) Workbench Guided Rule Editor: Fail to load existing rule
by Mario Fusco (JIRA)
[ https://issues.jboss.org/browse/DROOLS-587?page=com.atlassian.jira.plugin... ]
Mario Fusco reassigned DROOLS-587:
----------------------------------
Assignee: Mario Fusco (was: Mark Proctor)
> Workbench Guided Rule Editor: Fail to load existing rule
> --------------------------------------------------------
>
> Key: DROOLS-587
> URL: https://issues.jboss.org/browse/DROOLS-587
> Project: Drools
> Issue Type: Bug
> Environment: RHEL 6, JDK 7, Wildfly-8, Google Chrome Version 36.0.1985.125 m, IE9, IE10
> Reporter: Akshay Wankhede
> Assignee: Mario Fusco
> Priority: Blocker
> Attachments: bound-two-variables.png, error-when-you-click-rule-to-open-editor.png
>
>
> Guided rules editor fails to open existing .GDRL file. Please see the steps to reproduce below. Please note that there are no logs printed on the server at the time of the issue.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years, 3 months
[JBoss JIRA] (WFLY-8530) Wrong ZonedDateTime value read when attribute annotated with @Id
by Jörg Bäsner (JIRA)
Jörg Bäsner created WFLY-8530:
---------------------------------
Summary: Wrong ZonedDateTime value read when attribute annotated with @Id
Key: WFLY-8530
URL: https://issues.jboss.org/browse/WFLY-8530
Project: WildFly
Issue Type: Bug
Components: JPA / Hibernate
Affects Versions: 10.1.0.Final
Reporter: Jörg Bäsner
Assignee: Scott Marlow
Attachments: playground-prj.tar.gz
A ZonedDateTime entity attribute annotated with @Id returns the wrong value when read from the database. When the annotation @Id is not present, the value is returned correctly.
The special timestamp of Germanys daylight saving in October 2017 "2017-10-29T02:00:00+02:00" is returned after read as follows:
* with @Id: 2017-10-29T02:00+*01:00*[Europe/Berlin] <- *WRONG*
* without @Id: 2017-10-29T02:00+*02:00*[Europe/Berlin] <- *CORRECT*
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years, 3 months
[JBoss JIRA] (DROOLS-496) Rules in Drools 6.x cannot use more than 64 patterns
by Mario Fusco (JIRA)
[ https://issues.jboss.org/browse/DROOLS-496?page=com.atlassian.jira.plugin... ]
Mario Fusco resolved DROOLS-496.
--------------------------------
Resolution: Done
We replaced the long based bit mask with a class that can eventually hold multiple longs
> Rules in Drools 6.x cannot use more than 64 patterns
> ----------------------------------------------------
>
> Key: DROOLS-496
> URL: https://issues.jboss.org/browse/DROOLS-496
> Project: Drools
> Issue Type: Bug
> Affects Versions: 6.0.0.Final, 6.0.1.Final, 6.1.0.Final, 6.2.0.Beta1
> Reporter: Jörgen Risholt
> Assignee: Mario Fusco
> Priority: Blocker
> Attachments: drools-test_5.6.0.tar, drools-test_6.0.1.tar
>
>
> When trying a script as shown below we can not get it to work with 6.0.1 but with 5.6.0. There seems to be some relation to the number of facts, the more facts the higher probablity that the 6.0.1 version do not trigger. We have made two simple singelthreaded scenarios that I can upload if wanted.
> The examle has a lot of facts, but we notice that from about 50 it seems that the problam may occur.
> rule "TestRule"
> Person(name == "Name0")
> Person(name == "Name1")
> ....
> Person(name == "Name1000")
> then
> System.out.println("Successfully trigged");
> end
> This is the testcode for 5.6.0.Final (work always):
> package drools_test;
> import org.drools.KnowledgeBase;
> import org.drools.builder.KnowledgeBuilder;
> import org.drools.builder.KnowledgeBuilderFactory;
> import org.drools.builder.ResourceType;
> import org.drools.io.ResourceFactory;
> import org.drools.runtime.StatefulKnowledgeSession;
> import drools_test.data.Person;
> public class App {
> private final static int NUMBER_OF_PERSONS = 3000;
> public static void main(String[] args) {
> KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
> kbuilder.add(ResourceFactory.newClassPathResource("rules.drl",
> App.class), ResourceType.DRL);
> KnowledgeBase kb = kbuilder.newKnowledgeBase();
> StatefulKnowledgeSession session = null;
> try {
> session = kb.newStatefulKnowledgeSession();
> for (int i = 0; i < NUMBER_OF_PERSONS; ++i) {
> session.insert(new Person(String.format("Name%s", i)));
> session.fireAllRules();
> }
> session.fireAllRules();
> } finally {
> if (session != null) {
> session.dispose();
> }
> }
> }
> }
> And this is the same code for 6.0.1.Final which always fails:
> package drools_test;
> import org.kie.api.KieServices;
> import org.kie.api.runtime.KieContainer;
> import org.kie.api.runtime.KieSession;
> import drools_test.data.Person;
> public class App
> {
> private final static int NUMBER_OF_PERSONS = 3000;
> public static void main(String[] args)
> {
> KieServices kieServices = KieServices.Factory.get();
> KieContainer kContainer = kieServices.getKieClasspathContainer();
> KieSession session = null;
> try {
> session = kContainer.newKieSession();
> for (int i = 0; i < NUMBER_OF_PERSONS; ++i) {
> session.insert(new Person(String.format("Name%s", i)));
> session.fireAllRules(); // Comment out this line and the rule will fire.
> }
> session.fireAllRules();
> } finally {
> if (session != null) {
> session.dispose();
> }
> }
> }
> }
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years, 3 months
[JBoss JIRA] (DROOLS-496) Rules in Drools 6.x cannot use more than 64 patterns
by Mario Fusco (JIRA)
[ https://issues.jboss.org/browse/DROOLS-496?page=com.atlassian.jira.plugin... ]
Mario Fusco reassigned DROOLS-496:
----------------------------------
Assignee: Mario Fusco (was: Mark Proctor)
> Rules in Drools 6.x cannot use more than 64 patterns
> ----------------------------------------------------
>
> Key: DROOLS-496
> URL: https://issues.jboss.org/browse/DROOLS-496
> Project: Drools
> Issue Type: Bug
> Affects Versions: 6.0.0.Final, 6.0.1.Final, 6.1.0.Final, 6.2.0.Beta1
> Reporter: Jörgen Risholt
> Assignee: Mario Fusco
> Priority: Blocker
> Attachments: drools-test_5.6.0.tar, drools-test_6.0.1.tar
>
>
> When trying a script as shown below we can not get it to work with 6.0.1 but with 5.6.0. There seems to be some relation to the number of facts, the more facts the higher probablity that the 6.0.1 version do not trigger. We have made two simple singelthreaded scenarios that I can upload if wanted.
> The examle has a lot of facts, but we notice that from about 50 it seems that the problam may occur.
> rule "TestRule"
> Person(name == "Name0")
> Person(name == "Name1")
> ....
> Person(name == "Name1000")
> then
> System.out.println("Successfully trigged");
> end
> This is the testcode for 5.6.0.Final (work always):
> package drools_test;
> import org.drools.KnowledgeBase;
> import org.drools.builder.KnowledgeBuilder;
> import org.drools.builder.KnowledgeBuilderFactory;
> import org.drools.builder.ResourceType;
> import org.drools.io.ResourceFactory;
> import org.drools.runtime.StatefulKnowledgeSession;
> import drools_test.data.Person;
> public class App {
> private final static int NUMBER_OF_PERSONS = 3000;
> public static void main(String[] args) {
> KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
> kbuilder.add(ResourceFactory.newClassPathResource("rules.drl",
> App.class), ResourceType.DRL);
> KnowledgeBase kb = kbuilder.newKnowledgeBase();
> StatefulKnowledgeSession session = null;
> try {
> session = kb.newStatefulKnowledgeSession();
> for (int i = 0; i < NUMBER_OF_PERSONS; ++i) {
> session.insert(new Person(String.format("Name%s", i)));
> session.fireAllRules();
> }
> session.fireAllRules();
> } finally {
> if (session != null) {
> session.dispose();
> }
> }
> }
> }
> And this is the same code for 6.0.1.Final which always fails:
> package drools_test;
> import org.kie.api.KieServices;
> import org.kie.api.runtime.KieContainer;
> import org.kie.api.runtime.KieSession;
> import drools_test.data.Person;
> public class App
> {
> private final static int NUMBER_OF_PERSONS = 3000;
> public static void main(String[] args)
> {
> KieServices kieServices = KieServices.Factory.get();
> KieContainer kContainer = kieServices.getKieClasspathContainer();
> KieSession session = null;
> try {
> session = kContainer.newKieSession();
> for (int i = 0; i < NUMBER_OF_PERSONS; ++i) {
> session.insert(new Person(String.format("Name%s", i)));
> session.fireAllRules(); // Comment out this line and the rule will fire.
> }
> session.fireAllRules();
> } finally {
> if (session != null) {
> session.dispose();
> }
> }
> }
> }
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years, 3 months
[JBoss JIRA] (DROOLS-263) Possible memory leak insliding temporal windows
by Tibor Zimányi (JIRA)
[ https://issues.jboss.org/browse/DROOLS-263?page=com.atlassian.jira.plugin... ]
Tibor Zimányi closed DROOLS-263.
--------------------------------
Resolution: Won't Fix
Closing this as we don't use propagationQueueNode anymore.
> Possible memory leak insliding temporal windows
> ------------------------------------------------
>
> Key: DROOLS-263
> URL: https://issues.jboss.org/browse/DROOLS-263
> Project: Drools
> Issue Type: Bug
> Affects Versions: 5.5.0.Final
> Reporter: Davide Sottara
> Assignee: Mark Proctor
> Priority: Blocker
>
> When an event is asserted and a temporal window is present, it will be cached in the window's memory and then propagated (usually to an accumulate) by a propagationQuquingNode.
> If the even expires before it participates in a tuple (in a multi-threading environment), the WM retraction will not reach the window node due to the lack of tuples. BUT, it will set the fact handle's ID to -1
> When the fact is considered for expiration from the sliding window, its changed ID will 1) disrupt the local event queue and 2) prevent it from being removed from the node memory.
> Memory leaks and NPEs will arise randomly
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years, 3 months
[JBoss JIRA] (WFCORE-2507) Key manager exported from legacy security domain does not work Elytron server-ssl-context
by Ondrej Kotek (JIRA)
[ https://issues.jboss.org/browse/WFCORE-2507?page=com.atlassian.jira.plugi... ]
Ondrej Kotek commented on WFCORE-2507:
--------------------------------------
This is fixed, but a link to pull request is missing.
> Key manager exported from legacy security domain does not work Elytron server-ssl-context
> -----------------------------------------------------------------------------------------
>
> Key: WFCORE-2507
> URL: https://issues.jboss.org/browse/WFCORE-2507
> Project: WildFly Core
> Issue Type: Bug
> Components: Security
> Affects Versions: 3.0.0.Beta6
> Reporter: Ondrej Kotek
> Priority: Critical
>
> It is not possible to use a key manager exported from legacy security domain (i.e. {{elytron-key-manager}}) in Elytron {{server-ssl-context}}. It results in:
> {noformat}
> {
> "outcome" => "failed",
> "failure-description" => {
> "WFLYCTL0080: Failed services" => {"org.wildfly.security.ssl-context.ssc" => "org.jboss.msc.service.StartException in service org.wildfly.security.ssl-context.ssc: WFLYELY00019: No 'X509ExtendedKeyManager' found in injected value."},
> "WFLYCTL0412: Required services that are not installed:" => ["org.wildfly.security.ssl-context.ssc"]
> },
> "rolled-back" => true
> }
> {noformat}
> The exported key manager is announced as {{org.wildfly.security.key-managers}} capability. Hence it is expected to work wherever the capability is requested.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years, 3 months