[
https://issues.apache.org/jira/browse/PHOENIX-2629?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15116563#comment-15116563
]
Andrew Purtell edited comment on PHOENIX-2629 at 1/26/16 3:07 AM:
------------------------------------------------------------------
bq. What's the expected b/w compat code path for this change, Enis?
Phoenix is not using coprocessor APIs here but instead extending a
LimitedPrivate HBase class in the WAL package and using some of its internals.
We've had problems with overloading internals for indexing in other contexts.
The WAL package has exposure to HDFS level issues so may be tricky, although I
don't have an alternative suggestion. In this case, the change in HBase is a
fix for a data loss problem when running HBase on Hadoop 2.6+ with encryption
turned on. HBase has already released with the changes in place but perhaps
[~enis] would be open to a petition to restore compatibility. (Releases made in
the interim like 0.98.16, 0.98.16.1, and 0.98.17 would remain problematic.)
Edit: In an earlier version I suggested not subclassing WAL reader/writer
classes, implying there could be an alternative approach, and there still might
be some day, but I fail to think of something offhand that would perform well
so withdraw the suggestion.
was (Author: apurtell):
bq. What's the expected b/w compat code path for this change, Enis?
Phoenix is not using coprocessor APIs here but instead extending a
LimitedPrivate HBase class in the WAL package and using some of its internals.
We've had problems with overloading internals for indexing in other contexts.
Best to not, I'd say. The WAL package has exposure to HDFS level issues. In
this case, the change in HBase is a fix for a data loss problem when running
HBase on Hadoop 2.6+ with encryption turned on. HBase has already released with
the changes in place but perhaps [~enis] would be open to a petition to restore
compatibility. (Releases made in the interim like 0.98.16, 0.98.16.1, and
0.98.17 would remain problematic.)
> NoClassDef error for BaseDecoder$PBIS on log replay
> ---------------------------------------------------
>
> Key: PHOENIX-2629
> URL: https://issues.apache.org/jira/browse/PHOENIX-2629
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 4.7.0
> Reporter: Mujtaba Chohan
>
> HBase version 0.98.13 with Phoenix 4.7.0-RC0
> {code}
> executor.EventHandler - Caught throwable while processing event RS_LOG_REPLAY
> java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/codec/BaseDecoder$PBIS
> at
> org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec.getDecoder(IndexedWALEditCodec.java:63)
> at
> org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initAfterCompression(ProtobufLogReader.java:254)
> at
> org.apache.hadoop.hbase.regionserver.wal.ReaderBase.init(ReaderBase.java:86)
> at
> org.apache.hadoop.hbase.regionserver.wal.HLogFactory.createReader(HLogFactory.java:129)
> at
> org.apache.hadoop.hbase.regionserver.wal.HLogFactory.createReader(HLogFactory.java:91)
> at
> org.apache.hadoop.hbase.regionserver.wal.HLogSplitter.getReader(HLogSplitter.java:668)
> at
> org.apache.hadoop.hbase.regionserver.wal.HLogSplitter.getReader(HLogSplitter.java:577)
> at
> org.apache.hadoop.hbase.regionserver.wal.HLogSplitter.splitLogFile(HLogSplitter.java:282)
> at
> org.apache.hadoop.hbase.regionserver.wal.HLogSplitter.splitLogFile(HLogSplitter.java:225)
> at
> org.apache.hadoop.hbase.regionserver.SplitLogWorker$1.exec(SplitLogWorker.java:143)
> at
> org.apache.hadoop.hbase.regionserver.handler.HLogSplitterHandler.process(HLogSplitterHandler.java:82)
> at
> org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:128)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.ClassNotFoundException:
> org.apache.hadoop.hbase.codec.BaseDecoder$PBIS
> at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> ... 15 more
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)