[
https://issues.apache.org/jira/browse/HBASE-7205?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Adrian Muraru updated HBASE-7205:
---------------------------------
Attachment: 7205-v7.txt
Great, we're almost there :)
Few more things in patch v7:
1. An invalid CP classname would evict the entire classloader from cache (this
is not good, as the same classloader might be used to load other valid CP
classes)
{code:java}
try {
implClass = cl.loadClass(className);
+ // cache cp classloader as a weak value, will be GC'ed when no
reference left
+ classLoadersCache.put (path, cl);
} catch (ClassNotFoundException e) {
+ classLoadersCache.remove(path);
throw new IOException(e);
}
{code}
- cache.put not needed as it's already been added
- cache.remote not needed as it'll be GC'ed if not used anyway
2. TestClassLoading#testClassLoadingFromHDFS checks now for invalid CP
classnames and double-checks that jar classloaders are actually cached
> Coprocessor classloader is replicated for all regions in the HRegionServer
> --------------------------------------------------------------------------
>
> Key: HBASE-7205
> URL: https://issues.apache.org/jira/browse/HBASE-7205
> Project: HBase
> Issue Type: Bug
> Components: Coprocessors
> Affects Versions: 0.92.2, 0.94.2
> Reporter: Adrian Muraru
> Assignee: Ted Yu
> Priority: Critical
> Fix For: 0.96.0, 0.94.4
>
> Attachments: 7205-v1.txt, 7205-v3.txt, 7205-v4.txt, 7205-v5.txt,
> 7205-v6.txt, 7205-v7.txt, HBASE-7205_v2.patch
>
>
> HBASE-6308 introduced a new custom CoprocessorClassLoader to load the
> coprocessor classes and a new instance of this CL is created for each single
> HRegion opened. This leads to OOME-PermGen when the number of regions go
> above hundres / region server.
> Having the table coprocessor jailed in a separate classloader is good however
> we should create only one for all regions of a table in each HRS.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira