You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Parag Jain (Jira)" <ji...@apache.org> on 2023/06/05 13:54:00 UTC
[jira] [Commented] (CALCITE-5752) Error during session reset in avatica go driver
[ https://issues.apache.org/jira/browse/CALCITE-5752?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17729328#comment-17729328 ]
Parag Jain commented on CALCITE-5752:
-------------------------------------
Fix here - https://github.com/apache/calcite-avatica-go/pull/64
> Error during session reset in avatica go driver
> -----------------------------------------------
>
> Key: CALCITE-5752
> URL: https://issues.apache.org/jira/browse/CALCITE-5752
> Project: Calcite
> Issue Type: Bug
> Components: avatica-go
> Affects Versions: 1.34.0
> Reporter: Parag Jain
> Assignee: Francis Chuang
> Priority: Major
> Time Spent: 10m
> Remaining Estimate: 0h
>
> In Go sql package when an idle connection is picked from the pool, *ResetSession* method is called on the connection. In the drivers implementation of this method [here|https://github.com/apache/calcite-avatica-go/blob/main/connection.go#L236], *registerConn* method is called which actually does an *OpenConnectionRequest* with the existing connectionId. On the Druid side it actually throws an exception [here|https://github.com/apache/druid/blob/master/sql/src/main/java/org/apache/druid/sql/avatica/DruidMeta.java#L823] saying the connection is already open. I checked other driver implementations like [postgres|https://github.com/jackc/pgx/blob/master/stdlib/sql.go#L307] and [mysql|https://github.com/go-sql-driver/mysql/blob/master/connection.go#L638] for ResetSession method and they actually don't open a new connection. So not sure about the reason for doing this here. Any thoughts on this ? Example exception stack trace -
> {code:java}
> 2023-05-22T19:24:47,357 ERROR [qtp411114562-140] org.apache.druid.sql.avatica.DruidMeta - Connection [fcf73260-cb72-b867-154b-e39a19569c5e] already open.
> org.apache.druid.java.util.common.ISE: Connection [fcf73260-cb72-b867-154b-e39a19569c5e] already open.
> at org.apache.druid.sql.avatica.DruidMeta.openDruidConnection(DruidMeta.java:823) ~[classes/:?]
> at org.apache.druid.sql.avatica.DruidMeta.openConnection(DruidMeta.java:208) ~[classes/:?]
> at org.apache.calcite.avatica.remote.LocalService.apply(LocalService.java:285) ~[avatica-core-1.17.0.jar:1.17.0]
> at org.apache.calcite.avatica.remote.Service$OpenConnectionRequest.accept(Service.java:1770) ~[avatica-core-1.17.0.jar:1.17.0]
> at org.apache.calcite.avatica.remote.Service$OpenConnectionRequest.accept(Service.java:1750) ~[avatica-core-1.17.0.jar:1.17.0]
> at org.apache.calcite.avatica.remote.AbstractHandler.apply(AbstractHandler.java:94) ~[avatica-core-1.17.0.jar:1.17.0]
> at org.apache.calcite.avatica.remote.ProtobufHandler.apply(ProtobufHandler.java:46) ~[avatica-core-1.17.0.jar:1.17.0]
> at org.apache.calcite.avatica.server.AvaticaProtobufHandler.handle(AvaticaProtobufHandler.java:126) ~[avatica-server-1.17.0.jar:1.17.0]
> at org.apache.druid.sql.avatica.DruidAvaticaProtobufHandler.handle(DruidAvaticaProtobufHandler.java:61) ~[classes/:?] {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)