[ https://issues.apache.org/jira/browse/CALCITE-4489?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vlad Skarzhevskyy resolved CALCITE-4489. ---------------------------------------- Resolution: Invalid > 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)