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:42:52 UTC

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

    [ https://issues.apache.org/jira/browse/HBASE-9397?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13755113#comment-13755113 ] 

Jerry He commented on HBASE-9397:
---------------------------------

Attached a straight fix. Any comment and other suggestion are welcome.
                
> 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.95.2, 0.94.11
>            Reporter: Jerry He
>            Assignee: Jerry He
>             Fix For: 0.94.12, 0.96.0
>
>         Attachments: HBASE-9397-0.94.patch, HBASE-9397-trunk.patch
>
>
> 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