hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Naveen Gangam (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HIVE-12790) Metastore connection leaks in HiveServer2
Date Wed, 06 Jan 2016 20:33:39 GMT

    [ https://issues.apache.org/jira/browse/HIVE-12790?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15086232#comment-15086232
] 

Naveen Gangam commented on HIVE-12790:
--------------------------------------

[~thejas] These logs are based on Hive 0.13 and I just realized the Hive object and SessionState
are no longer associated in the latest release. Regardless, given that a new connection to
the HMS is established every time right after the log message "Launching Job" is printed,
it points to the the following code in Driver.launchTask()

{code}
      console.printInfo("Launching Job " + cxt.getCurJobNo() + " out of " + jobs);
    }
    tsk.initialize(conf, plan, cxt);
    TaskResult tskRes = new TaskResult();
    TaskRunner tskRun = new TaskRunner(tsk, tskRes);
{code}

The last line above launches a new thread and the first message from that new thread is
{code}
2015-12-03 04:21:08,360 INFO  [Thread-405782()]: hive.metastore (HiveMetaStoreClient.java:open(311))
- Trying to connect to metastore with URI thrift://<anonymizedURL>:9083
{code}

So it appeared that the following codepath was creating new HMS connections  
TaskRunner.run()-->SessionState.start()-->Hive.get().getMSC()

Hive.get() should return a shared instance but for some reason, is it possible that it is
closing the current and returning a new instance?

> Metastore connection leaks in HiveServer2
> -----------------------------------------
>
>                 Key: HIVE-12790
>                 URL: https://issues.apache.org/jira/browse/HIVE-12790
>             Project: Hive
>          Issue Type: Bug
>          Components: HiveServer2
>    Affects Versions: 1.1.0
>            Reporter: Naveen Gangam
>            Assignee: Naveen Gangam
>         Attachments: HIVE-12790.patch, snippedLog.txt
>
>
> HiveServer2 keeps opening new connections to HMS each time it launches a task. These
connections do not appear to be closed when the task completes thus causing a HMS connection
leak. "lsof" for the HS2 process shows connections to port 9083.
> {code}
> 2015-12-03 04:20:56,352 INFO  [HiveServer2-Background-Pool: Thread-424756()]: ql.Driver
(SessionState.java:printInfo(558)) - Launching Job 11 out of 41
> 2015-12-03 04:20:56,354 INFO  [Thread-405728()]: hive.metastore (HiveMetaStoreClient.java:open(311))
- Trying to connect to metastore with URI thrift://<anonymizedURL>:9083
> 2015-12-03 04:20:56,360 INFO  [Thread-405728()]: hive.metastore (HiveMetaStoreClient.java:open(351))
- Opened a connection to metastore, current connections: 14824
> 2015-12-03 04:20:56,360 INFO  [Thread-405728()]: hive.metastore (HiveMetaStoreClient.java:open(400))
- Connected to metastore.
> ....
> 2015-12-03 04:21:06,355 INFO  [HiveServer2-Background-Pool: Thread-424756()]: ql.Driver
(SessionState.java:printInfo(558)) - Launching Job 12 out of 41
> 2015-12-03 04:21:06,357 INFO  [Thread-405756()]: hive.metastore (HiveMetaStoreClient.java:open(311))
- Trying to connect to metastore with URI thrift://<anonymizedURL>:9083
> 2015-12-03 04:21:06,362 INFO  [Thread-405756()]: hive.metastore (HiveMetaStoreClient.java:open(351))
- Opened a connection to metastore, current connections: 14825
> 2015-12-03 04:21:06,362 INFO  [Thread-405756()]: hive.metastore (HiveMetaStoreClient.java:open(400))
- Connected to metastore.
> ...
> 2015-12-03 04:21:08,357 INFO  [HiveServer2-Background-Pool: Thread-424756()]: ql.Driver
(SessionState.java:printInfo(558)) - Launching Job 13 out of 41
> 2015-12-03 04:21:08,360 INFO  [Thread-405782()]: hive.metastore (HiveMetaStoreClient.java:open(311))
- Trying to connect to metastore with URI thrift://<anonymizedURL>:9083
> 2015-12-03 04:21:08,364 INFO  [Thread-405782()]: hive.metastore (HiveMetaStoreClient.java:open(351))
- Opened a connection to metastore, current connections: 14826
> 2015-12-03 04:21:08,365 INFO  [Thread-405782()]: hive.metastore (HiveMetaStoreClient.java:open(400))
- Connected to metastore.
> ... 
> {code}
> The TaskRunner thread starts a new SessionState each time, which creates a new connection
to the HMS (via Hive.get(conf).getMSC()) that is never closed.
> Even SessionState.close(), currently not being called by the TaskRunner thread, does
not close this connection.
> Attaching a anonymized log snippet where the number of HMS connections reaches north
of 25000+ connections.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message