[ 
https://issues.apache.org/jira/browse/IGNITE-17998?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Pereslegin updated IGNITE-17998:
--------------------------------------
    Description: 
ItSqlAsynchronousApiTest#closeSession is unstable.
{noformat}
org.opentest4j.AssertionFailedError: Exception is neither of a specified class, 
nor has a cause of the specified class: class org.apache.ignite.sql.SqlException

        at org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:43)
        at org.junit.jupiter.api.Assertions.fail(Assertions.java:146)
        at 
org.apache.ignite.internal.testframework.IgniteTestUtils.assertThrowsWithCause(IgniteTestUtils.java:284)
        at 
org.apache.ignite.internal.testframework.IgniteTestUtils.assertThrowsWithCause(IgniteTestUtils.java:264)
        at 
org.apache.ignite.internal.sql.api.ItSqlAsynchronousApiTest.closeSession(ItSqlAsynchronousApiTest.java:541)
{noformat}
h3. {*}UPDATE{*}:

Since the test shows that the current behavior of "fetchNextPage" is unstable 
on a closed session, we decided to investigate other possible use-cases on a 
closed session.
h4. The results are as follows:

The behavior of the "execute*" session methods on a closed session is correct - 
we throw a SqlException with the message "Session is closed" for any local 
execution.

Session return sync or async resultset. The 
"hasRowSet/affectedRows/wasApplied/metadata" methods are generic and give the 
expected results in a closed session with no errors.

 

The results of the rest of the methods are presented in the following table.
||*ResultSet type*||*Method*||*RESULT*|| ||
|| || ||*Data absent*||{*}Data present (pageSize=2){*}{*}{{*}}||
|*sync*|*hasNext*|false|true|
| |*next*|NoSuchElementException|4 rows, then CursorClosedException|
| | | | |
|*async*|*CurrentPage (hasNext)*|false|true|
| |*currentPageSize*|0|2|
| |*hasMorePages*|false|true|
| |*fetchNextPage*|SqlException IGN-SQL-1 There are no more pages.|Expected: 
CursorClosedException
Currently: No exception or CursorClosedException or ExecutionCancelledException|

 
|*ResultSet type*|*Method*|*RESULT*|
| |*Data absent*|*Data present (pageSize=2)*|
|sync|*hasNext*|false|true|
|*next*|NoSuchElementException|4 rows, then CursorClosedException|
| |
|async|*CurrentPage (hasNext)*|false|true|
|*currentPageSize*|0|2|
|*hasMorePages*|false|true|
|*fetchNextPage*|SqlException IGN-SQL-1 There are no more pages.|Expected: 
CursorClosedException
Currently: No exception or CursorClosedException or ExecutionCancelledException|

  was:
ItSqlAsynchronousApiTest#closeSession is unstable.
{noformat}
org.opentest4j.AssertionFailedError: Exception is neither of a specified class, 
nor has a cause of the specified class: class org.apache.ignite.sql.SqlException

        at org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:43)
        at org.junit.jupiter.api.Assertions.fail(Assertions.java:146)
        at 
org.apache.ignite.internal.testframework.IgniteTestUtils.assertThrowsWithCause(IgniteTestUtils.java:284)
        at 
org.apache.ignite.internal.testframework.IgniteTestUtils.assertThrowsWithCause(IgniteTestUtils.java:264)
        at 
org.apache.ignite.internal.sql.api.ItSqlAsynchronousApiTest.closeSession(ItSqlAsynchronousApiTest.java:541)
{noformat}
h3. {*}UPDATE{*}:

Since the test shows that the current behavior of "fetchNextPage" is unstable 
on a closed session, we decided to investigate other possible use-cases on a 
closed session.
h4. The results are as follows:

The behavior of the "execute*" session methods on a closed session is correct - 
we throw a SqlException with the message "Session is closed" for any local 
execution.

Session return sync or async resultset. The 
"hasRowSet/affectedRows/wasApplied/metadata" methods are generic and give the 
expected results in a closed session with no errors.

 

The results of the rest of the methods are presented in the following table.
||*ResultSet type*||*Method*||*RESULT*|| | |
|| || ||*Data absent*||{*}Data present (pageSize=2){*}{*}{*}|| ||
|*sync*|*hasNext*|false|true| |
| |*next*|NoSuchElementException|4 rows, then CursorClosedException| |
| | | | | |
|*async*|*CurrentPage (hasNext)*|false|true| |
| |*currentPageSize*|0|2| |
| |*hasMorePages*|false|true| |
| |*fetchNextPage*|SqlException IGN-SQL-1 There are no more pages.|Expected: 
CursorClosedException
Currently: No exception or CursorClosedException or 
ExecutionCancelledException| |

 
|*ResultSet type*|*Method*|*RESULT*|
| |*Data absent*|*Data present (pageSize=2)*|
|sync|*hasNext*|false|true|
|*next*|NoSuchElementException|4 rows, then CursorClosedException|
| |
|async|*CurrentPage (hasNext)*|false|true|
|*currentPageSize*|0|2|
|*hasMorePages*|false|true|
|*fetchNextPage*|SqlException IGN-SQL-1 There are no more pages.|Expected: 
CursorClosedException
Currently: No exception or CursorClosedException or ExecutionCancelledException|


> ItSqlAsynchronousApiTest#closeSession is unstable.
> --------------------------------------------------
>
>                 Key: IGNITE-17998
>                 URL: https://issues.apache.org/jira/browse/IGNITE-17998
>             Project: Ignite
>          Issue Type: Bug
>          Components: sql
>    Affects Versions: 3.0.0-alpha5
>            Reporter: Evgeny Stanilovsky
>            Assignee: Pavel Pereslegin
>            Priority: Major
>              Labels: ignite-3
>
> ItSqlAsynchronousApiTest#closeSession is unstable.
> {noformat}
> org.opentest4j.AssertionFailedError: Exception is neither of a specified 
> class, nor has a cause of the specified class: class 
> org.apache.ignite.sql.SqlException
>       at org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:43)
>       at org.junit.jupiter.api.Assertions.fail(Assertions.java:146)
>       at 
> org.apache.ignite.internal.testframework.IgniteTestUtils.assertThrowsWithCause(IgniteTestUtils.java:284)
>       at 
> org.apache.ignite.internal.testframework.IgniteTestUtils.assertThrowsWithCause(IgniteTestUtils.java:264)
>       at 
> org.apache.ignite.internal.sql.api.ItSqlAsynchronousApiTest.closeSession(ItSqlAsynchronousApiTest.java:541)
> {noformat}
> h3. {*}UPDATE{*}:
> Since the test shows that the current behavior of "fetchNextPage" is unstable 
> on a closed session, we decided to investigate other possible use-cases on a 
> closed session.
> h4. The results are as follows:
> The behavior of the "execute*" session methods on a closed session is correct 
> - we throw a SqlException with the message "Session is closed" for any local 
> execution.
> Session return sync or async resultset. The 
> "hasRowSet/affectedRows/wasApplied/metadata" methods are generic and give the 
> expected results in a closed session with no errors.
>  
> The results of the rest of the methods are presented in the following table.
> ||*ResultSet type*||*Method*||*RESULT*|| ||
> || || ||*Data absent*||{*}Data present (pageSize=2){*}{*}{{*}}||
> |*sync*|*hasNext*|false|true|
> | |*next*|NoSuchElementException|4 rows, then CursorClosedException|
> | | | | |
> |*async*|*CurrentPage (hasNext)*|false|true|
> | |*currentPageSize*|0|2|
> | |*hasMorePages*|false|true|
> | |*fetchNextPage*|SqlException IGN-SQL-1 There are no more pages.|Expected: 
> CursorClosedException
> Currently: No exception or CursorClosedException or 
> ExecutionCancelledException|
>  
> |*ResultSet type*|*Method*|*RESULT*|
> | |*Data absent*|*Data present (pageSize=2)*|
> |sync|*hasNext*|false|true|
> |*next*|NoSuchElementException|4 rows, then CursorClosedException|
> | |
> |async|*CurrentPage (hasNext)*|false|true|
> |*currentPageSize*|0|2|
> |*hasMorePages*|false|true|
> |*fetchNextPage*|SqlException IGN-SQL-1 There are no more pages.|Expected: 
> CursorClosedException
> Currently: No exception or CursorClosedException or 
> ExecutionCancelledException|



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to