[
https://issues.apache.org/jira/browse/HIVE-7225?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14034400#comment-14034400
]
Ted Yu commented on HIVE-7225:
------------------------------
Hive depends on BoneCP 0.8.0
I cloned BoneCP locally and looked at their code.
{code}
public class ConnectionHandle implements Connection,Serializable{
{code}
In ConnectionHandle ctor, I see:
{code}
this.detectUnclosedStatements =
pool.getConfig().isDetectUnclosedStatements();
this.closeOpenStatements = pool.getConfig().isCloseOpenStatements();
{code}
In close() method:
{code}
if (this.closeOpenStatements){
for (Entry<Statement, String> statementEntry:
this.trackedStatement.entrySet()){
statementEntry.getKey().close();
if (this.detectUnclosedStatements){
logger.warn(String.format(UNCLOSED_LOG_ERROR_MESSAGE,
statementEntry.getValue()));
}
}
this.trackedStatement.clear();
}
{code}
In Hive codebase, I don't see call that turns on closeOpenStatements.
> Unclosed Statement's in TxnHandler
> ----------------------------------
>
> Key: HIVE-7225
> URL: https://issues.apache.org/jira/browse/HIVE-7225
> Project: Hive
> Issue Type: Bug
> Reporter: Ted Yu
> Assignee: steve, Oh
> Attachments: HIVE-7225.1.patch
>
>
> There're several methods in TxnHandler where Statement (local to the method)
> is not closed upon return.
> Here're a few examples:
> In compact():
> {code}
> stmt.executeUpdate(s);
> LOG.debug("Going to commit");
> dbConn.commit();
> {code}
> In showCompact():
> {code}
> Statement stmt = dbConn.createStatement();
> String s = "select cq_database, cq_table, cq_partition, cq_state,
> cq_type, cq_worker_id, " +
> "cq_start, cq_run_as from COMPACTION_QUEUE";
> LOG.debug("Going to execute query <" + s + ">");
> ResultSet rs = stmt.executeQuery(s);
> {code}
--
This message was sent by Atlassian JIRA
(v6.2#6252)