[
https://issues.apache.org/jira/browse/HDFS-4647?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13616953#comment-13616953
]
Jing Zhao commented on HDFS-4647:
---------------------------------
This is caused by rename - the put command will first write data to a temp file
then rename it to the given path. I have tried removing the rename step of the
put operation and the illegalStateException is gone.
I also added more debug information to all the Preconditions.checkState
statement. With the current rename code (with HDFS-4534 and HDFS-4611), the
illegalStateException is thrown from ChildrenDiff#replace, in the
"Preconditions.checkState(removed == oldChild" statement. Seems the oldChild is
an INodeFile while the removed inode is an INodeReference.
> llegalStateException in put with nested snapshottable directories
> -----------------------------------------------------------------
>
> Key: HDFS-4647
> URL: https://issues.apache.org/jira/browse/HDFS-4647
> Project: Hadoop HDFS
> Issue Type: Sub-task
> Affects Versions: Snapshot (HDFS-2802)
> Reporter: Arpit Agarwal
> Fix For: Snapshot (HDFS-2802)
>
>
> To repro:
> hadoop fs -mkdir -p /1/2/3
> hdfs dfsadmin -allowSnapsot /1
> hdfs dfsadmin -allowSnapsot /2
> hadoop fs -createSnapshot /1 snap1
> hadoop fs -put f1 /1/2/3
> Final command throws:
> put: java.lang.IllegalStateException
--
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