[
https://issues.apache.org/jira/browse/DRILL-3954?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14984247#comment-14984247
]
Daniel Barclay (Drill) commented on DRILL-3954:
-----------------------------------------------
One problem revealed by increasing the numbers of regions beyond one is that
one of the HBase tests violates the condition whose check yields the error
message saying that column names "must be singular names" (which actually
should say something like "simple names" (a standard term for the intended
concept)).
(Additionally, the fact that changing the number of regions and thereby
(presumably) fragments indicates that Drill's check for that column-name
requirement is hacked-\-checking at the point of serialization or fragment
splitting or whatever code imposes that requirement--rather than checking
earlier when column names should be checked for all relevant requirements (so
that, for example, the number of regions a table has doesn't affect whether the
column name is checked).)
> HBase tests use only 1 region, don't detect bug(s) in dummy-column
> NullableIntVector creation/resolution
> --------------------------------------------------------------------------------------------------------
>
> Key: DRILL-3954
> URL: https://issues.apache.org/jira/browse/DRILL-3954
> Project: Apache Drill
> Issue Type: Bug
> Components: Storage - HBase
> Reporter: Daniel Barclay (Drill)
>
> Currently, the HBase tests (e.g., {{TestHBaseFilterPushDown}}) use only one
> region.
> That causes them to miss detecting a bug in creating and/or resolving dummy
> fields ({{NullableIntVectors}} for referenced but non-existent fields)
> somewhere between reading from HBase and wherever dummy fields are supposed
> to be get resolved (or maybe two separate bugs).
> Reproduction:
> In HBaseTestsSuite, change the line:
> {noformat}
> UTIL.startMiniHBaseCluster(1, 1);
> {noformat}
> to:
> {noformat}
> UTIL.startMiniHBaseCluster(1, 3);
> {noformat}
> and change the line:
> {noformat}
> TestTableGenerator.generateHBaseDataset1(admin, TEST_TABLE_1, 1);
> {noformat}
> to:
> {noformat}
> TestTableGenerator.generateHBaseDataset1(admin, TEST_TABLE_1, 3);
> {noformat}
> .
> Run unit test class {{TestHBaseFilterPushDown}}.
> Depending on which region gets processed first (it's non-deteministic), test
> methods {{testFilterPushDownOrRowKeyEqualRangePred}} and
> {{testFilterPushDownMultiColumns}} get exceptions like this:
> {noformat}
> java.lang.IndexOutOfBoundsException: index: 0, length: 1 (expected: range(0,
> 0))
> at io.netty.buffer.DrillBuf.checkIndexD(DrillBuf.java:189)
> at io.netty.buffer.DrillBuf.chk(DrillBuf.java:211)
> at io.netty.buffer.DrillBuf.getByte(DrillBuf.java:746)
> at
> org.apache.drill.exec.vector.UInt1Vector$Accessor.get(UInt1Vector.java:364)
> at
> org.apache.drill.exec.vector.NullableVarBinaryVector$Accessor.isSet(NullableVarBinaryVector.java:391)
> at
> org.apache.drill.exec.vector.NullableVarBinaryVector$Accessor.isNull(NullableVarBinaryVector.java:387)
> at
> org.apache.drill.exec.vector.NullableVarBinaryVector$Accessor.getObject(NullableVarBinaryVector.java:411)
> at
> org.apache.drill.exec.vector.NullableVarBinaryVector$Accessor.getObject(NullableVarBinaryVector.java:1)
> at
> org.apache.drill.exec.vector.complex.MapVector$Accessor.getObject(MapVector.java:313)
> at
> org.apache.drill.exec.util.VectorUtil.showVectorAccessibleContent(VectorUtil.java:166)
> at org.apache.drill.BaseTestQuery.printResult(BaseTestQuery.java:487)
> at
> org.apache.drill.hbase.BaseHBaseTest.printResultAndVerifyRowCount(BaseHBaseTest.java:95)
> at
> org.apache.drill.hbase.BaseHBaseTest.runHBaseSQLVerifyCount(BaseHBaseTest.java:91)
> at
> org.apache.drill.hbase.TestHBaseFilterPushDown.testFilterPushDownMultiColumns(TestHBaseFilterPushDown.java:592)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at java.lang.reflect.Method.invoke(Method.java:606)
> {noformat}
> See DRILL-3955.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)