[ https://issues.apache.org/jira/browse/KYLIN-1973?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15528791#comment-15528791 ]
Copperfield commented on KYLIN-1973: ------------------------------------ When I use kylin-core-dictionary.jar of 1.5.4 to as a patch for kylin 1.5.2.1 The error still happen and my error stack is java.lang.RuntimeException: Failed to create dictionary on DEFAULT.XXXXX at org.apache.kylin.dict.DictionaryManager.buildDictionary(DictionaryManager.java:329) at org.apache.kylin.dict.DictionaryManager.buildDictionary(DictionaryManager.java:274) at org.apache.kylin.cube.CubeManager.buildDictionary(CubeManager.java:165) at org.apache.kylin.cube.cli.DictionaryGeneratorCLI.processSegment(DictionaryGeneratorCLI.java:51) at org.apache.kylin.cube.cli.DictionaryGeneratorCLI.processSegment(DictionaryGeneratorCLI.java:42) at org.apache.kylin.engine.mr.steps.CreateDictionaryJob.run(CreateDictionaryJob.java:56) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84) at org.apache.kylin.engine.mr.common.HadoopShellExecutable.doWork(HadoopShellExecutable.java:60) at org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:114) at org.apache.kylin.job.execution.DefaultChainedExecutable.doWork(DefaultChainedExecutable.java:50) at org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:114) at org.apache.kylin.job.impl.threadpool.DefaultScheduler$JobRunner.run(DefaultScheduler.java:124) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) Caused by: java.lang.NegativeArraySizeException at org.apache.kylin.dict.TrieDictionaryBuilder.buildTrieBytes(TrieDictionaryBuilder.java:443) at org.apache.kylin.dict.TrieDictionaryBuilder.build(TrieDictionaryBuilder.java:408) at org.apache.kylin.dict.DictionaryGenerator$StringDictBuilder.build(DictionaryGenerator.java:165) at org.apache.kylin.dict.DictionaryGenerator.buildDictionary(DictionaryGenerator.java:81) at org.apache.kylin.dict.DictionaryGenerator.buildDictionary(DictionaryGenerator.java:73) at org.apache.kylin.dict.DictionaryManager.buildDictionary(DictionaryManager.java:325) ... 15 more and I logged the wrong value: logger.info("Length of mbpn_footprint is: " + stats.mbpn_footprint); logger.info("Length of head.length is: " + head.length); logger.info("Why there is a navigate number: " + stats.mbpn_footprint + head.length); Length of mbpn_footprint is: -472279743 2016-09-28 15:54:50,460 INFO [pool-2-thread-1] dict.TrieDictionaryBuilder:447 : Length of head.length is: 64 2016-09-28 15:54:50,461 INFO [pool-2-thread-1] dict.TrieDictionaryBuilder:448 : Why there is a navigate number: -47227974364 > java.lang.NegativeArraySizeException when Build Dimension Dictionary > -------------------------------------------------------------------- > > Key: KYLIN-1973 > URL: https://issues.apache.org/jira/browse/KYLIN-1973 > Project: Kylin > Issue Type: Bug > Affects Versions: v1.5.3 > Reporter: zhengdong > Assignee: liyang > Fix For: v1.5.4 > > > exception when Build Dimension Dictionary: > java.lang.NegativeArraySizeException > at > org.apache.kylin.dict.TrieDictionary.getValueFromIdImpl(TrieDictionary.java:274) > at > org.apache.kylin.common.util.Dictionary.getValueFromId(Dictionary.java:130) > at > org.apache.kylin.dict.lookup.SnapshotTable$1.getRow(SnapshotTable.java:138) > at org.apache.kylin.dict.lookup.LookupTable.init(LookupTable.java:67) > at > org.apache.kylin.dict.lookup.LookupStringTable.init(LookupStringTable.java:79) > at org.apache.kylin.dict.lookup.LookupTable.<init>(LookupTable.java:55) > at > org.apache.kylin.dict.lookup.LookupStringTable.<init>(LookupStringTable.java:65) > at > org.apache.kylin.cube.CubeManager.getLookupTable(CubeManager.java:619) > at > org.apache.kylin.cube.cli.DictionaryGeneratorCLI.processSegment(DictionaryGeneratorCLI.java:61) > at > org.apache.kylin.cube.cli.DictionaryGeneratorCLI.processSegment(DictionaryGeneratorCLI.java:42) > at > org.apache.kylin.engine.mr.steps.CreateDictionaryJob.run(CreateDictionaryJob.java:56) > at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) > at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84) > at > org.apache.kylin.engine.mr.common.HadoopShellExecutable.doWork(HadoopShellExecutable.java:63) > at > org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:112) > at > org.apache.kylin.job.execution.DefaultChainedExecutable.doWork(DefaultChainedExecutable.java:57) > at > org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:112) > at > org.apache.kylin.job.impl.threadpool.DefaultScheduler$JobRunner.run(DefaultScheduler.java:127) > 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) > result code:2 -- This message was sent by Atlassian JIRA (v6.3.4#6332)