[ 
https://issues.apache.org/jira/browse/HDFS-8626?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14593613#comment-14593613
 ] 

kanaka kumar avvaru commented on HDFS-8626:
-------------------------------------------

:) Reflection was working fine [~arpitagarwal] on 0th DN, but file creation was 
not failed may be because of multiple DNs in the MiniDFSCluster.
Anyway to avoid confusion, I have updated patch to start single DN and 
expecting exception during file creation. 

Seems some problem with jenkins due to maintenance shutdown. Will check the 
failures if any in the next build.

> Reserved RBW space is not released if creation of RBW File fails
> ----------------------------------------------------------------
>
>                 Key: HDFS-8626
>                 URL: https://issues.apache.org/jira/browse/HDFS-8626
>             Project: Hadoop HDFS
>          Issue Type: Bug
>            Reporter: kanaka kumar avvaru
>            Assignee: kanaka kumar avvaru
>            Priority: Blocker
>         Attachments: HDFS-8626-01.patch, HDFS-8626-02.patch, 
> HDFS-8626-03.patch, HDFS-8626-04.patch
>
>
> The DataNode reserves disk space for a full block when creating an RBW block 
> and will release the space when the block is finalized (introduced in 
> HDFS-6898) 
> But if the RBW file creation fails, the reserved space is not released back. 
> In a scenario, when the data node disk is full it causes no space left 
> {{IOException}}. Eventually even if the disk got cleaned,  the reserved space 
> is not release until the  Data Node is restarted
> Stacktrace for block creation failure is:
> {code} IOException in BlockReceiver constructor. Cause is  | 
> org.apache.hadoop.hdfs.server.datanode.BlockReceiver.<init>(BlockReceiver.java:264)
> java.io.IOException: No space left on device
>       at java.io.UnixFileSystem.createFileExclusively(Native Method)
>       at java.io.File.createNewFile(File.java:1012)
>       at 
> org.apache.hadoop.hdfs.server.datanode.DatanodeUtil.createTmpFile(DatanodeUtil.java:66)
>       at 
> org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.BlockPoolSlice.createRbwFile(BlockPoolSlice.java:274)
>       at 
> org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsVolumeImpl.createRbwFile(FsVolumeImpl.java:762)
>       at 
> org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl.createRbw(FsDatasetImpl.java:1320)
>       at 
> org.apache.hadoop.hdfs.server.datanode.BlockReceiver.<init>(BlockReceiver.java:190)
>       at 
> org.apache.hadoop.hdfs.server.datanode.DataXceiver.writeBlock(DataXceiver.java:678)
>       at 
> org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.opWriteBlock(Receiver.java:137)
>       at 
> org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.processOp(Receiver.java:74)
>       at 
> org.apache.hadoop.hdfs.server.datanode.DataXceiver.run(DataXceiver.java:250)
>       at java.lang.Thread.run(Thread.java:745)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to