[JBoss JIRA] (DROOLS-2361) Use of System.identityHashCode in org.drools.core.common.DefaultFactHandle
by Mario Fusco (JIRA)
[ https://issues.jboss.org/browse/DROOLS-2361?page=com.atlassian.jira.plugi... ]
Mario Fusco resolved DROOLS-2361.
---------------------------------
Resolution: Won't Do
That performance problem is only related with the client compiler which is in charge only for a limited amount of time and when the method is not "hot" enough. This is in contrast with the definition of "serious workload" because in that case the server compiler should kick in and optimize that call properly.
That said I don't see any reasonable workaround to this problem without polluting our public API and, for the reasons I wrote above, this issue is not relevant enough to justify such change.
> Use of System.identityHashCode in org.drools.core.common.DefaultFactHandle
> --------------------------------------------------------------------------
>
> Key: DROOLS-2361
> URL: https://issues.jboss.org/browse/DROOLS-2361
> Project: Drools
> Issue Type: Enhancement
> Components: core engine
> Affects Versions: 7.6.0.Final
> Reporter: Sidi Mohamed EL AATIFI
> Assignee: Mario Fusco
> Labels: performance
> Attachments: before.png
>
>
> This is a JVM https://bugs.openjdk.java.net/browse/JDK-6378256 bug has been fixed in JDK 9
> It's not a bug in Drools but will be affected severely if using Drools for serious workloads.
> in my case 40% of CPU usage was to
> _java.lang.System.identityHashCode_ used by org.drools.core.common.DefaultFactHandle#determineIdentityHashCode
> !before.png|thumbnail!
> UPDATE:
> One possible solution is to introduce new (optional) interface for identityHashCode that can be implemented by user facts and internal facts.
> and provide identityHashCode backed by native (fast) hashCode
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years, 2 months
[JBoss JIRA] (WFLY-9987) The attribute 'driver-datasource-class-name' is missing from 'get-installed-driver' operation
by Lin Gao (JIRA)
Lin Gao created WFLY-9987:
-----------------------------
Summary: The attribute 'driver-datasource-class-name' is missing from 'get-installed-driver' operation
Key: WFLY-9987
URL: https://issues.jboss.org/browse/WFLY-9987
Project: WildFly
Issue Type: Enhancement
Components: JCA
Affects Versions: 12.0.0.Final
Reporter: Lin Gao
Assignee: Lin Gao
Priority: Minor
The attribute 'driver-datasource-class-name' is missing from 'get-installed-driver' operation:
{code:java}
[standalone@localhost:9990 /] /subsystem=datasources:get-installed-driver(driver-name=h2)
{
"outcome" => "success",
"result" => [{
"driver-name" => "h2",
"deployment-name" => undefined,
"driver-module-name" => "com.h2database.h2",
"module-slot" => "main",
"driver-xa-datasource-class-name" => "org.h2.jdbcx.JdbcDataSource",
"driver-class-name" => "org.h2.Driver",
"driver-major-version" => 1,
"driver-minor-version" => 4,
"jdbc-compliant" => true
}]
}
{code}
But it exists in the output of the operation: 'installed-drivers-list':
{code:java}
[standalone@localhost:9990 /] /subsystem=datasources:installed-drivers-list()
{
"outcome" => "success",
"result" => [{
"driver-name" => "h2",
"deployment-name" => undefined,
"driver-module-name" => "com.h2database.h2",
"module-slot" => "main",
"driver-datasource-class-name" => "", <!--- HERE IT IS -->
"driver-xa-datasource-class-name" => "org.h2.jdbcx.JdbcDataSource",
"driver-class-name" => "org.h2.Driver",
"driver-major-version" => 1,
"driver-minor-version" => 4,
"jdbc-compliant" => true
}]
}
{code}
It should be better to keep these information consistent.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years, 2 months
[JBoss JIRA] (DROOLS-2361) Use of System.identityHashCode in org.drools.core.common.DefaultFactHandle
by Mario Fusco (JIRA)
[ https://issues.jboss.org/browse/DROOLS-2361?page=com.atlassian.jira.plugi... ]
Mario Fusco updated DROOLS-2361:
--------------------------------
Sprint: 2018 Week 09-10
> Use of System.identityHashCode in org.drools.core.common.DefaultFactHandle
> --------------------------------------------------------------------------
>
> Key: DROOLS-2361
> URL: https://issues.jboss.org/browse/DROOLS-2361
> Project: Drools
> Issue Type: Enhancement
> Components: core engine
> Affects Versions: 7.6.0.Final
> Reporter: Sidi Mohamed EL AATIFI
> Assignee: Mario Fusco
> Labels: performance
> Attachments: before.png
>
>
> This is a JVM https://bugs.openjdk.java.net/browse/JDK-6378256 bug has been fixed in JDK 9
> It's not a bug in Drools but will be affected severely if using Drools for serious workloads.
> in my case 40% of CPU usage was to
> _java.lang.System.identityHashCode_ used by org.drools.core.common.DefaultFactHandle#determineIdentityHashCode
> !before.png|thumbnail!
> UPDATE:
> One possible solution is to introduce new (optional) interface for identityHashCode that can be implemented by user facts and internal facts.
> and provide identityHashCode backed by native (fast) hashCode
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years, 2 months
[JBoss JIRA] (WFLY-9985) NPE in server log when Artemis trace logging is enabled
by Miroslav Novak (JIRA)
Miroslav Novak created WFLY-9985:
------------------------------------
Summary: NPE in server log when Artemis trace logging is enabled
Key: WFLY-9985
URL: https://issues.jboss.org/browse/WFLY-9985
Project: WildFly
Issue Type: Bug
Components: JMS
Reporter: Miroslav Novak
Assignee: Jeff Mesnil
Artemis master (95b7438e7a7661692d5b78be944d05e254df9067) contains issue when trace logging is enabled.
If large message is sent and Artemis trace logs are enabled then following NPE is logged in server log:
{code}
09:42:14,005 WARN [org.apache.activemq.artemis.core.message.impl.CoreMessage] (default I/O-9) Error creating String for message: : java.lang.NullPointerException
at org.apache.activemq.artemis.core.message.impl.CoreMessage.encode(CoreMessage.java:584)
at org.apache.activemq.artemis.core.message.impl.CoreMessage.checkEncode(CoreMessage.java:248)
at org.apache.activemq.artemis.core.message.impl.CoreMessage.getEncodeSize(CoreMessage.java:647)
at org.apache.activemq.artemis.core.message.impl.CoreMessage.getPersistentSize(CoreMessage.java:1157)
at org.apache.activemq.artemis.core.message.impl.CoreMessage.toString(CoreMessage.java:1132)
at java.lang.String.valueOf(String.java:2994) [rt.jar:1.8.0_131]
at java.lang.StringBuilder.append(StringBuilder.java:131) [rt.jar:1.8.0_131]
at org.apache.activemq.artemis.core.protocol.core.impl.wireformat.SessionSendLargeMessage.toString(SessionSendLargeMessage.java:73)
at java.lang.String.valueOf(String.java:2994) [rt.jar:1.8.0_131]
at java.lang.StringBuilder.append(StringBuilder.java:131) [rt.jar:1.8.0_131]
at org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.bufferReceived(RemotingConnectionImpl.java:368)
at org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:646)
at org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:68)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:297)
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:413)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:935)
at org.xnio.netty.transport.AbstractXnioSocketChannel$ReadListener.handleEvent(AbstractXnioSocketChannel.java:443)
at org.xnio.netty.transport.AbstractXnioSocketChannel$ReadListener.handleEvent(AbstractXnioSocketChannel.java:379)
at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92) [xnio-api-3.6.1.Final.jar:3.6.1.Final]
at org.xnio.conduits.ReadReadyHandler$ChannelListenerHandler.readReady(ReadReadyHandler.java:66) [xnio-api-3.6.1.Final.jar:3.6.1.Final]
at org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit.java:89) [xnio-nio-3.6.1.Final.jar:3.6.1.Final]
at org.xnio.nio.WorkerThread.run(WorkerThread.java:591) [xnio-nio-3.6.1.Final.jar:3.6.1.Final]
{code}
Currently it appears that it has not impact on functionality but NPEs are flooding server log.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years, 2 months