[ https://issues.apache.org/jira/browse/HBASE-29386?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Duo Zhang resolved HBASE-29386. ------------------------------- Fix Version/s: 2.7.0 3.0.0-beta-2 2.6.3 Hadoop Flags: Reviewed Resolution: Fixed Pushed to branch-2.6+. Thanks [~hgromer] for contributing! > SnapshotProcedure and EnableTableProcedure can cause a deadlock > --------------------------------------------------------------- > > Key: HBASE-29386 > URL: https://issues.apache.org/jira/browse/HBASE-29386 > Project: HBase > Issue Type: Bug > Components: snapshots > Reporter: Hernan Gelaf-Romer > Assignee: Hernan Gelaf-Romer > Priority: Major > Labels: pull-request-available > Fix For: 2.7.0, 3.0.0-beta-2, 2.6.3 > > > 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)