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