Hernan Gelaf-Romer created HBASE-29386:
------------------------------------------

             Summary: SnapshotProcedure and EnableTableProcedure can cause a 
deadlock
                 Key: HBASE-29386
                 URL: https://issues.apache.org/jira/browse/HBASE-29386
             Project: HBase
          Issue Type: Bug
            Reporter: Hernan Gelaf-Romer
            Assignee: Hernan Gelaf-Romer


At my job, we've discovered that enable table procedures can be executed at the 
same time as a snapshot procedure and can cause a deadlock which prevents both 
procedures from finishing. 

 

The enable table procedure will be kicked off first, and will run and kick off 
children subprocedures which will enable the region. At this point, the parent 
process releases it's lock, and the snapshot procedure starts to execute. The 
snapshot procedure gets to the state SNAPSHOT_WRITE_SNAPSHOT_INFO, and then 
continues to repeat this step as it waits for the table to be enabled. 

 

The table enable procedure will never re-acquire the lock and run, which means 
both procedures are stuck indefinitely. A solution here is to allow the 
snapshot procedure to be suspended in the case that the table is neither 
disabled or enabled, which will allow other table related procedures to run



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to