[JBoss JIRA] (ISPN-8939) Unsafe iteration over non-concurrent data structure in StateReceiverImpl.
by Paul Ferraro (JIRA)
[ https://issues.jboss.org/browse/ISPN-8939?page=com.atlassian.jira.plugin.... ]
Paul Ferraro reassigned ISPN-8939:
----------------------------------
Assignee: Paul Ferraro
> Unsafe iteration over non-concurrent data structure in StateReceiverImpl.
> -------------------------------------------------------------------------
>
> Key: ISPN-8939
> URL: https://issues.jboss.org/browse/ISPN-8939
> Project: Infinispan
> Issue Type: Bug
> Components: Core
> Affects Versions: 9.2.0.Final
> Reporter: Paul Ferraro
> Assignee: Paul Ferraro
>
> {noformat}
> 16:39:56,137 WARN [org.infinispan.factories.ComponentRegistry] (ServerService Thread Pool -- 74) ISPN000189: While stopping a cache or cache manager, one of its components failed to stop: org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.conflict.impl.StateReceiverImpl.stop() on object of type StateReceiverImpl
> at org.infinispan.commons.util.SecurityActions.lambda$invokeAccessibly$0(SecurityActions.java:83)
> at org.infinispan.commons.util.SecurityActions.doPrivileged(SecurityActions.java:71)
> at org.infinispan.commons.util.SecurityActions.invokeAccessibly(SecurityActions.java:76)
> at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:185)
> at org.infinispan.factories.AbstractComponentRegistry$PrioritizedMethod.invoke(AbstractComponentRegistry.java:968)
> at org.infinispan.factories.AbstractComponentRegistry.lambda$internalStop$7(AbstractComponentRegistry.java:741)
> at org.infinispan.factories.SecurityActions.lambda$run$1(SecurityActions.java:72)
> at org.infinispan.security.Security.doPrivileged(Security.java:76)
> at org.infinispan.factories.SecurityActions.run(SecurityActions.java:71)
> at org.infinispan.factories.AbstractComponentRegistry.internalStop(AbstractComponentRegistry.java:734)
> at org.infinispan.factories.AbstractComponentRegistry.stop(AbstractComponentRegistry.java:639)
> at org.infinispan.factories.ComponentRegistry.stop(ComponentRegistry.java:256)
> at org.infinispan.cache.impl.CacheImpl.performImmediateShutdown(CacheImpl.java:1046)
> at org.infinispan.cache.impl.CacheImpl.stop(CacheImpl.java:1010)
> at org.infinispan.cache.impl.AbstractDelegatingCache.stop(AbstractDelegatingCache.java:420)
> at org.infinispan.cache.impl.AbstractDelegatingCache.stop(AbstractDelegatingCache.java:420)
> at org.wildfly.clustering.infinispan.spi.service.CacheBuilder.accept(CacheBuilder.java:78)
> at org.wildfly.clustering.infinispan.spi.service.CacheBuilder.accept(CacheBuilder.java:54)
> at org.wildfly.clustering.service.SuppliedValueService.lambda$new$1(SuppliedValueService.java:44)
> at org.wildfly.clustering.service.FunctionalValueService.stop(FunctionalValueService.java:78)
> at org.wildfly.clustering.service.AsynchronousServiceBuilder.lambda$stop$1(AsynchronousServiceBuilder.java:124)
> at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
> at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985)
> at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487)
> at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1378)
> at java.lang.Thread.run(Thread.java:748)
> at org.jboss.threads.JBossThread.run(JBossThread.java:485)
> Caused by: java.util.ConcurrentModificationException
> at java.util.HashMap.forEach(HashMap.java:1292)
> at org.infinispan.conflict.impl.StateReceiverImpl$SegmentRequest.cancel(StateReceiverImpl.java:203)
> at org.infinispan.conflict.impl.StateReceiverImpl.stop(StateReceiverImpl.java:66)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at org.infinispan.commons.util.SecurityActions.lambda$invokeAccessibly$0(SecurityActions.java:79)
> ... 26 more
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years
[JBoss JIRA] (ISPN-8939) Unsafe iteration over non-concurrent data structure in StateReceiverImpl.
by Paul Ferraro (JIRA)
[ https://issues.jboss.org/browse/ISPN-8939?page=com.atlassian.jira.plugin.... ]
Paul Ferraro updated ISPN-8939:
-------------------------------
Status: Pull Request Sent (was: Open)
Git Pull Request: https://github.com/infinispan/infinispan/pull/5839
> Unsafe iteration over non-concurrent data structure in StateReceiverImpl.
> -------------------------------------------------------------------------
>
> Key: ISPN-8939
> URL: https://issues.jboss.org/browse/ISPN-8939
> Project: Infinispan
> Issue Type: Bug
> Components: Core
> Affects Versions: 9.2.0.Final
> Reporter: Paul Ferraro
> Assignee: Paul Ferraro
>
> {noformat}
> 16:39:56,137 WARN [org.infinispan.factories.ComponentRegistry] (ServerService Thread Pool -- 74) ISPN000189: While stopping a cache or cache manager, one of its components failed to stop: org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.conflict.impl.StateReceiverImpl.stop() on object of type StateReceiverImpl
> at org.infinispan.commons.util.SecurityActions.lambda$invokeAccessibly$0(SecurityActions.java:83)
> at org.infinispan.commons.util.SecurityActions.doPrivileged(SecurityActions.java:71)
> at org.infinispan.commons.util.SecurityActions.invokeAccessibly(SecurityActions.java:76)
> at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:185)
> at org.infinispan.factories.AbstractComponentRegistry$PrioritizedMethod.invoke(AbstractComponentRegistry.java:968)
> at org.infinispan.factories.AbstractComponentRegistry.lambda$internalStop$7(AbstractComponentRegistry.java:741)
> at org.infinispan.factories.SecurityActions.lambda$run$1(SecurityActions.java:72)
> at org.infinispan.security.Security.doPrivileged(Security.java:76)
> at org.infinispan.factories.SecurityActions.run(SecurityActions.java:71)
> at org.infinispan.factories.AbstractComponentRegistry.internalStop(AbstractComponentRegistry.java:734)
> at org.infinispan.factories.AbstractComponentRegistry.stop(AbstractComponentRegistry.java:639)
> at org.infinispan.factories.ComponentRegistry.stop(ComponentRegistry.java:256)
> at org.infinispan.cache.impl.CacheImpl.performImmediateShutdown(CacheImpl.java:1046)
> at org.infinispan.cache.impl.CacheImpl.stop(CacheImpl.java:1010)
> at org.infinispan.cache.impl.AbstractDelegatingCache.stop(AbstractDelegatingCache.java:420)
> at org.infinispan.cache.impl.AbstractDelegatingCache.stop(AbstractDelegatingCache.java:420)
> at org.wildfly.clustering.infinispan.spi.service.CacheBuilder.accept(CacheBuilder.java:78)
> at org.wildfly.clustering.infinispan.spi.service.CacheBuilder.accept(CacheBuilder.java:54)
> at org.wildfly.clustering.service.SuppliedValueService.lambda$new$1(SuppliedValueService.java:44)
> at org.wildfly.clustering.service.FunctionalValueService.stop(FunctionalValueService.java:78)
> at org.wildfly.clustering.service.AsynchronousServiceBuilder.lambda$stop$1(AsynchronousServiceBuilder.java:124)
> at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
> at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985)
> at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487)
> at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1378)
> at java.lang.Thread.run(Thread.java:748)
> at org.jboss.threads.JBossThread.run(JBossThread.java:485)
> Caused by: java.util.ConcurrentModificationException
> at java.util.HashMap.forEach(HashMap.java:1292)
> at org.infinispan.conflict.impl.StateReceiverImpl$SegmentRequest.cancel(StateReceiverImpl.java:203)
> at org.infinispan.conflict.impl.StateReceiverImpl.stop(StateReceiverImpl.java:66)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at org.infinispan.commons.util.SecurityActions.lambda$invokeAccessibly$0(SecurityActions.java:79)
> ... 26 more
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years
[JBoss JIRA] (ISPN-8912) SoftIndexFileStore does not fail gracefully if max node size exceeds 32767
by William Burns (JIRA)
[ https://issues.jboss.org/browse/ISPN-8912?page=com.atlassian.jira.plugin.... ]
William Burns updated ISPN-8912:
--------------------------------
Status: Resolved (was: Pull Request Sent)
Fix Version/s: 9.3.0.Alpha1
Resolution: Done
> SoftIndexFileStore does not fail gracefully if max node size exceeds 32767
> --------------------------------------------------------------------------
>
> Key: ISPN-8912
> URL: https://issues.jboss.org/browse/ISPN-8912
> Project: Infinispan
> Issue Type: Bug
> Components: Loaders and Stores
> Affects Versions: 9.1.6.Final, 9.2.0.Final
> Reporter: Andreas Pabst
> Assignee: Radim Vansa
> Fix For: 9.2.1.Final, 9.3.0.Alpha1
>
>
> The following unit test just puts lots of entries into the cache and restarts the cache repeatedly.
> It succeeds if maxNodeSize is set to anything up to 32777, but runs into a deadlock from 32778 upwards. If going even higher it doesn't run into a deadlock anymore, but throws an IllegalArgumentException instead.
> As a workaround one can delete the index. But the problem resurfaces after the next restart.
> {code:java}
> import java.util.concurrent.TimeUnit;
> import java.util.stream.IntStream;
> import org.infinispan.Cache;
> import org.infinispan.configuration.cache.Configuration;
> import org.infinispan.configuration.cache.ConfigurationBuilder;
> import org.infinispan.manager.DefaultCacheManager;
> import org.infinispan.manager.EmbeddedCacheManager;
> import org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfigurationBuilder;
> import org.junit.After;
> import org.junit.Before;
> import org.junit.Rule;
> import org.junit.Test;
> import org.junit.rules.Timeout;
> public class SifsLargeNodeTest {
> private EmbeddedCacheManager cacheManager;
> @Rule
> public Timeout timeout = new Timeout(15, TimeUnit.SECONDS);
> private static Configuration createConfig(String location, int maxNodeSizeInBytes) {
> return new ConfigurationBuilder()
> .persistence().addStore(SoftIndexFileStoreConfigurationBuilder.class)
> .dataLocation(location + "/data").indexLocation(location + "/index")
> .maxNodeSize(maxNodeSizeInBytes)
> .preload(false).purgeOnStartup(false)
> .build();
> }
> @Before
> public void setUp() {
> cacheManager = new DefaultCacheManager();
> }
> @After
> public void tearDown() {
> cacheManager.stop();
> }
> @Test
> public void testLoad() {
> int maxNodeSizeInBytes = 32780; // Note: Anything up to 32777 works fine
> String cacheName = "sifslargenodetestcache";
> Configuration cfg = createConfig(cacheName, maxNodeSizeInBytes);
> int numberOfRuns = 10;
> int valuesToPutPerRun = 10000;
> for (int run = 0; run < numberOfRuns; run++) {
> System.out.println("RUN " + run);
> cacheManager.defineConfiguration(cacheName, cfg);
> Cache<Integer, String> testCacheBeforeReduction = cacheManager.getCache(cacheName);
> IntStream.range(run * valuesToPutPerRun, (run + 1) * valuesToPutPerRun)
> .forEach(i -> testCacheBeforeReduction.put(i, Integer.toString(i)));
> cacheManager.stop();
> cacheManager = new DefaultCacheManager();
> }
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years
[JBoss JIRA] (ISPN-8939) Unsafe iteration over non-concurrent data structure in StateReceiverImpl.
by Paul Ferraro (JIRA)
Paul Ferraro created ISPN-8939:
----------------------------------
Summary: Unsafe iteration over non-concurrent data structure in StateReceiverImpl.
Key: ISPN-8939
URL: https://issues.jboss.org/browse/ISPN-8939
Project: Infinispan
Issue Type: Bug
Components: Core
Affects Versions: 9.2.0.Final
Reporter: Paul Ferraro
{noformat}
16:39:56,137 WARN [org.infinispan.factories.ComponentRegistry] (ServerService Thread Pool -- 74) ISPN000189: While stopping a cache or cache manager, one of its components failed to stop: org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.conflict.impl.StateReceiverImpl.stop() on object of type StateReceiverImpl
at org.infinispan.commons.util.SecurityActions.lambda$invokeAccessibly$0(SecurityActions.java:83)
at org.infinispan.commons.util.SecurityActions.doPrivileged(SecurityActions.java:71)
at org.infinispan.commons.util.SecurityActions.invokeAccessibly(SecurityActions.java:76)
at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:185)
at org.infinispan.factories.AbstractComponentRegistry$PrioritizedMethod.invoke(AbstractComponentRegistry.java:968)
at org.infinispan.factories.AbstractComponentRegistry.lambda$internalStop$7(AbstractComponentRegistry.java:741)
at org.infinispan.factories.SecurityActions.lambda$run$1(SecurityActions.java:72)
at org.infinispan.security.Security.doPrivileged(Security.java:76)
at org.infinispan.factories.SecurityActions.run(SecurityActions.java:71)
at org.infinispan.factories.AbstractComponentRegistry.internalStop(AbstractComponentRegistry.java:734)
at org.infinispan.factories.AbstractComponentRegistry.stop(AbstractComponentRegistry.java:639)
at org.infinispan.factories.ComponentRegistry.stop(ComponentRegistry.java:256)
at org.infinispan.cache.impl.CacheImpl.performImmediateShutdown(CacheImpl.java:1046)
at org.infinispan.cache.impl.CacheImpl.stop(CacheImpl.java:1010)
at org.infinispan.cache.impl.AbstractDelegatingCache.stop(AbstractDelegatingCache.java:420)
at org.infinispan.cache.impl.AbstractDelegatingCache.stop(AbstractDelegatingCache.java:420)
at org.wildfly.clustering.infinispan.spi.service.CacheBuilder.accept(CacheBuilder.java:78)
at org.wildfly.clustering.infinispan.spi.service.CacheBuilder.accept(CacheBuilder.java:54)
at org.wildfly.clustering.service.SuppliedValueService.lambda$new$1(SuppliedValueService.java:44)
at org.wildfly.clustering.service.FunctionalValueService.stop(FunctionalValueService.java:78)
at org.wildfly.clustering.service.AsynchronousServiceBuilder.lambda$stop$1(AsynchronousServiceBuilder.java:124)
at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1378)
at java.lang.Thread.run(Thread.java:748)
at org.jboss.threads.JBossThread.run(JBossThread.java:485)
Caused by: java.util.ConcurrentModificationException
at java.util.HashMap.forEach(HashMap.java:1292)
at org.infinispan.conflict.impl.StateReceiverImpl$SegmentRequest.cancel(StateReceiverImpl.java:203)
at org.infinispan.conflict.impl.StateReceiverImpl.stop(StateReceiverImpl.java:66)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.infinispan.commons.util.SecurityActions.lambda$invokeAccessibly$0(SecurityActions.java:79)
... 26 more
{noformat}
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years
[JBoss JIRA] (ISPN-8620) Execute operations concurrently over the same connection
by William Burns (JIRA)
[ https://issues.jboss.org/browse/ISPN-8620?page=com.atlassian.jira.plugin.... ]
William Burns updated ISPN-8620:
--------------------------------
Status: Resolved (was: Pull Request Sent)
Fix Version/s: 9.3.0.Final
9.2.1.Final
9.3.0.Alpha1
Resolution: Done
> Execute operations concurrently over the same connection
> --------------------------------------------------------
>
> Key: ISPN-8620
> URL: https://issues.jboss.org/browse/ISPN-8620
> Project: Infinispan
> Issue Type: Sub-task
> Components: Remote Protocols
> Reporter: Radim Vansa
> Assignee: Radim Vansa
> Fix For: 9.3.0.Final, 9.2.1.Final, 9.3.0.Alpha1
>
>
> Since the early days Hot Rod protocol adds {{messageId}} to the protocol for pairing RPCs, but currently the connection is occupied when waiting for response. The goal of this is to reduce connection count and send the messages over shared connection. It requires some changes on server since it must continue reading the connection before the response is ready; the request needs to be processed asynchronously, too.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years
[JBoss JIRA] (ISPN-8938) CacheNotifier should use the cache member and not the view members
by Pedro Ruivo (JIRA)
[ https://issues.jboss.org/browse/ISPN-8938?page=com.atlassian.jira.plugin.... ]
Pedro Ruivo updated ISPN-8938:
------------------------------
Status: Pull Request Sent (was: Open)
Git Pull Request: https://github.com/infinispan/infinispan/pull/5838
> CacheNotifier should use the cache member and not the view members
> ------------------------------------------------------------------
>
> Key: ISPN-8938
> URL: https://issues.jboss.org/browse/ISPN-8938
> Project: Infinispan
> Issue Type: Bug
> Reporter: Pedro Ruivo
> Assignee: Pedro Ruivo
>
> When a clustered listener is registered, the {{CacheNotifierImpl}} is using the view members to register a remote listener but the {{DistributorExecutorService}} is using the cache-members. The missing members (not in the cache) are silently discarded (via {{SuspectException}}).
> If a member is joining the cache concurrently, the remote listener may never been installed. as an example (node-a, node-b, and node-c is joining):
> {code:java}
> view is {a,b,c} in all the nodes
> node-a: receives join from node-c
> node-a: sends the remote listeners
> node-b: registers a new clustered listener. node-c doesn't receive it because it isn't a member in this node
> node-a: starts rebalance and continues with normal state transfer
> node-c is never aware of the listener of b
> {code}
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years
[JBoss JIRA] (ISPN-8938) CacheNotifier should use the cache member and not the view members
by Pedro Ruivo (JIRA)
[ https://issues.jboss.org/browse/ISPN-8938?page=com.atlassian.jira.plugin.... ]
Pedro Ruivo updated ISPN-8938:
------------------------------
Status: Open (was: New)
> CacheNotifier should use the cache member and not the view members
> ------------------------------------------------------------------
>
> Key: ISPN-8938
> URL: https://issues.jboss.org/browse/ISPN-8938
> Project: Infinispan
> Issue Type: Bug
> Reporter: Pedro Ruivo
> Assignee: Pedro Ruivo
>
> When a clustered listener is registered, the {{CacheNotifierImpl}} is using the view members to register a remote listener but the {{DistributorExecutorService}} is using the cache-members. The missing members (not in the cache) are silently discarded (via {{SuspectException}}).
> If a member is joining the cache concurrently, the remote listener may never been installed. as an example (node-a, node-b, and node-c is joining):
> {code:java}
> view is {a,b,c} in all the nodes
> node-a: receives join from node-c
> node-a: sends the remote listeners
> node-b: registers a new clustered listener. node-c doesn't receive it because it isn't a member in this node
> node-a: starts rebalance and continues with normal state transfer
> node-c is never aware of the listener of b
> {code}
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years
[JBoss JIRA] (ISPN-8938) CacheNotifier should use the cache member and not the view members
by Pedro Ruivo (JIRA)
[ https://issues.jboss.org/browse/ISPN-8938?page=com.atlassian.jira.plugin.... ]
Pedro Ruivo updated ISPN-8938:
------------------------------
Description:
When a clustered listener is registered, the {{CacheNotifierImpl}} is using the view members to register a remote listener but the {{DistributorExecutorService}} is using the cache-members. The missing members (not in the cache) are silently discarded (via {{SuspectException}}).
If a member is joining the cache concurrently, the remote listener may never been installed. as an example (node-a, node-b, and node-c is joining):
{code:java}
view is {a,b,c} in all the nodes
node-a: receives join from node-c
node-a: sends the remote listeners
node-b: registers a new clustered listener. node-c doesn't receive it because it isn't a member in this node
node-a: starts rebalance and continues with normal state transfer
node-c is never aware of the listener of b
{code}
was:
When a clustered listener is registered, the {{CacheNotifierImpl}} is using the view members to register a remote listener but the {{DistributorExecutorService}} is using the cache-members. The missing members (not in the cache) are silently discarded (via {{SuspectException}}).
If a member is joining the cache concurrently, the remote listener may never been installed. as an example (node-a, node-b, and node-c is joining):
{code:java}
node-a: receives join
node-a: sends the remote listener
node-b: registers a new clustered listener. node-c doesn't receive it because it isn't a member in this node
node-a: starts rebalance and continues with normal state transfer
node-c is never aware of the listener of b
{code}
> CacheNotifier should use the cache member and not the view members
> ------------------------------------------------------------------
>
> Key: ISPN-8938
> URL: https://issues.jboss.org/browse/ISPN-8938
> Project: Infinispan
> Issue Type: Bug
> Reporter: Pedro Ruivo
> Assignee: Pedro Ruivo
>
> When a clustered listener is registered, the {{CacheNotifierImpl}} is using the view members to register a remote listener but the {{DistributorExecutorService}} is using the cache-members. The missing members (not in the cache) are silently discarded (via {{SuspectException}}).
> If a member is joining the cache concurrently, the remote listener may never been installed. as an example (node-a, node-b, and node-c is joining):
> {code:java}
> view is {a,b,c} in all the nodes
> node-a: receives join from node-c
> node-a: sends the remote listeners
> node-b: registers a new clustered listener. node-c doesn't receive it because it isn't a member in this node
> node-a: starts rebalance and continues with normal state transfer
> node-c is never aware of the listener of b
> {code}
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years
[JBoss JIRA] (ISPN-8938) CacheNotifier should use the cache member and not the view members
by Pedro Ruivo (JIRA)
Pedro Ruivo created ISPN-8938:
---------------------------------
Summary: CacheNotifier should use the cache member and not the view members
Key: ISPN-8938
URL: https://issues.jboss.org/browse/ISPN-8938
Project: Infinispan
Issue Type: Bug
Reporter: Pedro Ruivo
Assignee: Pedro Ruivo
When a clustered listener is registered, the {{CacheNotifierImpl}} is using the view members to register a remote listener but the {{DistributorExecutorService}} is using the cache-members. The missing members (not in the cache) are silently discarded (via {{SuspectException}}).
If a member is joining the cache concurrently, the remote listener may never been installed. as an example (node-a, node-b, and node-c is joining):
{code:java}
node-a: receives join
node-a: sends the remote listener
node-b: registers a new clustered listener. node-c doesn't receive it because it isn't a member in this node
node-a: starts rebalance and continues with normal state transfer
node-c is never aware of the listener of b
{code}
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years
[JBoss JIRA] (ISPN-8933) NullPointerException in StreamResponseCommand
by Pedro Ruivo (JIRA)
[ https://issues.jboss.org/browse/ISPN-8933?page=com.atlassian.jira.plugin.... ]
Pedro Ruivo updated ISPN-8933:
------------------------------
Status: Resolved (was: Pull Request Sent)
Resolution: Done
> NullPointerException in StreamResponseCommand
> ---------------------------------------------
>
> Key: ISPN-8933
> URL: https://issues.jboss.org/browse/ISPN-8933
> Project: Infinispan
> Issue Type: Bug
> Reporter: Pedro Ruivo
> Assignee: William Burns
> Fix For: 9.2.1.Final, 9.3.0.Alpha1
>
>
> {{Cache.isEmpty()}} can fail with timeout with concurrent rebalance.
> {code:java}
> 2018-03-12 11:48:45,699 ERROR (testng-RemoveCounterTest) [org.infinispan.commons.test.TestSuiteProgress] Test failed: org.infinispan.counter.RemoveCounterTest.testCounterManagerNonExistingRemoveWithBounded
> org.infinispan.util.concurrent.TimeoutException: null
> at org.infinispan.stream.impl.AbstractCacheStream.performOperationRehashAware(AbstractCacheStream.java:298) ~[infinispan-core-9.2.1-SNAPSHOT.jar:9.2.1-SNAPSHOT]
> at org.infinispan.stream.impl.AbstractCacheStream.performOperation(AbstractCacheStream.java:218) ~[infinispan-core-9.2.1-SNAPSHOT.jar:9.2.1-SNAPSHOT]
> at org.infinispan.stream.impl.DistributedCacheStream.anyMatch(DistributedCacheStream.java:414) ~[infinispan-core-9.2.1-SNAPSHOT.jar:9.2.1-SNAPSHOT]
> at org.infinispan.cache.impl.CacheImpl.isEmpty(CacheImpl.java:438) ~[infinispan-core-9.2.1-SNAPSHOT.jar:9.2.1-SNAPSHOT]
> at org.infinispan.cache.impl.CacheImpl.isEmpty(CacheImpl.java:434) ~[infinispan-core-9.2.1-SNAPSHOT.jar:9.2.1-SNAPSHOT]
> {code}
> There is a {{NullPointerException}} in {{StreamResponseCommand}} that may be related.
> {code:java}
> 2018-03-12 11:48:30,698 WARN (remote-thread-RemoveCounterTest-NodeA-p10-t4) [org.infinispan.remoting.inboundhandler.TrianglePerCacheInboundInvocationHandler] ISPN000071: Caught exception when handling command StreamResponseCommand{id=RemoveCounterTest-NodeA-6448335, complete=true, response=null}
> java.lang.NullPointerException: null
> at org.infinispan.stream.impl.DistributedCacheStream.lambda$anyMatch$4(DistributedCacheStream.java:414) ~[infinispan-core-9.2.1-SNAPSHOT.jar:9.2.1-SNAPSHOT]
> at org.infinispan.stream.impl.ClusterStreamManagerImpl$RequestTracker.lastResult(ClusterStreamManagerImpl.java:707) ~[infinispan-core-9.2.1-SNAPSHOT.jar:9.2.1-SNAPSHOT]
> at org.infinispan.stream.impl.ClusterStreamManagerImpl.receiveResponse(ClusterStreamManagerImpl.java:410) ~[infinispan-core-9.2.1-SNAPSHOT.jar:9.2.1-SNAPSHOT]
> at org.infinispan.stream.impl.StreamSegmentResponseCommand.invokeAsync(StreamSegmentResponseCommand.java:39) ~[infinispan-core-9.2.1-SNAPSHOT.jar:9.2.1-SNAPSHOT]
> at org.infinispan.remoting.inboundhandler.BasePerCacheInboundInvocationHandler.invokeCommand(BasePerCacheInboundInvocationHandler.java:94) ~[infinispan-core-9.2.1-SNAPSHOT.jar:9.2.1-SNAPSHOT]
> at org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.invoke(BaseBlockingRunnable.java:99) [infinispan-core-9.2.1-SNAPSHOT.jar:9.2.1-SNAPSHOT]
> at org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.runAsync(BaseBlockingRunnable.java:71) [infinispan-core-9.2.1-SNAPSHOT.jar:9.2.1-SNAPSHOT]
> at org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.run(BaseBlockingRunnable.java:40) [infinispan-core-9.2.1-SNAPSHOT.jar:9.2.1-SNAPSHOT]
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_152]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_152]
> at java.lang.Thread.run(Thread.java:748) [?:1.8.0_152]
> {code}
> Causes failures in
> {noformat}
> RemoveCounterTest.testCounterManagerNonExistingRemoveWithBounded()
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years