[JBoss JIRA] (TEIIDSB-23) Document image generation options
by Steven Hawkins (Jira)
[ https://issues.jboss.org/browse/TEIIDSB-23?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIIDSB-23:
---------------------------------------
> I also added how to create the instance
The 3 scale team is promoting a prometheus instance per openshift cluster, then federating those instances to a master aggregator. I'm not clear yet on the ramifications of having a proliferation of instances - one per namespace, or even one per deployment type...
The 30 day retention is also an active topic. Eventually a time-series db will be included in the mix for longer term storage (the initial target is a year), but the may need to be some aggregation/retention rules.
> I have not modified the "relabel" section either in the template from that of Syndesis. Take look and modify and add whatever you need to complete the example with instructions, so that we can showcase this example as a demo.
We need to validate that our pods at host:8778/metrics are exposing the metrics https://github.com/teiid/teiid-openshift-examples/blob/0a4383e7c9c3514532...
Based upon that we can change the https://github.com/teiid/teiid-openshift-examples/blob/0a4383e7c9c3514532... relabel line.
> so that we can showcase this example as a demo
The next thing will be some grafana dashboard. The general approach it seems is to keep things as focused as possible (3-4 metrics per board), and a small number of metrics overall - as too much can overwhelm the 30 day retention schedule.
I'm not sure yet about the expectation for grafana instances or the delivery for dashboard definitions.
> Document image generation options
> ---------------------------------
>
> Key: TEIIDSB-23
> URL: https://issues.jboss.org/browse/TEIIDSB-23
> Project: Teiid Spring Boot
> Issue Type: Task
> Reporter: Steven Hawkins
> Priority: Major
> Fix For: Q119
>
>
> We need to document / validate all relevant image options:
> - inclusion of agent bond or other mechanism for jmx exposure to prometheus. There may also be related service annotations
> - annotations for 3scale for rest and openapi exposure of odata
> - any common config options - disk buffer memory, max active plans / engine threads / connection pool sizes. Ideally the buffer manager heap should auto-configure and we should probably always use off-heap for the fixed memory buffer.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 1 month
[JBoss JIRA] (TEIID-5658) PG transport can deliver messages out of order
by Steven Hawkins (Jira)
[ https://issues.jboss.org/browse/TEIID-5658?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-5658:
---------------------------------------
This seems to be addressed as suggested in the issue - don't directly call write, just queue everything with the event loop.
> PG transport can deliver messages out of order
> ----------------------------------------------
>
> Key: TEIID-5658
> URL: https://issues.jboss.org/browse/TEIID-5658
> Project: Teiid
> Issue Type: Bug
> Components: ODBC
> Reporter: Steven Hawkins
> Assignee: Steven Hawkins
> Priority: Major
> Fix For: 12.1, 12.0.1, 11.2.3
>
>
> Although it is not apparent in our logs, we are delivering response messages out of order.
> From our logs we have:
> 2019-02-14 08:18:12.476 org.teiid.ODBC TRACE NIO1 invoking server method: prepare [, select 3 from pg_class where relname='pg_class', []]
> 2019-02-14 08:18:12.476 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f prepareCompleted []
> 2019-02-14 08:18:12.48 org.teiid.ODBC TRACE NIO1 invoking server method: bindParameters [, , [], 0, null, UTF-8]
> 2019-02-14 08:18:12.481 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f bindComplete null
> 2019-02-14 08:18:12.481 org.teiid.ODBC TRACE NIO1 invoking server method: getResultSetMetaDataDescription []
> 2019-02-14 08:18:12.481 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f sendResultSetDescription [[org.teiid.odbc.PGUtil$PgColInfo@333d1d1b], null]
> 2019-02-14 08:18:12.481 org.teiid.ODBC TRACE NIO1 invoking server method: execute [, 0]
> 2019-02-14 08:18:12.484 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f sendResults [null, org.teiid.jdbc.ResultSetImpl@4516a1a2, [org.teiid.odbc.PGUtil$PgColInfo@333d1d1b], org.teiid.client.util.ResultsFuture@1e98b9de, FORWARD, -1, false, null]
> 2019-02-14 08:18:12.486 org.teiid.ODBC TRACE Worker2_QueryProcessorQueue211 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f sendCommandComplete [select 3 from pg_class where relname='pg_class', [1]]
> 2019-02-14 08:18:12.486 org.teiid.ODBC TRACE NIO1 invoking server method: sync null
> 2019-02-14 08:18:12.486 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f ready [false, false]
> 2019-02-14 08:18:12.486 org.teiid.ODBC TRACE Worker0_QueryProcessorQueue212 invoking client method: org.teiid.transport.ODBCClientInstance@3e802be1 ready [false, false]
> At the network level we see ready delivered before the data row.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 1 month
[JBoss JIRA] (TEIID-5658) PG transport can deliver messages out of order
by Steven Hawkins (Jira)
[ https://issues.jboss.org/browse/TEIID-5658?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-5658:
---------------------------------------
> So you are saying two separate threads are writing to Channel.write(..) in a synchronization block but you still see them in out of order?
Not just two threads. From the issue it matters that one of them is the nio event loop thread. If it were just other threads apparently that would work as well. What this probably means is that the engine threads performing the writes are really just queuing the write for the event loop thread - then the event loop thread when it is performing writes will prioritize it's own write ahead of anything that is queued.
However I've also seemingly reproduced this situation when all writes have been initiated by the nio thread - which seems quite odd.
> PG transport can deliver messages out of order
> ----------------------------------------------
>
> Key: TEIID-5658
> URL: https://issues.jboss.org/browse/TEIID-5658
> Project: Teiid
> Issue Type: Bug
> Components: ODBC
> Reporter: Steven Hawkins
> Assignee: Steven Hawkins
> Priority: Major
> Fix For: 12.1, 12.0.1, 11.2.3
>
>
> Although it is not apparent in our logs, we are delivering response messages out of order.
> From our logs we have:
> 2019-02-14 08:18:12.476 org.teiid.ODBC TRACE NIO1 invoking server method: prepare [, select 3 from pg_class where relname='pg_class', []]
> 2019-02-14 08:18:12.476 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f prepareCompleted []
> 2019-02-14 08:18:12.48 org.teiid.ODBC TRACE NIO1 invoking server method: bindParameters [, , [], 0, null, UTF-8]
> 2019-02-14 08:18:12.481 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f bindComplete null
> 2019-02-14 08:18:12.481 org.teiid.ODBC TRACE NIO1 invoking server method: getResultSetMetaDataDescription []
> 2019-02-14 08:18:12.481 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f sendResultSetDescription [[org.teiid.odbc.PGUtil$PgColInfo@333d1d1b], null]
> 2019-02-14 08:18:12.481 org.teiid.ODBC TRACE NIO1 invoking server method: execute [, 0]
> 2019-02-14 08:18:12.484 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f sendResults [null, org.teiid.jdbc.ResultSetImpl@4516a1a2, [org.teiid.odbc.PGUtil$PgColInfo@333d1d1b], org.teiid.client.util.ResultsFuture@1e98b9de, FORWARD, -1, false, null]
> 2019-02-14 08:18:12.486 org.teiid.ODBC TRACE Worker2_QueryProcessorQueue211 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f sendCommandComplete [select 3 from pg_class where relname='pg_class', [1]]
> 2019-02-14 08:18:12.486 org.teiid.ODBC TRACE NIO1 invoking server method: sync null
> 2019-02-14 08:18:12.486 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f ready [false, false]
> 2019-02-14 08:18:12.486 org.teiid.ODBC TRACE Worker0_QueryProcessorQueue212 invoking client method: org.teiid.transport.ODBCClientInstance@3e802be1 ready [false, false]
> At the network level we see ready delivered before the data row.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 1 month
[JBoss JIRA] (TEIID-5658) PG transport can deliver messages out of order
by Ramesh Reddy (Jira)
[ https://issues.jboss.org/browse/TEIID-5658?page=com.atlassian.jira.plugin... ]
Ramesh Reddy commented on TEIID-5658:
-------------------------------------
So you are saying two separate threads are writing to Channel.write(..) in a synchronization block but you still see them in out of order?
> PG transport can deliver messages out of order
> ----------------------------------------------
>
> Key: TEIID-5658
> URL: https://issues.jboss.org/browse/TEIID-5658
> Project: Teiid
> Issue Type: Bug
> Components: ODBC
> Reporter: Steven Hawkins
> Assignee: Steven Hawkins
> Priority: Major
> Fix For: 12.1, 12.0.1, 11.2.3
>
>
> Although it is not apparent in our logs, we are delivering response messages out of order.
> From our logs we have:
> 2019-02-14 08:18:12.476 org.teiid.ODBC TRACE NIO1 invoking server method: prepare [, select 3 from pg_class where relname='pg_class', []]
> 2019-02-14 08:18:12.476 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f prepareCompleted []
> 2019-02-14 08:18:12.48 org.teiid.ODBC TRACE NIO1 invoking server method: bindParameters [, , [], 0, null, UTF-8]
> 2019-02-14 08:18:12.481 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f bindComplete null
> 2019-02-14 08:18:12.481 org.teiid.ODBC TRACE NIO1 invoking server method: getResultSetMetaDataDescription []
> 2019-02-14 08:18:12.481 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f sendResultSetDescription [[org.teiid.odbc.PGUtil$PgColInfo@333d1d1b], null]
> 2019-02-14 08:18:12.481 org.teiid.ODBC TRACE NIO1 invoking server method: execute [, 0]
> 2019-02-14 08:18:12.484 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f sendResults [null, org.teiid.jdbc.ResultSetImpl@4516a1a2, [org.teiid.odbc.PGUtil$PgColInfo@333d1d1b], org.teiid.client.util.ResultsFuture@1e98b9de, FORWARD, -1, false, null]
> 2019-02-14 08:18:12.486 org.teiid.ODBC TRACE Worker2_QueryProcessorQueue211 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f sendCommandComplete [select 3 from pg_class where relname='pg_class', [1]]
> 2019-02-14 08:18:12.486 org.teiid.ODBC TRACE NIO1 invoking server method: sync null
> 2019-02-14 08:18:12.486 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f ready [false, false]
> 2019-02-14 08:18:12.486 org.teiid.ODBC TRACE Worker0_QueryProcessorQueue212 invoking client method: org.teiid.transport.ODBCClientInstance@3e802be1 ready [false, false]
> At the network level we see ready delivered before the data row.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 1 month
[JBoss JIRA] (TEIID-5658) PG transport can deliver messages out of order
by Steven Hawkins (Jira)
[ https://issues.jboss.org/browse/TEIID-5658?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-5658:
---------------------------------------
This situation seems to be described by the last comment on https://stackoverflow.com/questions/9082101/do-messages-sent-via-nettys-c...
In short we are writing to the channel by both the event loop thread and the engine thread and as described in the linked issue even external synchronization of the writes is ineffective - which I've confirmed as well.
> PG transport can deliver messages out of order
> ----------------------------------------------
>
> Key: TEIID-5658
> URL: https://issues.jboss.org/browse/TEIID-5658
> Project: Teiid
> Issue Type: Bug
> Components: ODBC
> Reporter: Steven Hawkins
> Assignee: Steven Hawkins
> Priority: Major
> Fix For: 12.1, 12.0.1, 11.2.3
>
>
> Although it is not apparent in our logs, we are delivering response messages out of order.
> From our logs we have:
> 2019-02-14 08:18:12.476 org.teiid.ODBC TRACE NIO1 invoking server method: prepare [, select 3 from pg_class where relname='pg_class', []]
> 2019-02-14 08:18:12.476 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f prepareCompleted []
> 2019-02-14 08:18:12.48 org.teiid.ODBC TRACE NIO1 invoking server method: bindParameters [, , [], 0, null, UTF-8]
> 2019-02-14 08:18:12.481 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f bindComplete null
> 2019-02-14 08:18:12.481 org.teiid.ODBC TRACE NIO1 invoking server method: getResultSetMetaDataDescription []
> 2019-02-14 08:18:12.481 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f sendResultSetDescription [[org.teiid.odbc.PGUtil$PgColInfo@333d1d1b], null]
> 2019-02-14 08:18:12.481 org.teiid.ODBC TRACE NIO1 invoking server method: execute [, 0]
> 2019-02-14 08:18:12.484 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f sendResults [null, org.teiid.jdbc.ResultSetImpl@4516a1a2, [org.teiid.odbc.PGUtil$PgColInfo@333d1d1b], org.teiid.client.util.ResultsFuture@1e98b9de, FORWARD, -1, false, null]
> 2019-02-14 08:18:12.486 org.teiid.ODBC TRACE Worker2_QueryProcessorQueue211 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f sendCommandComplete [select 3 from pg_class where relname='pg_class', [1]]
> 2019-02-14 08:18:12.486 org.teiid.ODBC TRACE NIO1 invoking server method: sync null
> 2019-02-14 08:18:12.486 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f ready [false, false]
> 2019-02-14 08:18:12.486 org.teiid.ODBC TRACE Worker0_QueryProcessorQueue212 invoking client method: org.teiid.transport.ODBCClientInstance@3e802be1 ready [false, false]
> At the network level we see ready delivered before the data row.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 1 month
[JBoss JIRA] (TEIID-5658) PG transport can deliver messages out of order
by Steven Hawkins (Jira)
[ https://issues.jboss.org/browse/TEIID-5658?page=com.atlassian.jira.plugin... ]
Steven Hawkins updated TEIID-5658:
----------------------------------
Description:
Although it is not apparent in our logs, we are delivering response messages out of order.
>From our logs we have:
2019-02-14 08:18:12.476 org.teiid.ODBC TRACE NIO1 invoking server method: prepare [, select 3 from pg_class where relname='pg_class', []]
2019-02-14 08:18:12.476 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f prepareCompleted []
2019-02-14 08:18:12.48 org.teiid.ODBC TRACE NIO1 invoking server method: bindParameters [, , [], 0, null, UTF-8]
2019-02-14 08:18:12.481 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f bindComplete null
2019-02-14 08:18:12.481 org.teiid.ODBC TRACE NIO1 invoking server method: getResultSetMetaDataDescription []
2019-02-14 08:18:12.481 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f sendResultSetDescription [[org.teiid.odbc.PGUtil$PgColInfo@333d1d1b], null]
2019-02-14 08:18:12.481 org.teiid.ODBC TRACE NIO1 invoking server method: execute [, 0]
2019-02-14 08:18:12.484 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f sendResults [null, org.teiid.jdbc.ResultSetImpl@4516a1a2, [org.teiid.odbc.PGUtil$PgColInfo@333d1d1b], org.teiid.client.util.ResultsFuture@1e98b9de, FORWARD, -1, false, null]
2019-02-14 08:18:12.486 org.teiid.ODBC TRACE Worker2_QueryProcessorQueue211 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f sendCommandComplete [select 3 from pg_class where relname='pg_class', [1]]
2019-02-14 08:18:12.486 org.teiid.ODBC TRACE NIO1 invoking server method: sync null
2019-02-14 08:18:12.486 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f ready [false, false]
2019-02-14 08:18:12.486 org.teiid.ODBC TRACE Worker0_QueryProcessorQueue212 invoking client method: org.teiid.transport.ODBCClientInstance@3e802be1 ready [false, false]
At the network level we see ready delivered before the data row.
was:
The code is allowing for a sequence of events such as:
2019-02-13 14:07:47.613 org.teiid.ODBC TRACE NIO4 invoking server method: prepare [, select oid from pg_class where relname='pg_class', []]
2019-02-13 14:07:47.615 org.teiid.ODBC TRACE NIO4 invoking client method: org.teiid.transport.ODBCClientInstance$1@d875495 prepareCompleted []
2019-02-13 14:07:47.615 org.teiid.ODBC TRACE NIO4 invoking server method: bindParameters [, , [], 0, null, UTF-8]
2019-02-13 14:07:47.615 org.teiid.ODBC TRACE NIO4 invoking client method: org.teiid.transport.ODBCClientInstance$1@d875495 bindComplete null
2019-02-13 14:07:47.617 org.teiid.ODBC TRACE NIO4 invoking server method: getResultSetMetaDataDescription []
2019-02-13 14:07:47.617 org.teiid.ODBC TRACE NIO4 invoking client method: org.teiid.transport.ODBCClientInstance$1@d875495 sendResultSetDescription [[org.teiid.odbc.PGUtil$PgColInfo@1086babd], null]
2019-02-13 14:07:47.617 org.teiid.ODBC TRACE NIO4 invoking server method: execute [, 0]
2019-02-13 14:07:47.618 org.teiid.ODBC TRACE NIO4 invoking client method: org.teiid.transport.ODBCClientInstance$1@d875495 sendResults [null, org.teiid.jdbc.ResultSetImpl@1e1aed1a, [org.teiid.odbc.PGUtil$PgColInfo@1086babd], org.teiid.client.util.ResultsFuture@3b6cff36, FORWARD, -1, false, null]
2019-02-13 14:07:47.619 org.teiid.ODBC TRACE NIO4 invoking server method: sync null
2019-02-13 14:07:47.619 org.teiid.ODBC TRACE Worker0_QueryProcessorQueue368 invoking client method: org.teiid.transport.ODBCClientInstance$1@d875495 sendCommandComplete [select oid from pg_class where relname='pg_class', [1]]
2019-02-13 14:07:47.619 org.teiid.ODBC TRACE NIO4 invoking client method: org.teiid.transport.ODBCClientInstance$1@d875495 ready [false, false]
That is after execute we are immediately responding with results. That response ahead of the sync causes issues in the pg jdbc driver such as reporting that there is no result set. See TEIID-5425
This does not appear to be a requirement of the flow: https://www.postgresql.org/docs/9.3/protocol-flow.html#AEN99807
Summary: PG transport can deliver messages out of order (was: PG transport can sendResults before sync)
> PG transport can deliver messages out of order
> ----------------------------------------------
>
> Key: TEIID-5658
> URL: https://issues.jboss.org/browse/TEIID-5658
> Project: Teiid
> Issue Type: Bug
> Components: ODBC
> Reporter: Steven Hawkins
> Assignee: Steven Hawkins
> Priority: Major
> Fix For: 12.1, 12.0.1, 11.2.3
>
>
> Although it is not apparent in our logs, we are delivering response messages out of order.
> From our logs we have:
> 2019-02-14 08:18:12.476 org.teiid.ODBC TRACE NIO1 invoking server method: prepare [, select 3 from pg_class where relname='pg_class', []]
> 2019-02-14 08:18:12.476 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f prepareCompleted []
> 2019-02-14 08:18:12.48 org.teiid.ODBC TRACE NIO1 invoking server method: bindParameters [, , [], 0, null, UTF-8]
> 2019-02-14 08:18:12.481 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f bindComplete null
> 2019-02-14 08:18:12.481 org.teiid.ODBC TRACE NIO1 invoking server method: getResultSetMetaDataDescription []
> 2019-02-14 08:18:12.481 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f sendResultSetDescription [[org.teiid.odbc.PGUtil$PgColInfo@333d1d1b], null]
> 2019-02-14 08:18:12.481 org.teiid.ODBC TRACE NIO1 invoking server method: execute [, 0]
> 2019-02-14 08:18:12.484 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f sendResults [null, org.teiid.jdbc.ResultSetImpl@4516a1a2, [org.teiid.odbc.PGUtil$PgColInfo@333d1d1b], org.teiid.client.util.ResultsFuture@1e98b9de, FORWARD, -1, false, null]
> 2019-02-14 08:18:12.486 org.teiid.ODBC TRACE Worker2_QueryProcessorQueue211 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f sendCommandComplete [select 3 from pg_class where relname='pg_class', [1]]
> 2019-02-14 08:18:12.486 org.teiid.ODBC TRACE NIO1 invoking server method: sync null
> 2019-02-14 08:18:12.486 org.teiid.ODBC TRACE NIO1 invoking client method: org.teiid.transport.ODBCClientInstance@6064753f ready [false, false]
> 2019-02-14 08:18:12.486 org.teiid.ODBC TRACE Worker0_QueryProcessorQueue212 invoking client method: org.teiid.transport.ODBCClientInstance@3e802be1 ready [false, false]
> At the network level we see ready delivered before the data row.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 1 month
[JBoss JIRA] (TEIID-5658) PG transport can sendResults before sync
by Ramesh Reddy (Jira)
[ https://issues.jboss.org/browse/TEIID-5658?page=com.atlassian.jira.plugin... ]
Ramesh Reddy commented on TEIID-5658:
-------------------------------------
If you need to debug wire protocol Wireshark has decoder for PG which is really useful.
> PG transport can sendResults before sync
> ----------------------------------------
>
> Key: TEIID-5658
> URL: https://issues.jboss.org/browse/TEIID-5658
> Project: Teiid
> Issue Type: Bug
> Components: ODBC
> Reporter: Steven Hawkins
> Assignee: Steven Hawkins
> Priority: Major
> Fix For: 12.1, 12.0.1, 11.2.3
>
>
> The code is allowing for a sequence of events such as:
> 2019-02-13 14:07:47.613 org.teiid.ODBC TRACE NIO4 invoking server method: prepare [, select oid from pg_class where relname='pg_class', []]
> 2019-02-13 14:07:47.615 org.teiid.ODBC TRACE NIO4 invoking client method: org.teiid.transport.ODBCClientInstance$1@d875495 prepareCompleted []
> 2019-02-13 14:07:47.615 org.teiid.ODBC TRACE NIO4 invoking server method: bindParameters [, , [], 0, null, UTF-8]
> 2019-02-13 14:07:47.615 org.teiid.ODBC TRACE NIO4 invoking client method: org.teiid.transport.ODBCClientInstance$1@d875495 bindComplete null
> 2019-02-13 14:07:47.617 org.teiid.ODBC TRACE NIO4 invoking server method: getResultSetMetaDataDescription []
> 2019-02-13 14:07:47.617 org.teiid.ODBC TRACE NIO4 invoking client method: org.teiid.transport.ODBCClientInstance$1@d875495 sendResultSetDescription [[org.teiid.odbc.PGUtil$PgColInfo@1086babd], null]
> 2019-02-13 14:07:47.617 org.teiid.ODBC TRACE NIO4 invoking server method: execute [, 0]
> 2019-02-13 14:07:47.618 org.teiid.ODBC TRACE NIO4 invoking client method: org.teiid.transport.ODBCClientInstance$1@d875495 sendResults [null, org.teiid.jdbc.ResultSetImpl@1e1aed1a, [org.teiid.odbc.PGUtil$PgColInfo@1086babd], org.teiid.client.util.ResultsFuture@3b6cff36, FORWARD, -1, false, null]
> 2019-02-13 14:07:47.619 org.teiid.ODBC TRACE NIO4 invoking server method: sync null
> 2019-02-13 14:07:47.619 org.teiid.ODBC TRACE Worker0_QueryProcessorQueue368 invoking client method: org.teiid.transport.ODBCClientInstance$1@d875495 sendCommandComplete [select oid from pg_class where relname='pg_class', [1]]
> 2019-02-13 14:07:47.619 org.teiid.ODBC TRACE NIO4 invoking client method: org.teiid.transport.ODBCClientInstance$1@d875495 ready [false, false]
> That is after execute we are immediately responding with results. That response ahead of the sync causes issues in the pg jdbc driver such as reporting that there is no result set. See TEIID-5425
> This does not appear to be a requirement of the flow: https://www.postgresql.org/docs/9.3/protocol-flow.html#AEN99807
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 1 month
[JBoss JIRA] (TEIID-5658) PG transport can sendResults before sync
by Steven Hawkins (Jira)
[ https://issues.jboss.org/browse/TEIID-5658?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-5658:
---------------------------------------
These errors do not occur if I switch out the teiid backend for an actual pg instance.
It's also not related to the ObjectChannelImpl - synchronizing to guard against it's use by the nio and engine threads does not help. I've even reproduced this error when just the NIO thread is used, so that can't be it either.
I'll switch to the network level, rather than our message level.
> PG transport can sendResults before sync
> ----------------------------------------
>
> Key: TEIID-5658
> URL: https://issues.jboss.org/browse/TEIID-5658
> Project: Teiid
> Issue Type: Bug
> Components: ODBC
> Reporter: Steven Hawkins
> Assignee: Steven Hawkins
> Priority: Major
> Fix For: 12.1, 12.0.1, 11.2.3
>
>
> The code is allowing for a sequence of events such as:
> 2019-02-13 14:07:47.613 org.teiid.ODBC TRACE NIO4 invoking server method: prepare [, select oid from pg_class where relname='pg_class', []]
> 2019-02-13 14:07:47.615 org.teiid.ODBC TRACE NIO4 invoking client method: org.teiid.transport.ODBCClientInstance$1@d875495 prepareCompleted []
> 2019-02-13 14:07:47.615 org.teiid.ODBC TRACE NIO4 invoking server method: bindParameters [, , [], 0, null, UTF-8]
> 2019-02-13 14:07:47.615 org.teiid.ODBC TRACE NIO4 invoking client method: org.teiid.transport.ODBCClientInstance$1@d875495 bindComplete null
> 2019-02-13 14:07:47.617 org.teiid.ODBC TRACE NIO4 invoking server method: getResultSetMetaDataDescription []
> 2019-02-13 14:07:47.617 org.teiid.ODBC TRACE NIO4 invoking client method: org.teiid.transport.ODBCClientInstance$1@d875495 sendResultSetDescription [[org.teiid.odbc.PGUtil$PgColInfo@1086babd], null]
> 2019-02-13 14:07:47.617 org.teiid.ODBC TRACE NIO4 invoking server method: execute [, 0]
> 2019-02-13 14:07:47.618 org.teiid.ODBC TRACE NIO4 invoking client method: org.teiid.transport.ODBCClientInstance$1@d875495 sendResults [null, org.teiid.jdbc.ResultSetImpl@1e1aed1a, [org.teiid.odbc.PGUtil$PgColInfo@1086babd], org.teiid.client.util.ResultsFuture@3b6cff36, FORWARD, -1, false, null]
> 2019-02-13 14:07:47.619 org.teiid.ODBC TRACE NIO4 invoking server method: sync null
> 2019-02-13 14:07:47.619 org.teiid.ODBC TRACE Worker0_QueryProcessorQueue368 invoking client method: org.teiid.transport.ODBCClientInstance$1@d875495 sendCommandComplete [select oid from pg_class where relname='pg_class', [1]]
> 2019-02-13 14:07:47.619 org.teiid.ODBC TRACE NIO4 invoking client method: org.teiid.transport.ODBCClientInstance$1@d875495 ready [false, false]
> That is after execute we are immediately responding with results. That response ahead of the sync causes issues in the pg jdbc driver such as reporting that there is no result set. See TEIID-5425
> This does not appear to be a requirement of the flow: https://www.postgresql.org/docs/9.3/protocol-flow.html#AEN99807
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 1 month