[ https://issues.apache.org/jira/browse/HBASE-9046?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13818526#comment-13818526 ]
Benoit Sigoure commented on HBASE-9046: --------------------------------------- I think the problem is that {{CoprocessorClassLoader.classLoadersCache}} retains the previous cache loader in its cache. This is a cache that maps the path of the .jar file to its corresponding {{CoprocessorClassLoader}}. The values in the cache are weak references, but that doesn't guarantee that they will go away in a timely fashion. Therefore if you edit the schema of your table to unset the coprocessor and re-set it, most of the time you will get the same {{CoprocessorClassLoader}} as before and the new jar won't be loaded. I can reproduce this trivially and consistently on a single-node non-distributed HBase instance. > Some region servers keep using an older version of coprocessor > --------------------------------------------------------------- > > Key: HBASE-9046 > URL: https://issues.apache.org/jira/browse/HBASE-9046 > Project: HBase > Issue Type: Bug > Components: Coprocessors > Affects Versions: 0.94.8, 0.96.0 > Environment: FreeBSD 8.2-RELEASE FreeBSD 8.2-RELEASE #0 r220198: Thu > Mar 31 21:46:45 PDT 2011 amd64 > java version "1.6.0_07" > Diablo Java(TM) SE Runtime Environment (build 1.6.0_07-b02) > Diablo Java HotSpot(TM) 64-Bit Server VM (build 10.0-b23, mixed mode) > hbase: 0.94.8, r1485407 > hadoop: 1.0.4, r1393290 > Reporter: iain wright > Priority: Minor > > My team and another user from the mailing list have run into an issue where > replacing the coprocessor jar in HDFS and reloading the table does not load > the latest jar. It may load the latest version on some percentage of RS but > not all of them. > This may be a config oversight or a lack of understanding of a caching > mechanism that has a purge capability, but I thought I would log it here for > confirmation. > Workaround is to name the coprocessor JAR uniquely, place in HDFS, and > re-enable the table using the new jar's name. -- This message was sent by Atlassian JIRA (v6.1#6144)