Interesting... I cannot debug due to lack of the context...

Could you try debug into DictionaryGenerator.mergeDictionaries() ?  The
problem is the buffer array not big enough to hold a dictionary value.
However the array was allocated according to the dictionary's demand at
line 92:  byte[] buffer = new byte[dict.getSizeOfValue()];

Never encountered this one before.

On Mon, Mar 9, 2015 at 2:25 PM, dong wang <[email protected]> wrote:

> building Kylin from source: https://github.com/KylinOLAP/Kylin, when
> selecting 2 segments of the cube to merge, the following error occur:
>
> [pool-7-thread-3]:[2015-03-09
>
> 14:22:01,609][ERROR][org.apache.kylin.job.impl.threadpool.DefaultScheduler$JobRunner.run(DefaultScheduler.java:134)]
> - ExecuteException job:059d0d3e-fa69-4ef5-b06b-f5625c1599d9
> org.apache.kylin.job.exception.ExecuteException:
> org.apache.kylin.job.exception.ExecuteException:
> java.lang.ArrayIndexOutOfBoundsException
>         at
>
> org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:102)
>         at
>
> org.apache.kylin.job.impl.threadpool.DefaultScheduler$JobRunner.run(DefaultScheduler.java:132)
>         at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>         at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:745)
> Caused by: org.apache.kylin.job.exception.ExecuteException:
> java.lang.ArrayIndexOutOfBoundsException
>         at
>
> org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:102)
>         at
>
> org.apache.kylin.job.execution.DefaultChainedExecutable.doWork(DefaultChainedExecutable.java:50)
>         at
>
> org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:99)
>         ... 4 more
> Caused by: java.lang.ArrayIndexOutOfBoundsException
>         at
>
> org.apache.kylin.dict.DateStrDictionary.getValueBytesFromIdImpl(DateStrDictionary.java:191)
>         at
> org.apache.kylin.dict.Dictionary.getValueBytesFromId(Dictionary.java:156)
>         at
>
> org.apache.kylin.dict.DictionaryGenerator.mergeDictionaries(DictionaryGenerator.java:94)
>         at
>
> org.apache.kylin.dict.DictionaryManager.mergeDictionary(DictionaryManager.java:149)
>         at
>
> org.apache.kylin.job.cube.MergeDictionaryStep.mergeDictionaries(MergeDictionaryStep.java:141)
>         at
>
> org.apache.kylin.job.cube.MergeDictionaryStep.makeDictForNewSegment(MergeDictionaryStep.java:131)
>         at
>
> org.apache.kylin.job.cube.MergeDictionaryStep.doWork(MergeDictionaryStep.java:68)
>         at
>
> org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:99)
>

Reply via email to