[ 
https://issues.apache.org/jira/browse/CALCITE-4489?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17280041#comment-17280041
 ] 

Vlad Skarzhevskyy commented on CALCITE-4489:
--------------------------------------------

Hi [~vladimirsitnikov]  the calss JdbcDatasourceMeta  is our calss extends 
CalciteMetaImpl

we added to cutomize metadata exposed to Remove JDBC cleint.   

   in this class I had also a debug function createStatement

  This was is when  I creates the stack tace as in orignal atthement ..... 

If I remove it   the cleaner stack trace    [^stak-trace-v2.txt]

 

^---^

^Your prvious comments make me think   and I realized that we created 
CalciteMetaImpl  with one connection to "jdbc:calcite:"...^

and this is the connection we probably sharing between different threads on 
server. 

We will try to compile the test server project on Monday  to share our full 
Calcite Datasource on server side.

 

 

 

> 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
>            Priority: Major
>         Attachments: LoadAllData.java, stak-trace-v2.txt, stak-trace.txt
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
>   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)

Reply via email to