[JBoss JIRA] (JGRP-2421) Don't log an IllegalArgumentException when receiving an invalid delta view
by Bela Ban (Jira)
[ https://issues.redhat.com/browse/JGRP-2421?page=com.atlassian.jira.plugin... ]
Bela Ban updated JGRP-2421:
---------------------------
Fix Version/s: 4.2.0
(was: 4.1.9)
> Don't log an IllegalArgumentException when receiving an invalid delta view
> --------------------------------------------------------------------------
>
> Key: JGRP-2421
> URL: https://issues.redhat.com/browse/JGRP-2421
> Project: JGroups
> Issue Type: Enhancement
> Affects Versions: 4.1.6
> Reporter: Dan Berindei
> Assignee: Bela Ban
> Priority: Minor
> Fix For: 4.2.0
>
>
> When the cluster is unstable but not because of the network (e.g. excessive load and long GC pauses), a suspected node can keep receiving view updates long after it was excluded from the view.
> The first view triggers a warning about not being a member, but because later delta-views cannot be reconstructed, their warnings look much worse, even though they're about the same thing.
> {noformat}
> 11:31:05,281 WARN [org.jgroups.protocols.pbcast.GMS] (jgroups-79,edg-perf03-47882) edg-perf03-47882: not member of view [edg-perf01-21541|6]; discarding it
> 11:31:16,267 WARN [org.jgroups.protocols.pbcast.GMS] (jgroups-80,edg-perf03-47882) edg-perf03-47882: failed to create view from delta-view; dropping view: java.lang.IllegalStateException: the view-id of the delta view ([edg-perf01-21541|6]) doesn't match the current view-id ([edg-perf01-21541|5]); discarding delta view [edg-perf01-21541|7], ref-view=[edg-perf01-21541|6], left=[edg-perf06-47720]
> {noformat}
> Maybe GMS could keep track of when it receives a view in which it is not a member and stop processing delta views from that node?
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 10 months
[JBoss JIRA] (WFLY-12944) (7.3.z) Upgrade Jaeger client to 0.34.1
by Ilia Vassilev (Jira)
Ilia Vassilev created WFLY-12944:
------------------------------------
Summary: (7.3.z) Upgrade Jaeger client to 0.34.1
Key: WFLY-12944
URL: https://issues.redhat.com/browse/WFLY-12944
Project: WildFly
Issue Type: Component Upgrade
Components: MP OpenTracing
Affects Versions: 18.0.1.Final
Reporter: Ilia Vassilev
Assignee: Emmanuel Hugonnet
Fix For: 19.0.0.Beta1
Upgrade Jaeger client to 1.1.0
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 10 months
[JBoss JIRA] (JGRP-2430) GossipRouter: more efficient routing
by Bela Ban (Jira)
Bela Ban created JGRP-2430:
------------------------------
Summary: GossipRouter: more efficient routing
Key: JGRP-2430
URL: https://issues.redhat.com/browse/JGRP-2430
Project: JGroups
Issue Type: Enhancement
Reporter: Bela Ban
Assignee: Bela Ban
Fix For: 4.1.9
GossipRouter supports both NIO (ByteBuffer) and TCP (stream-based) connections. In both cases, however, the entire message is read and then routed to the destination address.
It would be better to only read the cluster name and target address, and then use efficient stream-to-stream (or channel-to-channel) _transfer mechanisms_, which avoids temporary copies of data and the full reading of messages.
Investigate whether this is possible.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 10 months
[JBoss JIRA] (DROOLS-4909) Infinite recursion in drools after version change from v7.20 to v7.21
by Mario Fusco (Jira)
[ https://issues.redhat.com/browse/DROOLS-4909?page=com.atlassian.jira.plug... ]
Mario Fusco resolved DROOLS-4909.
---------------------------------
Resolution: Explained
Drools calculates the property reactivity of a pattern from the constraints used in that pattern. In case it is not able to figure out which property a constraint is impacting it takes the safest possible choice disabling the property reactivity for the whole pattern. To do this it analyzes the left part of a constraint (this is a known limitation) so in this sense
{code}
$card == card
{code}
and
{code}
card == $card
{code}
are not equivalent. In the first case Drools looks for a property named '$card' in the Metric object and since it cannot find any it disables the property reactivity for that pattern. Replace the first with the second in your drl and it will work as expected.
> Infinite recursion in drools after version change from v7.20 to v7.21
> ---------------------------------------------------------------------
>
> Key: DROOLS-4909
> URL: https://issues.redhat.com/browse/DROOLS-4909
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Affects Versions: 7.21.0.Final, 7.22.0.Final, 7.23.0.Final, 7.25.0.Final, 7.31.0.Final
> Environment: Both Mac and Windows
> Reporter: Crosson David
> Assignee: Mario Fusco
> Priority: Major
> Attachments: Screen Shot 2019-07-10 at 3.53.10 PM.png, Screen Shot 2019-07-10 at 5.56.32 PM.png, Screen Shot 2019-07-10 at 5.59.28 PM.png, error.png, pojo.png, static.png, static_error.png, toto.drl
>
>
> https://issues.redhat.com/browse/DROOLS-4288
> The problem is not fully solved, I got a forever loop on my KB since 7.21.0.Final, I tried with 7.25.0.Final but without success, and the issue is still here with 7.31.0.Final. Will go back to release 7.20.0.Final
> (the only fix I can apply is to add no-loop clause to my rules although it shouldn't be necessary).
> I can't share the affected KB, and unfortunately I was unable to reproduce the issue loop on a smaller example
> The affected rule looks like :
> {{rule "reset metric to max score when no more issues are present"
> //no-loop // TODO - no-loop TO BE REMOVED AS IT SHOULDN'T BE NECESSARY
> when
> Something($id:identity, $origin:origin)
> not Issue($id == identity, $origin == origin, category!="metrics")
> $scoring: Scoring(name == "performance", $id == identity, $origin == origin)
> then
> modify($scoring)
> { setValue(100.0); }
> end}}
> ----
> from https://issues.redhat.com/browse/DROOLS-4288 :
> When there is a version change in drools-compiler from `7.20.0.Final` to `7.21.0.Final` some rules are looping recursively.
> *Code in github:*
> [The working version|https://github.com/padippist/DroolsIssueReporting/tree/issue_v_7.20]
> [The recursively looping version|https://github.com/padippist/DroolsIssueReporting/tree/issue_v_7.21]
> [The change between working and looping version|https://github.com/padippist/DroolsIssueReporting/compare/issue_v...]
> *More details*
> When I fire a rule whose `then` part modifies a fact that is already checked in the `when` part:
> {code:java}
> rule "rule 1.1"
> when
> $sampleDomain: SampleDomain(instanceVariable2 == "Value of instance variable")
> then
> System.out.println("Rule 1.1 fired");
> modify($sampleDomain){
> setInstanceVariable1(3)
> }
> end
> {code}
> it doesn't loop recursively.
> But when I call another rule which call a static function from another class:
> {code:java}
> rule "rule 1.2"
> when
> $sampleDomain: SampleDomain(CoreUtils.anotherFunction())
> then
> System.out.println("Rule 1.2 fired");
> modify($sampleDomain){
> setInstanceVariable1(3)
> }
> end
> {code}
> it loops recursively.
> The class with static function is
> {code:java}
> import com.drool_issue.domain.SampleDomain;
> public class CoreUtils {
>
> public static boolean anotherFunction() {
> System.out.println("anotherFunction() inside CoreUtils");
> return true;
> }
>
> public static boolean anotherFunction(SampleDomain sampleDomain) {
> System.out.println("anotherFunction(SampleDomain sampleDomain) inside CoreUtils");
> return true;
> }
> }
> {code}
> My domain file is:
> {code:java}
> public class SampleDomain {
> private int instanceVariable1;
> private String instanceVariable2;
> private int instanceVariable3;
>
>
> public int getInstanceVariable1() {
> return instanceVariable1;
> }
> public void setInstanceVariable1(int instanceVariable1) {
> this.instanceVariable1 = instanceVariable1;
> }
> public String getInstanceVariable2() {
> return instanceVariable2;
> }
> public void setInstanceVariable2(String instanceVariable2) {
> this.instanceVariable2 = instanceVariable2;
> }
> public int getInstanceVariable3() {
> return instanceVariable3;
> }
> public void setInstanceVariable3(int instanceVariable3) {
> this.instanceVariable3 = instanceVariable3;
> }
>
>
> }
> {code}
> This is only caused after version change from `7.20.0.Final` to `7.21.0.Final`. Any guess on what the problem might be?
> When I further looked into the problem I saw this too.
> When we add two functions into the `SampleDomain` class ie
> {code:java}
> public boolean anotherFunction() {
> return true;
> }
>
> public boolean anotherFunction(SampleDomain sampleDomain) {
> return true;
> }
> {code}
> and use this in the rule like:
> {code:java}
> rule "rule 1.4"
> when
> $sampleDomain: SampleDomain(anotherFunction())
> then
> System.out.println("Rule 1.4 fired");
> modify($sampleDomain){
> setInstanceVariable1(3)
> }
> end
> {code}
> and
> {code:java}
> rule "rule 1.5"
> when
> $sampleDomain: SampleDomain(anotherFunction($sampleDomain))
> then
> System.out.println("Rule 1.5 fired");
> modify($sampleDomain){
> setInstanceVariable3(4)
> }
> end
> {code}
> these also loops recursively.
> *Code in github:*
> [The recursive looping when using non static methods|https://github.com/padippist/DroolsIssueReporting/tree/issue_v_7....]
> [The change between working and above version|https://github.com/padippist/DroolsIssueReporting/compare/issue_v...]
> Also when any of the static method is made non static then method from the domain class is called even though the static method is specified in the rule.
> *Code portions to be noted here are:*
> [Rule where static method is called.|https://github.com/padippist/DroolsIssueReporting/blob/bde2804b25...]
> [Another rule which also call the static method.|https://github.com/padippist/DroolsIssueReporting/blob/bde2804b25...]
> [The static access modifier removed from the functions which where previously static.|https://github.com/padippist/DroolsIssueReporting/compare/issue_v...]
> *Code in github:*
> [Weird behaviour when removing static modifier for the functions.|https://github.com/padippist/DroolsIssueReporting/tree/issue_v...]
> [The change between working and above version|https://github.com/padippist/DroolsIssueReporting/compare/issue_v...]
> *All this are caused in versions after `7.20.0.Final`, ie `7.21.0.Final`, `7.22.0.Final` and `7.23.0.Final`*
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 10 months
[JBoss JIRA] (WFLY-12937) Expired distributed web sessions/SFSBs not properly removed following rehash
by Paul Ferraro (Jira)
[ https://issues.redhat.com/browse/WFLY-12937?page=com.atlassian.jira.plugi... ]
Paul Ferraro updated WFLY-12937:
--------------------------------
Priority: Blocker (was: Critical)
> Expired distributed web sessions/SFSBs not properly removed following rehash
> ----------------------------------------------------------------------------
>
> Key: WFLY-12937
> URL: https://issues.redhat.com/browse/WFLY-12937
> Project: WildFly
> Issue Type: Bug
> Components: Clustering
> Affects Versions: 18.0.1.Final
> Reporter: Paul Ferraro
> Assignee: Paul Ferraro
> Priority: Blocker
>
> On topology change, changes to primary session ownership determine when a given member should schedule expiration of a given session, or cancel a scheduled expiration of a previously owned session. Primary ownership is determined by 2 components: the key partitioner and a consistent hash. The key partitioner determines which the segment to which a given key is assigned. A consistent hash determines which member is the primary owner of a given segment.
> The logic for determining primary ownership changes currently uses the wrong key partitioner. Currently, we use the partitioner from the cache configuration. However, when grouping is enabled (which is the case for web sessions and SFSBs), this parititioner is wrapped by a GroupPartitioner at runtime. That is the one we need.
> This results in expired web sessions/SFSBs remaining in memory, potentially indefinitely.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 10 months