[JBoss JIRA] (DROOLS-4288) Infinite recursion in drools after version change from v7.20 to v7.21
by Mario Fusco (Jira)
[ https://issues.jboss.org/browse/DROOLS-4288?page=com.atlassian.jira.plugi... ]
Mario Fusco updated DROOLS-4288:
--------------------------------
Sprint: 2019 Week 26-28
> Infinite recursion in drools after version change from v7.20 to v7.21
> ---------------------------------------------------------------------
>
> Key: DROOLS-4288
> URL: https://issues.jboss.org/browse/DROOLS-4288
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Affects Versions: 7.21.0.Final, 7.22.0.Final, 7.23.0.Final
> Environment: Both Mac and Windows
> Reporter: Geogie Tom
> Assignee: Mario Fusco
> Priority: Major
>
> 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.12.1#712002)
6 years, 10 months
[JBoss JIRA] (WFLY-12269) Define a galleon layer for transactions
by Jean Francois Denise (Jira)
Jean Francois Denise created WFLY-12269:
-------------------------------------------
Summary: Define a galleon layer for transactions
Key: WFLY-12269
URL: https://issues.jboss.org/browse/WFLY-12269
Project: WildFly
Issue Type: Enhancement
Components: Build System
Reporter: Jean Francois Denise
Assignee: Jean Francois Denise
This layer would add some benefits:
1) Avoid duplication of permissions we are observing with feature-groups in a cloud-profile context.
2) Allow extension in other context. For example, transactions layer could be redefined in order to enable tx-recovery (add node-identifier=${jboss.node.name} and recovery-listener=true attributes added to the subsystem) and package needed JBOSS modules (eg: tooling for tx-recovery).
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
6 years, 10 months
[JBoss JIRA] (WFWIP-164) Multiple Operator CRDs on one shared cluster
by Martin Choma (Jira)
[ https://issues.jboss.org/browse/WFWIP-164?page=com.atlassian.jira.plugin.... ]
Martin Choma edited comment on WFWIP-164 at 7/4/19 5:04 AM:
------------------------------------------------------------
Currently that seems last option as
- only noop conversion for mutliple CRD versions is allowed and have issues. (Does not fit our needs)
http://post-office.corp.redhat.com/archives/aos-devel/2019-July/msg00044....
- There was request for namespaced scoped CRDs, but was closed
https://github.com/kubernetes/kubernetes/issues/65551
was (Author: mchoma):
Currently that seems last option as
- only noop conversation for mutliple CRD versions is allowed and have issues. (Does not fit our needs)
http://post-office.corp.redhat.com/archives/aos-devel/2019-July/msg00044....
- There was request for namespaced scoped CRDs, but was closed
https://github.com/kubernetes/kubernetes/issues/65551
> Multiple Operator CRDs on one shared cluster
> --------------------------------------------
>
> Key: WFWIP-164
> URL: https://issues.jboss.org/browse/WFWIP-164
> Project: WildFly WIP
> Issue Type: Bug
> Components: OpenShift
> Reporter: Martin Choma
> Assignee: Jeff Mesnil
> Priority: Major
>
> For testing multiple product streams we will need to be able to have multiple CRDs definitions on one cluster. Operator pod is namespaced scoped, but Custom Resource Definition itself is cluster scope.
> I have tried to tweak definition from `WildFlyServer.wildfly.org` to `WildFlyServer.<namespace>.wildfly.org`. But operator start to complain:
> {code}
> {
> "level": "error",
> "ts": 1.56213363E9,
> "logger": "kubebuilder.source",
> "msg": "if kind is a CRD, it should be installed before calling Start",
> "kind": "WildFlyServer.wildfly.org",
> "error": "no matches for kind \"WildFlyServer\" in version \"wildfly.org/v1alpha1\"",
> "stacktrace": "github.com/wildfly/wildfly-operator/vendor/github.com/go-logr/zapr.(*zapL..."
> }
> {code}
> Is it possible(safe) to relax this constraint?
> Also could we get rid of `jmesnil` part from stacktrace?
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
6 years, 10 months
[JBoss JIRA] (JGRP-2357) ConnectException error messages when using TCP protocol
by Dante Wang (Jira)
Dante Wang created JGRP-2357:
--------------------------------
Summary: ConnectException error messages when using TCP protocol
Key: JGRP-2357
URL: https://issues.jboss.org/browse/JGRP-2357
Project: JGroups
Issue Type: Bug
Reporter: Dante Wang
Assignee: Bela Ban
When using TCP protocol with JGroups 4.1.1 Final, various kinds of java.net.ConnectException error messages occasionally appear in the log. These exception log messages were by default suppressed with logging level "TRACE" before JGRP-2332 (commit 538a5431b8fd06d644a72f48d584f8114f26a295).
The ConnectExceptions in this case happen upon attempts to discover nodes, verify node status when another node dies and send ACK when another node leaves.
The ConnectException messages of node discovery can be avoided by carefully changing configuration of TCPPING or using other ping like JDBC_PING. But the two kinds of messages upon node exiting seem to have no way to avoid.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
6 years, 10 months