[JBoss JIRA] (WFLY-3181) Hibernate Search w/ Infinispan - java.lang.Class cannot be cast to java.util.Map
by Akhbar Falafel (JIRA)
Akhbar Falafel created WFLY-3181:
------------------------------------
Summary: Hibernate Search w/ Infinispan - java.lang.Class cannot be cast to java.util.Map
Key: WFLY-3181
URL: https://issues.jboss.org/browse/WFLY-3181
Project: WildFly
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Components: JPA / Hibernate
Affects Versions: 8.0.0.Final
Environment: Wildfly 8.0, OS X 10.9.2
Reporter: Akhbar Falafel
Assignee: Scott Marlow
When configuring Hibernate Search to use Infinispan as its directory provider, a java.lang.ClassCastException occurs upon deployment of an application making use of Hibernate Search.
Relevant portion of standalone-full-ha.xml:
<cache-container name="hibernateSearch" default-cache="LuceneIndexesData" jndi-name="java:jboss/infinispan/hibernateSearch" start="EAGER" statistics-enabled="true">
<transport lock-timeout="60000"/>
<replicated-cache name="LuceneIndexesMetadata" start="EAGER" statistics-enabled="true" mode="SYNC">
<binary-keyed-jdbc-store shared="true" preload="true" passivation="false" purge="false" datasource="java:jboss/datasources/InfinispanDatasource">
<binary-keyed-table>
<id-column name="ID_COLUMN" type="VARCHAR(255)"/>
<data-column name="DATUM" type="BYTEA"/>
</binary-keyed-table>
</binary-keyed-jdbc-store>
</replicated-cache>
<replicated-cache name="LuceneIndexesData" start="EAGER" statistics-enabled="true" mode="SYNC">
<binary-keyed-jdbc-store shared="true" preload="true" passivation="false" purge="false" datasource="java:jboss/datasources/InfinispanDatasource">
<binary-keyed-table>
<id-column name="ID_COLUMN" type="VARCHAR(255)"/>
<data-column name="DATUM" type="BYTEA"/>
</binary-keyed-table>
</binary-keyed-jdbc-store>
</replicated-cache>
<replicated-cache name="LuceneIndexesLocking" start="EAGER" statistics-enabled="true" mode="SYNC"/>
</cache-container>
Relevant portion of persistence.xml:
<!-- Hibernate Search properties - Infinispan -->
<property name="hibernate.search.infinispan.cachemanager_jndiname"
value="java:jboss/infinispan/hibernateSearch" />
<property name="hibernate.search.default.directory_provider"
value="infinispan" />
<property name="hibernate.search.infinispan.chunk_size"
value="300000000" />
<property name="hibernate.search.reader.strategy" value="shared" />
<property name="hibernate.search.worker.execution" value="sync" />
<property name="hibernate.search.jmx_enabled" value="true" />
<property name="hibernate.search.autoregister_listeners"
value="true" />
Stack trace of Exception upon deployment:
12:35:09,837 DEBUG [org.jboss.jca.core.connectionmanager.pool.strategy.OnePool] (ServerService Thread Pool -- 62) InfinispanDS: returnConnection(3ea8c21b, false) [1/20]
12:35:09,837 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 62) MSC000001: Failed to start service jboss.infinispan.hibernateSearch.LuceneIndexesData: org.jboss.msc.service.StartException in service jboss.infinispan.hibernateSearch.LuceneIndexesData: org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.persistence.manager.PersistenceManagerImpl.preload() on object of type PersistenceManagerImpl
at org.jboss.as.clustering.msc.AsynchronousService$1.run(AsynchronousService.java:91) [wildfly-clustering-common-8.0.0.Final.jar:8.0.0.Final]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_51]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_51]
at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]
at org.jboss.threads.JBossThread.run(JBossThread.java:122) [jboss-threads-2.1.1.Final.jar:2.1.1.Final]
Caused by: org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.persistence.manager.PersistenceManagerImpl.preload() on object of type PersistenceManagerImpl
at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:185)
at org.infinispan.factories.AbstractComponentRegistry$PrioritizedMethod.invoke(AbstractComponentRegistry.java:869)
at org.infinispan.factories.AbstractComponentRegistry.invokeStartMethods(AbstractComponentRegistry.java:638)
at org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:627)
at org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:530)
at org.infinispan.factories.ComponentRegistry.start(ComponentRegistry.java:216)
at org.infinispan.CacheImpl.start(CacheImpl.java:675)
at org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:553)
at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:516)
at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:398)
at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:412)
at org.jboss.as.clustering.infinispan.DefaultCacheContainer.getCache(DefaultCacheContainer.java:103)
at org.jboss.as.clustering.infinispan.DefaultCacheContainer.getCache(DefaultCacheContainer.java:94)
at org.jboss.as.clustering.infinispan.subsystem.CacheService.start(CacheService.java:78)
at org.jboss.as.clustering.msc.AsynchronousService$1.run(AsynchronousService.java:86) [wildfly-clustering-common-8.0.0.Final.jar:8.0.0.Final]
... 4 more
Caused by: java.lang.ClassCastException: java.lang.Class cannot be cast to java.util.Map
at org.infinispan.persistence.jdbc.binary.JdbcBinaryStore.unmarshallBucket(JdbcBinaryStore.java:577)
at org.infinispan.persistence.jdbc.binary.JdbcBinaryStore.process(JdbcBinaryStore.java:190)
at org.infinispan.persistence.manager.PersistenceManagerImpl.preload(PersistenceManagerImpl.java:214)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_51]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_51]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_51]
at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_51]
at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:183)
... 18 more
12:35:09,837 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 66) MSC000001: Failed to start service jboss.infinispan.hibernateSearch.LuceneIndexesMetadata: org.jboss.msc.service.StartException in service jboss.infinispan.hibernateSearch.LuceneIndexesMetadata: org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.persistence.manager.PersistenceManagerImpl.preload() on object of type PersistenceManagerImpl
at org.jboss.as.clustering.msc.AsynchronousService$1.run(AsynchronousService.java:91) [wildfly-clustering-common-8.0.0.Final.jar:8.0.0.Final]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_51]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_51]
at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]
at org.jboss.threads.JBossThread.run(JBossThread.java:122) [jboss-threads-2.1.1.Final.jar:2.1.1.Final]
Caused by: org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.persistence.manager.PersistenceManagerImpl.preload() on object of type PersistenceManagerImpl
at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:185)
at org.infinispan.factories.AbstractComponentRegistry$PrioritizedMethod.invoke(AbstractComponentRegistry.java:869)
at org.infinispan.factories.AbstractComponentRegistry.invokeStartMethods(AbstractComponentRegistry.java:638)
at org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:627)
at org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:530)
at org.infinispan.factories.ComponentRegistry.start(ComponentRegistry.java:216)
at org.infinispan.CacheImpl.start(CacheImpl.java:675)
at org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:553)
at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:516)
at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:398)
at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:412)
at org.jboss.as.clustering.infinispan.DefaultCacheContainer.getCache(DefaultCacheContainer.java:103)
at org.jboss.as.clustering.infinispan.DefaultCacheContainer.getCache(DefaultCacheContainer.java:94)
at org.jboss.as.clustering.infinispan.subsystem.CacheService.start(CacheService.java:78)
at org.jboss.as.clustering.msc.AsynchronousService$1.run(AsynchronousService.java:86) [wildfly-clustering-common-8.0.0.Final.jar:8.0.0.Final]
... 4 more
Caused by: java.lang.ClassCastException: java.lang.Class cannot be cast to java.util.Map
at org.infinispan.persistence.jdbc.binary.JdbcBinaryStore.unmarshallBucket(JdbcBinaryStore.java:577)
at org.infinispan.persistence.jdbc.binary.JdbcBinaryStore.process(JdbcBinaryStore.java:190)
at org.infinispan.persistence.manager.PersistenceManagerImpl.preload(PersistenceManagerImpl.java:214)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_51]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_51]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_51]
at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_51]
at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:183)
... 18 more
--
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-1817) OverlappingMergeTest testSameCreatorDifferentIDs fails to create correct merged view
by Richard Achmatowicz (JIRA)
[ https://issues.jboss.org/browse/JGRP-1817?page=com.atlassian.jira.plugin.... ]
Richard Achmatowicz updated JGRP-1817:
--------------------------------------
Description:
This test does the following:
- creates three channels a,b,c
- injects views
{noformat}
A: {A|5 A}, B:{A|6 A,B}, C:{A|7 A,B,C}
{noformat}
- injects a merge event in each of channels A,B,C representing these four views
- checks that all channels have the final view of size 3
The test fails intermittently on RHEL, with the same failure each time:
{noformat}
-------------------------------------------------------------------
GMS: address=A, cluster=OverlappingMergeTest, physical address=10.16.95.7:27215
-------------------------------------------------------------------
-------------------------------------------------------------------
GMS: address=B, cluster=OverlappingMergeTest, physical address=10.16.95.7:27216
-------------------------------------------------------------------
-------------------------------------------------------------------
GMS: address=C, cluster=OverlappingMergeTest, physical address=10.16.95.7:27217
-------------------------------------------------------------------
------------- testSameCreatorDifferentIDs -----------
[A] view=[A|5] [A]
[B] view=[A|6] [A, B]
[C] view=[A|7] [A, B, C]
A's view: [A|5] [A]
B's view: [A|6] [A, B]
C's view: [A|7] [A, B, C]
Enabling TRACE debugging for GMS, MERGE2 and Discovery
==== triggering merge solicitation ====:
212534 [TRACE] TCPPING: - A: sending discovery request to 10.16.95.7:27216
212537 [TRACE] TCPPING: - A: sending discovery request to 10.16.95.7:27218
212538 [TRACE] TCPPING: - A: sending discovery request to 10.16.95.7:27217
215538 [TRACE] TCPPING: - A: discovery took 3004 ms: responses: 1 total (1 servers (0 coord), 0 clients)
215539 [TRACE] MERGE2: - Discovery results:
[B]: view_id=[A|6] ([A|6] [A, B])
[A]: view_id=[A|5] ([A|5] [A])
215539 [DEBUG] MERGE2: - A found different views : [A|5], [A|6]; sending up MERGE event with merge participants [B, A].
Discovery results:
[B]: coord=A
[A]: coord=A
==== checking views after merge ====:
....................Disabling TRACE debugging for GMS, MERGE2 and Discovery
A's view: [A|7] [A, B]
B's view: [A|7] [A, B]
C's view: [A|7] [A, B, C]
{noformat}
Whenever this test fails, it is the discovery phase which fails to find the correct set of views. Instead of finding views for channels A, B and C, it only finds views for channels A and B.
Also, the discovery requests are sent to host:port combinations which are offset by 1. For example, in the case above, the host:port combinations of the channels are 10.16.95.7:27215, 10.16.95.7:27216, and 10.16.95.7:27217, but the pings go put to 10.16.95.7:27216, 10.16.95.7:27217, and 10.16.95.7:27218. Not sure if this is significant as it still covers the channels B and C.
was:
This test does the following:
- creates three channels a,b,c
- injects views A: {A|5 A}, B:{A|6 A,B}, C:{A|7 A,B,C}
- injects a merge event in each of channels A,B,C representing these four views
- checks that all channels have the final view of size 3
The test fails intermittently on RHEL, with the same failure each time:
{noformat}
-------------------------------------------------------------------
GMS: address=A, cluster=OverlappingMergeTest, physical address=10.16.95.7:27215
-------------------------------------------------------------------
-------------------------------------------------------------------
GMS: address=B, cluster=OverlappingMergeTest, physical address=10.16.95.7:27216
-------------------------------------------------------------------
-------------------------------------------------------------------
GMS: address=C, cluster=OverlappingMergeTest, physical address=10.16.95.7:27217
-------------------------------------------------------------------
------------- testSameCreatorDifferentIDs -----------
[A] view=[A|5] [A]
[B] view=[A|6] [A, B]
[C] view=[A|7] [A, B, C]
A's view: [A|5] [A]
B's view: [A|6] [A, B]
C's view: [A|7] [A, B, C]
Enabling TRACE debugging for GMS, MERGE2 and Discovery
==== triggering merge solicitation ====:
212534 [TRACE] TCPPING: - A: sending discovery request to 10.16.95.7:27216
212537 [TRACE] TCPPING: - A: sending discovery request to 10.16.95.7:27218
212538 [TRACE] TCPPING: - A: sending discovery request to 10.16.95.7:27217
215538 [TRACE] TCPPING: - A: discovery took 3004 ms: responses: 1 total (1 servers (0 coord), 0 clients)
215539 [TRACE] MERGE2: - Discovery results:
[B]: view_id=[A|6] ([A|6] [A, B])
[A]: view_id=[A|5] ([A|5] [A])
215539 [DEBUG] MERGE2: - A found different views : [A|5], [A|6]; sending up MERGE event with merge participants [B, A].
Discovery results:
[B]: coord=A
[A]: coord=A
==== checking views after merge ====:
....................Disabling TRACE debugging for GMS, MERGE2 and Discovery
A's view: [A|7] [A, B]
B's view: [A|7] [A, B]
C's view: [A|7] [A, B, C]
{noformat}
Whenever this test fails, it is the discovery phase which fails to find the correct set of views. Instead of finding views for channels A, B and C, it only finds views for channels A and B.
Also, the discovery requests are sent to host:port combinations which are offset by 1. For example, in the case above, the host:port combinations of the channels are 10.16.95.7:27215, 10.16.95.7:27216, and 10.16.95.7:27217, but the pings go put to 10.16.95.7:27216, 10.16.95.7:27217, and 10.16.95.7:27218. Not sure if this is significant as it still covers the channels B and C.
> OverlappingMergeTest testSameCreatorDifferentIDs fails to create correct merged view
> ------------------------------------------------------------------------------------
>
> Key: JGRP-1817
> URL: https://issues.jboss.org/browse/JGRP-1817
> Project: JGroups
> Issue Type: Bug
> Affects Versions: 3.2.13
> Environment: RHEL
> Reporter: Richard Achmatowicz
> Assignee: Bela Ban
> Fix For: 3.2.14
>
>
> This test does the following:
> - creates three channels a,b,c
> - injects views
> {noformat}
> A: {A|5 A}, B:{A|6 A,B}, C:{A|7 A,B,C}
> {noformat}
> - injects a merge event in each of channels A,B,C representing these four views
> - checks that all channels have the final view of size 3
> The test fails intermittently on RHEL, with the same failure each time:
> {noformat}
> -------------------------------------------------------------------
> GMS: address=A, cluster=OverlappingMergeTest, physical address=10.16.95.7:27215
> -------------------------------------------------------------------
> -------------------------------------------------------------------
> GMS: address=B, cluster=OverlappingMergeTest, physical address=10.16.95.7:27216
> -------------------------------------------------------------------
> -------------------------------------------------------------------
> GMS: address=C, cluster=OverlappingMergeTest, physical address=10.16.95.7:27217
> -------------------------------------------------------------------
> ------------- testSameCreatorDifferentIDs -----------
> [A] view=[A|5] [A]
> [B] view=[A|6] [A, B]
> [C] view=[A|7] [A, B, C]
> A's view: [A|5] [A]
> B's view: [A|6] [A, B]
> C's view: [A|7] [A, B, C]
> Enabling TRACE debugging for GMS, MERGE2 and Discovery
> ==== triggering merge solicitation ====:
> 212534 [TRACE] TCPPING: - A: sending discovery request to 10.16.95.7:27216
> 212537 [TRACE] TCPPING: - A: sending discovery request to 10.16.95.7:27218
> 212538 [TRACE] TCPPING: - A: sending discovery request to 10.16.95.7:27217
> 215538 [TRACE] TCPPING: - A: discovery took 3004 ms: responses: 1 total (1 servers (0 coord), 0 clients)
> 215539 [TRACE] MERGE2: - Discovery results:
> [B]: view_id=[A|6] ([A|6] [A, B])
> [A]: view_id=[A|5] ([A|5] [A])
> 215539 [DEBUG] MERGE2: - A found different views : [A|5], [A|6]; sending up MERGE event with merge participants [B, A].
> Discovery results:
> [B]: coord=A
> [A]: coord=A
> ==== checking views after merge ====:
> ....................Disabling TRACE debugging for GMS, MERGE2 and Discovery
> A's view: [A|7] [A, B]
> B's view: [A|7] [A, B]
> C's view: [A|7] [A, B, C]
> {noformat}
> Whenever this test fails, it is the discovery phase which fails to find the correct set of views. Instead of finding views for channels A, B and C, it only finds views for channels A and B.
>
> Also, the discovery requests are sent to host:port combinations which are offset by 1. For example, in the case above, the host:port combinations of the channels are 10.16.95.7:27215, 10.16.95.7:27216, and 10.16.95.7:27217, but the pings go put to 10.16.95.7:27216, 10.16.95.7:27217, and 10.16.95.7:27218. Not sure if this is significant as it still covers the channels B and C.
--
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-1817) OverlappingMergeTest testSameCreatorDifferentIDs fails to create correct merged view
by Richard Achmatowicz (JIRA)
[ https://issues.jboss.org/browse/JGRP-1817?page=com.atlassian.jira.plugin.... ]
Richard Achmatowicz updated JGRP-1817:
--------------------------------------
Description:
This test does the following:
- creates three channels a,b,c
- injects views A: {A|5 A}, B:{A|6 A,B}, C:{A|7 A,B,C}
- injects a merge event in each of channels A,B,C representing these four views
- checks that all channels have the final view of size 3
The test fails intermittently on RHEL, with the same failure each time:
{noformat}
-------------------------------------------------------------------
GMS: address=A, cluster=OverlappingMergeTest, physical address=10.16.95.7:27215
-------------------------------------------------------------------
-------------------------------------------------------------------
GMS: address=B, cluster=OverlappingMergeTest, physical address=10.16.95.7:27216
-------------------------------------------------------------------
-------------------------------------------------------------------
GMS: address=C, cluster=OverlappingMergeTest, physical address=10.16.95.7:27217
-------------------------------------------------------------------
------------- testSameCreatorDifferentIDs -----------
[A] view=[A|5] [A]
[B] view=[A|6] [A, B]
[C] view=[A|7] [A, B, C]
A's view: [A|5] [A]
B's view: [A|6] [A, B]
C's view: [A|7] [A, B, C]
Enabling TRACE debugging for GMS, MERGE2 and Discovery
==== triggering merge solicitation ====:
212534 [TRACE] TCPPING: - A: sending discovery request to 10.16.95.7:27216
212537 [TRACE] TCPPING: - A: sending discovery request to 10.16.95.7:27218
212538 [TRACE] TCPPING: - A: sending discovery request to 10.16.95.7:27217
215538 [TRACE] TCPPING: - A: discovery took 3004 ms: responses: 1 total (1 servers (0 coord), 0 clients)
215539 [TRACE] MERGE2: - Discovery results:
[B]: view_id=[A|6] ([A|6] [A, B])
[A]: view_id=[A|5] ([A|5] [A])
215539 [DEBUG] MERGE2: - A found different views : [A|5], [A|6]; sending up MERGE event with merge participants [B, A].
Discovery results:
[B]: coord=A
[A]: coord=A
==== checking views after merge ====:
....................Disabling TRACE debugging for GMS, MERGE2 and Discovery
A's view: [A|7] [A, B]
B's view: [A|7] [A, B]
C's view: [A|7] [A, B, C]
{noformat}
Whenever this test fails, it is the discovery phase which fails to find the correct set of views. Instead of finding views for channels A, B and C, it only finds views for channels A and B.
Also, the discovery requests are sent to host:port combinations which are offset by 1. For example, in the case above, the host:port combinations of the channels are 10.16.95.7:27215, 10.16.95.7:27216, and 10.16.95.7:27217, but the pings go put to 10.16.95.7:27216, 10.16.95.7:27217, and 10.16.95.7:27218. Not sure if this is significant as it still covers the channels B and C.
was:
This test does the following:
- creates four channels a,b,c,d
- injects views A: {A,C,B}, B:{A,C,B}, C:{A,C,B} and D: {B,A,C,D}
- injects a merge event in each of channels A,B,C,D representing these four views
- checks that all channels have the final view of size 4
The test fails intermittently on RHEL, with the same failure each time:
{noformat}
181595 [DEBUG] GMS: - A: installing view [A|2] [A]
[testng] 181596 [TRACE] GMS: - A: received all 1 ACKs from members for view [A|2]
[testng] 181866 [TRACE] GMS: - view [A|3] [] is empty: will not multicast it (last view)
[testng]
[testng] -------------------------------------------------------------------
[testng] GMS: address=A, cluster=OverlappingMergeTest, physical address=10.16.94.42:27199
[testng] -------------------------------------------------------------------
[testng] 184954 [TRACE] GMS: - A: no initial members discovered: creating group as first member
[testng] 184954 [DEBUG] GMS: - A: installing view [A|0] [A]
[testng] 184955 [DEBUG] GMS: - created group (first member). My view is [A|0], impl is org.jgroups.protocols.pbcast.CoordGmsImpl
[testng]
[testng] -------------------------------------------------------------------
[testng] GMS: address=B, cluster=OverlappingMergeTest, physical address=10.16.94.42:27200
[testng] -------------------------------------------------------------------
[testng] 184961 [TRACE] GMS: - B: initial_mbrs are A
[testng] 184961 [DEBUG] GMS: - election results: {A=1}
[testng] 184961 [DEBUG] GMS: - sending JOIN(B) to A
[testng] 185013 [TRACE] GMS: - A: new members=[B], suspected=[], leaving=[], new view: [A|1] [A, B]
[testng] 185014 [TRACE] GMS: - A: mcasting view [A|1] [A, B] (2 mbrs)
[testng]
[testng] 185025 [DEBUG] GMS: - A: installing view [A|1] [A, B]
[testng] 185026 [TRACE] GMS: - A: received all 1 ACKs from members for view [A|1]
[testng] 185055 [TRACE] GMS: - B: JOIN-RSP=[A|1] [A, B] [size=2]
[testng]
[testng]
[testng] 185055 [DEBUG] GMS: - B: installing view [A|1] [A, B]
[testng] 185057 [TRACE] GMS: - A: received all ACKs (1) from joiners for view [A|1]
[testng]
[testng] -------------------------------------------------------------------
[testng] GMS: address=C, cluster=OverlappingMergeTest, physical address=10.16.94.42:27201
[testng] -------------------------------------------------------------------
[testng] 185064 [TRACE] GMS: - C: initial_mbrs are B A
[testng] 185064 [DEBUG] GMS: - election results: {A=2}
[testng] 185064 [DEBUG] GMS: - sending JOIN(C) to A
[testng] 185108 [TRACE] GMS: - A: new members=[C], suspected=[], leaving=[], new view: [A|2] [A, B, C]
[testng] 185108 [TRACE] GMS: - A: mcasting view [A|2] [A, B, C] (3 mbrs)
[testng]
[testng] 185117 [DEBUG] GMS: - A: installing view [A|2] [A, B, C]
[testng] 185118 [DEBUG] GMS: - B: installing view [A|2] [A, B, C]
[testng] 185119 [TRACE] GMS: - A: received all 2 ACKs from members for view [A|2]
[testng] 185148 [TRACE] GMS: - C: JOIN-RSP=[A|2] [A, B, C] [size=3]
[testng]
[testng]
[testng] 185149 [DEBUG] GMS: - C: installing view [A|2] [A, B, C]
[testng] 185151 [TRACE] GMS: - A: received all ACKs (1) from joiners for view [A|2]
[testng]
[testng] -------------------------------------------------------------------
[testng] GMS: address=D, cluster=OverlappingMergeTest, physical address=10.16.94.42:27202
[testng] -------------------------------------------------------------------
[testng] 185164 [TRACE] GMS: - D: initial_mbrs are B C A
[testng] 185164 [DEBUG] GMS: - election results: {A=3}
[testng] 185164 [DEBUG] GMS: - sending JOIN(D) to A
[testng] 185203 [TRACE] GMS: - A: new members=[D], suspected=[], leaving=[], new view: [A|3] [A, B, C, D]
[testng] 185203 [TRACE] GMS: - A: mcasting view [A|3] [A, B, C, D] (4 mbrs)
[testng]
[testng] 185210 [DEBUG] GMS: - A: installing view [A|3] [A, B, C, D]
[testng] 185211 [DEBUG] GMS: - B: installing view [A|3] [A, B, C, D]
[testng] 185211 [DEBUG] GMS: - C: installing view [A|3] [A, B, C, D]
[testng] 185213 [TRACE] GMS: - A: received all 3 ACKs from members for view [A|3]
[testng] 185242 [TRACE] GMS: - D: JOIN-RSP=[A|3] [A, B, C, D] [size=4]
[testng]
[testng]
[testng] 185242 [DEBUG] GMS: - D: installing view [A|3] [A, B, C, D]
[testng] 185242 [TRACE] GMS: - A: received all ACKs (1) from joiners for view [A|3]
[testng]
[testng] ==== Injecting view [A|4] [A, C, B] into A, B and C ====
[testng] 185243 [DEBUG] GMS: - A: installing view [A|4] [A, C, B]
[testng] 185243 [DEBUG] GMS: - B: installing view [A|4] [A, C, B]
[testng] 185244 [DEBUG] GMS: - C: installing view [A|4] [A, C, B]
[testng]
[testng] ==== Injecting view [B|4] [B, A, C, D] into D ====
[testng]
[testng] 185245 [DEBUG] GMS: - D: installing view [B|4] [B, A, C, D]
[testng] A: [A|4] [A, C, B]
[testng] B: [A|4] [A, C, B]
[testng] C: [A|4] [A, C, B]
[testng] D: [B|4] [B, A, C, D]
[testng]
[testng] ==== Injecting a merge event into A, B, C and D====
[testng] 185251 [TRACE] GMS: - A: got merge response from A, merge_id=A::3, merge data is sender=A, view=[A|4] [A, C, B], digest=C: [0 (0)], B: [0 (0)], A: [4 (4)]
[testng] 185253 [TRACE] GMS: - B: queue is suspended; request MERGE(4 views) is discarded
[testng] 185255 [TRACE] GMS: - C: queue is suspended; request MERGE(4 views) is discarded
[testng] 185255 [TRACE] GMS: - A: got merge response from B, merge_id=A::3, merge data is sender=B, view=[A|4] [A, C, B], digest=C: [0 (0)], B: [0 (1)], A: [4 (4)]
[testng] 190286 [TRACE] GMS: - A: mcasting view MergeView::[A|5] [A, B, C], subgroups=[A|4] [A, C, B], [A|4] [A, C, B] (3 mbrs)
[testng]
[testng] 190286 [TRACE] GMS: - B: mcasting view MergeView::[A|5] [A, B, C], subgroups=[A|4] [A, C, B], [A|4] [A, C, B] (3 mbrs)
[testng]
[testng] 190317 [DEBUG] GMS: - A: installing view MergeView::[A|5] [A, B, C], subgroups=[A|4] [A, C, B], [A|4] [A, C, B]
[testng] 190318 [DEBUG] GMS: - B: installing view MergeView::[A|5] [A, B, C], subgroups=[A|4] [A, C, B], [A|4] [A, C, B]
[testng] 190318 [DEBUG] GMS: - C: installing view MergeView::[A|5] [A, B, C], subgroups=[A|4] [A, C, B], [A|4] [A, C, B]
[testng] 190320 [TRACE] GMS: - A: received all 3 ACKs from members for view [A|5]
[testng] 190320 [TRACE] GMS: - B: received all 3 ACKs from members for view [A|5]
[testng] A: [A|5] [A, B, C] (coord=true)
[testng] B: [A|5] [A, B, C] (coord=false)
[testng] C: [A|5] [A, B, C] (coord=false)
[testng] D: [B|4] [B, A, C, D] (coord=false)
[testng] 195277 [DEBUG] GMS: - D: sending LEAVE request to B
[testng] FAIL: [1] org.jgroups.tests.OverlappingMergeTest.testMergeWithDifferentPartitions()
{noformat}
Whenever this test fails, I see that the queues are suspended on the initial merge attempt.
> OverlappingMergeTest testSameCreatorDifferentIDs fails to create correct merged view
> ------------------------------------------------------------------------------------
>
> Key: JGRP-1817
> URL: https://issues.jboss.org/browse/JGRP-1817
> Project: JGroups
> Issue Type: Bug
> Affects Versions: 3.2.13
> Environment: RHEL
> Reporter: Richard Achmatowicz
> Assignee: Bela Ban
> Fix For: 3.2.14
>
>
> This test does the following:
> - creates three channels a,b,c
> - injects views A: {A|5 A}, B:{A|6 A,B}, C:{A|7 A,B,C}
> - injects a merge event in each of channels A,B,C representing these four views
> - checks that all channels have the final view of size 3
> The test fails intermittently on RHEL, with the same failure each time:
> {noformat}
> -------------------------------------------------------------------
> GMS: address=A, cluster=OverlappingMergeTest, physical address=10.16.95.7:27215
> -------------------------------------------------------------------
> -------------------------------------------------------------------
> GMS: address=B, cluster=OverlappingMergeTest, physical address=10.16.95.7:27216
> -------------------------------------------------------------------
> -------------------------------------------------------------------
> GMS: address=C, cluster=OverlappingMergeTest, physical address=10.16.95.7:27217
> -------------------------------------------------------------------
> ------------- testSameCreatorDifferentIDs -----------
> [A] view=[A|5] [A]
> [B] view=[A|6] [A, B]
> [C] view=[A|7] [A, B, C]
> A's view: [A|5] [A]
> B's view: [A|6] [A, B]
> C's view: [A|7] [A, B, C]
> Enabling TRACE debugging for GMS, MERGE2 and Discovery
> ==== triggering merge solicitation ====:
> 212534 [TRACE] TCPPING: - A: sending discovery request to 10.16.95.7:27216
> 212537 [TRACE] TCPPING: - A: sending discovery request to 10.16.95.7:27218
> 212538 [TRACE] TCPPING: - A: sending discovery request to 10.16.95.7:27217
> 215538 [TRACE] TCPPING: - A: discovery took 3004 ms: responses: 1 total (1 servers (0 coord), 0 clients)
> 215539 [TRACE] MERGE2: - Discovery results:
> [B]: view_id=[A|6] ([A|6] [A, B])
> [A]: view_id=[A|5] ([A|5] [A])
> 215539 [DEBUG] MERGE2: - A found different views : [A|5], [A|6]; sending up MERGE event with merge participants [B, A].
> Discovery results:
> [B]: coord=A
> [A]: coord=A
> ==== checking views after merge ====:
> ....................Disabling TRACE debugging for GMS, MERGE2 and Discovery
> A's view: [A|7] [A, B]
> B's view: [A|7] [A, B]
> C's view: [A|7] [A, B, C]
> {noformat}
> Whenever this test fails, it is the discovery phase which fails to find the correct set of views. Instead of finding views for channels A, B and C, it only finds views for channels A and B.
>
> Also, the discovery requests are sent to host:port combinations which are offset by 1. For example, in the case above, the host:port combinations of the channels are 10.16.95.7:27215, 10.16.95.7:27216, and 10.16.95.7:27217, but the pings go put to 10.16.95.7:27216, 10.16.95.7:27217, and 10.16.95.7:27218. Not sure if this is significant as it still covers the channels B and C.
--
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-1817) OverlappingMergeTest testSameCreatorDifferentIDs fails to create correct merged view
by Richard Achmatowicz (JIRA)
[ https://issues.jboss.org/browse/JGRP-1817?page=com.atlassian.jira.plugin.... ]
Richard Achmatowicz updated JGRP-1817:
--------------------------------------
Fix Version/s: 3.2.14
(was: 3.2.13)
> OverlappingMergeTest testSameCreatorDifferentIDs fails to create correct merged view
> ------------------------------------------------------------------------------------
>
> Key: JGRP-1817
> URL: https://issues.jboss.org/browse/JGRP-1817
> Project: JGroups
> Issue Type: Bug
> Affects Versions: 3.2.13
> Environment: RHEL
> Reporter: Richard Achmatowicz
> Assignee: Bela Ban
> Fix For: 3.2.14
>
>
> This test does the following:
> - creates four channels a,b,c,d
> - injects views A: {A,C,B}, B:{A,C,B}, C:{A,C,B} and D: {B,A,C,D}
> - injects a merge event in each of channels A,B,C,D representing these four views
> - checks that all channels have the final view of size 4
> The test fails intermittently on RHEL, with the same failure each time:
> {noformat}
> 181595 [DEBUG] GMS: - A: installing view [A|2] [A]
> [testng] 181596 [TRACE] GMS: - A: received all 1 ACKs from members for view [A|2]
> [testng] 181866 [TRACE] GMS: - view [A|3] [] is empty: will not multicast it (last view)
> [testng]
> [testng] -------------------------------------------------------------------
> [testng] GMS: address=A, cluster=OverlappingMergeTest, physical address=10.16.94.42:27199
> [testng] -------------------------------------------------------------------
> [testng] 184954 [TRACE] GMS: - A: no initial members discovered: creating group as first member
> [testng] 184954 [DEBUG] GMS: - A: installing view [A|0] [A]
> [testng] 184955 [DEBUG] GMS: - created group (first member). My view is [A|0], impl is org.jgroups.protocols.pbcast.CoordGmsImpl
> [testng]
> [testng] -------------------------------------------------------------------
> [testng] GMS: address=B, cluster=OverlappingMergeTest, physical address=10.16.94.42:27200
> [testng] -------------------------------------------------------------------
> [testng] 184961 [TRACE] GMS: - B: initial_mbrs are A
> [testng] 184961 [DEBUG] GMS: - election results: {A=1}
> [testng] 184961 [DEBUG] GMS: - sending JOIN(B) to A
> [testng] 185013 [TRACE] GMS: - A: new members=[B], suspected=[], leaving=[], new view: [A|1] [A, B]
> [testng] 185014 [TRACE] GMS: - A: mcasting view [A|1] [A, B] (2 mbrs)
> [testng]
> [testng] 185025 [DEBUG] GMS: - A: installing view [A|1] [A, B]
> [testng] 185026 [TRACE] GMS: - A: received all 1 ACKs from members for view [A|1]
> [testng] 185055 [TRACE] GMS: - B: JOIN-RSP=[A|1] [A, B] [size=2]
> [testng]
> [testng]
> [testng] 185055 [DEBUG] GMS: - B: installing view [A|1] [A, B]
> [testng] 185057 [TRACE] GMS: - A: received all ACKs (1) from joiners for view [A|1]
> [testng]
> [testng] -------------------------------------------------------------------
> [testng] GMS: address=C, cluster=OverlappingMergeTest, physical address=10.16.94.42:27201
> [testng] -------------------------------------------------------------------
> [testng] 185064 [TRACE] GMS: - C: initial_mbrs are B A
> [testng] 185064 [DEBUG] GMS: - election results: {A=2}
> [testng] 185064 [DEBUG] GMS: - sending JOIN(C) to A
> [testng] 185108 [TRACE] GMS: - A: new members=[C], suspected=[], leaving=[], new view: [A|2] [A, B, C]
> [testng] 185108 [TRACE] GMS: - A: mcasting view [A|2] [A, B, C] (3 mbrs)
> [testng]
> [testng] 185117 [DEBUG] GMS: - A: installing view [A|2] [A, B, C]
> [testng] 185118 [DEBUG] GMS: - B: installing view [A|2] [A, B, C]
> [testng] 185119 [TRACE] GMS: - A: received all 2 ACKs from members for view [A|2]
> [testng] 185148 [TRACE] GMS: - C: JOIN-RSP=[A|2] [A, B, C] [size=3]
> [testng]
> [testng]
> [testng] 185149 [DEBUG] GMS: - C: installing view [A|2] [A, B, C]
> [testng] 185151 [TRACE] GMS: - A: received all ACKs (1) from joiners for view [A|2]
> [testng]
> [testng] -------------------------------------------------------------------
> [testng] GMS: address=D, cluster=OverlappingMergeTest, physical address=10.16.94.42:27202
> [testng] -------------------------------------------------------------------
> [testng] 185164 [TRACE] GMS: - D: initial_mbrs are B C A
> [testng] 185164 [DEBUG] GMS: - election results: {A=3}
> [testng] 185164 [DEBUG] GMS: - sending JOIN(D) to A
> [testng] 185203 [TRACE] GMS: - A: new members=[D], suspected=[], leaving=[], new view: [A|3] [A, B, C, D]
> [testng] 185203 [TRACE] GMS: - A: mcasting view [A|3] [A, B, C, D] (4 mbrs)
> [testng]
> [testng] 185210 [DEBUG] GMS: - A: installing view [A|3] [A, B, C, D]
> [testng] 185211 [DEBUG] GMS: - B: installing view [A|3] [A, B, C, D]
> [testng] 185211 [DEBUG] GMS: - C: installing view [A|3] [A, B, C, D]
> [testng] 185213 [TRACE] GMS: - A: received all 3 ACKs from members for view [A|3]
> [testng] 185242 [TRACE] GMS: - D: JOIN-RSP=[A|3] [A, B, C, D] [size=4]
> [testng]
> [testng]
> [testng] 185242 [DEBUG] GMS: - D: installing view [A|3] [A, B, C, D]
> [testng] 185242 [TRACE] GMS: - A: received all ACKs (1) from joiners for view [A|3]
> [testng]
> [testng] ==== Injecting view [A|4] [A, C, B] into A, B and C ====
> [testng] 185243 [DEBUG] GMS: - A: installing view [A|4] [A, C, B]
> [testng] 185243 [DEBUG] GMS: - B: installing view [A|4] [A, C, B]
> [testng] 185244 [DEBUG] GMS: - C: installing view [A|4] [A, C, B]
> [testng]
> [testng] ==== Injecting view [B|4] [B, A, C, D] into D ====
> [testng]
> [testng] 185245 [DEBUG] GMS: - D: installing view [B|4] [B, A, C, D]
> [testng] A: [A|4] [A, C, B]
> [testng] B: [A|4] [A, C, B]
> [testng] C: [A|4] [A, C, B]
> [testng] D: [B|4] [B, A, C, D]
> [testng]
> [testng] ==== Injecting a merge event into A, B, C and D====
> [testng] 185251 [TRACE] GMS: - A: got merge response from A, merge_id=A::3, merge data is sender=A, view=[A|4] [A, C, B], digest=C: [0 (0)], B: [0 (0)], A: [4 (4)]
> [testng] 185253 [TRACE] GMS: - B: queue is suspended; request MERGE(4 views) is discarded
> [testng] 185255 [TRACE] GMS: - C: queue is suspended; request MERGE(4 views) is discarded
> [testng] 185255 [TRACE] GMS: - A: got merge response from B, merge_id=A::3, merge data is sender=B, view=[A|4] [A, C, B], digest=C: [0 (0)], B: [0 (1)], A: [4 (4)]
> [testng] 190286 [TRACE] GMS: - A: mcasting view MergeView::[A|5] [A, B, C], subgroups=[A|4] [A, C, B], [A|4] [A, C, B] (3 mbrs)
> [testng]
> [testng] 190286 [TRACE] GMS: - B: mcasting view MergeView::[A|5] [A, B, C], subgroups=[A|4] [A, C, B], [A|4] [A, C, B] (3 mbrs)
> [testng]
> [testng] 190317 [DEBUG] GMS: - A: installing view MergeView::[A|5] [A, B, C], subgroups=[A|4] [A, C, B], [A|4] [A, C, B]
> [testng] 190318 [DEBUG] GMS: - B: installing view MergeView::[A|5] [A, B, C], subgroups=[A|4] [A, C, B], [A|4] [A, C, B]
> [testng] 190318 [DEBUG] GMS: - C: installing view MergeView::[A|5] [A, B, C], subgroups=[A|4] [A, C, B], [A|4] [A, C, B]
> [testng] 190320 [TRACE] GMS: - A: received all 3 ACKs from members for view [A|5]
> [testng] 190320 [TRACE] GMS: - B: received all 3 ACKs from members for view [A|5]
> [testng] A: [A|5] [A, B, C] (coord=true)
> [testng] B: [A|5] [A, B, C] (coord=false)
> [testng] C: [A|5] [A, B, C] (coord=false)
> [testng] D: [B|4] [B, A, C, D] (coord=false)
> [testng] 195277 [DEBUG] GMS: - D: sending LEAVE request to B
> [testng] FAIL: [1] org.jgroups.tests.OverlappingMergeTest.testMergeWithDifferentPartitions()
> {noformat}
> Whenever this test fails, I see that the queues are suspended on the initial merge attempt.
--
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-1817) OverlappingMergeTest testSameCreatorDifferentIDs fails to create correct merged view
by Richard Achmatowicz (JIRA)
Richard Achmatowicz created JGRP-1817:
-----------------------------------------
Summary: OverlappingMergeTest testSameCreatorDifferentIDs fails to create correct merged view
Key: JGRP-1817
URL: https://issues.jboss.org/browse/JGRP-1817
Project: JGroups
Issue Type: Bug
Affects Versions: 3.2.13
Environment: RHEL
Reporter: Richard Achmatowicz
Assignee: Bela Ban
Fix For: 3.2.13
This test does the following:
- creates four channels a,b,c,d
- injects views A: {A,C,B}, B:{A,C,B}, C:{A,C,B} and D: {B,A,C,D}
- injects a merge event in each of channels A,B,C,D representing these four views
- checks that all channels have the final view of size 4
The test fails intermittently on RHEL, with the same failure each time:
{noformat}
181595 [DEBUG] GMS: - A: installing view [A|2] [A]
[testng] 181596 [TRACE] GMS: - A: received all 1 ACKs from members for view [A|2]
[testng] 181866 [TRACE] GMS: - view [A|3] [] is empty: will not multicast it (last view)
[testng]
[testng] -------------------------------------------------------------------
[testng] GMS: address=A, cluster=OverlappingMergeTest, physical address=10.16.94.42:27199
[testng] -------------------------------------------------------------------
[testng] 184954 [TRACE] GMS: - A: no initial members discovered: creating group as first member
[testng] 184954 [DEBUG] GMS: - A: installing view [A|0] [A]
[testng] 184955 [DEBUG] GMS: - created group (first member). My view is [A|0], impl is org.jgroups.protocols.pbcast.CoordGmsImpl
[testng]
[testng] -------------------------------------------------------------------
[testng] GMS: address=B, cluster=OverlappingMergeTest, physical address=10.16.94.42:27200
[testng] -------------------------------------------------------------------
[testng] 184961 [TRACE] GMS: - B: initial_mbrs are A
[testng] 184961 [DEBUG] GMS: - election results: {A=1}
[testng] 184961 [DEBUG] GMS: - sending JOIN(B) to A
[testng] 185013 [TRACE] GMS: - A: new members=[B], suspected=[], leaving=[], new view: [A|1] [A, B]
[testng] 185014 [TRACE] GMS: - A: mcasting view [A|1] [A, B] (2 mbrs)
[testng]
[testng] 185025 [DEBUG] GMS: - A: installing view [A|1] [A, B]
[testng] 185026 [TRACE] GMS: - A: received all 1 ACKs from members for view [A|1]
[testng] 185055 [TRACE] GMS: - B: JOIN-RSP=[A|1] [A, B] [size=2]
[testng]
[testng]
[testng] 185055 [DEBUG] GMS: - B: installing view [A|1] [A, B]
[testng] 185057 [TRACE] GMS: - A: received all ACKs (1) from joiners for view [A|1]
[testng]
[testng] -------------------------------------------------------------------
[testng] GMS: address=C, cluster=OverlappingMergeTest, physical address=10.16.94.42:27201
[testng] -------------------------------------------------------------------
[testng] 185064 [TRACE] GMS: - C: initial_mbrs are B A
[testng] 185064 [DEBUG] GMS: - election results: {A=2}
[testng] 185064 [DEBUG] GMS: - sending JOIN(C) to A
[testng] 185108 [TRACE] GMS: - A: new members=[C], suspected=[], leaving=[], new view: [A|2] [A, B, C]
[testng] 185108 [TRACE] GMS: - A: mcasting view [A|2] [A, B, C] (3 mbrs)
[testng]
[testng] 185117 [DEBUG] GMS: - A: installing view [A|2] [A, B, C]
[testng] 185118 [DEBUG] GMS: - B: installing view [A|2] [A, B, C]
[testng] 185119 [TRACE] GMS: - A: received all 2 ACKs from members for view [A|2]
[testng] 185148 [TRACE] GMS: - C: JOIN-RSP=[A|2] [A, B, C] [size=3]
[testng]
[testng]
[testng] 185149 [DEBUG] GMS: - C: installing view [A|2] [A, B, C]
[testng] 185151 [TRACE] GMS: - A: received all ACKs (1) from joiners for view [A|2]
[testng]
[testng] -------------------------------------------------------------------
[testng] GMS: address=D, cluster=OverlappingMergeTest, physical address=10.16.94.42:27202
[testng] -------------------------------------------------------------------
[testng] 185164 [TRACE] GMS: - D: initial_mbrs are B C A
[testng] 185164 [DEBUG] GMS: - election results: {A=3}
[testng] 185164 [DEBUG] GMS: - sending JOIN(D) to A
[testng] 185203 [TRACE] GMS: - A: new members=[D], suspected=[], leaving=[], new view: [A|3] [A, B, C, D]
[testng] 185203 [TRACE] GMS: - A: mcasting view [A|3] [A, B, C, D] (4 mbrs)
[testng]
[testng] 185210 [DEBUG] GMS: - A: installing view [A|3] [A, B, C, D]
[testng] 185211 [DEBUG] GMS: - B: installing view [A|3] [A, B, C, D]
[testng] 185211 [DEBUG] GMS: - C: installing view [A|3] [A, B, C, D]
[testng] 185213 [TRACE] GMS: - A: received all 3 ACKs from members for view [A|3]
[testng] 185242 [TRACE] GMS: - D: JOIN-RSP=[A|3] [A, B, C, D] [size=4]
[testng]
[testng]
[testng] 185242 [DEBUG] GMS: - D: installing view [A|3] [A, B, C, D]
[testng] 185242 [TRACE] GMS: - A: received all ACKs (1) from joiners for view [A|3]
[testng]
[testng] ==== Injecting view [A|4] [A, C, B] into A, B and C ====
[testng] 185243 [DEBUG] GMS: - A: installing view [A|4] [A, C, B]
[testng] 185243 [DEBUG] GMS: - B: installing view [A|4] [A, C, B]
[testng] 185244 [DEBUG] GMS: - C: installing view [A|4] [A, C, B]
[testng]
[testng] ==== Injecting view [B|4] [B, A, C, D] into D ====
[testng]
[testng] 185245 [DEBUG] GMS: - D: installing view [B|4] [B, A, C, D]
[testng] A: [A|4] [A, C, B]
[testng] B: [A|4] [A, C, B]
[testng] C: [A|4] [A, C, B]
[testng] D: [B|4] [B, A, C, D]
[testng]
[testng] ==== Injecting a merge event into A, B, C and D====
[testng] 185251 [TRACE] GMS: - A: got merge response from A, merge_id=A::3, merge data is sender=A, view=[A|4] [A, C, B], digest=C: [0 (0)], B: [0 (0)], A: [4 (4)]
[testng] 185253 [TRACE] GMS: - B: queue is suspended; request MERGE(4 views) is discarded
[testng] 185255 [TRACE] GMS: - C: queue is suspended; request MERGE(4 views) is discarded
[testng] 185255 [TRACE] GMS: - A: got merge response from B, merge_id=A::3, merge data is sender=B, view=[A|4] [A, C, B], digest=C: [0 (0)], B: [0 (1)], A: [4 (4)]
[testng] 190286 [TRACE] GMS: - A: mcasting view MergeView::[A|5] [A, B, C], subgroups=[A|4] [A, C, B], [A|4] [A, C, B] (3 mbrs)
[testng]
[testng] 190286 [TRACE] GMS: - B: mcasting view MergeView::[A|5] [A, B, C], subgroups=[A|4] [A, C, B], [A|4] [A, C, B] (3 mbrs)
[testng]
[testng] 190317 [DEBUG] GMS: - A: installing view MergeView::[A|5] [A, B, C], subgroups=[A|4] [A, C, B], [A|4] [A, C, B]
[testng] 190318 [DEBUG] GMS: - B: installing view MergeView::[A|5] [A, B, C], subgroups=[A|4] [A, C, B], [A|4] [A, C, B]
[testng] 190318 [DEBUG] GMS: - C: installing view MergeView::[A|5] [A, B, C], subgroups=[A|4] [A, C, B], [A|4] [A, C, B]
[testng] 190320 [TRACE] GMS: - A: received all 3 ACKs from members for view [A|5]
[testng] 190320 [TRACE] GMS: - B: received all 3 ACKs from members for view [A|5]
[testng] A: [A|5] [A, B, C] (coord=true)
[testng] B: [A|5] [A, B, C] (coord=false)
[testng] C: [A|5] [A, B, C] (coord=false)
[testng] D: [B|4] [B, A, C, D] (coord=false)
[testng] 195277 [DEBUG] GMS: - D: sending LEAVE request to B
[testng] FAIL: [1] org.jgroups.tests.OverlappingMergeTest.testMergeWithDifferentPartitions()
{noformat}
Whenever this test fails, I see that the queues are suspended on the initial merge attempt.
--
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-1816) Message: add flag DONT_LOOPBACK
by Bela Ban (JIRA)
Bela Ban created JGRP-1816:
------------------------------
Summary: Message: add flag DONT_LOOPBACK
Key: JGRP-1816
URL: https://issues.jboss.org/browse/JGRP-1816
Project: JGroups
Issue Type: Feature Request
Reporter: Bela Ban
Assignee: Bela Ban
Fix For: 3.5
When flag {{DONT_LOOPBACK}}, then multicast messages ({{dest}} == null) are not looped back up the stack. This can be useful in some cases, e.g. discovery:
* A multicasts a discovery request
* A gets the discovery request and adds information shipped with it (A's logical-physical address mapping and logical name) to its local cache(s)
* A sends a discovery response to itself
* A gets the discovery response and adds its information *again*
--> Because the information was already present, it doesn't need to be added, *but was added 2 more times* !
--> This unneeded processing costs threads from the pool, processing power, locks etc
SOLUTION:
* When sending a multicast message we loop it back up and then multicast it. When received by the sender, we drop it.
* We now don't even loop back the message if DONT_LOOPBACK is set
--
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-3180) OOMs are still possible when using clustered web sessions/SFSBs w/passivation
by Paul Ferraro (JIRA)
Paul Ferraro created WFLY-3180:
----------------------------------
Summary: OOMs are still possible when using clustered web sessions/SFSBs w/passivation
Key: WFLY-3180
URL: https://issues.jboss.org/browse/WFLY-3180
Project: WildFly
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Clustering
Affects Versions: 8.0.0.Final
Reporter: Paul Ferraro
Assignee: Paul Ferraro
Currently, the owner of a web session or SFSB is responsible for schedule passivation. Unfortunately, much to my surprise, infinispan eviction commands are not broadcasted to the cluster, but are local-only. Consequently, the number of cache entries stored in memory can grow beyond the configured passivation limits, since remote copies of old cache entries are never evicted.
To fix this, we can use the CommandDispatcher to manually broadcast eviction commands to the cluster.
--
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 Mario Fusco (JIRA)
[ https://issues.jboss.org/browse/DROOLS-458?page=com.atlassian.jira.plugin... ]
Mario Fusco resolved DROOLS-458.
--------------------------------
Resolution: Rejected
I double checked the stack traces you pasted but I still don't see any deadlock there. The 2 blocked threads are not blocking each other, they are blocked only why they are waiting for locks retained by the other 2 running threads. My expectation is that when the 2 running threads have finished what they are doing they will release their locks allowing also the 2 currently blocked threads to move forward.
For this reason I am rejecting this ticket, but if I am overlooking or missing something please feel free to reopen it clarifying where the problem actually is.
> 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
>
> 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 Mario Fusco (JIRA)
[ https://issues.jboss.org/browse/DROOLS-458?page=com.atlassian.jira.plugin... ]
Mario Fusco reassigned DROOLS-458:
----------------------------------
Assignee: Mario Fusco (was: Mark Proctor)
> 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
>
> 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