[ 
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

Reply via email to