[ 
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)

Reply via email to