]
Roni Polus updated ISPN-12253:
------------------------------
Summary: No Marshaller registered for RebalancingStatus enum class alongside
Prometheus (was: No Marshaller registered for RebalancingStatus enum class - Only inside
docker container)
No Marshaller registered for RebalancingStatus enum class alongside
Prometheus
-------------------------------------------------------------------------------
Key: ISPN-12253
URL:
https://issues.redhat.com/browse/ISPN-12253
Project: Infinispan
Issue Type: Bug
Affects Versions: 10.1.8.Final
Reporter: Roni Polus
Priority: Major
Hello,
We encountered a very strange issue running infinispan inside OSGi. We have a cache setup
and when running locally (without a container), karaf does not report any problems with
the cache and it runs just fine. Although, when running inside a container, we get the
following error spammed through the karaf logs:
Versions:
Karaf: 4.2.6
Infinispan: 10.1.8.Final
Docker: 19.03.12, build 48a66213fe
{code:java}
java.lang.IllegalArgumentException: No marshaller registered for Java type
org.infinispan.topology.RebalancingStatus at
org.infinispan.protostream.impl.SerializationContextImpl.getMarshallerDelegate(SerializationContextImpl.java:279)
~[422:org.infinispan.protostream:4.3.2.Final] at
org.infinispan.protostream.WrappedMessage.writeMessage(WrappedMessage.java:240)
~[422:org.infinispan.protostream:4.3.2.Final] at
org.infinispan.protostream.ProtobufUtil.toWrappedStream(ProtobufUtil.java:196)
~[422:org.infinispan.protostream:4.3.2.Final] at
org.infinispan.marshall.persistence.impl.PersistenceMarshallerImpl.objectToBuffer(PersistenceMarshallerImpl.java:157)
~[421:org.infinispan.core:10.1.5.Final] at
org.infinispan.marshall.persistence.impl.PersistenceMarshallerImpl.objectToByteBuffer(PersistenceMarshallerImpl.java:137)
~[421:org.infinispan.core:10.1.5.Final] at
org.infinispan.marshall.persistence.impl.PersistenceMarshallerImpl.objectToByteBuffer(PersistenceMarshallerImpl.java:145)
~[421:org.infinispan.core:10.1.5.Final] at
org.infinispan.marshall.core.GlobalMarshaller.writeRawUnknown(GlobalMarshaller.java:638)
~[421:org.infinispan.core:10.1.5.Final] at
org.infinispan.marshall.core.GlobalMarshaller.writeUnknown(GlobalMarshaller.java:627)
~[421:org.infinispan.core:10.1.5.Final] at
org.infinispan.marshall.core.GlobalMarshaller.writeUnknown(GlobalMarshaller.java:618)
~[421:org.infinispan.core:10.1.5.Final] at
org.infinispan.marshall.core.GlobalMarshaller.writeNonNullableObject(GlobalMarshaller.java:384)
~[421:org.infinispan.core:10.1.5.Final] at
org.infinispan.marshall.core.GlobalMarshaller.writeNullableObject(GlobalMarshaller.java:352)
~[421:org.infinispan.core:10.1.5.Final] at
org.infinispan.marshall.core.BytesObjectOutput.writeObject(BytesObjectOutput.java:26)
~[421:org.infinispan.core:10.1.5.Final] at
org.infinispan.remoting.responses.SuccessfulResponse$Externalizer.writeObject(SuccessfulResponse.java:65)
~[421:org.infinispan.core:10.1.5.Final] at
org.infinispan.remoting.responses.SuccessfulResponse$Externalizer.writeObject(SuccessfulResponse.java:62)
~[421:org.infinispan.core:10.1.5.Final] at
org.infinispan.marshall.core.GlobalMarshaller.writeInternal(GlobalMarshaller.java:656)
~[421:org.infinispan.core:10.1.5.Final] at
org.infinispan.marshall.core.GlobalMarshaller.writeNonNullableObject(GlobalMarshaller.java:371)
~[421:org.infinispan.core:10.1.5.Final] at
org.infinispan.marshall.core.GlobalMarshaller.writeNullableObject(GlobalMarshaller.java:352)
~[421:org.infinispan.core:10.1.5.Final] at
org.infinispan.marshall.core.GlobalMarshaller.writeObjectOutput(GlobalMarshaller.java:181)
~[421:org.infinispan.core:10.1.5.Final] at
org.infinispan.marshall.core.GlobalMarshaller.writeObjectOutput(GlobalMarshaller.java:174)
~[421:org.infinispan.core:10.1.5.Final] at
org.infinispan.marshall.core.GlobalMarshaller.objectToBuffer(GlobalMarshaller.java:302)
~[421:org.infinispan.core:10.1.5.Final] at
org.infinispan.remoting.transport.jgroups.JGroupsTransport.sendResponse(JGroupsTransport.java:1355)
~[421:org.infinispan.core:10.1.5.Final] at
org.infinispan.remoting.transport.jgroups.JGroupsTransport.lambda$processRequest$8(JGroupsTransport.java:1400)
~[421:org.infinispan.core:10.1.5.Final] at
org.infinispan.remoting.inboundhandler.GlobalInboundInvocationHandler$ResponseConsumer.accept(GlobalInboundInvocationHandler.java:182)
[421:org.infinispan.core:10.1.5.Final] at
org.infinispan.remoting.inboundhandler.GlobalInboundInvocationHandler$ResponseConsumer.accept(GlobalInboundInvocationHandler.java:170)
[421:org.infinispan.core:10.1.5.Final] at
java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:774) [?:?]
at
java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:792)
[?:?] at
java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2153) [?:?]
at
org.infinispan.remoting.inboundhandler.GlobalInboundInvocationHandler$ReplicableCommandRunner.run(GlobalInboundInvocationHandler.java:160)
[421:org.infinispan.core:10.1.5.Final] at
org.infinispan.util.concurrent.BlockingTaskAwareExecutorServiceImpl$RunnableWrapper.run(BlockingTaskAwareExecutorServiceImpl.java:215)
[421:org.infinispan.core:10.1.5.Final] at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
at java.lang.Thread.run(Thread.java:748) [?:?]
{code}
I debugged through the stacktrace while running locally and it seems like
`RebalancingStatus` is never passed to `getMarshallerDelegate`
We are using bluePrint to reference the cache manager
{code:java}
<reference id="cacheManager"
interface="org.infinispan.manager.EmbeddedCacheManager"/>
<service interface="our.class.Cache">
<bean class="our.class.CacheImpl">
<argument ref="cacheManager"/>
</bean>
</service>
{code}
I can provide more context upon request.
Thanks in advance!