hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "kanaka kumar avvaru (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-8626) Reserved RBW space is not released if creation of RBW File fails
Date Tue, 23 Jun 2015 06:50:01 GMT

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

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

Attached patch on 2.7 branch only for the test case. [~arpitagarwal], please review and commit.

> 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
>             Fix For: 2.7.1
>
>         Attachments: HDFS-8626-01.patch, HDFS-8626-02.patch, HDFS-8626-03.patch, HDFS-8626-04.patch,
HDFS-8626-04_testcase_on_2.7.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)

Mime
View raw message