hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Enis Soztutar (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HBASE-14904) Mark Base[En|De]coder LimitedPrivate and fix binary compat issue
Date Wed, 02 Dec 2015 03:37:11 GMT
Enis Soztutar created HBASE-14904:
-------------------------------------

             Summary: 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


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)

Mime
View raw message