[
https://issues.apache.org/jira/browse/HDFS-9641?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15171376#comment-15171376
]
Yongtao Yang commented on HDFS-9641:
------------------------------------
bad format in previous reply.
{code:title=DFSOutputStream.java}
public synchronized void close() throws IOException {
if (closed) { // <---- it will enter this branch in my case
IOException e = lastException;
if (e == null)
return;
else
throw e;
}
......
}
{code}
> IOException in hdfs write process causes file leases not released
> -----------------------------------------------------------------
>
> Key: HDFS-9641
> URL: https://issues.apache.org/jira/browse/HDFS-9641
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: hdfs-client
> Affects Versions: 2.6.0, 2.6.1, 2.6.2, 2.6.3
> Environment: hadoop 2.6.0,
> Reporter: Yongtao Yang
>
> when writing a file, an {{IOException}} may be raised in
> {{DFSOutputStream.DataStreamer.run()}}, then '{{streamerClosed}}' may be set
> to {{true}}, then {{closeInternal()}} will be invoked, where
> {{DFSOutputStream.closed}} will be set to be {{true}}. That is to say,
> '{{closed}}' is true before {{DFSOutputStream.close()}} is invoked, then
> {{dfsClient.endFileLease(fileId)}} will not be executed. The references of
> the {{DFSOutputStream}} objects will still be hold in
> {{DFSClient.filesBeingWritten}} untill the client quits. The related
> resources will not be released. HDFS-4504 is a related issue.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)