You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "Vlad Skarzhevskyy (Jira)" <ji...@apache.org> on 2021/02/05 16:31:01 UTC

[jira] [Created] (CALCITE-4489) Avatica JdbcMeta statement IDs Concurrency problem

Vlad Skarzhevskyy created CALCITE-4489:
------------------------------------------

             Summary: Avatica JdbcMeta statement IDs Concurrency problem
                 Key: CALCITE-4489
                 URL: https://issues.apache.org/jira/browse/CALCITE-4489
             Project: Calcite
          Issue Type: Bug
          Components: core
    Affects Versions: 1.26.0
            Reporter: Vlad Skarzhevskyy
         Attachments: stak-trace.txt

  We encountered the JdbcMeta statement IDs concurrency problems that lead to errors pulling the data from avatica JDBC remote http server under heavy load.
  The error stack trace for the error is  attached.
  
  Our setup:   Avatica JDBC remote  http server handled by Calcite on the server side.
  For the record we had not been able to reproduce the same problems with Avatica, only remote proxy connected directly to DB.
 
  We believe that  the cause of the problem is unsynchronized increment of connection.statementCount
  see  MetaImpl.createStatement
[https://github.com/apache/calcite-avatica/blob/master/core/src/main/java/org/apache/calcite/avatica/MetaImpl.java#L213]
{code:java}
public StatementHandle createStatement(ConnectionHandle ch) {
     return new StatementHandle(ch.id, connection.statementCount++, null);
}{code}
 Suggested  fix is to use  AtomicInteger  for statementCount.
 Our stress tests show that the problem is resolved by the fix..
 
 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)