Details
-
Bug
-
Resolution: Obsolete
-
Major
-
None
-
8.2.4.Final, 9.0.0.Alpha4
-
None
-
None
Description
If any errors arise from event logger calls in org.infinispan.topology.ClusterTopologyManagerImpl$ClusterViewListener, these are ignored and simply logged to the standard output, e.g.
08:09:12,228 ERROR [org.infinispan.notifications.cachemanagerlistener.CacheManagerNotifierImpl] (Incoming-2,node1) ISPN000405: Caught exception while invoking a cache manager listener!: org.infinispan.commons.CacheListenerException: ISPN000280: Caught exception [org.infinispan.persistence.spi.PersistenceException] while invoking method [public void org.infinispan.topology.ClusterTopologyManagerImpl$ClusterViewListener.handleViewChange(org.infinispan.notifications.cachemanagerlistener.event.ViewChangedEvent)] on listener instance: org.infinispan.topology.ClusterTopologyManagerImpl$ClusterViewListener@79b19ac9 at org.infinispan.notifications.impl.AbstractListenerImpl$ListenerInvocationImpl$1.run(AbstractListenerImpl.java:302) at org.infinispan.util.concurrent.WithinThreadExecutor.execute(WithinThreadExecutor.java:20) at org.infinispan.notifications.impl.AbstractListenerImpl$ListenerInvocationImpl.invoke(AbstractListenerImpl.java:320) at org.infinispan.notifications.cachemanagerlistener.CacheManagerNotifierImpl.invokeListener(CacheManagerNotifierImpl.java:132) at org.infinispan.notifications.cachemanagerlistener.CacheManagerNotifierImpl.notifyViewChange(CacheManagerNotifierImpl.java:88) at org.infinispan.remoting.transport.jgroups.JGroupsTransport$NotifyViewChange.emitNotification(JGroupsTransport.java:841) at org.infinispan.remoting.transport.jgroups.JGroupsTransport.viewAccepted(JGroupsTransport.java:917) at org.jgroups.blocks.MessageDispatcher.handleUpEvent(MessageDispatcher.java:618) at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:666) at org.jgroups.JChannel.up(JChannel.java:738) at org.jgroups.fork.ForkProtocolStack.up(ForkProtocolStack.java:124) at org.jgroups.stack.Protocol.up(Protocol.java:380) at org.jgroups.protocols.FORK.up(FORK.java:118) at org.jgroups.protocols.FRAG2.up(FRAG2.java:165) at org.jgroups.protocols.FlowControl.up(FlowControl.java:390) at org.jgroups.protocols.FlowControl.up(FlowControl.java:390) at org.jgroups.protocols.pbcast.GMS.installView(GMS.java:730) at org.jgroups.protocols.pbcast.ParticipantGmsImpl.handleViewChange(ParticipantGmsImpl.java:140) at org.jgroups.protocols.pbcast.GMS.up(GMS.java:917) at org.jgroups.stack.Protocol.up(Protocol.java:418) at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:294) at org.jgroups.protocols.UNICAST3.up(UNICAST3.java:480) at org.jgroups.protocols.pbcast.NAKACK2.deliverBatch(NAKACK2.java:987) at org.jgroups.protocols.pbcast.NAKACK2.removeAndPassUp(NAKACK2.java:917) at org.jgroups.protocols.pbcast.NAKACK2.handleMessage(NAKACK2.java:851) at org.jgroups.protocols.pbcast.NAKACK2.up(NAKACK2.java:611) at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:155) at org.jgroups.protocols.FD_ALL.up(FD_ALL.java:200) at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:310) at org.jgroups.protocols.MERGE3.up(MERGE3.java:285) at org.jgroups.protocols.Discovery.up(Discovery.java:296) at org.jgroups.protocols.TP.passMessageUp(TP.java:1601) at org.jgroups.protocols.TP$SingleMessageHandler.run(TP.java:1817) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: org.infinispan.persistence.spi.PersistenceException: Execution exception! at org.infinispan.persistence.file.SingleFileStore.process(SingleFileStore.java:549) at org.infinispan.persistence.manager.PersistenceManagerImpl.preload(PersistenceManagerImpl.java:257) 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:497) at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:168) at org.infinispan.factories.AbstractComponentRegistry$PrioritizedMethod.invoke(AbstractComponentRegistry.java:867) at org.infinispan.factories.AbstractComponentRegistry.invokeStartMethods(AbstractComponentRegistry.java:633) at org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:622) at org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:547) at org.infinispan.factories.ComponentRegistry.start(ComponentRegistry.java:231) at org.infinispan.cache.impl.CacheImpl.start(CacheImpl.java:808) at org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:637) at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:588) at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:453) at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:439) at org.infinispan.server.eventlogger.ServerEventLogger.getEventCache(ServerEventLogger.java:53) at org.infinispan.server.eventlogger.ServerEventLogger.eventLog(ServerEventLogger.java:69) at org.infinispan.server.eventlogger.ServerEventLogger.log(ServerEventLogger.java:61) at org.infinispan.util.logging.events.EventLogger.info(EventLogger.java:40) at org.infinispan.topology.ClusterTopologyManagerImpl.lambda$logNodeLeft$464(ClusterTopologyManagerImpl.java:756) at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) at org.infinispan.topology.ClusterTopologyManagerImpl.logNodeLeft(ClusterTopologyManagerImpl.java:756) at org.infinispan.topology.ClusterTopologyManagerImpl.access$400(ClusterTopologyManagerImpl.java:76) at org.infinispan.topology.ClusterTopologyManagerImpl$ClusterViewListener.handleViewChange(ClusterTopologyManagerImpl.java:720) 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:497) at org.infinispan.notifications.impl.AbstractListenerImpl$ListenerInvocationImpl$1.run(AbstractListenerImpl.java:297) ... 35 more Caused by: java.util.concurrent.ExecutionException: org.infinispan.persistence.spi.PersistenceException: org.infinispan.commons.CacheException: Error reading from input to find externalizer at java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.util.concurrent.FutureTask.get(FutureTask.java:192) at org.infinispan.executors.ExecutorAllCompletionService.pollUntilEmpty(ExecutorAllCompletionService.java:48) at org.infinispan.executors.ExecutorAllCompletionService.submit(ExecutorAllCompletionService.java:32) at org.infinispan.persistence.file.SingleFileStore.process(SingleFileStore.java:531) ... 73 more Caused by: org.infinispan.persistence.spi.PersistenceException: org.infinispan.commons.CacheException: Error reading from input to find externalizer at org.infinispan.marshall.core.MarshalledEntryImpl.unmarshall(MarshalledEntryImpl.java:116) at org.infinispan.marshall.core.MarshalledEntryImpl.getValue(MarshalledEntryImpl.java:61) at org.infinispan.persistence.manager.PersistenceManagerImpl$1.processEntry(PersistenceManagerImpl.java:265) at org.infinispan.persistence.file.SingleFileStore$2.call(SingleFileStore.java:537) at org.infinispan.persistence.file.SingleFileStore$2.call(SingleFileStore.java:531) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at org.infinispan.util.concurrent.WithinThreadExecutor.execute(WithinThreadExecutor.java:20) at java.util.concurrent.ExecutorCompletionService.submit(ExecutorCompletionService.java:181) at org.infinispan.executors.ExecutorAllCompletionService.submit(ExecutorAllCompletionService.java:31) ... 74 more Caused by: org.infinispan.commons.CacheException: Error reading from input to find externalizer at org.infinispan.marshall.core.internal.InternalExternalizerTable.findReadExternalizer(InternalExternalizerTable.java:281) at org.infinispan.marshall.core.internal.BytesObjectInput.readObject(BytesObjectInput.java:31) at org.infinispan.server.eventlogger.ServerEventImpl$Externalizer.readObject(ServerEventImpl.java:128) at org.infinispan.server.eventlogger.ServerEventImpl$Externalizer.readObject(ServerEventImpl.java:110) at org.infinispan.marshall.core.internal.InternalExternalizerTable$ForeignExternalizerAdapter.readObject(InternalExternalizerTable.java:495) at org.infinispan.marshall.core.internal.InternalMarshaller.objectFromObjectInput(InternalMarshaller.java:90) at org.infinispan.marshall.core.internal.InternalMarshaller.objectFromByteBuffer(InternalMarshaller.java:127) at org.infinispan.marshall.core.GlobalMarshaller.objectFromByteBuffer(GlobalMarshaller.java:99) at org.infinispan.marshall.core.MarshalledEntryImpl.unmarshall(MarshalledEntryImpl.java:114) ... 84 more Caused by: org.infinispan.commons.CacheException: Unknown externalizer type: 115 at org.infinispan.marshall.core.internal.InternalExternalizerTable.findReadExternalizer(InternalExternalizerTable.java:242) ... 92 more
This is a general problem with listeners, but the question here is whether the Cache/CacheManager should fail to start under such situation. Right now that causes no issues.
Btw, the actual issue was introduced in my changes for ISPN-6906 and this has now been fixed.