[
https://issues.jboss.org/browse/ISPN-10915?page=com.atlassian.jira.plugin...
]
Dan Berindei commented on ISPN-10915:
-------------------------------------
Adding the stack trace so it's easier to find in the future
{noformat}
"jgroups-8,ManualIndexingTest-NodeA-39509" #4798 prio=5 os_prio=0 cpu=5.68ms
elapsed=302.98s tid=0x00007fd1d89e9000 nid=0x5bdc waiting on condition
[0x00007fd1531f4000]
java.lang.Thread.State: TIMED_WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base(a)11.0.3/Native Method)
- parking to wait for <0x00000000c160eeb0> (a
java.util.concurrent.CompletableFuture$Signaller)
at
java.util.concurrent.locks.LockSupport.parkNanos(java.base@11.0.3/LockSupport.java:234)
at
java.util.concurrent.CompletableFuture$Signaller.block(java.base@11.0.3/CompletableFuture.java:1798)
at
java.util.concurrent.ForkJoinPool.managedBlock(java.base@11.0.3/ForkJoinPool.java:3128)
at
java.util.concurrent.CompletableFuture.timedGet(java.base@11.0.3/CompletableFuture.java:1868)
at
java.util.concurrent.CompletableFuture.get(java.base@11.0.3/CompletableFuture.java:2021)
at org.infinispan.util.concurrent.CompletableFutures.await(CompletableFutures.java:140)
at org.infinispan.util.concurrent.CompletionStages.join(CompletionStages.java:73)
at
org.infinispan.remoting.transport.jgroups.JGroupsTransport.receiveClusterView(JGroupsTransport.java:722)
at
org.infinispan.remoting.transport.jgroups.JGroupsTransport$ChannelCallbacks.up(JGroupsTransport.java:1448)
{noformat}
CompletionStages.continueOnExecutor() does not complete the future on
rejection
-------------------------------------------------------------------------------
Key: ISPN-10915
URL:
https://issues.jboss.org/browse/ISPN-10915
Project: Infinispan
Issue Type: Bug
Components: Core
Affects Versions: 9.4.16.Final, 10.0.1.Final
Reporter: Dan Berindei
Assignee: Will Burns
Priority: Major
Fix For: 10.1.0.Beta1
{{CompletionStages.continueOnExecutor()}} returns a {{CompletableFuture}} that is
supposed to complete after the supplied action has run on the supplied executor. If the
executor rejects the action, e.g. because it was stopped, the {{CompletableFuture}} never
completes.
E.g. {{JGroupsTransport.receiveClusterView()}} indirectly uses
{{CompletionStages.continueOnExecutor()}}, and it blocks view handling forever if a view
is received after the async operations executor has been shut down. In turn this blocks
all further view processing and the cache manager shutdown.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)