An interesting one I noted is that even after killing the process locks are still held for a long time
First kill the job /home/hduser/hadoop-2.6.0/bin/hadoop job -kill job_1445590859106_0003 INFO impl.YarnClientImpl: Killed application application_1445590859106_0003 Locks are still held Lock ID Database Table Partition State Type Transaction ID Last Hearbeat Acquired At User Hostname 14048 asehadoop t_staging NULL ACQUIRED SHARED_READ NULL 1446024486900 1446020114548 hduser rhes564 14048 asehadoop t NULL ACQUIRED SHARED_READ NULL 1446024486900 1446020114549 hduser rhes564 And If I look into table HIVE_LOCKS in my Oracle metadata, I see that they are being held for a long time after killing the process 1* select to_char(sysdate,'HH:MI:SS') AS "Timing", HL_TABLE, HL_LOCK_STATE, HL_LOCK_TYPE, HL_LAST_HEARTBEAT, HL_ACQUIRED_AT from hiveuser.HIVE_LOCKS; Timing HL_TABLE HL_LOCK_STATE HL_LOCK_TYPE HL_LAST_HEARTBEAT HL_ACQUIRED_AT -------- --------------- --------------- --------------- ----------------- -------------- 09:53:26 t_staging a r 1.4460E+12 1.4460E+12 09:53:26 t a r 1.4460E+12 1.4460E+12 Timing HL_TABLE HL_LOCK_STATE HL_LOCK_TYPE HL_LAST_HEARTBEAT HL_ACQUIRED_AT -------- --------------- --------------- --------------- ----------------- -------------- 10:09:53 t_staging a r 1.4460E+12 1.4460E+12 10:09:53 t a r 1.4460E+12 1.4460E+12 Which is more than 16 minutes The only way I can get rid of the locks is to drop table t (see email below for the code) drop table if exists t; OK Time taken: 0.119 seconds hive> desc t; FAILED: SemanticException [Error 10001]: Table not found t select to_char(sysdate,'HH:MI:SS') AS "Timing", HL_TABLE, HL_LOCK_STATE, HL_LOCK_TYPE, HL_LAST_HEARTBEAT, HL_ACQUIRED_AT from hiveuser.HIVE_LOCKS; no rows selected Mich Talebzadeh Sybase ASE 15 Gold Medal Award 2008 A Winning Strategy: Running the most Critical Financial Data on ASE 15 http://login.sybase.com/files/Product_Overviews/ASE-Winning-Strategy-091908. pdf Author of the books "A Practitioner's Guide to Upgrading to Sybase ASE 15", ISBN 978-0-9563693-0-7. co-author "Sybase Transact SQL Guidelines Best Practices", ISBN 978-0-9759693-0-4 Publications due shortly: Complex Event Processing in Heterogeneous Environments, ISBN: 978-0-9563693-3-8 Oracle and Sybase, Concepts and Contrasts, ISBN: 978-0-9563693-1-4, volume one out shortly http://talebzadehmich.wordpress.com <http://talebzadehmich.wordpress.com/> NOTE: The information in this email is proprietary and confidential. This message is for the designated recipient only, if you are not the intended recipient, you should destroy it immediately. Any information in this message shall not be understood as given or endorsed by Peridale Technology Ltd, its subsidiaries or their employees, unless expressly so stated. It is the responsibility of the recipient to ensure that this email is virus free, therefore neither Peridale Ltd, its subsidiaries nor their employees accept any responsibility. From: Mich Talebzadeh [mailto:m...@peridale.co.uk] Sent: 23 October 2015 22:37 To: user@hive.apache.org Subject: RE: locks are held on tables even when no job running Hi Eugene, The code drops the table if exists and that is the exclusive lock. Once created it is populated from another use asehadoop; drop table if exists t; create table t ( owner varchar(30) ,object_name varchar(30) ,subobject_name varchar(30) ,object_id bigint ,data_object_id bigint ,object_type varchar(19) ,created timestamp ,last_ddl_time timestamp ,timestamp varchar(19) ,status varchar(7) ,temporary2 varchar(1) ,generated varchar(1) ,secondary varchar(1) ,namespace bigint ,edition_name varchar(30) ,padding1 varchar(4000) ,padding2 varchar(3500) ,attribute varchar(32) ,op_type int ,op_time timestamp ) clustered by (object_id) into 256 buckets ; INSERT INTO TABLE t SELECT owner , object_name , subobject_name , object_id , data_object_id , object_type , cast(created AS timestamp) , cast(last_ddl_time AS timestamp) , timestamp , status , temporary2 , generated , secondary , namespace , edition_name , padding1 , padding2 , attribute , 1 , cast(from_unixtime(unix_timestamp()) AS timestamp) FROM t_staging ; I killed the program using Ctrl C and then used mapred job as below to kill mapred job -kill job_1445590859106_0002 Killed job job_1445590859106_0002 Still locks were held HTH Mich Talebzadeh Sybase ASE 15 Gold Medal Award 2008 A Winning Strategy: Running the most Critical Financial Data on ASE 15 http://login.sybase.com/files/Product_Overviews/ASE-Winning-Strategy-091908. pdf Author of the books "A Practitioner's Guide to Upgrading to Sybase ASE 15", ISBN 978-0-9563693-0-7. co-author "Sybase Transact SQL Guidelines Best Practices", ISBN 978-0-9759693-0-4 Publications due shortly: Complex Event Processing in Heterogeneous Environments, ISBN: 978-0-9563693-3-8 Oracle and Sybase, Concepts and Contrasts, ISBN: 978-0-9563693-1-4, volume one out shortly http://talebzadehmich.wordpress.com <http://talebzadehmich.wordpress.com/> NOTE: The information in this email is proprietary and confidential. This message is for the designated recipient only, if you are not the intended recipient, you should destroy it immediately. Any information in this message shall not be understood as given or endorsed by Peridale Technology Ltd, its subsidiaries or their employees, unless expressly so stated. It is the responsibility of the recipient to ensure that this email is virus free, therefore neither Peridale Ltd, its subsidiaries nor their employees accept any responsibility. From: Eugene Koifman [mailto:ekoif...@hortonworks.com] Sent: 23 October 2015 17:13 To: user@hive.apache.org <mailto:user@hive.apache.org> Subject: Re: locks are held on tables even when no job running Mich, how were you running/killing the job? was it ^C of CLI or something else? (The only time you'd get Exclusive lock is to drop an object. (With DbTxnManager which looks like what you are using)) The locks will timeout but https://issues.apache.org/jira/browse/HIVE-11317 may be relevant. Furcy, could you file a Jira with a repro for the deadlock you are describing? Thanks, Eugene From: Mich Talebzadeh <m...@peridale.co.uk <mailto:m...@peridale.co.uk> > Reply-To: "user@hive.apache.org <mailto:user@hive.apache.org> " <user@hive.apache.org <mailto:user@hive.apache.org> > Date: Friday, October 23, 2015 at 1:18 AM To: "user@hive.apache.org <mailto:user@hive.apache.org> " <user@hive.apache.org <mailto:user@hive.apache.org> > Subject: RE: locks are held on tables even when no job running Hi Furcy, Thanks for the info. I ran the same job twice, killing it first time and starting again. Actually your point about 5 min duration seems to be correct. my process basically creates a new hive table with two additional columns and populate it from an existing table hence the locks Even if the job is killed "WAITING EXCLUSIVE" locks are still held on the new table (see below) and that is the cause of the issue Lock ID Database Table Partition State Type Transaction ID Last Hearbeat Acquired At User Hostname 14031 asehadoop t NULL WAITING EXCLUSIVE NULL 1445586539232 NULL hduser rhes564 14029 asehadoop t_staging NULL ACQUIRED SHARED_READ NULL 1445586247044 1445585940653 hduser rhes564 14029 asehadoop t NULL ACQUIRED SHARED_READ NULL 1445586247044 1445585940654 hduser rhes564 14030 asehadoop t NULL WAITING EXCLUSIVE NULL 1445586471827 NULL hduser rhes564 I am not sure this is behaving like classic RDBMS like Sybase or MSSQL where the rollback is happening after KILL command and the locks are held until rollback is complete. Killing a process itself will not release the locks! Regards, Mich Talebzadeh Sybase ASE 15 Gold Medal Award 2008 A Winning Strategy: Running the most Critical Financial Data on ASE 15 http://login.sybase.com/files/Product_Overviews/ASE-Winning-Strategy-091908. pdf Author of the books "A Practitioner's Guide to Upgrading to Sybase ASE 15", ISBN 978-0-9563693-0-7. co-author "Sybase Transact SQL Guidelines Best Practices", ISBN 978-0-9759693-0-4 Publications due shortly: Complex Event Processing in Heterogeneous Environments, ISBN: 978-0-9563693-3-8 Oracle and Sybase, Concepts and Contrasts, ISBN: 978-0-9563693-1-4, volume one out shortly http://talebzadehmich.wordpress.com <http://talebzadehmich.wordpress.com/> NOTE: The information in this email is proprietary and confidential. This message is for the designated recipient only, if you are not the intended recipient, you should destroy it immediately. Any information in this message shall not be understood as given or endorsed by Peridale Technology Ltd, its subsidiaries or their employees, unless expressly so stated. It is the responsibility of the recipient to ensure that this email is virus free, therefore neither Peridale Ltd, its subsidiaries nor their employees accept any responsibility. From: Furcy Pin [mailto:furcy....@flaminem.com] Sent: 23 October 2015 09:08 To: user@hive.apache.org <mailto:user@hive.apache.org> Subject: Re: locks are held on tables even when no job running Hi Mich, I believe the duration of locks is defined by hive.txn.timeout, which is 5 min by default. https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties Retry your SHOW LOCKS command and check that the Last HeartBeat is not changing. If it is, it means your query is still active somehow. If it isn't, the lock should disappear by itself after the timeout. Also, I don't know if this is a known issue in Hive's Jira, but we noticed that trying to read and write data into the same table within a single query creates a deadlock. If that is what you were trying to do, you should rather write your data in a temporary file and then move it back into the table. On Fri, Oct 23, 2015 at 9:56 AM, Mich Talebzadeh <m...@peridale.co.uk <mailto:m...@peridale.co.uk> > wrote: Hi, What is the duration of locks held in Hive? I have got the following locks in Hive, although I have already killed the jobs! Lock ID Database Table Partition State Type Transaction ID Last Hearbeat Acquired At User Hostname 14031 asehadoop t NULL WAITING EXCLUSIVE NULL 1445586539232 NULL hduser rhes564 14029 asehadoop t_staging NULL ACQUIRED SHARED_READ NULL 1445586247044 1445585940653 hduser rhes564 14029 asehadoop t NULL ACQUIRED SHARED_READ NULL 1445586247044 1445585940654 hduser rhes564 14030 asehadoop t NULL WAITING EXCLUSIVE NULL 1445586471827 NULL hduser rhes564 mapred job -list Total jobs:0 JobId State StartTime UserName Queue Priority UsedContainers RsvdContainers UsedMem RsvdMem NeededMem AM info No locks are held in metastore (Oracle in my case) as well. Thanks Mich Talebzadeh Sybase ASE 15 Gold Medal Award 2008 A Winning Strategy: Running the most Critical Financial Data on ASE 15 http://login.sybase.com/files/Product_Overviews/ASE-Winning-Strategy-091908. pdf Author of the books "A Practitioner's Guide to Upgrading to Sybase ASE 15", ISBN 978-0-9563693-0-7. co-author "Sybase Transact SQL Guidelines Best Practices", ISBN 978-0-9759693-0-4 Publications due shortly: Complex Event Processing in Heterogeneous Environments, ISBN: 978-0-9563693-3-8 Oracle and Sybase, Concepts and Contrasts, ISBN: 978-0-9563693-1-4, volume one out shortly http://talebzadehmich.wordpress.com <http://talebzadehmich.wordpress.com/> NOTE: The information in this email is proprietary and confidential. This message is for the designated recipient only, if you are not the intended recipient, you should destroy it immediately. Any information in this message shall not be understood as given or endorsed by Peridale Technology Ltd, its subsidiaries or their employees, unless expressly so stated. It is the responsibility of the recipient to ensure that this email is virus free, therefore neither Peridale Ltd, its subsidiaries nor their employees accept any responsibility.