[JBoss JIRA] (WFLY-13444) Observing High CPU in EPollArrayWrapper.epollCtl default I/O thread
by Srinivas ev (Jira)
[ https://issues.redhat.com/browse/WFLY-13444?page=com.atlassian.jira.plugi... ]
Srinivas ev commented on WFLY-13444:
------------------------------------
Hi [~rhusar],
We are using currently Wildfly 10.1.0 Final and these are production systems. So, it is very difficult for any migration at this time. Is there any workaround for this to mitigate. What may be the reason for this thread to pick up high CPU utilization?
> Observing High CPU in EPollArrayWrapper.epollCtl default I/O thread
> -------------------------------------------------------------------
>
> Key: WFLY-13444
> URL: https://issues.redhat.com/browse/WFLY-13444
> Project: WildFly
> Issue Type: Bug
> Components: Remoting
> Affects Versions: 10.1.0.Final
> Reporter: Srinivas ev
> Assignee: Flavia Rainone
> Priority: Major
> Attachments: IO thread memory.PNG, IO thread.PNG, Thread consuming high CPU.PNG, ThreadDump1set.zip, ThreadDump2set.zip, default IO thread 73.PNG, stack trace from snapshot.PNG, stack trace in thread dump.PNG, top command output.PNG
>
>
> Facing high CPU by one of the default I/O thread In Wildfly 10.1.0 Final. Looks none of our application component thread is consuming.
> Can somebody check what is triggering this issue? I attached the thread stack to this Jira. This is blocking our releases. When the CPU cores are high in number, multiple default I/O threads will kick in consuming the CPU in 90~100% range continuously.
> Wildfly 10.1.0 Final
> Java -
> openjdk version "1.8.0_232"
> OpenJDK Runtime Environment (build 1.8.0_232-b09)
> OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode
> ---------------------------------------------------------------------------------------------------
> at java.lang.Throwable.fillInStackTrace(Native Method)
> at java.lang.Throwable.fillInStackTrace(Throwable.java:784)
> at java.lang.Throwable.<init>(Throwable.java:251)
> at java.lang.Exception.<init>(Exception.java:54)
> at java.io.IOException.<init>(IOException.java:47)
> at java.nio.channels.ClosedChannelException.<init>(ClosedChannelException.java:52)
> at org.xnio.ssl.JsseStreamConduit.write(JsseStreamConduit.java:1022)
> at org.xnio.conduits.ConduitStreamSinkChannel.write(ConduitStreamSinkChannel.java:150)
> at org.xnio.http.HttpUpgrade$HttpUpgradeState$StringWriteListener.handleEvent(HttpUpgrade.java:385)
> at org.xnio.http.HttpUpgrade$HttpUpgradeState$StringWriteListener.handleEvent(HttpUpgrade.java:372)
> at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
> at org.xnio.conduits.WriteReadyHandler$ChannelListenerHandler.writeReady(WriteReadyHandler.java:65)
> at org.xnio.ssl.JsseStreamConduit.run(JsseStreamConduit.java:393)
> at org.xnio.ssl.JsseStreamConduit.readReady(JsseStreamConduit.java:547)
> at org.xnio.ssl.JsseStreamConduit$2.readReady(JsseStreamConduit.java:319)
> at org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit.java:89)
> at org.xnio.nio.WorkerThread.run(WorkerThread.java:567)
> -------------------------------------------------------------------------------------------
> at sun.nio.ch.EPollArrayWrapper.epollCtl(Native Method)
> at sun.nio.ch.EPollArrayWrapper.updateRegistrations(EPollArrayWrapper.java:299)
> at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:268)
> at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
> at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
> at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
> at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:101)
> at org.xnio.nio.WorkerThread.run(WorkerThread.java:515)
> -----------------------------------------------------------------------------------
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 2 months
[JBoss JIRA] (DROOLS-5327) Multiselect dropdown for enumerated values - numbers
by Jozef Marko (Jira)
[ https://issues.redhat.com/browse/DROOLS-5327?page=com.atlassian.jira.plug... ]
Jozef Marko updated DROOLS-5327:
--------------------------------
Sprint: 2020 Week 19-21 (from May 4)
> Multiselect dropdown for enumerated values - numbers
> ----------------------------------------------------
>
> Key: DROOLS-5327
> URL: https://issues.redhat.com/browse/DROOLS-5327
> Project: Drools
> Issue Type: Bug
> Components: Guided Template Editor
> Affects Versions: 7.33.0.Final
> Reporter: Jozef Marko
> Assignee: Jozef Marko
> Priority: Major
> Labels: drools-tools
> Attachments: MySpace_project.zip
>
>
> During verification of DROOLS-5011 was spotted corner case that was not fixed.
> In the original issue customer user attached project with enumeration for *String* field and used that field in guided rule template.
> The issue is if user follow the same scenario but instead of *String* field, some number type is used, for example *Integer*. In such case, when user added data to rule template, multiselect dropdown was shown correctly, however in the grid was always shown 0.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 2 months
[JBoss JIRA] (DROOLS-5329) Review externalizing lambda failure case
by Toshiya Kobayashi (Jira)
[ https://issues.redhat.com/browse/DROOLS-5329?page=com.atlassian.jira.plug... ]
Toshiya Kobayashi reassigned DROOLS-5329:
-----------------------------------------
Assignee: Toshiya Kobayashi (was: Luca Molteni)
> Review externalizing lambda failure case
> ----------------------------------------
>
> Key: DROOLS-5329
> URL: https://issues.redhat.com/browse/DROOLS-5329
> Project: Drools
> Issue Type: Task
> Components: executable model
> Affects Versions: 7.37.0.Final
> Reporter: Toshiya Kobayashi
> Assignee: Toshiya Kobayashi
> Priority: Major
>
> In CompilerTest#testStringValueOf, there is a case where MaterializedLambdaPredicate is not created.
> {code:java}
> public static org.drools.model.Rule rule_R() {
> final org.drools.model.Variable<java.lang.Integer> var_GENERATED_$pattern_Integer$1$ = D.declarationOf(java.lang.Integer.class,
> DomainClassesMetadata81A66AD685F7689036AAA5128956C14B.java_lang_Integer_Metadata_INSTANCE,
> "GENERATED_$pattern_Integer$1$");
> final org.drools.model.Variable<Integer> var_$i = D.declarationOf(Integer.class, "$i");
> final org.drools.model.Variable<org.drools.modelcompiler.domain.Person> var_GENERATED_$pattern_Person$1$ = D.declarationOf(org.drools.modelcompiler.domain.Person.class,
> DomainClassesMetadata81A66AD685F7689036AAA5128956C14B.org_drools_modelcompiler_domain_Person_Metadata_INSTANCE,
> "GENERATED_$pattern_Person$1$");
> org.drools.model.Rule rule = D.rule("R").build(D.pattern(var_GENERATED_$pattern_Integer$1$).bind(var_$i, (java.lang.Integer _this) -> _this.intValue()),
> D.pattern(var_GENERATED_$pattern_Person$1$).expr("476633DA7C4638FC84A32859E0C843E6",
> var_$i,
> (_this, $i) -> org.drools.modelcompiler.util.EvaluationUtil.areNullSafeEquals(_this.getName(),
> (String.valueOf($i))),
> D.reactOn("name")),
> D.on(var_$i).execute(defaultpkg.P1D.LambdaConsequence1D5F4C5CA006007B1D3974ED5A5A05B6.INSTANCE));
> return rule;
> }
> {code}
> See
> {code:java}
> expr("476633DA7C4638FC84A32859E0C843E6",
> var_$i,
> (_this, $i) -> org.drools.modelcompiler.util.EvaluationUtil.areNullSafeEquals(_this.getName(),
> (String.valueOf($i)))
> {code}
> It throws DoNotConvertLambdaException in ExecModelLambdaPostProcessor.
> {code:java}
> private void extractLambdaFromMethodCall(MethodCallExpr methodCallExpr, Supplier<MaterializedLambda> lambdaExtractor) {
> methodCallExpr.getArguments().forEach(a -> {
> if (a.isLambdaExpr()) {
> LambdaExpr lambdaExpr = a.asLambdaExpr();
> try {
> CreatedClass aClass = lambdaExtractor.get().create(lambdaExpr.toString(), imports, staticImports);
> lambdaClasses.put(aClass.getClassNameWithPackage(), aClass);
> ClassOrInterfaceType type = StaticJavaParser.parseClassOrInterfaceType(aClass.getClassNameWithPackage());
> a.replace(lambdaInstance(type));
> } catch(DoNotConvertLambdaException e) {
> logger.debug("Cannot externalize lambdas {}", e.getMessage());
> }
> }
> });
> }
> {code}
> Review if it's something can be fixed.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 2 months
[JBoss JIRA] (DROOLS-5329) Review externalizing lambda failure case
by Toshiya Kobayashi (Jira)
Toshiya Kobayashi created DROOLS-5329:
-----------------------------------------
Summary: Review externalizing lambda failure case
Key: DROOLS-5329
URL: https://issues.redhat.com/browse/DROOLS-5329
Project: Drools
Issue Type: Task
Components: executable model
Affects Versions: 7.37.0.Final
Reporter: Toshiya Kobayashi
Assignee: Luca Molteni
In CompilerTest#testStringValueOf, there is a case where MaterializedLambdaPredicate is not created.
{code:java}
public static org.drools.model.Rule rule_R() {
final org.drools.model.Variable<java.lang.Integer> var_GENERATED_$pattern_Integer$1$ = D.declarationOf(java.lang.Integer.class,
DomainClassesMetadata81A66AD685F7689036AAA5128956C14B.java_lang_Integer_Metadata_INSTANCE,
"GENERATED_$pattern_Integer$1$");
final org.drools.model.Variable<Integer> var_$i = D.declarationOf(Integer.class, "$i");
final org.drools.model.Variable<org.drools.modelcompiler.domain.Person> var_GENERATED_$pattern_Person$1$ = D.declarationOf(org.drools.modelcompiler.domain.Person.class,
DomainClassesMetadata81A66AD685F7689036AAA5128956C14B.org_drools_modelcompiler_domain_Person_Metadata_INSTANCE,
"GENERATED_$pattern_Person$1$");
org.drools.model.Rule rule = D.rule("R").build(D.pattern(var_GENERATED_$pattern_Integer$1$).bind(var_$i, (java.lang.Integer _this) -> _this.intValue()),
D.pattern(var_GENERATED_$pattern_Person$1$).expr("476633DA7C4638FC84A32859E0C843E6",
var_$i,
(_this, $i) -> org.drools.modelcompiler.util.EvaluationUtil.areNullSafeEquals(_this.getName(),
(String.valueOf($i))),
D.reactOn("name")),
D.on(var_$i).execute(defaultpkg.P1D.LambdaConsequence1D5F4C5CA006007B1D3974ED5A5A05B6.INSTANCE));
return rule;
}
{code}
See
{code:java}
expr("476633DA7C4638FC84A32859E0C843E6",
var_$i,
(_this, $i) -> org.drools.modelcompiler.util.EvaluationUtil.areNullSafeEquals(_this.getName(),
(String.valueOf($i)))
{code}
It throws DoNotConvertLambdaException in ExecModelLambdaPostProcessor.
{code:java}
private void extractLambdaFromMethodCall(MethodCallExpr methodCallExpr, Supplier<MaterializedLambda> lambdaExtractor) {
methodCallExpr.getArguments().forEach(a -> {
if (a.isLambdaExpr()) {
LambdaExpr lambdaExpr = a.asLambdaExpr();
try {
CreatedClass aClass = lambdaExtractor.get().create(lambdaExpr.toString(), imports, staticImports);
lambdaClasses.put(aClass.getClassNameWithPackage(), aClass);
ClassOrInterfaceType type = StaticJavaParser.parseClassOrInterfaceType(aClass.getClassNameWithPackage());
a.replace(lambdaInstance(type));
} catch(DoNotConvertLambdaException e) {
logger.debug("Cannot externalize lambdas {}", e.getMessage());
}
}
});
}
{code}
Review if it's something can be fixed.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 2 months
[JBoss JIRA] (DROOLS-5328) Externalize lambda for binding variable
by Toshiya Kobayashi (Jira)
[ https://issues.redhat.com/browse/DROOLS-5328?page=com.atlassian.jira.plug... ]
Toshiya Kobayashi reassigned DROOLS-5328:
-----------------------------------------
Assignee: Toshiya Kobayashi (was: Luca Molteni)
> Externalize lambda for binding variable
> ---------------------------------------
>
> Key: DROOLS-5328
> URL: https://issues.redhat.com/browse/DROOLS-5328
> Project: Drools
> Issue Type: Task
> Components: executable model
> Affects Versions: 7.37.0.Final
> Reporter: Toshiya Kobayashi
> Assignee: Toshiya Kobayashi
> Priority: Major
>
> When "drools.externaliseCanonicalModelLambda" is enabled, Predicate, Extractor and Consequence are externalized. But still lambda for binding variable exists:
> e.g. CompilerTest#testStringValueOf)
> {code:java}
> public static org.drools.model.Rule rule_R() {
> final org.drools.model.Variable<java.lang.Integer> var_GENERATED_$pattern_Integer$1$ = D.declarationOf(java.lang.Integer.class,
> DomainClassesMetadata81A66AD685F7689036AAA5128956C14B.java_lang_Integer_Metadata_INSTANCE,
> "GENERATED_$pattern_Integer$1$");
> final org.drools.model.Variable<Integer> var_$i = D.declarationOf(Integer.class, "$i");
> final org.drools.model.Variable<org.drools.modelcompiler.domain.Person> var_GENERATED_$pattern_Person$1$ = D.declarationOf(org.drools.modelcompiler.domain.Person.class,
> DomainClassesMetadata81A66AD685F7689036AAA5128956C14B.org_drools_modelcompiler_domain_Person_Metadata_INSTANCE,
> "GENERATED_$pattern_Person$1$");
> org.drools.model.Rule rule = D.rule("R").build(D.pattern(var_GENERATED_$pattern_Integer$1$).bind(var_$i, (java.lang.Integer _this) -> _this.intValue()),
> D.pattern(var_GENERATED_$pattern_Person$1$).expr("476633DA7C4638FC84A32859E0C843E6",
> var_$i,
> (_this, $i) -> org.drools.modelcompiler.util.EvaluationUtil.areNullSafeEquals(_this.getName(),
> (String.valueOf($i))),
> D.reactOn("name")),
> D.on(var_$i).execute(defaultpkg.P1D.LambdaConsequence1D5F4C5CA006007B1D3974ED5A5A05B6.INSTANCE));
> return rule;
> }
> {code}
> See
> {code:java}
> bind(var_$i, (java.lang.Integer _this) -> _this.intValue())
> {code}
> Function1$Impl is instantiated by PatternDSL$PatternDefImpl.bind()
> Note: The above example shows another lambda
> {code:java}
> expr("476633DA7C4638FC84A32859E0C843E6",
> var_$i,
> (_this, $i) -> org.drools.modelcompiler.util.EvaluationUtil.areNullSafeEquals(_this.getName(),
> (String.valueOf($i)))
> {code}
> This will be addressed by another JIRA.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 2 months
[JBoss JIRA] (DROOLS-5328) Externalize lambda for binding variable
by Toshiya Kobayashi (Jira)
Toshiya Kobayashi created DROOLS-5328:
-----------------------------------------
Summary: Externalize lambda for binding variable
Key: DROOLS-5328
URL: https://issues.redhat.com/browse/DROOLS-5328
Project: Drools
Issue Type: Task
Components: executable model
Affects Versions: 7.37.0.Final
Reporter: Toshiya Kobayashi
Assignee: Luca Molteni
When "drools.externaliseCanonicalModelLambda" is enabled, Predicate, Extractor and Consequence are externalized. But still lambda for binding variable exists:
e.g. CompilerTest#testStringValueOf)
{code:java}
public static org.drools.model.Rule rule_R() {
final org.drools.model.Variable<java.lang.Integer> var_GENERATED_$pattern_Integer$1$ = D.declarationOf(java.lang.Integer.class,
DomainClassesMetadata81A66AD685F7689036AAA5128956C14B.java_lang_Integer_Metadata_INSTANCE,
"GENERATED_$pattern_Integer$1$");
final org.drools.model.Variable<Integer> var_$i = D.declarationOf(Integer.class, "$i");
final org.drools.model.Variable<org.drools.modelcompiler.domain.Person> var_GENERATED_$pattern_Person$1$ = D.declarationOf(org.drools.modelcompiler.domain.Person.class,
DomainClassesMetadata81A66AD685F7689036AAA5128956C14B.org_drools_modelcompiler_domain_Person_Metadata_INSTANCE,
"GENERATED_$pattern_Person$1$");
org.drools.model.Rule rule = D.rule("R").build(D.pattern(var_GENERATED_$pattern_Integer$1$).bind(var_$i, (java.lang.Integer _this) -> _this.intValue()),
D.pattern(var_GENERATED_$pattern_Person$1$).expr("476633DA7C4638FC84A32859E0C843E6",
var_$i,
(_this, $i) -> org.drools.modelcompiler.util.EvaluationUtil.areNullSafeEquals(_this.getName(),
(String.valueOf($i))),
D.reactOn("name")),
D.on(var_$i).execute(defaultpkg.P1D.LambdaConsequence1D5F4C5CA006007B1D3974ED5A5A05B6.INSTANCE));
return rule;
}
{code}
See
{code:java}
bind(var_$i, (java.lang.Integer _this) -> _this.intValue())
{code}
Function1$Impl is instantiated by PatternDSL$PatternDefImpl.bind()
Note: The above example shows another lambda
{code:java}
expr("476633DA7C4638FC84A32859E0C843E6",
var_$i,
(_this, $i) -> org.drools.modelcompiler.util.EvaluationUtil.areNullSafeEquals(_this.getName(),
(String.valueOf($i)))
{code}
This will be addressed by another JIRA.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 2 months
[JBoss JIRA] (WFLY-13380) Upgrade dom4j from 2.1.1 to 2.1.3
by Radoslav Ivanov (Jira)
[ https://issues.redhat.com/browse/WFLY-13380?page=com.atlassian.jira.plugi... ]
Radoslav Ivanov edited comment on WFLY-13380 at 5/13/20 7:35 PM:
-----------------------------------------------------------------
[~brian.stansberry], [~smarlow], there is a critical CVE-2020-10683 reported for dom4j-2.1.1, which is available on previous versions of WildFly. It could be mitigated by "enabling safe bahavior":
{code:java}
dom4j before 2.1.3 allows external DTDs and External Entities by default, which might enable XXE attacks. However, there is popular external documentation from OWASP showing how to enable the safe, non-default behavior in any application that uses dom4j.
{code}
Could you please provide a note/instruction on how we can apply/mitigate on existing older versions of WildFly?
was (Author: rady66):
[~brian.stansberry], there is a critical CVE-2020-10683 reported for dom4j-2.1.1, which is available on previous versions of WildFly. It could be mitigated by "enabling safe bahavior":
{code:java}
dom4j before 2.1.3 allows external DTDs and External Entities by default, which might enable XXE attacks. However, there is popular external documentation from OWASP showing how to enable the safe, non-default behavior in any application that uses dom4j.
{code}
Could you please provide a note/instruction on how we can apply/mitigate on existing older versions of WildFly?
> Upgrade dom4j from 2.1.1 to 2.1.3
> ---------------------------------
>
> Key: WFLY-13380
> URL: https://issues.redhat.com/browse/WFLY-13380
> Project: WildFly
> Issue Type: Component Upgrade
> Components: JPA / Hibernate
> Reporter: Brian Stansberry
> Assignee: Brian Stansberry
> Priority: Major
> Labels: downstream_dependency
> Fix For: 19.1.0.Final, 20.0.0.Beta1
>
>
> https://github.com/dom4j/dom4j/compare/version-2.1.1...version-2.1.3
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 2 months