[JBoss JIRA] (TEIID-4960) Problems when using External Materialized Views
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4960?page=com.atlassian.jira.plugin... ]
Steven Hawkins updated TEIID-4960:
----------------------------------
Fix Version/s: 8.12.x-6.4
> Problems when using External Materialized Views
> -----------------------------------------------
>
> Key: TEIID-4960
> URL: https://issues.jboss.org/browse/TEIID-4960
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 9.3
> Environment: * Teiid Server 9.3.0
> * Wildfly 10
> * Mysql 5.7.18
> Reporter: Pedro Inácio
> Assignee: Steven Hawkins
> Fix For: 10.0, 8.12.x-6.4, 9.3.1, 9.2.5, 8.12.12.6_3
>
> Attachments: server.log
>
>
> The following problem occurs when, apparently, we have two views where one depend on another, and also we use External Materialization.
> The dependent view is never updated due to a "Transaction already associated with request." exception.
> Logs attached.
> The error:
> {panel:title=The exception in logs}
> 2017-06-14 13:51:51,753 WARN [org.teiid.MATVIEWS] (Worker14_QueryProcessorQueue365) Hlbq3jmDWXNl org.teiid.jdbc.TeiidSQLException: TEIID30328 Unable to evaluate mvstatus('NumberingPlan', 'numbering_plan'): TEIID30384 Error while evaluating function mvstatus
> 2017-06-14 13:52:51,803 INFO [org.teiid.MATVIEWS] (Worker14_QueryProcessorQueue368) XAtcLA8RBrLm Materialization of view NumberingPlanRaw.numbering_plan_raw started.
> 2017-06-14 13:52:51,867 ERROR [org.teiid.PROCESSOR] (Worker14_QueryProcessorQueue372) XAtcLA8RBrLm TEIID30019 Unexpected exception for request XAtcLA8RBrLm.-2514910280603581440: java.lang.AssertionError: Transaction already associated with request.
> {panel}
> The VDB:
> {code:xml}
> <model name="MnomMaterialized" type="PHYSICAL">
> <property name="importer.useFullSchemaName" value="false"/>
> <property name="query-timeout" value="600000"/>
> <source name="MnomMaterializedView" translator-name="mysql-override" connection-jndi-name="java:/mnomDs"/>
> </model>
>
> <model name="NumberingPlanCsvData">
> <source name="numberingPlanCsv-connector" translator-name="file" connection-jndi-name="java:/numberingPlanCsvDs"/>
> </model>
> <model name="NumberingPlan" type="VIRTUAL">
> <metadata type="DDL"><![CDATA[
> CREATE VIEW numbering_plan (
> id integer PRIMARY KEY,
> global_title varchar(20)
> )
> OPTIONS(
> MATERIALIZED 'TRUE',
> UPDATABLE 'TRUE',
> MATERIALIZED_TABLE 'MnomMaterialized.numbering_plan_cache',
> "teiid_rel:MATVIEW_TTL" 86400000,
> "teiid_rel:ALLOW_MATVIEW_MANAGEMENT" 'true',
> "teiid_rel:MATVIEW_LOADNUMBER_COLUMN" 'LoadNumber',
> "teiid_rel:MATVIEW_STATUS_TABLE" 'MnomMaterialized.status'
> )
> AS
> SELECT ROW_NUMBER() OVER (ORDER BY cns) as id,
> cns
> FROM (EXEC NumberingPlanCsvData.getTextFiles('NumberingPlan.csv')) AS f,
> TEXTTABLE(f.file COLUMNS cns string DELIMITER ';' SKIP 1) AS A;
>
> ]]>
> </metadata>
> </model>
>
> <model name="NumberingPlanRaw" type="VIRTUAL">
> <metadata type="DDL">
> <![CDATA[
> CREATE VIEW numbering_plan_raw (
> id integer PRIMARY KEY,
> global_title varchar(20)
> )
> OPTIONS(
> MATERIALIZED 'TRUE',
> UPDATABLE 'FALSE',
> MATERIALIZED_TABLE 'MnomMaterialized.numbering_plan_raw_cache',
> "teiid_rel:MATVIEW_TTL" 86400000,
> "teiid_rel:ALLOW_MATVIEW_MANAGEMENT" 'true',
> "teiid_rel:MATVIEW_LOADNUMBER_COLUMN" 'LoadNumber',
> "teiid_rel:MATVIEW_STATUS_TABLE" 'MnomMaterialized.status'
> )
> AS
> SELECT ROW_NUMBER() OVER (ORDER BY network) as id,
> global_title
> FROM numbering_plan np;
>
> ]]>
> </metadata>
> </model>
> </model>
> {code}
> The Materialized table:
> {code:sql}
> CREATE TABLE status (
> VDBName VARCHAR(50) NOT NULL,
> VDBVersion VARCHAR(50) NOT NULL,
> SchemaName VARCHAR(50) NOT NULL,
> Name VARCHAR(256) NOT NULL,
> TargetSchemaName VARCHAR(50),
> TargetName VARCHAR(256) NOT NULL,
> Valid BOOLEAN NOT NULL,
> LoadState VARCHAR(25) NOT NULL,
> Cardinality BIGINT,
> Updated TIMESTAMP NOT NULL,
> LoadNumber BIGINT NOT NULL,
> NodeName varchar(25) not null,
> StaleCount BIGINT,
> PRIMARY KEY (VDBName , VDBVersion , SchemaName , Name)
> );
> CREATE TABLE numbering_plan_cache (
> id integer,
> global_title varchar(20),
> LoadNumber BIGINT,
> PRIMARY KEY(id)
> );
> {code}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
8 years, 6 months
[JBoss JIRA] (TEIID-5020) Join query results in NullPointerException
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-5020?page=com.atlassian.jira.plugin... ]
Steven Hawkins updated TEIID-5020:
----------------------------------
Fix Version/s: 8.12.x-6.4
> Join query results in NullPointerException
> ------------------------------------------
>
> Key: TEIID-5020
> URL: https://issues.jboss.org/browse/TEIID-5020
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 8.12.11.6_3, 9.3.2
> Reporter: Debbie Steigner
> Assignee: Steven Hawkins
> Fix For: 10.0, 8.12.x-6.4, 9.3.3, 8.12.13.6_3
>
>
> Running Join query results in NPE:
> 10:36:06,836 ERROR [org.teiid.PROCESSOR] (Worker2_QueryProcessorQueue17) TEIID30019 Unexpected exception for request KuTljjNz7YSM.1: java.lang.NullPointerException
> at org.teiid.dqp.internal.datamgr.LanguageBridgeFactory.translate(LanguageBridgeFactory.java:423) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.dqp.internal.datamgr.LanguageBridgeFactory.translate(LanguageBridgeFactory.java:415) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.dqp.internal.datamgr.LanguageBridgeFactory.translate(LanguageBridgeFactory.java:491) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.dqp.internal.datamgr.LanguageBridgeFactory.translate(LanguageBridgeFactory.java:399) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.dqp.internal.datamgr.LanguageBridgeFactory.translate(LanguageBridgeFactory.java:276) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.dqp.internal.datamgr.LanguageBridgeFactory.translate(LanguageBridgeFactory.java:223) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.dqp.internal.datamgr.LanguageBridgeFactory.translate(LanguageBridgeFactory.java:243) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.dqp.internal.datamgr.LanguageBridgeFactory.translate(LanguageBridgeFactory.java:186) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.<init>(ConnectorWorkItem.java:176) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.dqp.internal.datamgr.ConnectorManager.registerRequest(ConnectorManager.java:203) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.dqp.internal.process.DataTierManagerImpl.registerRequest(DataTierManagerImpl.java:997) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.query.tempdata.TempTableDataManager.registerRequest(TempTableDataManager.java:179) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.query.processor.relational.AccessNode.registerRequest(AccessNode.java:497) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.query.processor.relational.AccessNode.openInternal(AccessNode.java:265) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.query.processor.relational.AccessNode.open(AccessNode.java:168) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.query.processor.relational.RelationalNode.open(RelationalNode.java:254) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.query.processor.relational.UnionAllNode.open(UnionAllNode.java:123) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.query.processor.relational.JoinStrategy.openRight(JoinStrategy.java:105) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.query.processor.relational.JoinNode.nextBatchDirect(JoinNode.java:231) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:281) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.query.processor.relational.LimitNode.nextBatchDirect(LimitNode.java:102) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:281) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:150) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:281) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:145) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:151) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:114) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:164) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:146) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:472) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:348) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:274) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:280) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210) [teiid-engine-8.12.11.6_3-redhat-3.jar:8.12.11.6_3-redhat-3]
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_131]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_131]
> at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_131]
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
8 years, 6 months
[JBoss JIRA] (TEIID-5058) Infinispan Hotrod VDB needs to be redeployed after JDG restart
by Ramesh Reddy (JIRA)
[ https://issues.jboss.org/browse/TEIID-5058?page=com.atlassian.jira.plugin... ]
Ramesh Reddy commented on TEIID-5058:
-------------------------------------
[~jstastny] There are few observations
1) You are starting the cache in standalone mode. This need to be either domain or clustered mode. To do that start as
{code}
./standalone.sh -Djboss.socket.binding.port-offset=100 -c clustered.xml
{code}
2) The data in JDG cache by default is ephemeral unless you configure the persistent store. So, if you configured a "distributed-cache" and take down all the nodes, then the data is lost with out persistent store. If you take down a single node from the cluster, then when that node comes back up, then based on the node replication factor the data is re-populated from other nodes in the cluster. Again if the single node cluster your data is gone.
So, If you are working with single node cluster, you need to configure a persistent store. If you are working with multiple nodes, and take down the whole cluster then also you need the persistent store.
I used following with my configuration, and I see the data fine.
{code}
<distributed-cache name="cache_name" configuration="persistent-file-store" start="EAGER"/>
{code}
You can verify and then close this issue.
> 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)
8 years, 6 months
[JBoss JIRA] (TEIID-5058) Infinispan Hotrod VDB needs to be redeployed after JDG restart
by Jan Stastny (JIRA)
[ https://issues.jboss.org/browse/TEIID-5058?page=com.atlassian.jira.plugin... ]
Jan Stastny commented on TEIID-5058:
------------------------------------
[~rareddy] My JDG instance behaves exactly the same. And that's the issue. When you restart JDG, it forgets everything. But in Teiid you don't have any other option than redeploy vdb or restart Teiid server, for the message descriptor to be re-registered.
> 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)
8 years, 6 months
[JBoss JIRA] (TEIID-5060) Infinispan Hotrod Translator UPDATE on primary key column
by Jan Stastny (JIRA)
[ https://issues.jboss.org/browse/TEIID-5060?page=com.atlassian.jira.plugin... ]
Jan Stastny commented on TEIID-5060:
------------------------------------
[~rareddy]
bq. You are comparing the StringKey with an integer value.
I believe this is not the root cause, if you look at the issue description, there I am filtering based on integer column and have the same issue.
> Infinispan Hotrod Translator UPDATE on primary key column
> ---------------------------------------------------------
>
> Key: TEIID-5060
> URL: https://issues.jboss.org/browse/TEIID-5060
> Project: Teiid
> Issue Type: Bug
> Components: JDG Connector, Misc. Connectors
> Reporter: Jan Stastny
> Assignee: Ramesh Reddy
> Priority: Blocker
> Fix For: 10.0
>
>
> UPDATE query where the PRIMARY KEY of the table is being changed succeeds, returns update count of corresponding rows, but the changes don't get promoted to actual cache.
> Consider
> {code:sql|title=UPDATE query}
> UPDATE SmallA SET StringKey = 100 WHERE IntKey > 25
> {code}
> where StringKey is set as PRIMARY KEY and 6 rows fulfill the filter on IntKey>25.
> When this UPDATE is performed, returned number of rows update is 6, but the contents of the cache don't change.
> There are several applicable resolutions:
> # There should be error thrown by Teiid, that this is not allowed operation
> # There should be update count 0 returned
> # There should be change in JDG cache, effectively squashing the 6 rows into single one
> # There should be error thrown by Teiid, that there is duplicate PK value (this is not something Teiid usually enforces)
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
8 years, 6 months