]
Work on ISPN-11399 started by Will Burns.
-----------------------------------------
BasicComponentRegistryImpl can block when starting a component
--------------------------------------------------------------
Key: ISPN-11399
URL:
https://issues.redhat.com/browse/ISPN-11399
Project: Infinispan
Issue Type: Sub-task
Components: Core
Reporter: Will Burns
Assignee: Will Burns
Priority: Major
Fix For: 11.0.0.Alpha2
The following stack trace can be seen sometimes while starting a cache
{code}
java.lang.AssertionError: Blocking call! jdk.internal.misc.Unsafe#park on thread
Thread[non-blocking-thread-ClusterTopologyManagerTest-NodeA-p35892-t1,5,main]
at
org.infinispan.util.CoreTestBlockHoundIntegration.lambda$applyTo$0(CoreTestBlockHoundIntegration.java:37)
at reactor.blockhound.BlockHound$Builder.lambda$install$6(BlockHound.java:318)
at reactor.blockhound.BlockHoundRuntime.checkBlocking(BlockHoundRuntime.java:46)
at java.base/jdk.internal.misc.Unsafe.park(Unsafe.java)
at java.base/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
at
java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:885)
at
java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:917)
at
java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1240)
at java.base/java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:267)
at
org.infinispan.factories.impl.BasicComponentRegistryImpl.logStartedComponent(BasicComponentRegistryImpl.java:591)
at
org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:576)
at
org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:547)
at
org.infinispan.factories.impl.BasicComponentRegistryImpl.access$700(BasicComponentRegistryImpl.java:30)
at
org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:770)
at
org.infinispan.factories.GlobalComponentRegistry.getLocalTopologyManager(GlobalComponentRegistry.java:378)
at
org.infinispan.commands.topology.CacheStatusRequestCommand.invokeAsync(CacheStatusRequestCommand.java:34)
at
org.infinispan.topology.TopologyManagementHelper.invokeAsync(TopologyManagementHelper.java:152)
at
org.infinispan.topology.TopologyManagementHelper.executeOnClusterSync(TopologyManagementHelper.java:52)
at
org.infinispan.topology.ClusterTopologyManagerImpl.fetchClusterStatus(ClusterTopologyManagerImpl.java:545)
at
org.infinispan.topology.ClusterTopologyManagerImpl.recoverClusterStatus(ClusterTopologyManagerImpl.java:417)
at
org.infinispan.topology.ClusterTopologyManagerImpl.lambda$handleClusterView$4(ClusterTopologyManagerImpl.java:382)
at
org.infinispan.util.concurrent.ActionSequencer.safeNonBlockingCall(ActionSequencer.java:47)
at org.infinispan.util.concurrent.ActionSequencer.access$200(ActionSequencer.java:28)
at
org.infinispan.util.concurrent.ActionSequencer$SequenceEntry.apply(ActionSequencer.java:162)
at
org.infinispan.util.concurrent.ActionSequencer$SequenceEntry.apply(ActionSequencer.java:128)
at
java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
at
java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:907)
at
java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
{code}