[ 
https://issues.apache.org/jira/browse/PHOENIX-2477?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15036402#comment-15036402
 ] 

Enis Soztutar commented on PHOENIX-2477:
----------------------------------------

bq. We can't guarantee it until we're off of private HBase APIs, but as you 
know, we're working as fast as possible to do this. 
Makes sense. As of 1.x, we(HBase) have been doing automated binary and source 
compat checks between patch and minor releases of Public and LimitedPrivate 
interfaces to make sure that we do not break the guarantees. HBASE-14904 
changes the marks in {{BaseEncoder}} to be LimitedPrivate so that we can catch 
this kind of issues hopefully in the RC timeframe. 

bq. Can your patch here be made to work with both old and new HBase versions? 
We've sometimes had to resort to putting a simple interface in front of 
something like this and then had the factory method conditionally choose based 
on the HBase version.
I looked into that, but since this is a class-hierarchy thing, and the field 
({{in}}) is not exposed any other way, I could not find a reliable mechanism 
other than duplicating whole of {{BaseDecoder}}. This is still an option,  but 
let's see the conclusion of HBASE-14904. If HBase commits that before any more 
release, the binary compat may not be an issue with v2 patch. 

> ClassCastException in IndexedWALEditCodec after HBASE-14501 (possible 
> dataloss)
> -------------------------------------------------------------------------------
>
>                 Key: PHOENIX-2477
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-2477
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Enis Soztutar
>            Assignee: Enis Soztutar
>            Priority: Critical
>         Attachments: phoenix-2477_v1.patch, phoenix-2477_v2.patch
>
>
> HBASE-14501 fixed the semantics in using the InputStream.available() and the 
> interface between the actual Decoder and BaseDecoder. 
> Running Phoenix with IndexedWALEditCodec on top of an HBase version 
> containing HBASE-14501 now causes silent data loss since the Decoder throws 
> {code}
> java.lang.ClassCastException: org.apache.hadoop.hbase.codec.BaseDecoder$PBIS 
> cannot be cast to java.io.DataInput
> {code}
> which gets silently ignored from ProtobufLogReader. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to