Vihang Karajgaonkar created HIVE-19050:
------------------------------------------
Summary: DBNotificationListener does not catch exceptions in the
cleaner thread
Key: HIVE-19050
URL: https://issues.apache.org/jira/browse/HIVE-19050
Project: Hive
Issue Type: Bug
Components: Metastore, Standalone Metastore
Affects Versions: 3.0.0, 2.4.0
Reporter: Vihang Karajgaonkar
Assignee: Vihang Karajgaonkar
The DbNotificationListener class has a separate thread which cleans the old
notifications from the database. Here is the snippet from the {{run}} method.
{noformat}
public void run() {
while (true) {
rs.cleanNotificationEvents(ttl);
LOG.debug("Cleaner thread done");
try {
Thread.sleep(sleepTime);
} catch (InterruptedException e) {
LOG.info("Cleaner thread sleep interrupted", e);
}
}
}
{noformat}
If {{rs.cleanNotificationEvents}} throws a RuntimeException which datanucleus
can throw the exception remains uncaught and the thread will die. This can lead
to older notifications never getting cleaned until we restart HMS. Given that
many operations generate loads of events, the notification log table can
quickly have thousands of rows which are never get cleaned up.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)