[ 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)