You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kylin.apache.org by "Shaofeng SHI (JIRA)" <ji...@apache.org> on 2019/04/01 03:12:00 UTC
[jira] [Updated] (KYLIN-3908) KylinClient's
HttpRequest.releaseConnection is not needed in retrieveMetaData &
executeKylinQuery
[ https://issues.apache.org/jira/browse/KYLIN-3908?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Shaofeng SHI updated KYLIN-3908:
--------------------------------
Fix Version/s: (was: Future)
v3.0.0
> KylinClient's HttpRequest.releaseConnection is not needed in retrieveMetaData & executeKylinQuery
> --------------------------------------------------------------------------------------------------
>
> Key: KYLIN-3908
> URL: https://issues.apache.org/jira/browse/KYLIN-3908
> Project: Kylin
> Issue Type: Improvement
> Components: Driver - JDBC
> Affects Versions: v2.5.2
> Reporter: Xiaobo Liao
> Assignee: Xiaobo Liao
> Priority: Trivial
> Fix For: v3.0.0
>
>
> In Kylin client's code [https://github.com/apache/kylin/blob/master/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java]
> retrieveMetaData & executeKylinQuery will call HttpRequestBase.releaseConnection() if the HTTP calls are succeeded, but not doing so if calls are failed.
> According to HttpClient's stack trace, connections are released back to connection manager after content is consumed. So it is not necessary to call releaseConnection in retrieveMetaData & executeKylinQuery.
> Of course calling releaseConnection is not harmful, but the code now looks confusing that only calling releaseConnection if responded with 20x.
>
> BasicClientConnectionManager.releaseConnection(ManagedClientConnection, long, TimeUnit) line: 194
> ManagedClientConnectionImpl.releaseConnection() line: 447
> BasicManagedEntity.releaseManagedConnection() line: 201
> BasicManagedEntity.streamClosed(InputStream) line: 176
> EofSensorInputStream.checkClose() line: 237
> EofSensorInputStream.close() line: 186
> UTF8StreamJsonParser._closeInput() line: 242
> UTF8StreamJsonParser(ParserBase).close() line: 385
> ObjectMapper._readMapAndClose(JsonParser, JavaType) line: 3745
> ObjectMapper.readValue(InputStream, Class<T>) line: 2796
> KylinClient.executeKylinQuery(String, List<StatementParameter>, Map<String,String>) line: 379
> KylinClient.executeQuery(String, List<AvaticaParameter>, List<Object>, Map<String,String>) line: 326
> KylinResultSet.execute() line: 69
> AvaticaConnection$1.execute() line: 607
> KylinMeta.prepareAndExecute(Meta$StatementHandle, String, long, int, Meta$PrepareCallback) line: 111
> KylinConnection(AvaticaConnection).prepareAndExecuteInternal(AvaticaStatement, String, long) line: 615
> KylinStatement(AvaticaStatement).executeInternal(String) line: 148
> KylinStatement(AvaticaStatement).executeQuery(String) line: 218
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)