You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Andrew Purtell (JIRA)" <ji...@apache.org> on 2016/01/26 04:08:39 UTC

[jira] [Comment Edited] (PHOENIX-2629) NoClassDef error for BaseDecoder$PBIS on log replay

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