hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chaoyu Tang (JIRA)" <>
Subject [jira] [Commented] (HIVE-14774) Canceling query using Ctrl-C in beeline might lead to stale locks
Date Thu, 22 Sep 2016 04:11:20 GMT


Chaoyu Tang commented on HIVE-14774:

[~mohitsabharwal] SQLOperation is running a query in a background thread, its driver does
lock acquisition, query execution etc. When Ctrl-C shuts down Beeline, it triggers TServerEventHandler
deleteContext which in term closes the Session therefore cleaning up the operation (in the
session thread). This cleanup close/destroy Driver (nullify its fields like ctx, plan etc),
so the Driver running in background might fail in a certain step by RuntimeException (e.g.
NPE) which have not been handled completely or properly in Hive. In a race condition when
the Drive is about to acquire the locks in background thread and the SQLOperation cleanup
has destroyed/closed driver but not yet kill the ground thread, the query process running
in the background could still be able to acquire the locks but these locks might never have
a chance to be cleared later.
The simplest and right way is first to kill the running query in the background, followed
by driver close/destroy which ensures that  the locks, if any, acquired in the Driver would
be cleared.
Does that make sense?

> Canceling query using Ctrl-C in beeline might lead to stale locks
> -----------------------------------------------------------------
>                 Key: HIVE-14774
>                 URL:
>             Project: Hive
>          Issue Type: Bug
>          Components: Locking
>            Reporter: Chaoyu Tang
>            Assignee: Chaoyu Tang
>         Attachments: HIVE-14774.patch
> Terminating a running query using Ctrl-C in Beeline might lead to stale locks since the
process running the query might still be able to acquire the locks but fail to release them
after the query terminate abnormally.

This message was sent by Atlassian JIRA

View raw message