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 of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In