You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Hive QA (JIRA)" <ji...@apache.org> on 2013/11/18 22:59:20 UTC
[jira] [Commented] (HIVE-5839) BytesRefArrayWritable compareTo
violates contract
[ https://issues.apache.org/jira/browse/HIVE-5839?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13825820#comment-13825820 ]
Hive QA commented on HIVE-5839:
-------------------------------
{color:red}Overall{color}: -1 at least one tests failed
Here are the results of testing the latest attachment:
https://issues.apache.org/jira/secure/attachment/12614469/HIVE-5839.patch
{color:red}ERROR:{color} -1 due to 2 failed/errored test(s), 4617 tests executed
*Failed tests:*
{noformat}
org.apache.hadoop.hive.cli.TestCliDriver.testCliDriver_dynamic_partition_skip_default
org.apache.hadoop.hive.ql.io.TestRCFile.testWriteAndPartialRead
{noformat}
Test results: http://bigtop01.cloudera.org:8080/job/PreCommit-HIVE-Build/347/testReport
Console output: http://bigtop01.cloudera.org:8080/job/PreCommit-HIVE-Build/347/console
Messages:
{noformat}
Executing org.apache.hive.ptest.execution.PrepPhase
Executing org.apache.hive.ptest.execution.ExecutionPhase
Executing org.apache.hive.ptest.execution.ReportingPhase
Tests failed with: TestsFailedException: 2 tests failed
{noformat}
This message is automatically generated.
ATTACHMENT ID: 12614469
> BytesRefArrayWritable compareTo violates contract
> -------------------------------------------------
>
> Key: HIVE-5839
> URL: https://issues.apache.org/jira/browse/HIVE-5839
> Project: Hive
> Issue Type: Bug
> Components: Serializers/Deserializers
> Affects Versions: 0.11.0, 0.12.0
> Reporter: Ian Robertson
> Assignee: Xuefu Zhang
> Attachments: HIVE-5839.patch
>
>
> BytesRefArrayWritable's compareTo violates the compareTo contract from java.lang.Object. Specifically:
> * The implementor must ensure sgn(x.compareTo( y )) == -sgn(y.compareTo( x )) for all x and y.
> The compareTo implementation on BytesRefArrayWritable does a proper comparison of the sizes of the two instances. However, if the sizes are the same, it proceeds to do a check if both array's have the same constant. If not, it returns 1. This means that if x and y are two BytesRefArrayWritable instances with the same size, but different contents, then x.compareTo( y ) == 1 and y.compareTo( x ) == 1.
> Additionally, the comparison of contents is order agnostic. This seems wrong, since order of entries should matter. It is also very inefficient, running at O(n^2), where n is the number of entries.
--
This message was sent by Atlassian JIRA
(v6.1#6144)