You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kylin.apache.org by "yuchuqian (JIRA)" <ji...@apache.org> on 2017/11/23 07:24:01 UTC
[jira] [Created] (KYLIN-3055) NullPointerException in
MutableRoaringBitmap.or using intersect_count
yuchuqian created KYLIN-3055:
--------------------------------
Summary: NullPointerException in MutableRoaringBitmap.or using intersect_count
Key: KYLIN-3055
URL: https://issues.apache.org/jira/browse/KYLIN-3055
Project: Kylin
Issue Type: Bug
Affects Versions: v2.2.0
Reporter: yuchuqian
2017-11-21 19:55:17,363 ERROR [Query b1fbcd45-6524-4b1e-8844-1d6d6277a1bf-120] service.QueryService:459 : Exception while executing query
java.sql.SQLException: Error while executing SQL "select part_dt,
intersect_count(item_count, part_dt, array[date'2012-01-01']) as first_day,
intersect_count(item_count, part_dt, array[date'2012-01-02']) as second_day,
intersect_count(item_count, part_dt, array[date'2012-01-03']) as third_day,
intersect_count(item_count, part_dt, array[date'2012-01-01',date'2012-01-02']) as retention_oneday,
intersect_count(item_count, part_dt, array[date'2012-01-01',date'2012-01-02',date'2012-01-03']) as retention_twoday
from kylin_sales
where part_dt in (date'2012-01-01',date'2012-01-02',date'2012-01-03')
group by PART_DT
LIMIT 50000": null
at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:156)
at org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:218)
at org.apache.kylin.rest.service.QueryService.execute(QueryService.java:834)
at org.apache.kylin.rest.service.QueryService.queryWithSqlMassage(QueryService.java:561)
at org.apache.kylin.rest.service.QueryService.query(QueryService.java:181)
at org.apache.kylin.rest.service.QueryService.doQueryWithCache(QueryService.java:415)
at org.apache.kylin.rest.controller.QueryController.query(QueryController.java:78)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
......
Caused by: java.lang.NullPointerException
at org.roaringbitmap.buffer.MutableRoaringBitmap.or(MutableRoaringBitmap.java:1041)
at org.apache.kylin.measure.bitmap.RoaringBitmapCounter.orWith(RoaringBitmapCounter.java:72)
at org.apache.kylin.measure.bitmap.BitmapIntersectDistinctCountAggFunc$RetentionPartialResult.add(BitmapIntersectDistinctCountAggFunc.java:57)
at org.apache.kylin.measure.bitmap.BitmapIntersectDistinctCountAggFunc.add(BitmapIntersectDistinctCountAggFunc.java:90)
at Baz$4.apply(ANONYMOUS.java:136)
at Baz$4.apply(ANONYMOUS.java:158)
at Baz$4.apply(ANONYMOUS.java)
at org.apache.calcite.linq4j.EnumerableDefaults.groupBy_(EnumerableDefaults.java:832)
at org.apache.calcite.linq4j.EnumerableDefaults.groupBy(EnumerableDefaults.java:761)
at org.apache.calcite.linq4j.DefaultEnumerable.groupBy(DefaultEnumerable.java:302)
at Baz.bind(Baz.java:99)
How to re-produce:
1. run $KYLIN_HOME/bin/sample.sh
2. then create a cube like
{
"uuid": "9554f6f6-74dc-489e-b780-2f48f281576c",
"last_modified": 1511247707372,
"version": "2.2.0.0",
"name": "test",
"is_draft": false,
"model_name": "kylin_sales_model",
"description": "",
"null_string": null,
"dimensions": [
{
"name": "PART_DT",
"table": "KYLIN_SALES",
"column": "PART_DT",
"derived": null
},
{
"name": "LEAF_CATEG_ID",
"table": "KYLIN_SALES",
"column": "LEAF_CATEG_ID",
"derived": null
},
{
"name": "LSTG_SITE_ID",
"table": "KYLIN_SALES",
"column": "LSTG_SITE_ID",
"derived": null
},
{
"name": "CAL_DT",
"table": "KYLIN_CAL_DT",
"column": null,
"derived": [
"CAL_DT"
]
},
{
"name": "LEAF_CATEG_ID",
"table": "KYLIN_CATEGORY_GROUPINGS",
"column": null,
"derived": [
"LEAF_CATEG_ID"
]
},
{
"name": "USER_DEFINED_FIELD1",
"table": "KYLIN_CATEGORY_GROUPINGS",
"column": null,
"derived": [
"USER_DEFINED_FIELD1"
]
},
{
"name": "USER_DEFINED_FIELD3",
"table": "KYLIN_CATEGORY_GROUPINGS",
"column": null,
"derived": [
"USER_DEFINED_FIELD3"
]
}
],
"measures": [
{
"name": "_COUNT_",
"function": {
"expression": "COUNT",
"parameter": {
"type": "constant",
"value": "1"
},
"returntype": "bigint"
}
},
{
"name": "DISTINCT_TEST",
"function": {
"expression": "COUNT_DISTINCT",
"parameter": {
"type": "column",
"value": "KYLIN_SALES.ITEM_COUNT"
},
"returntype": "bitmap"
}
}
],
"dictionaries": [
{
"column": "KYLIN_SALES.ITEM_COUNT",
"builder": "org.apache.kylin.dict.GlobalDictionaryBuilder"
}
],
"rowkey": {
"rowkey_columns": [
{
"column": "KYLIN_SALES.PART_DT",
"encoding": "date",
"isShardBy": false
},
{
"column": "KYLIN_SALES.LEAF_CATEG_ID",
"encoding": "dict",
"isShardBy": false
},
{
"column": "KYLIN_SALES.LSTG_SITE_ID",
"encoding": "dict",
"isShardBy": false
}
]
},
"hbase_mapping": {
"column_family": [
{
"name": "F1",
"columns": [
{
"qualifier": "M",
"measure_refs": [
"_COUNT_"
]
}
]
},
{
"name": "F2",
"columns": [
{
"qualifier": "M",
"measure_refs": [
"DISTINCT_TEST"
]
}
]
}
]
},
"aggregation_groups": [
{
"includes": [
"KYLIN_SALES.PART_DT",
"KYLIN_SALES.LEAF_CATEG_ID",
"KYLIN_SALES.LSTG_SITE_ID"
],
"select_rule": {
"hierarchy_dims": [],
"mandatory_dims": [],
"joint_dims": []
}
}
],
"signature": "A+IVHOIKkr3H1jNfcFnIsg==",
"notify_list": [],
"status_need_notify": [
"ERROR",
"DISCARDED",
"SUCCEED"
],
"partition_date_start": 0,
"partition_date_end": 3153600000000,
"auto_merge_time_ranges": [
604800000,
2419200000
],
"retention_range": 0,
"engine_type": 2,
"storage_type": 2,
"override_kylin_properties": {},
"cuboid_black_list": [],
"parent_forward": 3
}
3. run query
select part_dt,
intersect_count(item_count, part_dt, array[date'2012-01-01']) as first_day,
intersect_count(item_count, part_dt, array[date'2012-01-02']) as second_day,
intersect_count(item_count, part_dt, array[date'2012-01-03']) as third_day,
intersect_count(item_count, part_dt, array[date'2012-01-01',date'2012-01-02']) as retention_oneday,
intersect_count(item_count, part_dt, array[date'2012-01-01',date'2012-01-02',date'2012-01-03']) as retention_twoday
from kylin_sales
where part_dt in (date'2012-01-01',date'2012-01-02',date'2012-01-03')
group by PART_DT
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)