[
https://issues.apache.org/jira/browse/HDFS-6500?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14020842#comment-14020842
]
Yongjun Zhang commented on HDFS-6500:
-------------------------------------
Hi [~djp],
Thanks for finding and reporting the issue. I did a quick check at the source
code level, it seems to be doing the checking for existing snapshot.
I wonder if you saw any exception from the following code.
INodeDirectorySnapshottable.java:
{code}
public void renameSnapshot(String path, String oldName, String newName)
throws SnapshotException {
if (newName.equals(oldName)) {
return;
}
final int indexOfOld = searchSnapshot(DFSUtil.string2Bytes(oldName));
if (indexOfOld < 0) {
throw new SnapshotException("The snapshot " + oldName
+ " does not exist for directory " + path);
} else {
final byte[] newNameBytes = DFSUtil.string2Bytes(newName);
int indexOfNew = searchSnapshot(newNameBytes);
if (indexOfNew > 0) {
throw new SnapshotException("The snapshot " + newName
+ " already exists for directory " + path);
}
{code}
Thanks.
> 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)