You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-dev@hadoop.apache.org by Ted Yu <yu...@gmail.com> on 2014/08/21 16:08:08 UTC
Re: HDFS-6902 FileWriter should be closed in finally block in BlockReceiver#receiveBlock()
bq. else there is a memory leak
Moving call of close() would prevent the leak.
bq. but then this code snippet could be java and can be messy
The code is in Java.
Cheers
On Wed, Aug 20, 2014 at 10:00 PM, vlab <Th...@vlab.ca> wrote:
> Unless you need 'out' later, have this statement.
> FileWriter out(restartMeta);
> then when exiting the try block, 'out' will go out of scope
>
> i assume this FileWriter that is create is delete'd else where
> (else there is a memory leak). {but then this code snippet could be java
> and can be messy.}
>
>
> On 8/20/2014 8:50 PM, Ted Yu (JIRA) wrote:
>
>> Ted Yu created HDFS-6902:
>> ----------------------------
>>
>> Summary: FileWriter should be closed in finally block in
>> BlockReceiver#receiveBlock()
>> Key: HDFS-6902
>> URL: https://issues.apache.org/jira/browse/HDFS-6902
>> Project: Hadoop HDFS
>> Issue Type: Bug
>> Reporter: Ted Yu
>> Priority: Minor
>>
>>
>> Here is code starting from line 828:
>> {code}
>> try {
>> FileWriter out = new FileWriter(restartMeta);
>> // write out the current time.
>> out.write(Long.toString(Time.now() + restartBudget));
>> out.flush();
>> out.close();
>> } catch (IOException ioe) {
>> {code}
>> If write() or flush() call throws IOException, out wouldn't be closed.
>>
>>
>>
>> --
>> This message was sent by Atlassian JIRA
>> (v6.2#6252)
>>
>>
>
Re: HDFS-6902 FileWriter should be closed in finally block in BlockReceiver#receiveBlock()
Posted by Colin McCabe <cm...@alumni.cmu.edu>.
Let's discuss this on the JIRA. I think Tsuyoshi OZAWA's solution is good.
Colin
On Thu, Aug 21, 2014 at 7:08 AM, Ted Yu <yu...@gmail.com> wrote:
> bq. else there is a memory leak
>
> Moving call of close() would prevent the leak.
>
> bq. but then this code snippet could be java and can be messy
>
> The code is in Java.
>
> Cheers
>
> On Wed, Aug 20, 2014 at 10:00 PM, vlab <Th...@vlab.ca> wrote:
>
>> Unless you need 'out' later, have this statement.
>> FileWriter out(restartMeta);
>> then when exiting the try block, 'out' will go out of scope
>>
>> i assume this FileWriter that is create is delete'd else where
>> (else there is a memory leak). {but then this code snippet could be java
>> and can be messy.}
>>
>>
>> On 8/20/2014 8:50 PM, Ted Yu (JIRA) wrote:
>>
>>> Ted Yu created HDFS-6902:
>>> ----------------------------
>>>
>>> Summary: FileWriter should be closed in finally block in
>>> BlockReceiver#receiveBlock()
>>> Key: HDFS-6902
>>> URL: https://issues.apache.org/jira/browse/HDFS-6902
>>> Project: Hadoop HDFS
>>> Issue Type: Bug
>>> Reporter: Ted Yu
>>> Priority: Minor
>>>
>>>
>>> Here is code starting from line 828:
>>> {code}
>>> try {
>>> FileWriter out = new FileWriter(restartMeta);
>>> // write out the current time.
>>> out.write(Long.toString(Time.now() + restartBudget));
>>> out.flush();
>>> out.close();
>>> } catch (IOException ioe) {
>>> {code}
>>> If write() or flush() call throws IOException, out wouldn't be closed.
>>>
>>>
>>>
>>> --
>>> This message was sent by Atlassian JIRA
>>> (v6.2#6252)
>>>
>>>
>>