You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Enis Soztutar (JIRA)" <ji...@apache.org> on 2015/12/02 04:38:11 UTC
[jira] [Updated] (HBASE-14904) Mark Base[En|De]coder LimitedPrivate
and fix binary compat issue
[ https://issues.apache.org/jira/browse/HBASE-14904?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Enis Soztutar updated HBASE-14904:
----------------------------------
Status: Patch Available (was: Open)
> Mark Base[En|De]coder LimitedPrivate and fix binary compat issue
> ----------------------------------------------------------------
>
> Key: HBASE-14904
> URL: https://issues.apache.org/jira/browse/HBASE-14904
> Project: HBase
> Issue Type: Bug
> Reporter: Enis Soztutar
> Assignee: Enis Soztutar
> Fix For: 2.0.0, 1.2.0, 1.3.0, 1.1.3, 0.98.17, 1.0.4
>
> Attachments: hbase-14904_v1.patch
>
>
> PHOENIX-2477 revealed that the changes from HBASE-14501 breaks binary compatibility in Phoenix compiled with earlier versions of HBase and run agains later versions.
> This is one of the areas that the boundary is not clear, but it won't hurt us to fix it.
> The exception trace is:
> {code}
> Exception in thread "main" java.lang.NoSuchFieldError: in
> at org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec$PhoenixBaseDecoder.<init>(IndexedWALEditCodec.java:106)
> at org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec$IndexKeyValueDecoder.<init>(IndexedWALEditCodec.java:121)
> at org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec.getDecoder(IndexedWALEditCodec.java:63)
> at org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initAfterCompression(ProtobufLogReader.java:292)
> at org.apache.hadoop.hbase.regionserver.wal.ReaderBase.init(ReaderBase.java:82)
> at org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.init(ProtobufLogReader.java:148)
> at org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:316)
> at org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:281)
> at org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:269)
> at org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:418)
> at org.apache.hadoop.hbase.wal.WALPrettyPrinter.processFile(WALPrettyPrinter.java:247)
> at org.apache.hadoop.hbase.wal.WALPrettyPrinter.run(WALPrettyPrinter.java:422)
> at org.apache.hadoop.hbase.wal.WALPrettyPrinter.main(WALPrettyPrinter.java:357)
> {code}
> Although {{BaseDecoder.in}} is still there, it got changed to be a class rather than an interface. BaseDecoder is marked Private, thus the binary compat check is not run at all. Not sure whether it would have caught this.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)