[
https://issues.apache.org/jira/browse/CALCITE-4489?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stamatis Zampetakis closed CALCITE-4489.
----------------------------------------
Assignee: Stamatis Zampetakis
> Avatica JdbcMeta statement IDs Concurrency problem
> --------------------------------------------------
>
> Key: CALCITE-4489
> URL: https://issues.apache.org/jira/browse/CALCITE-4489
> Project: Calcite
> Issue Type: Bug
> Components: avatica
> Affects Versions: 1.17.0
> Reporter: Vlad Skarzhevskyy
> Assignee: Stamatis Zampetakis
> Priority: Major
> Fix For: 1.18.0
>
> Attachments: LoadAllData.java, stak-trace-v2.txt, stak-trace.txt
>
> Time Spent: 20m
> 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)