Steve Carlin created HIVE-26094:
-----------------------------------

             Summary: Compaction Worker thread not freeing the lock when lock 
status returned as WAITING
                 Key: HIVE-26094
                 URL: https://issues.apache.org/jira/browse/HIVE-26094
             Project: Hive
          Issue Type: New Feature
          Components: Locking
            Reporter: Steve Carlin


The following error occurs in the HS2 logs:

 
{code:java}
(Worker.java:findNextCompactionAndExecute(538)) - Caught an exception in the 
main loop of compactor worker 
hiveserver2-0.hiveserver2-service.compute-1648522810-vk7c.svc.cluster.local-62
org.apache.thrift.TException: Unable to acquire lock(s) on 
{boa_small_feng.stocks_boa_2019.year=2013}, status {WAITING}, reason {null}
{code}
This happens when the compactor thread tries to grab a lock on a table that 
already has a lock on it.  

On the HMS side, the lock is saved in the database and queues up the lock.  
This queued up lock will block other tables from grabbing the lock even after 
the original lock is removed.

When the Worker object on the client side sees this status, it should either 
unlock immediately if it chooses not to run compaction or keep rechecking the 
lock.  Currently it does neither. 

The effect of this is that the lock stays on the table until it times out. This 
prevents other threads from grabbing the lock.

The code should probably change to remove the lock immediately.

 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to