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)