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

Yongzhi Chen commented on HIVE-13959:
-------------------------------------

[~ctang.ma]
I do not quite understand how MoveTask releases all locks under a 
HiveLockObject pathNames.
It looks for me as following:
One LoadTableDesc object map to one WriteEntity;
one WriteEntity map to one List<HiveLockObj>.
These list of HiveLockObj are all created during acquireLocks related to the 
query.
In the releaseLocks code, lockObj.getObj() return HiveLockObject
List<HiveLock> locks = lockMgr.getLocks(lockObj.getObj(), false, true);
HiveLockObject equals method need both 
pathNames are same and HiveLockObjectData are same. 
HiveLockObjectData equals method need query_id, lock_mode, lock_time... are all 
same. 
So I think the locks return by getLocks should all related to the query. 
Therefore, MoveTask has no chance to release other query's locks. 
Do I miss something? 


> MoveTask should only release its query associated locks
> -------------------------------------------------------
>
>                 Key: HIVE-13959
>                 URL: https://issues.apache.org/jira/browse/HIVE-13959
>             Project: Hive
>          Issue Type: Bug
>          Components: Locking
>            Reporter: Chaoyu Tang
>            Assignee: Chaoyu Tang
>         Attachments: HIVE-13959.patch, HIVE-13959.patch
>
>
> releaseLocks in MoveTask releases all locks under a HiveLockObject pathNames. 
> But some of locks under this pathNames might be for other queries and should 
> not be released.



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

Reply via email to