[ 
https://issues.apache.org/jira/browse/HADOOP-5933?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12714027#action_12714027
 ] 

Steve Loughran commented on HADOOP-5933:
----------------------------------------

Some options
# if the log is at debug level, generate an exception in close() and save it 
until the next checkOpen() call is reached -and use that exception as the 
nested cause of the exception that is raised there.
# some complicated reference count mechanism with its own leakage problems
# add the ability to reopen things if they were in cache and got purged. 

I've done the first one of these to track down problems, and while I now know 
where I shouldn't be calling close(), there's a risk that my code will now leak 
filesystem clients. 

> Make it harder to accidentally close a shared DFSClient
> -------------------------------------------------------
>
>                 Key: HADOOP-5933
>                 URL: https://issues.apache.org/jira/browse/HADOOP-5933
>             Project: Hadoop Core
>          Issue Type: Improvement
>          Components: fs
>    Affects Versions: 0.21.0
>            Reporter: Steve Loughran
>            Priority: Minor
>
> Every so often I get stack traces telling me that DFSClient is closed, 
> usually in {{org.apache.hadoop.hdfs.DFSClient.checkOpen() }} . The root cause 
> of this is usually that one thread has closed a shared fsclient while another 
> thread still has a reference to it. If the other thread then asks for a new 
> client it will get one -and the cache repopulated- but if has one already, 
> then I get to see a stack trace. 
> It's effectively a race condition between clients in different threads. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to