[
https://issues.apache.org/jira/browse/PHOENIX-2477?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Enis Soztutar updated PHOENIX-2477:
-----------------------------------
Attachment: phoenix-2477_v2.patch
v2 patch is the actual fix. I have tested this with verifying manually that we
can read what we have written back from a live WAL file.
When testing v2, I have noticed that this area touches a possible binary
incompability though. When Phoenix is compiled with an HBase version not
containing HBASE-14501 (1.1.1), the phoenix-server.jar cannot be run with an
HBase version containing HBASE-14501 (1.1.3).
Does Phoenix have an explicit guarantee about binary compatibility of the
underlying HBase versions? I guess it is implied.
Whether this is an HBase problem or a Phoenix problem is up for discussion
though. BaseDecoder and BaseEncoder are marked Private, so HBase does not
consider the changes in these interfaces as breaking.
BaseDecoder is marked with Private.
> 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)