[ 
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)

Reply via email to