[ https://issues.apache.org/jira/browse/PHOENIX-1359?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14179536#comment-14179536 ]
James Taylor commented on PHOENIX-1359: --------------------------------------- I think that the onExpressions.size() write is getting overwritten by the nRows. The code is meant to write an int as a place holder and then replace it after looping through the tuples. This code should have been after the out.writeInt(nRows): {code} DataOutputStream out = new DataOutputStream(baOut); // Write onExpressions first, for hash key evaluation along with deserialization out.writeInt(onExpressions.size()); for (Expression expression : onExpressions) { WritableUtils.writeVInt(out, ExpressionType.valueOf(expression).ordinal()); expression.write(out); } int exprSize = baOut.size() + Bytes.SIZEOF_INT; out.writeInt(exprSize); {code} I don't think we'll know how many ON expressions there are. Hmm. Not sure how to fix this - not sure how it worked before. Maybe I'm missing something? > Backward compatibility fails with 4.1 client and current 4.0 branch on server > ----------------------------------------------------------------------------- > > Key: PHOENIX-1359 > URL: https://issues.apache.org/jira/browse/PHOENIX-1359 > Project: Phoenix > Issue Type: Bug > Affects Versions: 4.1 > Reporter: Mujtaba Chohan > Assignee: James Taylor > Fix For: 5.0.0, 4.2, 3.2 > > Attachments: 1359-2.patch, PHOENIX-1359-v3.patch, PHOENIX-1359.patch, > PHOENIX-1359.patch > > > 1. Queries with join fail with Encountered exception in hash plan [0] > execution. (state=,code=0) with 4.1 client and 4.2-SNAPSHOT on server > Query example: select * from LOYALTY_PROGRAM_CONDITION JOIN LOYALTY_PROGRAM > on LOYALTY_PROGRAM_CONDITION__c.LOYALTY_PROGRAM_ID = > LOYALTY_PROGRAM__c.ENTITY_ID where LOYALTY_PROGRAM__c.NAME='Ferrari' AND > LOYALTY_PROGRAM_CONDITION.COUNTRY = 'Italy' limit 100; > 2. Sqline fails to start with during list table phase with 4.1 client and > 4.2-SNAPSHOT on server. > Caused by: org.apache.hadoop.hbase.exceptions.DeserializationException: > java.io.EOFException > at > org.apache.phoenix.filter.RowKeyComparisonFilter.parseFrom(RowKeyComparisonFilter.java:161) > ... 18 more > Caused by: java.io.EOFException > at java.io.DataInputStream.readFully(DataInputStream.java:180) > at java.io.DataInputStream.readFully(DataInputStream.java:152) > at > org.apache.hadoop.io.WritableUtils.readCompressedByteArray(WritableUtils.java:39) > at > org.apache.phoenix.filter.RowKeyComparisonFilter.readFields(RowKeyComparisonFilter.java:148) > at > org.apache.hadoop.hbase.util.Writables.getWritable(Writables.java:131) > at > org.apache.hadoop.hbase.util.Writables.getWritable(Writables.java:101) > at > org.apache.phoenix.filter.RowKeyComparisonFilter.parseFrom(RowKeyComparisonFilter.java:159) > ... 18 more -- This message was sent by Atlassian JIRA (v6.3.4#6332)