[
https://issues.apache.org/jira/browse/KYLIN-2926?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16207228#comment-16207228
]
Shaofeng SHI commented on KYLIN-2926:
-------------------------------------
[~feng_xiao_yu] Yu, ultimately we should remove the ThreadLocal property, but
that need more discussion and the test may last long. I can also think it is a
bug in org.apache.kylin.measure.hllc.HLLCSerializer and
org.apache.kylin.measure.raw.RawSerializer. They should return a new object in
the deserialize method.
[~zhengd] Dong's idea is also good; Cache the serialized byte array in
dumpCurrentValues is safe; Deserialize the object in the "internalAggregate()",
just before aggregating it into the "resultAggrs".
> DumpMerger return incorrect results
> -----------------------------------
>
> Key: KYLIN-2926
> URL: https://issues.apache.org/jira/browse/KYLIN-2926
> Project: Kylin
> Issue Type: Bug
> Affects Versions: v2.0.0
> Reporter: fengYu
> Assignee: fengYu
> Attachments:
> 0001-KYLIN-2926-DumpMerger-return-incorrect-results-creat.patch
>
>
> I our scenario, a cube query will get wrong result once coprocessor need to
> spill to disk, Our version is 2.0.0 and I find the root cause is that in
> DumpMerger.enqueueFromDump
> because in DataTypeSerializer kylin use a ThreadLocal variable ‘current’, It
> leading to different elements in dumpCurrentValues share the same object, so
> next fill up measure values will change the existing values.
> the incorrect measures is HLLC and raw, which use current variable in
> deserialize.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)