[JBoss JIRA] (WFLY-939) Class-Path manifest entries for WARs-in-EAR not handled properly
by RH Bugzilla Integration (JIRA)
[ https://issues.jboss.org/browse/WFLY-939?page=com.atlassian.jira.plugin.s... ]
RH Bugzilla Integration commented on WFLY-939:
----------------------------------------------
Kabir Khan <kkhan(a)redhat.com> changed the Status of [bug 955818|https://bugzilla.redhat.com/show_bug.cgi?id=955818] from POST to MODIFIED
> Class-Path manifest entries for WARs-in-EAR not handled properly
> ----------------------------------------------------------------
>
> Key: WFLY-939
> URL: https://issues.jboss.org/browse/WFLY-939
> Project: WildFly
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: Server
> Reporter: James Livingston
> Assignee: Stuart Douglas
> Fix For: 8.0.0.Alpha1
>
>
> ManifestClassPathProcessor handles the processing of Class-Path entries in deployments. The handling of those entries in sub-deployments is broken.
> https://github.com/doctau/examples/tree/master/war-manifest-classpath builds an EAR containing a utility JAR and two WARs, where both WARs refer to the jar via Class-Path manifest headers. The jar is not in the EAR's library directory nor in application.xml
> The resulting module setup will result in the jar being added to the first WAR's module, and the remaining WAR(s) depending on a separate "jar classloader". All WARs should depend on the single shared jar classloader.
> When ManifestClassPathProcessor.handlingExistingClassPathEntry() runs for the first war, it will call createAdditionalModule(), which calls createResourceRoot(). The "deploymentUnit.addToAttachmentList(Attachments.RESOURCE_ROOTS, resourceRoot)" adds it to the resource roots for that WAR.
> When handlingExistingClassPathEntry() runs for the second (and subsequent) WAR, it will already be in the additionalModules list, so "target.addToAttachmentList(Attachments.CLASS_PATH_ENTRIES, moduleSpecification.getModuleIdentifier())" gets run.
> I believe the step of adding it to the CLASS_PATH_ENTRIES attachment needs to happen on the first WAR (so it is added as a module dependency), and it should not be added to the DU RESOURCE_ROOTS so it is not in the WAR's own classloader.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] (WFLY-3046) Not possible change the object store type from hornetq to jdbc via cli commands
by RH Bugzilla Integration (JIRA)
[ https://issues.jboss.org/browse/WFLY-3046?page=com.atlassian.jira.plugin.... ]
RH Bugzilla Integration commented on WFLY-3046:
-----------------------------------------------
Kabir Khan <kkhan(a)redhat.com> changed the Status of [bug 1038993|https://bugzilla.redhat.com/show_bug.cgi?id=1038993] from POST to MODIFIED
> Not possible change the object store type from hornetq to jdbc via cli commands
> -------------------------------------------------------------------------------
>
> Key: WFLY-3046
> URL: https://issues.jboss.org/browse/WFLY-3046
> Project: WildFly
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: Transactions
> Affects Versions: 8.0.0.Final
> Reporter: Ivo Studensky
> Assignee: Ivo Studensky
> Fix For: 8.0.1.Final
>
>
> When you have set the object store to be type of hornetq and then you change your mind to set it for jdbc object store the jboss-cli permits this operation but no change is propagated to model and XML file.
> How to reproduce:
> # ./bin/standalone.xml (start eap 6.2.0.GA)
> # ./bin/jboss-cli.sh -c (connect to running eap)
> # /subsystem=transactions:write-attribute(name=use-hornetq-store, value=true)
> # :reload# /subsystem=transactions/log-store=log-store:read-attribute(name=type)# /subsystem=transactions:write-attribute(name=use-jdbc-store, value=true)# :reload
> # /subsystem=transactions/log-store=log-store:read-attribute(name=type)
> The object store stays to be set to hornetq and no change happens in the standalone.xml file.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] (JGRP-1813) JDBC_PING fails to recover for corruption issue
by Bela Ban (JIRA)
[ https://issues.jboss.org/browse/JGRP-1813?page=com.atlassian.jira.plugin.... ]
Bela Ban commented on JGRP-1813:
--------------------------------
Assuming you don't want to purge the table manually, the best option I see here is to remove the offending row(s) from the table when encountering an exception.
> JDBC_PING fails to recover for corruption issue
> -----------------------------------------------
>
> Key: JGRP-1813
> URL: https://issues.jboss.org/browse/JGRP-1813
> Project: JGroups
> Issue Type: Feature Request
> Affects Versions: 3.4
> Environment: Windows 7
> Reporter: Brett Donahue
> Assignee: Bela Ban
> Priority: Minor
> Labels: EOFException, JDBC_PING,, corruption
> Fix For: 3.5
>
>
> heap space was exhausted and issues occurred. In the end, one node in the cluster must have corrupted the data in the JDBC_PING table. From this point onward, our log is full of these (every two seconds):
> 2014 03 23 04:00:25#+0100#ERROR#org.jgroups.protocols.SMP_JDBC_PING##anonymous#Thread-15###Error java.io.EOFException: null
> at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
> at org.jgroups.stack.IpAddress.readFrom(IpAddress.java:226)
> at org.jgroups.util.Util.readAddress(Util.java:929)
> at org.jgroups.util.Util.readAddresses(Util.java:1047)
> at org.jgroups.protocols.PingData.readFrom(PingData.java:163)
> at org.jgroups.util.Util.streamableFromByteBuffer(Util.java:753)
> at org.jgroups.protocols.Discovery.deserialize(Discovery.java:625)
> at org.jgroups.protocols.JDBC_PING.readAll(JDBC_PING.java:221)
> at org.jgroups.protocols.JDBC_PING.readAll(JDBC_PING.java:201)
> at org.jgroups.protocols.FILE_PING.fetchClusterMembers(FILE_PING.java:68)
> at org.jgroups.protocols.Discovery.sendDiscoveryRequest(Discovery.java:263)
> at org.jgroups.protocols.Discovery.findMembers(Discovery.java:227)
> at org.jgroups.protocols.Discovery.findInitialMembers(Discovery.java:208)
> at org.jgroups.protocols.Discovery.down(Discovery.java:551)
> at org.jgroups.protocols.FILE_PING.down(FILE_PING.java:101)
> at org.jgroups.protocols.MERGE2.down(MERGE2.java:185)
> at org.jgroups.protocols.FD_SOCK.down(FD_SOCK.java:363)
> at org.jgroups.protocols.FD.down(FD.java:307)
> at org.jgroups.protocols.VERIFY_SUSPECT.down(VERIFY_SUSPECT.java:84)
> at org.jgroups.protocols.BARRIER.down(BARRIER.java:95)
> at org.jgroups.protocols.pbcast.NAKACK2.down(NAKACK2.java:533)
> at org.jgroups.protocols.UNICAST3.down(UNICAST3.java:575)
> at org.jgroups.protocols.pbcast.STABLE.down(STABLE.java:347)
> at org.jgroups.protocols.ENCRYPT.down(ENCRYPT.java:925)
> at org.jgroups.protocols.pbcast.ClientGmsImpl.findInitialMembers(ClientGmsImpl.java:201)
> at org.jgroups.protocols.pbcast.ClientGmsImpl.joinInternal(ClientGmsImpl.java:75)
> at org.jgroups.protocols.pbcast.ClientGmsImpl.join(ClientGmsImpl.java:40)
> at org.jgroups.protocols.pbcast.GMS.down(GMS.java:1052)
> at org.jgroups.protocols.FlowControl.down(FlowControl.java:340)
> at org.jgroups.protocols.FRAG2.down(FRAG2.java:136)
> at org.jgroups.protocols.pbcast.STATE_TRANSFER.down(STATE_TRANSFER.java:237)
> at org.jgroups.stack.ProtocolStack.down(ProtocolStack.java:1024)
> at org.jgroups.JChannel.down(JChannel.java:760)
> at org.jgroups.JChannel._connect(JChannel.java:538)
> at org.jgroups.JChannel.connect(JChannel.java:290)
> at org.jgroups.JChannel.connect(JChannel.java:275)
> at com.sap.mobile.platform.server.cluster.service.impl.ClusterCommunicationsJGroupImpl.startCommunications(ClusterCommunicationsJGroupImpl.java:45)
> at com.sap.mobile.platform.server.cluster.service.impl.ClusterCommunicationsJGroupImpl.<init>(ClusterCommunicationsJGroupImpl.java:59)
> at com.sap.mobile.platform.server.cluster.service.impl.ClusterServiceImpl.run(ClusterServiceImpl.java:187)
> at java.lang.Thread.run(Thread.java:791)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] (JGRP-1813) JDBC_PING fails to recover for corruption issue
by Bela Ban (JIRA)
[ https://issues.jboss.org/browse/JGRP-1813?page=com.atlassian.jira.plugin.... ]
Bela Ban updated JGRP-1813:
---------------------------
Summary: JDBC_PING fails to recover for corruption issue (was: JDBC_PING failes to recover for corruption issue)
> JDBC_PING fails to recover for corruption issue
> -----------------------------------------------
>
> Key: JGRP-1813
> URL: https://issues.jboss.org/browse/JGRP-1813
> Project: JGroups
> Issue Type: Feature Request
> Affects Versions: 3.4
> Environment: Windows 7
> Reporter: Brett Donahue
> Assignee: Bela Ban
> Priority: Minor
> Labels: EOFException, JDBC_PING,, corruption
> Fix For: 3.5
>
>
> heap space was exhausted and issues occurred. In the end, one node in the cluster must have corrupted the data in the JDBC_PING table. From this point onward, our log is full of these (every two seconds):
> 2014 03 23 04:00:25#+0100#ERROR#org.jgroups.protocols.SMP_JDBC_PING##anonymous#Thread-15###Error java.io.EOFException: null
> at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
> at org.jgroups.stack.IpAddress.readFrom(IpAddress.java:226)
> at org.jgroups.util.Util.readAddress(Util.java:929)
> at org.jgroups.util.Util.readAddresses(Util.java:1047)
> at org.jgroups.protocols.PingData.readFrom(PingData.java:163)
> at org.jgroups.util.Util.streamableFromByteBuffer(Util.java:753)
> at org.jgroups.protocols.Discovery.deserialize(Discovery.java:625)
> at org.jgroups.protocols.JDBC_PING.readAll(JDBC_PING.java:221)
> at org.jgroups.protocols.JDBC_PING.readAll(JDBC_PING.java:201)
> at org.jgroups.protocols.FILE_PING.fetchClusterMembers(FILE_PING.java:68)
> at org.jgroups.protocols.Discovery.sendDiscoveryRequest(Discovery.java:263)
> at org.jgroups.protocols.Discovery.findMembers(Discovery.java:227)
> at org.jgroups.protocols.Discovery.findInitialMembers(Discovery.java:208)
> at org.jgroups.protocols.Discovery.down(Discovery.java:551)
> at org.jgroups.protocols.FILE_PING.down(FILE_PING.java:101)
> at org.jgroups.protocols.MERGE2.down(MERGE2.java:185)
> at org.jgroups.protocols.FD_SOCK.down(FD_SOCK.java:363)
> at org.jgroups.protocols.FD.down(FD.java:307)
> at org.jgroups.protocols.VERIFY_SUSPECT.down(VERIFY_SUSPECT.java:84)
> at org.jgroups.protocols.BARRIER.down(BARRIER.java:95)
> at org.jgroups.protocols.pbcast.NAKACK2.down(NAKACK2.java:533)
> at org.jgroups.protocols.UNICAST3.down(UNICAST3.java:575)
> at org.jgroups.protocols.pbcast.STABLE.down(STABLE.java:347)
> at org.jgroups.protocols.ENCRYPT.down(ENCRYPT.java:925)
> at org.jgroups.protocols.pbcast.ClientGmsImpl.findInitialMembers(ClientGmsImpl.java:201)
> at org.jgroups.protocols.pbcast.ClientGmsImpl.joinInternal(ClientGmsImpl.java:75)
> at org.jgroups.protocols.pbcast.ClientGmsImpl.join(ClientGmsImpl.java:40)
> at org.jgroups.protocols.pbcast.GMS.down(GMS.java:1052)
> at org.jgroups.protocols.FlowControl.down(FlowControl.java:340)
> at org.jgroups.protocols.FRAG2.down(FRAG2.java:136)
> at org.jgroups.protocols.pbcast.STATE_TRANSFER.down(STATE_TRANSFER.java:237)
> at org.jgroups.stack.ProtocolStack.down(ProtocolStack.java:1024)
> at org.jgroups.JChannel.down(JChannel.java:760)
> at org.jgroups.JChannel._connect(JChannel.java:538)
> at org.jgroups.JChannel.connect(JChannel.java:290)
> at org.jgroups.JChannel.connect(JChannel.java:275)
> at com.sap.mobile.platform.server.cluster.service.impl.ClusterCommunicationsJGroupImpl.startCommunications(ClusterCommunicationsJGroupImpl.java:45)
> at com.sap.mobile.platform.server.cluster.service.impl.ClusterCommunicationsJGroupImpl.<init>(ClusterCommunicationsJGroupImpl.java:59)
> at com.sap.mobile.platform.server.cluster.service.impl.ClusterServiceImpl.run(ClusterServiceImpl.java:187)
> at java.lang.Thread.run(Thread.java:791)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] (DROOLS-458) Drools lock in StatelessKnowledgeSessionImpl.
by Desmond Silveira (JIRA)
[ https://issues.jboss.org/browse/DROOLS-458?page=com.atlassian.jira.plugin... ]
Desmond Silveira reopened DROOLS-458:
-------------------------------------
> Drools lock in StatelessKnowledgeSessionImpl.
> ---------------------------------------------
>
> Key: DROOLS-458
> URL: https://issues.jboss.org/browse/DROOLS-458
> Project: Drools
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 6.0.1.Final
> Environment: Tomcat 7
> Reporter: Desmond Silveira
> Assignee: Mario Fusco
> Attachments: la3ldspg05b.txt
>
>
> My Tomcat HTTP BIO connector threads (129 of them) got BLOCKED in my production Tomcat 7 instance because Drool 6.0.1 wasn't releasing a lock.
> Here is a snippet of the thread dump:
> {noformat}
> "http-bio-172.16.216.19-80-exec-37513" - Thread t@6245360
> java.lang.Thread.State: BLOCKED
> at org.drools.core.runtime.process.ProcessRuntimeFactory.getProcessRuntimeFactoryService(ProcessRuntimeFactory.java:20)
> - waiting to lock <219dcd77> (a java.lang.Class) owned by "http-bio-172.16.216.19-80-exec-37511" t@6245358
> at org.drools.core.runtime.process.ProcessRuntimeFactory.newProcessRuntime(ProcessRuntimeFactory.java:12)
> at org.drools.core.common.AbstractWorkingMemory.createProcessRuntime(AbstractWorkingMemory.java:405)
> at org.drools.core.common.AbstractWorkingMemory.setKnowledgeRuntime(AbstractWorkingMemory.java:1770)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.<init>(StatefulKnowledgeSessionImpl.java:125)
> at org.drools.core.impl.StatelessKnowledgeSessionImpl.newWorkingMemory(StatelessKnowledgeSessionImpl.java:139)
> at org.drools.core.impl.StatelessKnowledgeSessionImpl.execute(StatelessKnowledgeSessionImpl.java:397)
> at com.local.lds.RuleEngineBean.applyKnowledge(RuleEngineBean.java:50)
> at com.local.lds.LdsBean.search(LdsBean.java:200)
> at com.local.lds.servlet.SearchServlet.doGet(SearchServlet.java:55)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
> at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
> - locked <3575a054> (a org.apache.tomcat.util.net.SocketWrapper)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
> at java.lang.Thread.run(Unknown Source)
> Locked ownable synchronizers:
> - locked <719df963> (a java.util.concurrent.ThreadPoolExecutor$Worker)
> "http-bio-172.16.216.19-80-exec-37511" - Thread t@6245358
> java.lang.Thread.State: RUNNABLE
> at org.kie.internal.utils.ServiceRegistryImpl.addDefault(ServiceRegistryImpl.java:212)
> - locked <3d710637> (a org.kie.internal.utils.ServiceRegistryImpl)
> at org.kie.internal.utils.ServiceRegistryImpl.addDefault(ServiceRegistryImpl.java:207)
> - locked <3d710637> (a org.kie.internal.utils.ServiceRegistryImpl)
> at org.drools.core.runtime.process.ProcessRuntimeFactory.loadProvider(ProcessRuntimeFactory.java:27)
> at org.drools.core.runtime.process.ProcessRuntimeFactory.getProcessRuntimeFactoryService(ProcessRuntimeFactory.java:21)
> - locked <219dcd77> (a java.lang.Class)
> at org.drools.core.runtime.process.ProcessRuntimeFactory.newProcessRuntime(ProcessRuntimeFactory.java:12)
> at org.drools.core.common.AbstractWorkingMemory.createProcessRuntime(AbstractWorkingMemory.java:405)
> at org.drools.core.common.AbstractWorkingMemory.setKnowledgeRuntime(AbstractWorkingMemory.java:1770)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.<init>(StatefulKnowledgeSessionImpl.java:125)
> at org.drools.core.impl.StatelessKnowledgeSessionImpl.newWorkingMemory(StatelessKnowledgeSessionImpl.java:139)
> at org.drools.core.impl.StatelessKnowledgeSessionImpl.execute(StatelessKnowledgeSessionImpl.java:397)
> at com.local.lds.RuleEngineBean.applyKnowledge(RuleEngineBean.java:50)
> at com.local.lds.LdsBean.search(LdsBean.java:200)
> at com.local.lds.servlet.SearchServlet.doGet(SearchServlet.java:55)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
> at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
> - locked <474f2464> (a org.apache.tomcat.util.net.SocketWrapper)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
> at java.lang.Thread.run(Unknown Source)
> Locked ownable synchronizers:
> - locked <339f344e> (a java.util.concurrent.ThreadPoolExecutor$Worker)
> "http-bio-172.16.216.19-80-exec-37447" - Thread t@6233953
> java.lang.Thread.State: BLOCKED
> at org.drools.core.common.ProjectClassLoader.loadClass(ProjectClassLoader.java:82)
> - waiting to lock <555896b3> (a org.drools.core.common.ProjectClassLoader) owned by "http-bio-172.16.216.19-80-exec-37519" t@6245366
> at java.lang.ClassLoader.loadClass(Unknown Source)
> at org.drools.core.base.ClassFieldAccessorCache.getClass(ClassFieldAccessorCache.java:122)
> at org.drools.core.base.ClassFieldAccessorCache.getClassObjectType(ClassFieldAccessorCache.java:46)
> at org.drools.core.reteoo.ClassObjectTypeConf.<init>(ClassObjectTypeConf.java:89)
> at org.drools.core.common.ObjectTypeConfigurationRegistry.getObjectTypeConf(ObjectTypeConfigurationRegistry.java:71)
> at org.drools.core.common.AbstractWorkingMemory.initInitialFact(AbstractWorkingMemory.java:385)
> at org.drools.core.common.AbstractWorkingMemory.<init>(AbstractWorkingMemory.java:378)
> at org.drools.core.common.AbstractWorkingMemory.<init>(AbstractWorkingMemory.java:261)
> at org.drools.core.common.PhreakWorkingMemoryFactory.createWorkingMemory(PhreakWorkingMemoryFactory.java:15)
> at org.drools.core.impl.StatelessKnowledgeSessionImpl.newWorkingMemory(StatelessKnowledgeSessionImpl.java:134)
> at org.drools.core.impl.StatelessKnowledgeSessionImpl.execute(StatelessKnowledgeSessionImpl.java:397)
> at com.local.lds.RuleEngineBean.applyKnowledge(RuleEngineBean.java:50)
> at com.local.lds.LdsBean.search(LdsBean.java:200)
> at com.local.lds.servlet.SearchServlet.doGet(SearchServlet.java:55)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
> at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
> - locked <57e6b780> (a org.apache.tomcat.util.net.SocketWrapper)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
> at java.lang.Thread.run(Unknown Source)
> Locked ownable synchronizers:
> - locked <726294fc> (a java.util.concurrent.ThreadPoolExecutor$Worker)
> "http-bio-172.16.216.19-80-exec-37519" - Thread t@6245366
> java.lang.Thread.State: RUNNABLE
> at java.lang.ClassLoader.findLoadedClass0(Native Method)
> at java.lang.ClassLoader.findLoadedClass(Unknown Source)
> at java.lang.ClassLoader.loadClass(Unknown Source)
> - locked <555896b3> (a org.drools.core.common.ProjectClassLoader)
> at org.drools.core.common.ProjectClassLoader.internalLoadClass(ProjectClassLoader.java:99)
> at org.drools.core.common.ProjectClassLoader.loadClass(ProjectClassLoader.java:82)
> - locked <555896b3> (a org.drools.core.common.ProjectClassLoader)
> at java.lang.ClassLoader.loadClass(Unknown Source)
> at org.drools.core.base.ClassFieldAccessorCache.getClass(ClassFieldAccessorCache.java:122)
> at org.drools.core.base.ClassFieldAccessorCache.getClassObjectType(ClassFieldAccessorCache.java:46)
> at org.drools.core.reteoo.ClassObjectTypeConf.<init>(ClassObjectTypeConf.java:89)
> at org.drools.core.common.ObjectTypeConfigurationRegistry.getObjectTypeConf(ObjectTypeConfigurationRegistry.java:71)
> at org.drools.core.common.NamedEntryPoint.insert(NamedEntryPoint.java:164)
> at org.drools.core.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1148)
> at org.drools.core.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1092)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:308)
> at org.drools.core.impl.StatelessKnowledgeSessionImpl.execute(StatelessKnowledgeSessionImpl.java:400)
> at com.local.lds.RuleEngineBean.applyKnowledge(RuleEngineBean.java:50)
> at com.local.lds.LdsBean.search(LdsBean.java:200)
> at com.local.lds.servlet.SearchServlet.doGet(SearchServlet.java:55)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
> at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
> - locked <43c2901> (a org.apache.tomcat.util.net.SocketWrapper)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
> at java.lang.Thread.run(Unknown Source)
> Locked ownable synchronizers:
> - locked <88f8fa9> (a java.util.concurrent.ThreadPoolExecutor$Worker)
> {noformat}
> Here is the code that I use to call Drools:
> {code:java}
> public static Collection<ResultSet> applyRule(String rule,
> KieBase kb, Collection<ResultSet> resultSets, SearchParameters params) {
> try {
> if (kb == null) {
> return resultSets;
> }
> StatelessKieSession ksession = kb.newStatelessKieSession();
> ksession.setGlobal(OUTPUT, new ArrayList<>());
> Collection<Object> collection = new ArrayList<Object>(resultSets);
> collection.add(params);
> ksession.execute(collection);
> return (Collection<ResultSet>) ksession.getGlobals().get(OUTPUT);
> } catch (ConsequenceException e) {
> LOG.error("Error in rule: " + rule + " " + e.getRule(), e);
> throw e;
> } catch (RuntimeException e) {
> LOG.error("Error in rule: " + rule, e);
> throw e;
> }
> }
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] (DROOLS-458) Drools lock in StatelessKnowledgeSessionImpl.
by Desmond Silveira (JIRA)
[ https://issues.jboss.org/browse/DROOLS-458?page=com.atlassian.jira.plugin... ]
Desmond Silveira updated DROOLS-458:
------------------------------------
Attachment: la3ldspg05b.txt
I have attached the full thread dump.
There are 129 blocked threads.
72 are blocked by lock <219dcd77> which is owned by thread http-bio-172.16.216.19-80-exec-37511.
57 are blocked by lock <555896b3> which is owned by thread http-bio-172.16.216.19-80-exec-37519.
Both of those threads are in a runnable state executing drools code.
In my other Tomcat instances that execute the same code, none of my threads are blocked. I recently upgraded to Drools 6.0.1 from Drools 5.0. Other than this library upgrade (and corresponding changes to library calls) and marked increase in traffic, I haven't had any other changes to my system recently, but my threads have been deadlocking over the past couple of weeks.
> Drools lock in StatelessKnowledgeSessionImpl.
> ---------------------------------------------
>
> Key: DROOLS-458
> URL: https://issues.jboss.org/browse/DROOLS-458
> Project: Drools
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 6.0.1.Final
> Environment: Tomcat 7
> Reporter: Desmond Silveira
> Assignee: Mario Fusco
> Attachments: la3ldspg05b.txt
>
>
> My Tomcat HTTP BIO connector threads (129 of them) got BLOCKED in my production Tomcat 7 instance because Drool 6.0.1 wasn't releasing a lock.
> Here is a snippet of the thread dump:
> {noformat}
> "http-bio-172.16.216.19-80-exec-37513" - Thread t@6245360
> java.lang.Thread.State: BLOCKED
> at org.drools.core.runtime.process.ProcessRuntimeFactory.getProcessRuntimeFactoryService(ProcessRuntimeFactory.java:20)
> - waiting to lock <219dcd77> (a java.lang.Class) owned by "http-bio-172.16.216.19-80-exec-37511" t@6245358
> at org.drools.core.runtime.process.ProcessRuntimeFactory.newProcessRuntime(ProcessRuntimeFactory.java:12)
> at org.drools.core.common.AbstractWorkingMemory.createProcessRuntime(AbstractWorkingMemory.java:405)
> at org.drools.core.common.AbstractWorkingMemory.setKnowledgeRuntime(AbstractWorkingMemory.java:1770)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.<init>(StatefulKnowledgeSessionImpl.java:125)
> at org.drools.core.impl.StatelessKnowledgeSessionImpl.newWorkingMemory(StatelessKnowledgeSessionImpl.java:139)
> at org.drools.core.impl.StatelessKnowledgeSessionImpl.execute(StatelessKnowledgeSessionImpl.java:397)
> at com.local.lds.RuleEngineBean.applyKnowledge(RuleEngineBean.java:50)
> at com.local.lds.LdsBean.search(LdsBean.java:200)
> at com.local.lds.servlet.SearchServlet.doGet(SearchServlet.java:55)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
> at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
> - locked <3575a054> (a org.apache.tomcat.util.net.SocketWrapper)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
> at java.lang.Thread.run(Unknown Source)
> Locked ownable synchronizers:
> - locked <719df963> (a java.util.concurrent.ThreadPoolExecutor$Worker)
> "http-bio-172.16.216.19-80-exec-37511" - Thread t@6245358
> java.lang.Thread.State: RUNNABLE
> at org.kie.internal.utils.ServiceRegistryImpl.addDefault(ServiceRegistryImpl.java:212)
> - locked <3d710637> (a org.kie.internal.utils.ServiceRegistryImpl)
> at org.kie.internal.utils.ServiceRegistryImpl.addDefault(ServiceRegistryImpl.java:207)
> - locked <3d710637> (a org.kie.internal.utils.ServiceRegistryImpl)
> at org.drools.core.runtime.process.ProcessRuntimeFactory.loadProvider(ProcessRuntimeFactory.java:27)
> at org.drools.core.runtime.process.ProcessRuntimeFactory.getProcessRuntimeFactoryService(ProcessRuntimeFactory.java:21)
> - locked <219dcd77> (a java.lang.Class)
> at org.drools.core.runtime.process.ProcessRuntimeFactory.newProcessRuntime(ProcessRuntimeFactory.java:12)
> at org.drools.core.common.AbstractWorkingMemory.createProcessRuntime(AbstractWorkingMemory.java:405)
> at org.drools.core.common.AbstractWorkingMemory.setKnowledgeRuntime(AbstractWorkingMemory.java:1770)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.<init>(StatefulKnowledgeSessionImpl.java:125)
> at org.drools.core.impl.StatelessKnowledgeSessionImpl.newWorkingMemory(StatelessKnowledgeSessionImpl.java:139)
> at org.drools.core.impl.StatelessKnowledgeSessionImpl.execute(StatelessKnowledgeSessionImpl.java:397)
> at com.local.lds.RuleEngineBean.applyKnowledge(RuleEngineBean.java:50)
> at com.local.lds.LdsBean.search(LdsBean.java:200)
> at com.local.lds.servlet.SearchServlet.doGet(SearchServlet.java:55)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
> at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
> - locked <474f2464> (a org.apache.tomcat.util.net.SocketWrapper)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
> at java.lang.Thread.run(Unknown Source)
> Locked ownable synchronizers:
> - locked <339f344e> (a java.util.concurrent.ThreadPoolExecutor$Worker)
> "http-bio-172.16.216.19-80-exec-37447" - Thread t@6233953
> java.lang.Thread.State: BLOCKED
> at org.drools.core.common.ProjectClassLoader.loadClass(ProjectClassLoader.java:82)
> - waiting to lock <555896b3> (a org.drools.core.common.ProjectClassLoader) owned by "http-bio-172.16.216.19-80-exec-37519" t@6245366
> at java.lang.ClassLoader.loadClass(Unknown Source)
> at org.drools.core.base.ClassFieldAccessorCache.getClass(ClassFieldAccessorCache.java:122)
> at org.drools.core.base.ClassFieldAccessorCache.getClassObjectType(ClassFieldAccessorCache.java:46)
> at org.drools.core.reteoo.ClassObjectTypeConf.<init>(ClassObjectTypeConf.java:89)
> at org.drools.core.common.ObjectTypeConfigurationRegistry.getObjectTypeConf(ObjectTypeConfigurationRegistry.java:71)
> at org.drools.core.common.AbstractWorkingMemory.initInitialFact(AbstractWorkingMemory.java:385)
> at org.drools.core.common.AbstractWorkingMemory.<init>(AbstractWorkingMemory.java:378)
> at org.drools.core.common.AbstractWorkingMemory.<init>(AbstractWorkingMemory.java:261)
> at org.drools.core.common.PhreakWorkingMemoryFactory.createWorkingMemory(PhreakWorkingMemoryFactory.java:15)
> at org.drools.core.impl.StatelessKnowledgeSessionImpl.newWorkingMemory(StatelessKnowledgeSessionImpl.java:134)
> at org.drools.core.impl.StatelessKnowledgeSessionImpl.execute(StatelessKnowledgeSessionImpl.java:397)
> at com.local.lds.RuleEngineBean.applyKnowledge(RuleEngineBean.java:50)
> at com.local.lds.LdsBean.search(LdsBean.java:200)
> at com.local.lds.servlet.SearchServlet.doGet(SearchServlet.java:55)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
> at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
> - locked <57e6b780> (a org.apache.tomcat.util.net.SocketWrapper)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
> at java.lang.Thread.run(Unknown Source)
> Locked ownable synchronizers:
> - locked <726294fc> (a java.util.concurrent.ThreadPoolExecutor$Worker)
> "http-bio-172.16.216.19-80-exec-37519" - Thread t@6245366
> java.lang.Thread.State: RUNNABLE
> at java.lang.ClassLoader.findLoadedClass0(Native Method)
> at java.lang.ClassLoader.findLoadedClass(Unknown Source)
> at java.lang.ClassLoader.loadClass(Unknown Source)
> - locked <555896b3> (a org.drools.core.common.ProjectClassLoader)
> at org.drools.core.common.ProjectClassLoader.internalLoadClass(ProjectClassLoader.java:99)
> at org.drools.core.common.ProjectClassLoader.loadClass(ProjectClassLoader.java:82)
> - locked <555896b3> (a org.drools.core.common.ProjectClassLoader)
> at java.lang.ClassLoader.loadClass(Unknown Source)
> at org.drools.core.base.ClassFieldAccessorCache.getClass(ClassFieldAccessorCache.java:122)
> at org.drools.core.base.ClassFieldAccessorCache.getClassObjectType(ClassFieldAccessorCache.java:46)
> at org.drools.core.reteoo.ClassObjectTypeConf.<init>(ClassObjectTypeConf.java:89)
> at org.drools.core.common.ObjectTypeConfigurationRegistry.getObjectTypeConf(ObjectTypeConfigurationRegistry.java:71)
> at org.drools.core.common.NamedEntryPoint.insert(NamedEntryPoint.java:164)
> at org.drools.core.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1148)
> at org.drools.core.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1092)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:308)
> at org.drools.core.impl.StatelessKnowledgeSessionImpl.execute(StatelessKnowledgeSessionImpl.java:400)
> at com.local.lds.RuleEngineBean.applyKnowledge(RuleEngineBean.java:50)
> at com.local.lds.LdsBean.search(LdsBean.java:200)
> at com.local.lds.servlet.SearchServlet.doGet(SearchServlet.java:55)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
> at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
> - locked <43c2901> (a org.apache.tomcat.util.net.SocketWrapper)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
> at java.lang.Thread.run(Unknown Source)
> Locked ownable synchronizers:
> - locked <88f8fa9> (a java.util.concurrent.ThreadPoolExecutor$Worker)
> {noformat}
> Here is the code that I use to call Drools:
> {code:java}
> public static Collection<ResultSet> applyRule(String rule,
> KieBase kb, Collection<ResultSet> resultSets, SearchParameters params) {
> try {
> if (kb == null) {
> return resultSets;
> }
> StatelessKieSession ksession = kb.newStatelessKieSession();
> ksession.setGlobal(OUTPUT, new ArrayList<>());
> Collection<Object> collection = new ArrayList<Object>(resultSets);
> collection.add(params);
> ksession.execute(collection);
> return (Collection<ResultSet>) ksession.getGlobals().get(OUTPUT);
> } catch (ConsequenceException e) {
> LOG.error("Error in rule: " + rule + " " + e.getRule(), e);
> throw e;
> } catch (RuntimeException e) {
> LOG.error("Error in rule: " + rule, e);
> throw e;
> }
> }
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month