[ https://issues.apache.org/jira/browse/CALCITE-4489?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17280017#comment-17280017 ]
Vladimir Sitnikov edited comment on CALCITE-4489 at 2/5/21, 10:12 PM: ---------------------------------------------------------------------- [~vlads], could you please clarify what is the source for {noformat} at org.apache.calcite.jdbc.JdbcDatasourceMeta.createStatement(JdbcDatasourceMeta.java:156) {noformat} ? I do not see the class in Apache Calcite sources. was (Author: vladimirsitnikov): [~vlads], can you please clarify what is the source for {noformat} at org.apache.calcite.jdbc.JdbcDatasourceMeta.createStatement(JdbcDatasourceMeta.java:156) {noformat} ? I do not see the class in Apache Calcite sources. > 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.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)