-
Sub-task
-
Resolution: Done
-
Major
-
None
-
None
The ServerEventLogger creates a cache to log messages. This inherently blocking. This has been okay so far as JGroups and main threads will start the cache, but as JGroups threads can now be netty threads this is no longer acceptable so we need to make this non blocking.
"non-blocking-thread--p2-t8" #29 daemon prio=5 os_prio=0 cpu=9.35ms elapsed=5.57s tid=0x000055d8df87a630 nid=0x6737 waiting on condition [0x00007f170ecd9000] java.lang.Thread.State: WAITING (parking) at jdk.internal.misc.Unsafe.park(java.base@17.0.6/Native Method) - parking to wait for <0x00000000e221c838> (a java.util.concurrent.CompletableFuture$Signaller) at java.util.concurrent.locks.LockSupport.park(java.base@17.0.6/LockSupport.java:211) at java.util.concurrent.CompletableFuture$Signaller.block(java.base@17.0.6/CompletableFuture.java:1864) at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@17.0.6/ForkJoinPool.java:3463) at java.util.concurrent.ForkJoinPool.managedBlock(java.base@17.0.6/ForkJoinPool.java:3434) at java.util.concurrent.CompletableFuture.waitingGet(java.base@17.0.6/CompletableFuture.java:1898) at java.util.concurrent.CompletableFuture.join(java.base@17.0.6/CompletableFuture.java:2117) at org.infinispan.manager.DefaultCacheManager.internalGetCache(DefaultCacheManager.java:548) at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:522) at org.infinispan.server.logging.events.ServerEventLogger.getEventCache(ServerEventLogger.java:59) at org.infinispan.server.logging.events.ServerEventLogger.eventLog(ServerEventLogger.java:75) at org.infinispan.server.logging.events.DecoratedServerEventLogger.log(DecoratedServerEventLogger.java:29) at org.infinispan.util.logging.events.EventLogger.info(EventLogger.java:41) at org.infinispan.topology.EventLoggerViewListener.lambda$logNodeJoined$2(EventLoggerViewListener.java:44) at org.infinispan.topology.EventLoggerViewListener$$Lambda$983/0x0000000801178880.accept(Unknown Source) at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(java.base@17.0.6/ForEachOps.java:183) at java.util.stream.ReferencePipeline$2$1.accept(java.base@17.0.6/ReferencePipeline.java:179) at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(java.base@17.0.6/ArrayList.java:1625) at java.util.stream.AbstractPipeline.copyInto(java.base@17.0.6/AbstractPipeline.java:509) at java.util.stream.AbstractPipeline.wrapAndCopyInto(java.base@17.0.6/AbstractPipeline.java:499) at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(java.base@17.0.6/ForEachOps.java:150) at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(java.base@17.0.6/ForEachOps.java:173) at java.util.stream.AbstractPipeline.evaluate(java.base@17.0.6/AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.forEach(java.base@17.0.6/ReferencePipeline.java:596) at org.infinispan.topology.EventLoggerViewListener.logNodeJoined(EventLoggerViewListener.java:44) at org.infinispan.topology.EventLoggerViewListener.handleViewChange(EventLoggerViewListener.java:36) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@17.0.6/Native Method) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@17.0.6/NativeMethodAccessorImpl.java:77) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@17.0.6/DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(java.base@17.0.6/Method.java:568) at org.infinispan.notifications.impl.AbstractListenerImpl$ListenerInvocationImpl.lambda$invoke$1(AbstractListenerImpl.java:427) at org.infinispan.notifications.impl.AbstractListenerImpl$ListenerInvocationImpl$$Lambda$981/0x0000000801178200.get(Unknown Source) at org.infinispan.notifications.impl.AbstractListenerImpl$ListenerInvocationImpl.invoke(AbstractListenerImpl.java:453) at org.infinispan.notifications.impl.AbstractListenerImpl.invokeListener(AbstractListenerImpl.java:354) at org.infinispan.notifications.impl.AbstractListenerImpl.invokeListeners(AbstractListenerImpl.java:344) at org.infinispan.notifications.cachemanagerlistener.CacheManagerNotifierImpl.notifyViewChange(CacheManagerNotifierImpl.java:95) at org.infinispan.remoting.transport.jgroups.JGroupsTransport.receiveClusterView(JGroupsTransport.java:878) at org.infinispan.remoting.transport.jgroups.JGroupsTransport$ChannelCallbacks.up(JGroupsTransport.java:1723) at org.jgroups.JChannel.up(JChannel.java:719) at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:919) at org.jgroups.protocols.pbcast.GMS.installView(GMS.java:677) - locked <0x00000000e224a3b8> (a org.jgroups.protocols.pbcast.GMS) at org.jgroups.protocols.pbcast.ServerGmsImpl.handleViewChange(ServerGmsImpl.java:66) at org.jgroups.protocols.pbcast.GMS.castViewChangeAndSendJoinRsps(GMS.java:554) at org.jgroups.protocols.pbcast.CoordGmsImpl.handleMembershipChange(CoordGmsImpl.java:195) at org.jgroups.protocols.pbcast.GMS.process(GMS.java:1272) at org.jgroups.protocols.pbcast.GMS$$Lambda$637/0x00000008010d7db0.accept(Unknown Source) at org.jgroups.protocols.pbcast.ViewHandler.removeAndProcess(ViewHandler.java:284) at org.jgroups.protocols.pbcast.ViewHandler.process(ViewHandler.java:248) at org.jgroups.protocols.pbcast.ViewHandler.add(ViewHandler.java:64) at org.jgroups.protocols.pbcast.GMS.handle(GMS.java:944) at org.jgroups.protocols.pbcast.GMS.up(GMS.java:846) at org.jgroups.protocols.pbcast.NAKACK2.up(NAKACK2.java:679) at org.jgroups.protocols.VERIFY_SUSPECT2.up(VERIFY_SUSPECT2.java:105) at org.jgroups.protocols.FailureDetection.up(FailureDetection.java:180) at org.jgroups.protocols.MERGE3.up(MERGE3.java:274) at org.jgroups.protocols.Discovery.up(Discovery.java:294) at org.jgroups.protocols.TP.passMessageUp(TP.java:1183)