How to share registered protobuf files in a JDG cluster?

Solution Unverified - Updated -

Issue

  • I register my protobuf files for a remote cache with ProtoStreamMarshaller.getSerializationContext(...).registerProtoFile("my.proto") according to the Query Guide, do I need to register it for every node in a cluster?
  • After register protobuf files my JDG server will work as expected, but if one server in a cluster is restarted it will show error messages during start like followed
ERROR [org.infinispan.interceptors.InvocationContextInterceptor] (stateTransferExecutor-thread-34) ISPN000136: Error executing command PutKeyValueCommand, writing keys [[B@1404ed57]: org.hibernate.search.bridge.BridgeException: Exception while calling bridge#set
    class: org.infinispan.query.remote.impl.indexing.ProtobufValueWrapper
    path: 
    at org.hibernate.search.bridge.util.impl.ContextualExceptionBridgeHelper.buildBridgeException(ContextualExceptionBridgeHelper.java:101)
    at org.hibernate.search.bridge.util.impl.ContextualExceptionBridgeHelper$OneWayConversionContextImpl.set(ContextualExceptionBridgeHelper.java:130)
    at org.hibernate.search.engine.spi.DocumentBuilderIndexedEntity.buildDocumentFields(DocumentBuilderIndexedEntity.java:395)
    at org.hibernate.search.engine.spi.DocumentBuilderIndexedEntity.getDocument(DocumentBuilderIndexedEntity.java:365)
    at org.hibernate.search.engine.spi.DocumentBuilderIndexedEntity.createUpdateWork(DocumentBuilderIndexedEntity.java:304)
    at org.hibernate.search.engine.spi.DocumentBuilderIndexedEntity.addWorkToQueue(DocumentBuilderIndexedEntity.java:246)
    at org.hibernate.search.engine.impl.WorkPlan$PerEntityWork.enqueueLuceneWork(WorkPlan.java:506)
    at org.hibernate.search.engine.impl.WorkPlan$PerClassWork.enqueueLuceneWork(WorkPlan.java:279)
    at org.hibernate.search.engine.impl.WorkPlan.getPlannedLuceneWork(WorkPlan.java:165)
    at org.hibernate.search.backend.impl.WorkQueue.prepareWorkPlan(WorkQueue.java:131)
    at org.hibernate.search.backend.impl.BatchedQueueingProcessor.prepareWorks(BatchedQueueingProcessor.java:73)
    at org.hibernate.search.backend.impl.TransactionalWorker.performWork(TransactionalWorker.java:102)
    at org.infinispan.query.backend.QueryInterceptor.performSearchWorks(QueryInterceptor.java:249) [infinispan-query-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
        ...
Caused by: java.lang.IllegalArgumentException: Message descriptor not found : ..............
    at org.infinispan.protostream.impl.SerializationContextImpl.getMessageDescriptor(SerializationContextImpl.java:172)
    at org.infinispan.query.remote.impl.indexing.WrappedMessageTagHandler.onTag(WrappedMessageTagHandler.java:66) [infinispan-remote-query-server-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
    at org.infinispan.protostream.ProtobufParser.parseMessage(ProtobufParser.java:76)
    at org.infinispan.protostream.ProtobufParser.parseInternal(ProtobufParser.java:58)
    at org.infinispan.protostream.ProtobufParser.parse(ProtobufParser.java:45)
    at org.infinispan.query.remote.impl.indexing.ProtobufValueWrapperFieldBridge.decodeAndIndex(ProtobufValueWrapperFieldBridge.java:58) [infinispan-remote-query-server-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
    at org.infinispan.query.remote.impl.indexing.ProtobufValueWrapperFieldBridge.set(ProtobufValueWrapperFieldBridge.java:46) [infinispan-remote-query-server-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
    at org.hibernate.search.bridge.util.impl.ContextualExceptionBridgeHelper$OneWayConversionContextImpl.set(ContextualExceptionBridgeHelper.java:127)
    ... 51 more

Environment

  • Red Hat JBoss Data Grid (RHDG)
    • 6
    • 7

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content