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

Hudson commented on HADOOP-8632:
--------------------------------

Integrated in Hadoop-Mapreduce-trunk-Commit #2654 (See 
[https://builds.apache.org/job/Hadoop-Mapreduce-trunk-Commit/2654/])
    HADOOP-8632. Configuration leaking class-loaders (Costin Leau via bobby) 
(Revision 1376543)

     Result = FAILURE
bobby : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1376543
Files : 
* /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
* 
/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
* 
/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java

                
> Configuration leaking class-loaders
> -----------------------------------
>
>                 Key: HADOOP-8632
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8632
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: conf
>    Affects Versions: 2.0.0-alpha
>            Reporter: Costin Leau
>             Fix For: 3.0.0, 2.2.0-alpha
>
>         Attachments: 
> 0001-wrapping-classes-with-WeakRefs-in-CLASS_CACHE.patch, HADOOP-8632.patch, 
> HADOOP-8632-trunk-no-tabs.patch, HADOOP-8632-trunk.patch
>
>
> The newly introduced CACHE_CLASSES leaks class loaders causing associated 
> classes to not be reclaimed.
> One solution is to remove the cache itself since each class loader 
> implementation caches the classes it loads automatically and preventing an 
> exception from being raised is just a micro-optimization that, as one can 
> tell, causes bugs instead of improving anything.
> In fact, I would argue in a highly-concurrent environment, the weakhashmap 
> synchronization/lookup probably costs more then creating the exception itself.
> Another is to prevent the leak from occurring, by inserting the loadedclass 
> into the WeakHashMap wrapped in a WeakReference. Otherwise the class has a 
> strong reference to its classloader (the key) meaning neither gets GC'ed.
> And since the cache_class is static, even if the originating Configuration 
> instance gets GC'ed, its classloader won't.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to