[JBoss JIRA] (JGRP-1976) Choose the next coordinator from the largest sub-cluster when merge
by Bela Ban (JIRA)
[ https://issues.jboss.org/browse/JGRP-1976?page=com.atlassian.jira.plugin.... ]
Bela Ban edited comment on JGRP-1976 at 11/13/15 3:40 AM:
----------------------------------------------------------
What about the case where we have {{{A,B,C,D,E}}} splitting into `{A,B}` and `{C,D,E}` ? On a merge, coordinatorship would be moved from `A` to `C`...
was (Author: belaban):
What about the case where we have `{A,B,C,D,E}` splitting into `{A,B}` and `{C,D,E}` ? On a merge, coordinatorship would be moved from `A` to `C`...
> Choose the next coordinator from the largest sub-cluster when merge
> -------------------------------------------------------------------
>
> Key: JGRP-1976
> URL: https://issues.jboss.org/browse/JGRP-1976
> Project: JGroups
> Issue Type: Enhancement
> Reporter: Osamu Nagano
> Assignee: Bela Ban
> Fix For: 3.6.7
>
> Attachments: LargestWinningPolicy.java
>
>
> When sub-clusters merge, the current DefaultMembershipPolicy collects all coordinators from the sub-clusters and sorts it, then chooses the first one as the next coordinator (JGRP-1002). The sort is done by UUID which is random. Please consider to change the algorithm slightly to choose the one from the largest (in terms of the number of members) sub-cluster and make it the default.
> Choosing the largest one is reasonable from many point of views. For example, a WildFly cluster hosting a singleton service becomes more robust. Another scenario is about a large Inifnispan cluster. When you add an extra node and the node resides into another network segment, the new node tends to become an isolated coordinator initially (because a switch requires some time to reflect a new multicast route between the segments) then merges later. With the current implementation, this new node becomes the coordinator frequently and affects stability of the cluster by a cluster-wide rebalance. This is bad because the intention is to ease the cluster, not to unstabilize it.
> The implementation can be customized by membership_change_policy property of pbcast.GMS. I attach my implementation as LargestWinningPolicy.java as a reference.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
10 years, 8 months
[JBoss JIRA] (JGRP-1976) Choose the next coordinator from the largest sub-cluster when merge
by Bela Ban (JIRA)
[ https://issues.jboss.org/browse/JGRP-1976?page=com.atlassian.jira.plugin.... ]
Bela Ban commented on JGRP-1976:
--------------------------------
What about the case where we have `{A,B,C,D,E}` splitting into `{A,B}` and `{C,D,E}` ? On a merge, coordinatorship would be moved from `A` to `C`...
> Choose the next coordinator from the largest sub-cluster when merge
> -------------------------------------------------------------------
>
> Key: JGRP-1976
> URL: https://issues.jboss.org/browse/JGRP-1976
> Project: JGroups
> Issue Type: Enhancement
> Reporter: Osamu Nagano
> Assignee: Bela Ban
> Fix For: 3.6.7
>
> Attachments: LargestWinningPolicy.java
>
>
> When sub-clusters merge, the current DefaultMembershipPolicy collects all coordinators from the sub-clusters and sorts it, then chooses the first one as the next coordinator (JGRP-1002). The sort is done by UUID which is random. Please consider to change the algorithm slightly to choose the one from the largest (in terms of the number of members) sub-cluster and make it the default.
> Choosing the largest one is reasonable from many point of views. For example, a WildFly cluster hosting a singleton service becomes more robust. Another scenario is about a large Inifnispan cluster. When you add an extra node and the node resides into another network segment, the new node tends to become an isolated coordinator initially (because a switch requires some time to reflect a new multicast route between the segments) then merges later. With the current implementation, this new node becomes the coordinator frequently and affects stability of the cluster by a cluster-wide rebalance. This is bad because the intention is to ease the cluster, not to unstabilize it.
> The implementation can be customized by membership_change_policy property of pbcast.GMS. I attach my implementation as LargestWinningPolicy.java as a reference.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
10 years, 8 months
[JBoss JIRA] (DROOLS-981) when I update the stateful rule, the rule is not be actived
by bing yang (JIRA)
[ https://issues.jboss.org/browse/DROOLS-981?page=com.atlassian.jira.plugin... ]
bing yang updated DROOLS-981:
-----------------------------
Labels: jboss statefule (was: statefule)
> when I update the stateful rule, the rule is not be actived
> -----------------------------------------------------------
>
> Key: DROOLS-981
> URL: https://issues.jboss.org/browse/DROOLS-981
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Affects Versions: 6.3.0.Final
> Reporter: bing yang
> Assignee: Mario Fusco
> Labels: jboss, statefule
>
> this issue is due to[ https://issues.jboss.org/browse/DROOLS-978]. I modified the source(NodeTypeEnums.java:Line 88):add if node is null, then return false.
> there is no NPE, but I find that the updated rule is not be actived by adding the listener on the session.
> So, I want to know whether my test case is not correct? or the drools does not support the stateful rule's update? or this is the drools's bug?
> but If i modify the org.drools.core.reteoo.TimerNode like this:
> public void setNodePosMaskBit(long segmentPos) {
> // this.nodePosMaskBit = segmentPos;
> this.nodePosMaskBit = 1;
> }
> then the rule will be actived, but i dont know whether this can cause other questions.
> Thanks!
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
10 years, 8 months
[JBoss JIRA] (DROOLS-981) when I update the stateful rule, the rule is not be actived
by bing yang (JIRA)
[ https://issues.jboss.org/browse/DROOLS-981?page=com.atlassian.jira.plugin... ]
bing yang updated DROOLS-981:
-----------------------------
Description:
this issue is due to[ https://issues.jboss.org/browse/DROOLS-978]. I modified the source(NodeTypeEnums.java:Line 88):add if node is null, then return false.
there is no NPE, but I find that the updated rule is not be actived by adding the listener on the session.
So, I want to know whether my test case is not correct? or the drools does not support the stateful rule's update? or this is the drools's bug?
but If i modify the org.drools.core.reteoo.TimerNode like this:
public void setNodePosMaskBit(long segmentPos) {
// this.nodePosMaskBit = segmentPos;
this.nodePosMaskBit = 1;
}
then the rule will be actived, but i dont know whether this can cause other questions.
Thanks!
was:
this issue is due to[ https://issues.jboss.org/browse/DROOLS-978]. I modified the source(NodeTypeEnums.java:Line 88):add if node is null, then return false.
there is not NPE, but I find that the updated rule is not be actived by adding the listener on the session.
So, I want to know whether my test case is not correct? or the drools does not support the stateful rule's update? or this is the drools's bug?
Thanks!
> when I update the stateful rule, the rule is not be actived
> -----------------------------------------------------------
>
> Key: DROOLS-981
> URL: https://issues.jboss.org/browse/DROOLS-981
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Affects Versions: 6.3.0.Final
> Reporter: bing yang
> Assignee: Mario Fusco
> Labels: statefule
>
> this issue is due to[ https://issues.jboss.org/browse/DROOLS-978]. I modified the source(NodeTypeEnums.java:Line 88):add if node is null, then return false.
> there is no NPE, but I find that the updated rule is not be actived by adding the listener on the session.
> So, I want to know whether my test case is not correct? or the drools does not support the stateful rule's update? or this is the drools's bug?
> but If i modify the org.drools.core.reteoo.TimerNode like this:
> public void setNodePosMaskBit(long segmentPos) {
> // this.nodePosMaskBit = segmentPos;
> this.nodePosMaskBit = 1;
> }
> then the rule will be actived, but i dont know whether this can cause other questions.
> Thanks!
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
10 years, 8 months
[JBoss JIRA] (DROOLS-978) java.lang.NullPointerException at org.drools.core.reteoo.NodeTypeEnums.isBetaNode(NodeTypeEnums.java:88)
by bing yang (JIRA)
[ https://issues.jboss.org/browse/DROOLS-978?page=com.atlassian.jira.plugin... ]
bing yang updated DROOLS-978:
-----------------------------
Steps to Reproduce:
Here is the test class:
------------------------------------------------------------------------------------------------
KieServices ks = KieServices.Factory.get();
KieFileSystem kfs = ks.newKieFileSystem();
ReleaseId releaseId = ks.newReleaseId(rulepackage, "ruleEngine",
"1.0.0-SNAPSHOT");
kfs.generateAndWritePomXML(releaseId);
KieModuleModel kModuleModel = ks.newKieModuleModel();
kModuleModel.newKieBaseModel("_" + rulepackage)
.setDefault(true)
.setEventProcessingMode(EventProcessingOption.STREAM);
kfs.writeKModuleXML(kModuleModel.toXML());
String rulePath = "src/main/resources/test/";
kfs.write(rulePath + "testRule.drl", rulescript);
KieBuilder kb = ks.newKieBuilder(kfs);
kb.buildAll();
if (kb.getResults().hasMessages(Level.ERROR))
{
System.out.println(kb.getResults());
}
KieContainer kContainer = ks.newKieContainer(releaseId);
KieSessionConfiguration ksconf = ks.newKieSessionConfiguration();
ksconf.setOption(TimedRuleExectionOption.YES);
KieBase kieBase = kContainer.getKieBase("_" + rulepackage);
KieSession session = kieBase.newKieSession(ksconf, null);
session.fireAllRules();
Thread.sleep(5000);
kfs.delete(rulePath + "testRule.drl");
KieBuilder kb1 = ks.newKieBuilder(kfs);
kb1.buildAll();
kContainer.updateToVersion(releaseId);
kfs.write(rulePath + "testRule.drl", rulescript1);
kb1 = ks.newKieBuilder(kfs);
kb1.buildAll();
kContainer.updateToVersion(releaseId);
session.fireAllRules();
-----------------------------------------------------------------------
rulescript:
package com.test
import com.test.RuleCheckEvent
import com.test.TimeConditionEvent
declare RuleCheckEvent
@role(event)
end
declare TimeConditionEvent
@role(event)
@expires(60s)
end
rule "Timer_icc-rule-01-12-669c-151109035449039"
timer (int:0s 60s)
salience 9999
no-loop true
enabled true
when
then
RuleCheckEvent checkEvent = new RuleCheckEvent("a7f669c150e9da7c8a13f","icc-rule-01-12-669c-151109035449039");
insert(checkEvent);
update(checkEvent);
end
rule "Timer0_icc-rule-01-12-669c-151109035449039"
timer (cron:0 */5 * * * ?)
salience 999
no-loop true
enabled true
when
then
insert(new TimeConditionEvent("icc-rule-01-12-669c-151109035449039",0,"*/5,*,*,*,?",System.currentTimeMillis()));
end
-----------------------------------------------------------------------
rulescript1:
package com.test
import com.test.RuleCheckEvent
declare RuleCheckEvent
@role(event)
end
rule "Timer_icc-rule-01-12-669c-151109040433041"
timer (int:0s 60s)
salience 9999
no-loop true
enabled true
when
then
RuleCheckEvent checkEvent = new RuleCheckEvent("a7f669c150e9da7c8a13f","icc-rule-01-12-669c-151109040433041");
insert(checkEvent);
update(checkEvent);
end
-------------------------------------------------------
package com.test;
import org.kie.api.definition.type.Role;
import org.kie.api.definition.type.Role.Type;
@Role(Type.EVENT)
public abstract class Event
{
protected String id;
protected long timestamp;
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
@Override
public int hashCode()
{
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + (int) (timestamp ^ (timestamp >>> 32));
return result;
}
@Override
public boolean equals(Object obj)
{
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Event other = (Event) obj;
if (id == null)
{
if (other.id != null)
return false;
}
else if (!id.equals(other.id))
return false;
if (timestamp != other.timestamp)
return false;
return true;
}
public long getTimestamp()
{
return timestamp;
}
public void setTimestamp(long timestamp)
{
this.timestamp = timestamp;
}
@Override
public String toString()
{
return "Event [id=" + id + ", timestamp=" + timestamp + ", getId()="
+ getId() + ", hashCode()=" + hashCode() + ", getTimestamp()="
+ getTimestamp() + ", getClass()=" + getClass()
+ ", toString()=" + super.toString() + "]";
}
}
------------------------------------------------
package com.test;
import org.kie.api.definition.type.Role;
import org.kie.api.definition.type.Role.Type;
@Role(Type.EVENT)
public class RuleCheckEvent extends Event
{
private String groupId;
public RuleCheckEvent(String groupId, String id)
{
this.groupId = groupId;
this.id = id;
}
public String getGroupId()
{
return groupId;
}
public void setGroupId(String groupId)
{
this.groupId = groupId;
}
@Override
public String toString()
{
return "RuleCheckEvent [groupId=" + groupId + ", id=" + id
+ ", timestamp=" + timestamp + ", getGroupId()=" + getGroupId()
+ ", getId()=" + getId() + ", hashCode()=" + hashCode()
+ ", getTimestamp()=" + getTimestamp() + ", toString()="
+ super.toString() + ", getClass()=" + getClass() + "]";
}
@Override
public int hashCode()
{
final int prime = 31;
int result = super.hashCode();
result = prime * result + ((groupId == null) ? 0 : groupId.hashCode());
return result;
}
@Override
public boolean equals(Object obj)
{
if (this == obj)
return true;
if (!super.equals(obj))
return false;
if (getClass() != obj.getClass())
return false;
RuleCheckEvent other = (RuleCheckEvent) obj;
if (groupId == null)
{
if (other.groupId != null)
return false;
}
else if (!groupId.equals(other.groupId))
return false;
return true;
}
}
-----------------------------------------------------------------------
package com.test;
public class TimeConditionEvent extends Event
{
private int index;
private String triggerTime;
public TimeConditionEvent(String id, int index, String triggerTime,
long timestamp)
{
this.id = id;
this.index = index;
this.triggerTime = triggerTime;
this.timestamp = timestamp;
}
public int getIndex()
{
return index;
}
public void setIndex(int index)
{
this.index = index;
}
public String getTriggerTime()
{
return triggerTime;
}
public void setTriggerTime(String triggerTime)
{
this.triggerTime = triggerTime;
}
}
was:
Here is the test class:
------------------------------------------------------------------------------------------------
KieServices ks = KieServices.Factory.get();
KieFileSystem kfs = ks.newKieFileSystem();
ReleaseId releaseId = ks.newReleaseId(rulepackage, "ruleEngine",
"1.0.0-SNAPSHOT");
kfs.generateAndWritePomXML(releaseId);
KieModuleModel kModuleModel = ks.newKieModuleModel();
kModuleModel.newKieBaseModel("_" + rulepackage)
.setDefault(true)
.setEventProcessingMode(EventProcessingOption.STREAM);
kfs.writeKModuleXML(kModuleModel.toXML());
String rulePath = "src/main/resources/test/";
kfs.write(rulePath + "testRule.drl", rulescript);
KieBuilder kb = ks.newKieBuilder(kfs);
kb.buildAll();
if (kb.getResults().hasMessages(Level.ERROR))
{
System.out.println(kb.getResults());
}
KieContainer kContainer = ks.newKieContainer(releaseId);
KieSessionConfiguration ksconf = ks.newKieSessionConfiguration();
ksconf.setOption(TimedRuleExectionOption.YES);
KieBase kieBase = kContainer.getKieBase("_" + rulepackage);
KieSession session = kieBase.newKieSession(ksconf, null);
session.fireAllRules();
Thread.sleep(5000);
kfs.delete(rulePath + "testRule.drl");
kfs.write(rulePath + "testRule.drl", rulescript1);
KieBuilder kb1 = ks.newKieBuilder(kfs);
kb1.buildAll();
kContainer.updateToVersion(releaseId);
session.fireAllRules();
-----------------------------------------------------------------------
rulescript:
package com.test
import com.test.RuleCheckEvent
import com.test.TimeConditionEvent
declare RuleCheckEvent
@role(event)
end
declare TimeConditionEvent
@role(event)
@expires(60s)
end
rule "Timer_icc-rule-01-12-669c-151109035449039"
timer (int:0s 60s)
salience 9999
no-loop true
enabled true
when
then
RuleCheckEvent checkEvent = new RuleCheckEvent("a7f669c150e9da7c8a13f","icc-rule-01-12-669c-151109035449039");
insert(checkEvent);
update(checkEvent);
end
rule "Timer0_icc-rule-01-12-669c-151109035449039"
timer (cron:0 */5 * * * ?)
salience 999
no-loop true
enabled true
when
then
insert(new TimeConditionEvent("icc-rule-01-12-669c-151109035449039",0,"*/5,*,*,*,?",System.currentTimeMillis()));
end
-----------------------------------------------------------------------
rulescript1:
package com.test
import com.test.RuleCheckEvent
declare RuleCheckEvent
@role(event)
end
rule "Timer_icc-rule-01-12-669c-151109040433041"
timer (int:0s 60s)
salience 9999
no-loop true
enabled true
when
then
RuleCheckEvent checkEvent = new RuleCheckEvent("a7f669c150e9da7c8a13f","icc-rule-01-12-669c-151109040433041");
insert(checkEvent);
update(checkEvent);
end
-------------------------------------------------------
package com.test;
import org.kie.api.definition.type.Role;
import org.kie.api.definition.type.Role.Type;
@Role(Type.EVENT)
public abstract class Event
{
protected String id;
protected long timestamp;
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
@Override
public int hashCode()
{
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + (int) (timestamp ^ (timestamp >>> 32));
return result;
}
@Override
public boolean equals(Object obj)
{
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Event other = (Event) obj;
if (id == null)
{
if (other.id != null)
return false;
}
else if (!id.equals(other.id))
return false;
if (timestamp != other.timestamp)
return false;
return true;
}
public long getTimestamp()
{
return timestamp;
}
public void setTimestamp(long timestamp)
{
this.timestamp = timestamp;
}
@Override
public String toString()
{
return "Event [id=" + id + ", timestamp=" + timestamp + ", getId()="
+ getId() + ", hashCode()=" + hashCode() + ", getTimestamp()="
+ getTimestamp() + ", getClass()=" + getClass()
+ ", toString()=" + super.toString() + "]";
}
}
------------------------------------------------
package com.test;
import org.kie.api.definition.type.Role;
import org.kie.api.definition.type.Role.Type;
@Role(Type.EVENT)
public class RuleCheckEvent extends Event
{
private String groupId;
public RuleCheckEvent(String groupId, String id)
{
this.groupId = groupId;
this.id = id;
}
public String getGroupId()
{
return groupId;
}
public void setGroupId(String groupId)
{
this.groupId = groupId;
}
@Override
public String toString()
{
return "RuleCheckEvent [groupId=" + groupId + ", id=" + id
+ ", timestamp=" + timestamp + ", getGroupId()=" + getGroupId()
+ ", getId()=" + getId() + ", hashCode()=" + hashCode()
+ ", getTimestamp()=" + getTimestamp() + ", toString()="
+ super.toString() + ", getClass()=" + getClass() + "]";
}
@Override
public int hashCode()
{
final int prime = 31;
int result = super.hashCode();
result = prime * result + ((groupId == null) ? 0 : groupId.hashCode());
return result;
}
@Override
public boolean equals(Object obj)
{
if (this == obj)
return true;
if (!super.equals(obj))
return false;
if (getClass() != obj.getClass())
return false;
RuleCheckEvent other = (RuleCheckEvent) obj;
if (groupId == null)
{
if (other.groupId != null)
return false;
}
else if (!groupId.equals(other.groupId))
return false;
return true;
}
}
-----------------------------------------------------------------------
package com.test;
public class TimeConditionEvent extends Event
{
private int index;
private String triggerTime;
public TimeConditionEvent(String id, int index, String triggerTime,
long timestamp)
{
this.id = id;
this.index = index;
this.triggerTime = triggerTime;
this.timestamp = timestamp;
}
public int getIndex()
{
return index;
}
public void setIndex(int index)
{
this.index = index;
}
public String getTriggerTime()
{
return triggerTime;
}
public void setTriggerTime(String triggerTime)
{
this.triggerTime = triggerTime;
}
}
> java.lang.NullPointerException at org.drools.core.reteoo.NodeTypeEnums.isBetaNode(NodeTypeEnums.java:88)
> --------------------------------------------------------------------------------------------------------
>
> Key: DROOLS-978
> URL: https://issues.jboss.org/browse/DROOLS-978
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Affects Versions: 6.3.0.Final, 6.4.x
> Environment: JDK6 Win7 64bit
> Reporter: bing yang
> Assignee: Mario Fusco
> Labels: jboss
>
> when i update the stateful rule in the kfs, then it gives me the NPE:
> the 6.3.0.Final and the 6.4.0-snapshot can throws this exception:
> Exception in thread "main" java.lang.NullPointerException
> at org.drools.core.reteoo.NodeTypeEnums.isBetaNode(NodeTypeEnums.java:88)
> at org.drools.core.phreak.RuleNetworkEvaluator.innerEval(RuleNetworkEvaluator.java:254)
> at org.drools.core.phreak.RuleNetworkEvaluator.outerEval(RuleNetworkEvaluator.java:166)
> at org.drools.core.phreak.RuleNetworkEvaluator.evaluateNetwork(RuleNetworkEvaluator.java:123)
> at org.drools.core.phreak.RuleExecutor.evaluateNetwork(RuleExecutor.java:65)
> at org.drools.core.common.DefaultAgenda.evaluateEagerList(DefaultAgenda.java:1004)
> at org.drools.core.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:961)
> at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1292)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1294)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1281)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1260)
> at com.test.TestAA.main(TestAA.java:103)
> the TestAA.java:103 is
> 102: kContainer.updateToVersion(releaseId);
> 103: session.fireAllRules();
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
10 years, 8 months
[JBoss JIRA] (DROOLS-981) when I update the stateful rule, the rule is not be actived
by bing yang (JIRA)
bing yang created DROOLS-981:
--------------------------------
Summary: when I update the stateful rule, the rule is not be actived
Key: DROOLS-981
URL: https://issues.jboss.org/browse/DROOLS-981
Project: Drools
Issue Type: Bug
Components: core engine
Affects Versions: 6.3.0.Final
Reporter: bing yang
Assignee: Mario Fusco
this issue is due to[ https://issues.jboss.org/browse/DROOLS-978]. I modified the source(NodeTypeEnums.java:Line 88):add if node is null, then return false.
there is not NPE, but I find that the updated rule is not be actived by adding the listener on the session.
So, I want to know whether my test case is not correct? or the drools does not support the stateful rule's update? or this is the drools's bug?
Thanks!
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
10 years, 8 months
[JBoss JIRA] (WFLY-5672) The infinispan parser implicitly adds transport/thread-pools
by Radoslav Husar (JIRA)
[ https://issues.jboss.org/browse/WFLY-5672?page=com.atlassian.jira.plugin.... ]
Radoslav Husar edited comment on WFLY-5672 at 11/12/15 7:54 PM:
----------------------------------------------------------------
So the idea is that implicitly added resources should be added by the parent resource :add p[ instead of the parser, but the implications need to be considered.
was (Author: rhusar):
So the idea is that implicitly added resources should be added by the parent resource instead of the parser, but the implications need to be considered.
> The infinispan parser implicitly adds transport/thread-pools
> ------------------------------------------------------------
>
> Key: WFLY-5672
> URL: https://issues.jboss.org/browse/WFLY-5672
> Project: WildFly
> Issue Type: Bug
> Components: Clustering
> Affects Versions: 10.0.0.CR4
> Reporter: James Perkins
> Assignee: Paul Ferraro
>
> It looks like in the [infinispan subsystem parser|https://github.com/wildfly/wildfly/blob/master/clustering/infinisp...] some thread pools are explicitly added. This means these resources are not added if adding the subsystem via the {{add}} operation. These resources should be added like any other child resource of the subsystem.
> If the resources can't be added like that, e.g. they are truly defaults, the add handler for the parent can add a step to check for children and add any missing ones. This would result in the same behavior, but allow the {{add}} operation to work correctly.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
10 years, 8 months
[JBoss JIRA] (WFLY-5672) The infinispan parser seems to implicitly add thread-pools
by Radoslav Husar (JIRA)
[ https://issues.jboss.org/browse/WFLY-5672?page=com.atlassian.jira.plugin.... ]
Radoslav Husar commented on WFLY-5672:
--------------------------------------
So the idea is that implicitly added resources should be added by the parent resource instead of the parser, but the implications need to be considered.
> The infinispan parser seems to implicitly add thread-pools
> ----------------------------------------------------------
>
> Key: WFLY-5672
> URL: https://issues.jboss.org/browse/WFLY-5672
> Project: WildFly
> Issue Type: Bug
> Components: Clustering
> Affects Versions: 10.0.0.CR4
> Reporter: James Perkins
> Assignee: Paul Ferraro
>
> It looks like in the [infinispan subsystem parser|https://github.com/wildfly/wildfly/blob/master/clustering/infinisp...] some thread pools are explicitly added. This means these resources are not added if adding the subsystem via the {{add}} operation. These resources should be added like any other child resource of the subsystem.
> If the resources can't be added like that, e.g. they are truly defaults, the add handler for the parent can add a step to check for children and add any missing ones. This would result in the same behavior, but allow the {{add}} operation to work correctly.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
10 years, 8 months