[
https://issues.apache.org/jira/browse/HDFS-6500?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14020844#comment-14020844
]
Tsz Wo Nicholas Sze commented on HDFS-6500:
-------------------------------------------
This is a bug in INodeDirectorySnapshottable.renameSnapshot(..)
{code}
+
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/snapshot/INodeDirectorySnapshottable.java
(working copy)
@@ -246,7 +246,7 @@
} else {
final byte[] newNameBytes = DFSUtil.string2Bytes(newName);
int indexOfNew = searchSnapshot(newNameBytes);
- if (indexOfNew > 0) {
+ if (indexOfNew >= 0) {
throw new SnapshotException("The snapshot " + newName
+ " already exists for directory " + path);
{code}
> Snapshot shouldn't be removed silently after renaming to an existing snapshot
> -----------------------------------------------------------------------------
>
> Key: HDFS-6500
> URL: https://issues.apache.org/jira/browse/HDFS-6500
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: snapshots
> Affects Versions: 2.4.0
> Reporter: Junping Du
> Priority: Blocker
>
> Assume you have two snapshots for /dir: s1, s2, when you do "hdfs dfs
> -renameSnapshot /dir s2 s1" which means you want to rename s2 to s1. It will
> cause s2 been dropped silently and s1 still keep the previous one. This is
> very confusing and easily cause wrong operation.
> The right behavior should be providing a warning to remind user that the
> target name is already existed and do nothing. If user do want to overlap s1,
> he should add some option (i.e. "-f") or delete s1 first.
--
This message was sent by Atlassian JIRA
(v6.2#6252)