Sonar scanner fails with java.lang.StackOverflowError

Dear team,

I am trying to run sonar analysis on onw of my projects but it fails with this error. This is 100% reproducible.
Sonar server : Version 6.7.3 (build 38370)
Sonar scanner : 2.3

Can you please point me to correct direction to resolve this?

—truncated—

09:41:41 09:41:42.206 DEBUG - Parse ‘C:\slave\workspace\kai\mops_conf_d4_umops_v4_4700-sonar\mops_core\MoPS_lua.c’ as C file, ends in ‘*.c’
09:41:42 09:41:42.497 ERROR - Unable to parse file: C:\slave\workspace\kai\mops_conf_d4_umops_v4_4700-sonar\mops_core\MoPS_lua.c
09:41:42 09:41:42.497 ERROR - Lexer error: Unable to lex url: file:/C:/slave/workspace/kai/mops_conf_d4_umops_v4_4700-sonar/mops_core/MoPS_lua.c
09:41:42 09:41:42.497 DEBUG - API File: MoPS_lua.c
09:41:42 09:41:42.497 DEBUG - Header file suffixes: [.hxx, .hpp, .hh, .h]
09:41:42 09:41:42.497 DEBUG - finished preprocessing ‘C:\slave\workspace\kai\mops_conf_d4_umops_v4_4700-sonar\mops_core\MoPS_lua.c’
09:41:42 09:41:42.499 DEBUG - CxxFileLinesVisitor: ‘/C:/slave/workspace/kai/mops_conf_d4_umops_v4_4700-sonar/mops_core/MoPS_lua.c’
09:41:42 09:41:42.500 DEBUG - ‘mops_core/MoPS_lua.c’ generated metadata with charset ‘UTF-8’
09:41:42 09:41:42.500 DEBUG - lines: ‘272’
09:41:42 09:41:42.500 DEBUG - executableLines: ‘
09:41:42 09:41:42.500 DEBUG - linesOfCode: ‘
09:41:42 09:41:42.500 DEBUG - linesOfComments: ‘
09:41:42 09:41:42.500 DEBUG - Not enough content in ‘mops_core/MoPS_lua.c’ to have CPD blocks, it will not be part of the duplication detection
09:41:42 09:41:42.500 DEBUG - global settings for: ‘C:\slave\workspace\kai\mops_conf_d4_umops_v4_4700-sonar\mops_core\MoPS_lua.h’
09:41:42 09:41:42.500 DEBUG - Parse ‘C:\slave\workspace\kai\mops_conf_d4_umops_v4_4700-sonar\mops_core\MoPS_lua.h’ as C++ file
09:41:42 INFO: ------------------------------------------------------------------------
09:41:42 INFO: EXECUTION FAILURE
09:41:42 INFO: ------------------------------------------------------------------------
09:41:42 Total time: 2:50.431s
09:41:42 Final Memory: 16M/359M
09:41:42 INFO: ------------------------------------------------------------------------
09:41:42 ERROR: Error during Sonar runner execution
09:41:42 org.sonar.runner.impl.RunnerException: Unable to execute Sonar
09:41:42 at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:91)
09:41:42 at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75)
09:41:42 at java.security.AccessController.doPrivileged(Native Method)
09:41:42 at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69)
09:41:42 at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50)
09:41:42 at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102)
09:41:42 at org.sonar.runner.api.Runner.execute(Runner.java:90)
09:41:42 at org.sonar.runner.Main.executeTask(Main.java:70)
09:41:42 at org.sonar.runner.Main.execute(Main.java:59)
09:41:42 at org.sonar.runner.Main.main(Main.java:41)
09:41:42 Caused by: org.sonar.squidbridge.api.AnalysisException: Unable to parse file: C:\slave\workspace\kai\mops_conf_d4_umops_v4_4700-sonar\mops_core\MoPS_lua.h
09:41:42 at org.sonar.squidbridge.AstScanner.scanFiles(AstScanner.java:105)
09:41:42 at org.sonar.cxx.sensors.squid.CxxSquidSensor.execute(CxxSquidSensor.java:157)
09:41:42 at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53)
09:41:42 at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:88)
09:41:42 at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:82)
09:41:42 at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:68)
09:41:42 at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:88)
09:41:42 at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:180)
09:41:42 at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
09:41:42 at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121)
09:41:42 at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:288)
09:41:42 at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:283)
09:41:42 at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:261)
09:41:42 at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
09:41:42 at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121)
09:41:42 at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:48)
09:41:42 at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:84)
09:41:42 at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
09:41:42 at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121)
09:41:42 at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:121)
09:41:42 at org.sonar.batch.bootstrapper.Batch.doExecuteTask(Batch.java:116)
09:41:42 at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:71)
09:41:42 at org.sonar.runner.batch.IsolatedLauncher.execute(IsolatedLauncher.java:45)
09:41:42 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
09:41:42 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
09:41:42 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
09:41:42 at java.lang.reflect.Method.invoke(Method.java:498)
09:41:42 at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:87)
09:41:42 … 9 more
09:41:42 Caused by: java.lang.StackOverflowError
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visitTerminal(LexerfulAstCreator.java:82)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visit(LexerfulAstCreator.java:49)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visitNonTerminal(LexerfulAstCreator.java:56)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visit(LexerfulAstCreator.java:47)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visitNonTerminal(LexerfulAstCreator.java:56)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visit(LexerfulAstCreator.java:47)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visitNonTerminal(LexerfulAstCreator.java:56)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visit(LexerfulAstCreator.java:47)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visitNonTerminal(LexerfulAstCreator.java:56)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visit(LexerfulAstCreator.java:47)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visitNonTerminal(LexerfulAstCreator.java:56)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visit(LexerfulAstCreator.java:47)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visitNonTerminal(LexerfulAstCreator.java:56)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visit(LexerfulAstCreator.java:47)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visitNonTerminal(LexerfulAstCreator.java:56)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visit(LexerfulAstCreator.java:47)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visitNonTerminal(LexerfulAstCreator.java:56)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visit(LexerfulAstCreator.java:47)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visitNonTerminal(LexerfulAstCreator.java:56)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visit(LexerfulAstCreator.java:47)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visitNonTerminal(LexerfulAstCreator.java:56)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visit(LexerfulAstCreator.java:47)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visitNonTerminal(LexerfulAstCreator.java:56)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visit(LexerfulAstCreator.java:47)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visitNonTerminal(LexerfulAstCreator.java:56)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visit(LexerfulAstCreator.java:47)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visitNonTerminal(LexerfulAstCreator.java:56)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visit(LexerfulAstCreator.java:47)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visitNonTerminal(LexerfulAstCreator.java:56)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.visit(LexerfulAstCreator.java:47)
09:41:42 at org.sonar.sslr.internal.matchers.LexerfulAstCreator.create(LexerfulAstCreator.java:33)
09:41:42 at com.sonar.sslr.impl.Parser.parse(Parser.java:84)
09:41:42 at com.sonar.sslr.impl.Parser.parse(Parser.java:78)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:62)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalLeaf(ExpressionEvaluator.java:100)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:81)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalOneChildAst(ExpressionEvaluator.java:113)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:83)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:73)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalLeaf(ExpressionEvaluator.java:100)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:81)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalOneChildAst(ExpressionEvaluator.java:113)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:83)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:73)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalLeaf(ExpressionEvaluator.java:100)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:81)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalOneChildAst(ExpressionEvaluator.java:113)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:83)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:73)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalLeaf(ExpressionEvaluator.java:100)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:81)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalOneChildAst(ExpressionEvaluator.java:113)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:83)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:73)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalLeaf(ExpressionEvaluator.java:100)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:81)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalOneChildAst(ExpressionEvaluator.java:113)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:83)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:73)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalLeaf(ExpressionEvaluator.java:100)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:81)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalOneChildAst(ExpressionEvaluator.java:113)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:83)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:73)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalLeaf(ExpressionEvaluator.java:100)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:81)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalOneChildAst(ExpressionEvaluator.java:113)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:83)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:73)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalLeaf(ExpressionEvaluator.java:100)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:81)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalOneChildAst(ExpressionEvaluator.java:113)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:83)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:73)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalLeaf(ExpressionEvaluator.java:100)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:81)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalOneChildAst(ExpressionEvaluator.java:113)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:83)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:73)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalLeaf(ExpressionEvaluator.java:100)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:81)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalOneChildAst(ExpressionEvaluator.java:113)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:83)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:73)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalLeaf(ExpressionEvaluator.java:100)
09:41:42 at org.sonar.cxx.preprocessor.ExpressionEvaluator.evalToInt(ExpressionEvaluator.java:81)
—truncated—

Hi,

For me, this is the key part of your error message (emphasis added):

It tells me that your error is coming from the sonar-cxx plugin, so you should report the issue there.

Ann