[JBoss JIRA] (TEIID-5679) Better odata exception handling
by Steven Hawkins (Jira)
Steven Hawkins created TEIID-5679:
-------------------------------------
Summary: Better odata exception handling
Key: TEIID-5679
URL: https://issues.jboss.org/browse/TEIID-5679
Project: Teiid
Issue Type: Quality Risk
Components: OData
Reporter: Steven Hawkins
Assignee: Steven Hawkins
Fix For: 12.2
A teiidprocessingexception is always mapped to 400 regardless of the underlying cause. This should be improved.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 3 months
[JBoss JIRA] (TEIID-5678) loopback improvements
by Steven Hawkins (Jira)
Steven Hawkins created TEIID-5678:
-------------------------------------
Summary: loopback improvements
Key: TEIID-5678
URL: https://issues.jboss.org/browse/TEIID-5678
Project: Teiid
Issue Type: Task
Components: Misc. Connectors
Reporter: Steven Hawkins
Assignee: Steven Hawkins
Fix For: 12.2
The loopback translator does not handle offset/limit very well as it will return infinite results if they are allowed to be pushed. It also should determine string length from metadata if possible rather than requiring the char length be set to the smallest value possible.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 3 months
[JBoss JIRA] (TEIID-5677) Remove commons lang3 from olingo server
by Steven Hawkins (Jira)
Steven Hawkins created TEIID-5677:
-------------------------------------
Summary: Remove commons lang3 from olingo server
Key: TEIID-5677
URL: https://issues.jboss.org/browse/TEIID-5677
Project: Teiid
Issue Type: Task
Components: OData
Reporter: Steven Hawkins
Assignee: Steven Hawkins
Fix For: 12.2
The dependency on lang3 is only for a couple of string utils. This should be replaced.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 3 months
[JBoss JIRA] (TEIID-5672) Support nanosecond precision for MySQL version > 5.6
by Johnathon Lee (Jira)
[ https://issues.jboss.org/browse/TEIID-5672?page=com.atlassian.jira.plugin... ]
Johnathon Lee updated TEIID-5672:
---------------------------------
Fix Version/s: 8.12.18.6_4
> Support nanosecond precision for MySQL version > 5.6
> ----------------------------------------------------
>
> Key: TEIID-5672
> URL: https://issues.jboss.org/browse/TEIID-5672
> Project: Teiid
> Issue Type: Bug
> Components: JDBC Connector
> Affects Versions: 11.2.1
> Environment: Docker Container
> Reporter: Christoph John
> Assignee: Steven Hawkins
> Priority: Major
> Fix For: 12.2, 11.2.3, 12.0.2, 8.12.18.6_4, 12.1.1
>
> Attachments: Bildschirmfoto 2019-03-04 um 20.47.19.png, logfile4.txt, logfile5.txt
>
>
> I am using a composite key based on a BIGINT and a DATETIME(3) value. The URLs which Teiid generates are invalid in this case. When using DATETIME(0) the links or ok. Example of generated record structure
> {code:java}
> <a:feed xmlns:a="http://www.w3.org/2005/Atom" xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" xmlns:d="http://docs.oasis-open.org/odata/ns/data" m:context="https://morpheus.fritz.box/odata4/svc/my_nutri_diary/$metadata#Diary">
> <a:id>
> https://morpheus.fritz.box/odata4/svc/my_nutri_diary/Diary
> </a:id>
> <a:entry>
> <a:id>
> https://morpheus.fritz.box/odata4/svc/my_nutri_diary/Diary(fkProfile=2,Ad...
> </a:id>
> <a:title/>
> <a:summary/>
> <a:updated>2019-03-03T17:53:52Z</a:updated>
> <a:author>
> <a:name/>
> </a:author>
> <a:link rel="edit" href="https://morpheus.fritz.box/odata4/svc/my_nutri_diary/Diary(fkProfile=2,Ad..."/>
> <a:link rel="http://docs.oasis-open.org/odata/ns/related/fkDiaryToAccount" title="fkDiaryToAccount" href="https://morpheus.fritz.box/odata4/svc/my_nutri_diary/Diary(fkProfile=2,Ad..."/>
> <a:link rel="http://docs.oasis-open.org/odata/ns/related/fkDiaryToFDBProducts" title="fkDiaryToFDBProducts" href="https://morpheus.fritz.box/odata4/svc/my_nutri_diary/Diary(fkProfile=2,Ad..."/>
> <a:link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/fkDiaryToAccount" title="fkDiaryToAccount" href="https://morpheus.fritz.box/odata4/svc/my_nutri_diary/Diary(fkProfile=2,Ad..."/>
> <a:link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/fkDiaryToFDBProducts" title="fkDiaryToFDBProducts" href="https://morpheus.fritz.box/odata4/svc/my_nutri_diary/Diary(fkProfile=2,Ad..."/>
> <a:category scheme="http://docs.oasis-open.org/odata/ns/scheme" term="#svc.1.my_nutri_diary.Diary"/>
> <a:content type="application/xml">
> <m:properties>
> <d:fkProfile m:type="Int64">2</d:fkProfile>
> <d:AddedDateTime m:type="DateTimeOffset">2019-03-03T17:53:12.676Z</d:AddedDateTime>
> <d:fkIdCode m:type="Int64">1772</d:fkIdCode>
> <d:product_name>Mélange fruits secs</d:product_name>
> <d:brands>Agrosourcing</d:brands>
> <d:DatabaseID m:type="Int16">0</d:DatabaseID>
> <d:MealNumber>5</d:MealNumber>
> <d:AmountInG m:type="Double">100.0</d:AmountInG>
> <d:Calories m:type="Double">0.0</d:Calories>
> <d:ProteinsInG m:type="Double">-1.0</d:ProteinsInG>
> <d:CarbohydratesInG m:type="Double">-1.0</d:CarbohydratesInG>
> <d:SugarsInG m:type="Double">-1.0</d:SugarsInG>
> <d:FatsInG m:type="Double">-1.0</d:FatsInG>
> <d:SaturatedFatsInG m:type="Double">-1.0</d:SaturatedFatsInG>
> <d:SaltsInG m:type="Double">-1.0</d:SaltsInG>
> <d:Diarycol m:null="true"/>
> </m:properties>
> </a:content>
> </a:entry>
> {code}
> When I navigate to
> https://morpheus.fritz.box/odata4/svc/my_nutri_diary/Diary(fkProfile=2,Ad...
> I get HTTP ERROR 404 page not found. Note: I replaced ":"with "%3A" (urlencode) in the url which was required to work with the DateTime(0) primary keys. But this did not help either.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 3 months
[JBoss JIRA] (TEIID-5676) Support respond-async preference
by Steven Hawkins (Jira)
Steven Hawkins created TEIID-5676:
-------------------------------------
Summary: Support respond-async preference
Key: TEIID-5676
URL: https://issues.jboss.org/browse/TEIID-5676
Project: Teiid
Issue Type: Sub-task
Components: OData
Reporter: Steven Hawkins
Assignee: Steven Hawkins
Fix For: 12.x
respond-async allows clients to not implicitly wait on responses and to set bounds on waiting.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 3 months
[JBoss JIRA] (TEIID-5643) When querying a larger dataset, teiid answers with 504 Gateway Time-out and throws exception
by Steven Hawkins (Jira)
[ https://issues.jboss.org/browse/TEIID-5643?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-5643:
---------------------------------------
Thanks Christoph, I'll have a look at this tomorrow.
> When querying a larger dataset, teiid answers with 504 Gateway Time-out and throws exception
> --------------------------------------------------------------------------------------------
>
> Key: TEIID-5643
> URL: https://issues.jboss.org/browse/TEIID-5643
> Project: Teiid
> Issue Type: Bug
> Affects Versions: 11.2.1
> Reporter: Christoph John
> Assignee: Steven Hawkins
> Priority: Major
> Attachments: Heap Dump analysis tool.pdf, logfile2.txt, logfile3.txt
>
>
> Please note, I am using Teiid 11.2.0 and not 11.2.1 as specified above in this ticket. I was not able to select a version 11.2.0.
> The issue: I tried to query a table with a larger amount of records (about 600.000 records in the table). Teiid responds with
> 504 Gateway Time-out. The server didn't respond in time.
> If Teiid tries to respond with 600.000 entries to such a request, it is reasonable that it runs out of memory or other weird things happen. However, I would expect that in such a case Teiid just answers with a fixed amount of records, say for example 1000, and provides a kind of curser to enable subsequent requests to retrieve more data.
> I am currently trying to find a workaround for the issue, as the issue blocks my work. Is there maybe a kind of configuration option that I have to set explicitly for such a kind of behavior I previously sketched?
> Further note: When I send such a kind of select * request on the table to Teiid, I am also not able for a certain time interval, about a minute, to get a responds to different queries which select a single element on the mentioned table. Such a request then also results in a 504 Gateway Time-out.
> Attached error log:
> 2019-02-01 22:33:36,126 WARN [org.jboss.jca.core.connectionmanager.pool.strategy.OnePool] (Worker2_QueryProcessorQueue5) eayVFuq9y7OY IJ000407: No lazy enlistment available for my_nutri_diary
> 2019-02-01 22:33:36,135 INFO [org.teiid.CONNECTOR] (Worker2_QueryProcessorQueue5) eayVFuq9y7OY MySQLExecutionFactory Commit=true;DatabaseProductName=MySQL;DatabaseProductVersion=8.0.13;DriverMajorVersion=8;DriverMajorVersion=0;DriverName=MySQL Connector/J;DriverVersion=mysql-connector-java-8.0.13 (Revision: 66459e9d39c8fd09767992bc592acd2053279be6);IsolationLevel=2
> 2019-02-01 22:36:56,959 WARN [org.teiid.CONNECTOR] (Worker2_QueryProcessorQueue5) eayVFuq9y7OY Connector worker process failed for atomic-request=eayVFuq9y7OY.0.0.0: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: SELECT g_0.`idCode` AS c_0, g_0.`lc` AS c_1, g_0.`product_name` AS c_2, g_0.`origins` AS c_3, g_0.`brands` AS c_4, g_0.`quantity` AS c_5, g_0.`nova_group` AS c_6, g_0.`nutrition_grade_fr` AS c_7, g_0.`ingredients_text_with_allergens` AS c_8, g_0.`energy_100g` AS c_9, g_0.`carbohydrates_100g` AS c_10, g_0.`sugars_100g` AS c_11, g_0.`proteins_100g` AS c_12, g_0.`fat_100g` AS c_13, g_0.`saturated_fat_100g` AS c_14, g_0.`saturated_fat_modifier` AS c_15, g_0.`salt_100g` AS c_16, g_0.`sodium_100g` AS c_17 FROM `FDBProducts` AS g_0 ORDER BY c_0]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:127)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:393)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:229)
> at com.sun.proxy.$Proxy51.execute(Unknown Source)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:302)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:108)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:104)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:61)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:278)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:115)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:206)
> 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)
> Caused by: java.sql.SQLException: Java heap space
> at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
> at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
> at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
> at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:974)
> at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1024)
> at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:504)
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:119)
> ... 18 more
> 2019-02-01 22:36:56,977 WARN [org.teiid.PROCESSOR] (default task-4) eayVFuq9y7OY TEIID30020 Processing exception for request eayVFuq9y7OY.0 'TEIID30504 my_nutri_diary: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: SELECT g_0.`idCode` AS c_0, g_0.`lc` AS c_1, g_0.`product_name` AS c_2, g_0.`origins` AS c_3, g_0.`brands` AS c_4, g_0.`quantity` AS c_5, g_0.`nova_group` AS c_6, g_0.`nutrition_grade_fr` AS c_7, g_0.`ingredients_text_with_allergens` AS c_8, g_0.`energy_100g` AS c_9, g_0.`carbohydrates_100g` AS c_10, g_0.`sugars_100g` AS c_11, g_0.`proteins_100g` AS c_12, g_0.`fat_100g` AS c_13, g_0.`saturated_fat_100g` AS c_14, g_0.`saturated_fat_modifier` AS c_15, g_0.`salt_100g` AS c_16, g_0.`sodium_100g` AS c_17 FROM `FDBProducts` AS g_0 ORDER BY c_0]'. Originally TeiidProcessingException 'Java heap space' SQLError.java:129. Enable more detailed logging to see the entire stacktrace.
> 2019-02-01 22:36:56,987 WARN [org.teiid.PROCESSOR] (default task-4) TEIID16053 Unable to process odata request due to: TEIID30504 my_nutri_diary: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: SELECT g_0.`idCode` AS c_0, g_0.`lc` AS c_1, g_0.`product_name` AS c_2, g_0.`origins` AS c_3, g_0.`brands` AS c_4, g_0.`quantity` AS c_5, g_0.`nova_group` AS c_6, g_0.`nutrition_grade_fr` AS c_7, g_0.`ingredients_text_with_allergens` AS c_8, g_0.`energy_100g` AS c_9, g_0.`carbohydrates_100g` AS c_10, g_0.`sugars_100g` AS c_11, g_0.`proteins_100g` AS c_12, g_0.`fat_100g` AS c_13, g_0.`saturated_fat_100g` AS c_14, g_0.`saturated_fat_modifier` AS c_15, g_0.`salt_100g` AS c_16, g_0.`sodium_100g` AS c_17 FROM `FDBProducts` AS g_0 ORDER BY c_0] Increase the log level to see the entire stack trace.
> 2019-02-01 22:36:57,213 WARN [org.teiid.CONNECTOR] (Worker2_QueryProcessorQueue6) NdaDihMR2Vlt Connector worker process failed for atomic-request=NdaDihMR2Vlt.0.0.1: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: SELECT g_0.`idCode` AS c_0, g_0.`lc` AS c_1, g_0.`product_name` AS c_2, g_0.`origins` AS c_3, g_0.`brands` AS c_4, g_0.`quantity` AS c_5, g_0.`nova_group` AS c_6, g_0.`nutrition_grade_fr` AS c_7, g_0.`ingredients_text_with_allergens` AS c_8, g_0.`energy_100g` AS c_9, g_0.`carbohydrates_100g` AS c_10, g_0.`sugars_100g` AS c_11, g_0.`proteins_100g` AS c_12, g_0.`fat_100g` AS c_13, g_0.`saturated_fat_100g` AS c_14, g_0.`saturated_fat_modifier` AS c_15, g_0.`salt_100g` AS c_16, g_0.`sodium_100g` AS c_17 FROM `FDBProducts` AS g_0 ORDER BY c_0]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:127)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:393)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:229)
> at com.sun.proxy.$Proxy51.execute(Unknown Source)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:302)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:108)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:104)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:61)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:278)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:115)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:206)
> 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)
> Caused by: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 3 months