[ https://issues.apache.org/jira/browse/HIVE-7483?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14714475#comment-14714475 ]
Furcy Pin commented on HIVE-7483: --------------------------------- I confirm, we are having the same issue on Hive 1.1.0, and I reproduced it on 1.2.1 CREATE TABLE test_db.test_table (id INT) PARTITIONED BY (part STRING) STORED AS ORC ; INSERT INTO TABLE test_db.test_table PARTITION (part="test") VALUES (1), (2), (3), (4) ; SET hive.exec.dynamic.partition.mode=nonstrict ; SET hive.support.concurrency=true ; INSERT OVERWRITE TABLE test_db.test_table PARTITION (part) SELECT * FROM test_db.test_table ; nothing happens, and when doing a SHOW LOCKS in another shell we get : +----------+-----------+------------+------------+-------------+--------------+-----------------+-----------------+----------------+ | lockid | database | table | partition | lock_state | lock_type | transaction_id | last_heartbeat | acquired_at | +----------+-----------+------------+------------+-------------+--------------+-----------------+-----------------+----------------+ | 3765 | test_db | test_table | NULL | WAITING | EXCLUSIVE | NULL | 1440603633148 | NULL | | 3765 | test_db | test_table | part=test | WAITING | SHARED_READ | NULL | 1440603633148 | NULL | +----------+-----------+------------+------------+-------------+--------------+-----------------+-----------------+----------------+ from looking at the source of org.apache.hadoop.hive.ql.lockmgr.EmbeddedLockManager, I would say it is stuck in the for loop of the method lock(List<HiveLockObj> objs, int numRetriesForLock, long sleepTime), where lockPrimitive() keeps failing on the second lock. > hive insert overwrite table select from self dead lock > ------------------------------------------------------ > > Key: HIVE-7483 > URL: https://issues.apache.org/jira/browse/HIVE-7483 > Project: Hive > Issue Type: Bug > Components: Locking > Affects Versions: 0.13.1 > Reporter: Xiaoyu Wang > > CREATE TABLE test( > id int, > msg string) > PARTITIONED BY ( > continent string, > country string) > CLUSTERED BY (id) > INTO 10 BUCKETS > STORED AS ORC; > alter table test add partition(continent='Asia',country='India'); > in hive-site.xml: > hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager; > hive.support.concurrency=true; > in hive shell: > set hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat; > insert into test table some records first. > then execute sql: > insert overwrite table test partition(continent='Asia',country='India') > select id,msg from test; > the log stop at : > INFO log.PerfLogger: <PERFLOG method=acquireReadWriteLocks > from=org.apache.hadoop.hive.ql.Driver> > i think it has dead lock when insert overwrite table from it self. -- This message was sent by Atlassian JIRA (v6.3.4#6332)