[teiid-issues] [JBoss JIRA] (TEIID-5061) UNION query does not fail or fails with incorrect error message

Steven Hawkins (JIRA) issues at jboss.org
Tue Sep 12 12:56:00 EDT 2017


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

Steven Hawkins commented on TEIID-5061:
---------------------------------------

I don't see the behavior you are describing.  For a non-transactional request results are delivered as soon as they are available to the client.  In this union scenario that can include just delivering the 1 value initially.  If you fully read the resultset then you will see the failure you expect.  Under no circumstance should you get an empty resultset.

The other warning you are showing in the logs seem to be from the client trying to perform additional operations on the resultset after it has already errorred, which can return a message that the request has already been closed - but the actual exception should have already been seen by the client.

> UNION query does not fail or fails with incorrect error message
> ---------------------------------------------------------------
>
>                 Key: TEIID-5061
>                 URL: https://issues.jboss.org/browse/TEIID-5061
>             Project: Teiid
>          Issue Type: Bug
>          Components: Query Engine
>    Affects Versions: 9.3.1
>         Environment: teiid-9.3.1 on WildFly Full 10.0.0.Final (WildFly Core 2.0.10.Final)
>            Reporter: dalex dalex
>            Assignee: Steven Hawkins
>            Priority: Blocker
>
> Running the following queries:
> {code:sql}
> select a from test_pg.test_a 
> union all
> select 1
> union all 
> select * from (call procs.pr()) x
> {code}
> or
> {code:sql}
> select a from test_pg.test_a 
> union all
> select 1
> union all 
> select * from (call procs.pr()) x
> union all
> select a from test_pg.test_a
> {code}
> UNION queries do not fail or fail with an incorrect error message returning no results. 
> That is the first run will return the following stacktrace in logs:
> {noformat}
> 2017-09-12 15:06:26,585 WARN  [org.teiid.PROCESSOR] (Worker2_QueryProcessorQueue7) XH74byN2GJ4K TEIID30020 Processing exception for request XH74byN2GJ4K.0 'TEIID30167 org.teiid.jdbc.
> TeiidSQLException: TEIID30328 Unable to evaluate (1 / 0): TEIID30384 Error while evaluating function /'. Originally ProcedureErrorInstructionException '/ by zero' FunctionMethods.jav
> a:296. Enable more detailed logging to see the entire stacktrace.
> {noformat}
> returning no results, the second run of the same query will return:
> {noformat}
> 2017-09-12 15:07:39,427 WARN  [org.teiid.PROCESSOR] (Worker2_QueryProcessorQueue10) XH74byN2GJ4K TEIID30020 Processing exception for request XH74byN2GJ4K.1 'TEIID30167 org.teiid.jdbc
> .TeiidSQLException: TEIID30328 Unable to evaluate (1 / 0): TEIID30384 Error while evaluating function /'. Originally ProcedureErrorInstructionException '/ by zero' FunctionMethods.ja
> va:296. Enable more detailed logging to see the entire stacktrace.
> 2017-09-12 15:07:39,434 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,450 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,454 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,465 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,470 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,474 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,483 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,487 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,500 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,506 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,516 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,520 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,534 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,538 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> 2017-09-12 15:07:39,549 WARN  [org.teiid.PROCESSOR] (NIO1) XH74byN2GJ4K TEIID40011 Processing exception 'TEIID30495 The request XH74byN2GJ4K.1 has been closed.' for session XH74byN2G
> J4K.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.process.DQPCore.getRequestWorkItem(DQPCore.java:475). Enable more detailed logging to
> see the entire stacktrace.
> {noformat}
> again without any query results.
> So these queries should return error messages like usual call of the virtual procedure pr does:
> {code:sql}
> call procs.pr()
> {code}
> instead of just closing requests.



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


More information about the teiid-issues mailing list