hadoop-common-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Costin Leau (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HADOOP-8632) Configuration leaking class-loaders
Date Mon, 30 Jul 2012 14:17:34 GMT
Costin Leau created HADOOP-8632:
-----------------------------------

             Summary: 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


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

        

Mime
View raw message