You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Jerry He (JIRA)" <ji...@apache.org> on 2013/08/30 22:38:52 UTC

[jira] [Created] (HBASE-9397) Snapshots with the same name are allowed to proceed concurrently

Jerry He created HBASE-9397:
-------------------------------

             Summary: Snapshots with the same name are allowed to proceed concurrently
                 Key: HBASE-9397
                 URL: https://issues.apache.org/jira/browse/HBASE-9397
             Project: HBase
          Issue Type: Bug
          Components: snapshots
    Affects Versions: 0.94.11, 0.95.2
            Reporter: Jerry He
            Assignee: Jerry He
             Fix For: 0.94.12, 0.96.0


Snapshots with the same name (but on different tables) are allowed to proceed concurrently.
This seems to be loop hole created by allowing multiple snapshots (on different tables) to run concurrently.
There are two checks in SnapshotManager, but fail to catch this particular case.
In isSnapshotCompleted(), we only check the completed snapshot directory.
In isTakingSnapshot(), we only check for the same table name.

The end result is the concurrently running snapshots with the same name are overlapping and messing up each other. For example, cleaning up the other's snapshot working directory in .hbase-snapshot/.tmp/snapshot-name.

{code}
2013-08-29 18:25:13,443 ERROR org.apache.hadoop.hbase.master.snapshot.TakeSnapshotHandler: Failed taking snapshot { ss=mysnapshot table=TestTable type=FLUSH } due to exception:Couldn't read snapshot info from:hdfs://hdtest009:9000/hbase/.hbase-snapshot/.tmp/mysnapshot/.snapshotinfo
org.apache.hadoop.hbase.snapshot.CorruptedSnapshotException: Couldn't read snapshot info from:hdfs://hdtest009:9000/hbase/.hbase-snapshot/.tmp/mysnapshot/.snapshotinfo
        at org.apache.hadoop.hbase.snapshot.SnapshotDescriptionUtils.readSnapshotInfo(SnapshotDescriptionUtils.java:321)
        at org.apache.hadoop.hbase.master.snapshot.MasterSnapshotVerifier.verifySnapshotDescription(MasterSnapshotVerifier.java:123)
{code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira