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