[teiid-issues] [JBoss JIRA] (TEIID-5058) Infinispan Hotrod VDB needs to be redeployed after JDG restart

Jan Stastny (JIRA) issues at jboss.org
Thu Sep 14 13:25:00 EDT 2017


    [ https://issues.jboss.org/browse/TEIID-5058?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13464236#comment-13464236 ] 

Jan Stastny commented on TEIID-5058:
------------------------------------

ad1)
This is crucial information, it should be documented. I just checked the docs and I can't find such information neither in Infinispan translators nor Infinispan data sources section

ad2)
I didn't report that my data is gone from the cache, I expect that.
Though here we are talking about JDG's internal '___protobuf_metadata' cache, where the Message descriptors are being stored. The cache is shared across the cluster, but I don't think it is persistent, or is it? If not, we can again reach the state, where Teiid assumes, that the Message descriptors are registered on JDG's side, but meanwhile, whole JDG cluster went down and up again and the internal caches are empty. And then the error I originally put into this issue's description appears.

> Infinispan Hotrod VDB needs to be redeployed after JDG restart
> --------------------------------------------------------------
>
>                 Key: TEIID-5058
>                 URL: https://issues.jboss.org/browse/TEIID-5058
>             Project: Teiid
>          Issue Type: Bug
>          Components: JDG Connector, Misc. Connectors
>    Affects Versions: 8.12.x-6.4
>            Reporter: Jan Stastny
>            Assignee: Ramesh Reddy
>            Priority: Critical
>
> When using Infinispan hotrod translator, user defines DDL metadata in source model and let Teiid generate the protobuf and marshaller.
> When JDG is restarted after the VDB is deployed, then the VDB needs to be redeployed because otherwise there is not a Message descriptor registered on the JDG side.
> {code:xml|title=source model}
> <model name="Source" type="PHYSICAL" visible="true">
> 	<source name="jdg7-source" translator-name="infinispan-hotrod" connection-jndi-name="java:/jdg71HotrodDS" />
> 	<metadata type="DDL"><![CDATA[
> 	     CREATE FOREIGN TABLE SmallA (
> 	       StringKey string PRIMARY KEY,
> 	       IntKey integer
> 	       ) OPTIONS(UPDATABLE true, "teiid_ispn:cache" 'cache_name');
> 	    ]]>
> 	</metadata>
> 	<metadata type = "NATIVE"/>
> </model>
> {code}
> Query performed repeatedly:
> {code:sql|title=query}
> SELECT * FROM SMallA
> {code}
> When query is performed after vdb is deployed, it runs fine.
> When JDG is restarted after the VDB was deployed, the query consecutively fails with:
> {code:title=error}
> 15:49:56,459 WARN  [org.infinispan.client.hotrod.impl.protocol.Codec21] (Worker0_QueryProcessorQueue66) ISPN004005: Error received from the server: java.lang.IllegalArgumentException: Message descriptor not found : Source.SmallA
> 15:49:56,460 ERROR [org.teiid.CONNECTOR] (Worker0_QueryProcessorQueue66) Connector worker process failed for atomic-request=yxRm19e5AqTO.1.0.8: org.infinispan.client.hotrod.exceptions.HotRodClientException:Request for messageId=30 returned server error (status=0x85): java.lang.IllegalArgumentException: Message descriptor not found : Source.SmallA
> 	at org.infinispan.client.hotrod.impl.protocol.Codec20.checkForErrorsInResponseStatus(Codec20.java:363) [infinispan-client-hotrod-8.4.0.Final-redhat-2.jar:8.4.0.Final-redhat-2]
> 	at org.infinispan.client.hotrod.impl.protocol.Codec20.readPartialHeader(Codec20.java:152) [infinispan-client-hotrod-8.4.0.Final-redhat-2.jar:8.4.0.Final-redhat-2]
> 	at org.infinispan.client.hotrod.impl.protocol.Codec20.readHeader(Codec20.java:138) [infinispan-client-hotrod-8.4.0.Final-redhat-2.jar:8.4.0.Final-redhat-2]
> 	at org.infinispan.client.hotrod.impl.operations.HotRodOperation.readHeaderAndValidate(HotRodOperation.java:60) [infinispan-client-hotrod-8.4.0.Final-redhat-2.jar:8.4.0.Final-redhat-2]
> 	at org.infinispan.client.hotrod.impl.operations.QueryOperation.executeOperation(QueryOperation.java:68) [infinispan-client-hotrod-8.4.0.Final-redhat-2.jar:8.4.0.Final-redhat-2]
> 	at org.infinispan.client.hotrod.impl.operations.QueryOperation.executeOperation(QueryOperation.java:30) [infinispan-client-hotrod-8.4.0.Final-redhat-2.jar:8.4.0.Final-redhat-2]
> 	at org.infinispan.client.hotrod.impl.operations.RetryOnFailureOperation.execute(RetryOnFailureOperation.java:56) [infinispan-client-hotrod-8.4.0.Final-redhat-2.jar:8.4.0.Final-redhat-2]
> 	at org.infinispan.client.hotrod.impl.query.RemoteQuery.executeQuery(RemoteQuery.java:68) [infinispan-client-hotrod-8.4.0.Final-redhat-2.jar:8.4.0.Final-redhat-2]
> 	at org.infinispan.client.hotrod.impl.query.RemoteQuery.list(RemoteQuery.java:53) [infinispan-client-hotrod-8.4.0.Final-redhat-2.jar:8.4.0.Final-redhat-2]
> 	at org.teiid.translator.infinispan.hotrod.InfinispanResponse.fetchNextBatch(InfinispanResponse.java:74) [translator-infinispan-hotrod-8.12.11.6_4-redhat-6.jar:8.12.11.6_4-redhat-6]
> 	at org.teiid.translator.infinispan.hotrod.InfinispanResponse.getNextRow(InfinispanResponse.java:90) [translator-infinispan-hotrod-8.12.11.6_4-redhat-6.jar:8.12.11.6_4-redhat-6]
> 	at org.teiid.translator.infinispan.hotrod.InfinispanQueryExecution.next(InfinispanQueryExecution.java:136) [translator-infinispan-hotrod-8.12.11.6_4-redhat-6.jar:8.12.11.6_4-redhat-6]
> 	at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.handleBatch(ConnectorWorkItem.java:433) [teiid-engine-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
> 	at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.more(ConnectorWorkItem.java:236) [teiid-engine-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_121]
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [rt.jar:1.8.0_121]
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_121]
> 	at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_121]
> 	at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211) [teiid-engine-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
> 	at com.sun.proxy.$Proxy79.more(Unknown Source)
> 	at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:309) [teiid-engine-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
> 	at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:112) [teiid-engine-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
> 	at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:108) [teiid-engine-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_121]
> 	at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:65) [teiid-engine-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
> 	at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:280) [teiid-engine-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
> 	at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119) [teiid-engine-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
> 	at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210) [teiid-engine-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_121]
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_121]
> 	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_121]
> 15:49:56,473 WARN  [org.teiid.PROCESSOR] (Worker1_QueryProcessorQueue67) TEIID30020 Processing exception for request yxRm19e5AqTO.1 'TEIID30504 jdg7-source-1: java.lang.IllegalArgumentException: Message descriptor not found : Source.SmallA'. Originally TeiidProcessingException Codec20.java:363. Enable more detailed logging to see the entire stacktrace.
> {code}



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the teiid-issues mailing list