[infinispan-issues] [JBoss JIRA] (ISPN-10915) CompletionStages.continueOnExecutor() does not complete the future on rejection

Dan Berindei (Jira) issues at jboss.org
Fri Nov 15 12:02:02 EST 2019


    [ https://issues.jboss.org/browse/ISPN-10915?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13813829#comment-13813829 ] 

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 at 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 at 11.0.3/LockSupport.java:234)
	at java.util.concurrent.CompletableFuture$Signaller.block(java.base at 11.0.3/CompletableFuture.java:1798)
	at java.util.concurrent.ForkJoinPool.managedBlock(java.base at 11.0.3/ForkJoinPool.java:3128)
	at java.util.concurrent.CompletableFuture.timedGet(java.base at 11.0.3/CompletableFuture.java:1868)
	at java.util.concurrent.CompletableFuture.get(java.base at 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)


More information about the infinispan-issues mailing list