Error during SonarQube Scanner execution; Unrecognized blame info at line

Hello,

We are using SonarQube Version 6.7.1 (build 35068).

I have an issue with the sonar-scanner.bat file that I am using to manually generate a sonarqube analyses for one of our projects.
1st I run the build-wrapper. There are no problems with that, and outputs are generated.
Then I would like to run the analyses with the sonar-scanner, which gives me the following error:

13:50:34.277 INFO: 154/292 files analyzed
13:50:34.392 INFO: ------------------------------------------------------------------------
13:50:34.394 INFO: EXECUTION FAILURE
13:50:34.394 INFO: ------------------------------------------------------------------------
13:50:34.396 INFO: Total time: 1:36.801s
13:50:34.766 INFO: Final Memory: 40M/803M
13:50:34.769 INFO: ------------------------------------------------------------------------
13:50:34.774 ERROR: Error during SonarQube Scanner execution
org.sonar.api.utils.command.CommandException: Error inside stdOut stream [command: hg blame -w -v --user --date --changeset src/userinterface/cfg_pages/pages/ui_cfgpage_work_water_func.c]
at org.sonar.api.utils.command.CommandExecutor.verifyGobbler(CommandExecutor.java:120)
at org.sonar.api.utils.command.CommandExecutor.execute(CommandExecutor.java:91)
at org.sonar.plugins.scm.mercurial.MercurialBlameCommand.execute(MercurialBlameCommand.java:111)
at org.sonar.plugins.scm.mercurial.MercurialBlameCommand.blame(MercurialBlameCommand.java:96)
at org.sonar.plugins.scm.mercurial.MercurialBlameCommand.access$000(MercurialBlameCommand.java:42)
at org.sonar.plugins.scm.mercurial.MercurialBlameCommand$1.call(MercurialBlameCommand.java:83)
at org.sonar.plugins.scm.mercurial.MercurialBlameCommand$1.call(MercurialBlameCommand.java:80)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: Unable to blame file src/userinterface/cfg_pages/pages/ui_cfgpage_work_water_func.c. Unrecognized blame info at line 913: pageWorkWaterFunc.remainingProgr = IxCleanGetRemainingTime(pageWorkWaterFunc.smcMode);
at org.sonar.plugins.scm.mercurial.MercurialBlameConsumer.consumeLine(MercurialBlameConsumer.java:65)
at org.sonar.api.utils.command.CommandExecutor$StreamGobbler.consumeLine(CommandExecutor.java:182)
at org.sonar.api.utils.command.CommandExecutor$StreamGobbler.run(CommandExecutor.java:172)
13:50:34.817 DEBUG: Executing: hg blame -w -v --user --date --changeset src/userinterface/general_ui/ui_home.c
13:50:34.820 DEBUG: Executing: hg blame -w -v --user --date --changeset src/userinterface/general_ui/ui_home.h

If I manually run the following command:
hg blame -w -v --user --date --changeset src/userinterface/cfg_pages/pages/ui_cfgpage_work_water_func.c
There are no problems.

So I am really stuck where is this coming from.

What is also strange that the same error is generated (same error about that particular line: 913) when I scan the repository with Fisheye (from Atlassian), which is a repository browser.

So I am pretty sure something is wrong with that particular file’s line, but I am not able to figure out what is wrong, and more importantly, how to fix it.

Regards,
Tamas

We’ve having problems with Mercurial blame. I’ve opened an issue in Github but apparently that’s not monitored anymore. https://github.com/SonarSource/sonar-scm-mercurial/issues/12

he offending part of blame output seems to be this. Notice the line with single curly brace

                               user1 1a25faa8b304 Tue Apr 17 07:26:46 2007 +0000: 
                               user1 1a25faa8b304 Tue Apr 17 07:26:46 2007 +0000: 
        }
                               user1 05f2b7762edd Thu May 03 10:21:02 2007 +0000: 
                               user2 75e1d843f817 Thu Jan 06 09:19:35 2011 +0000: 

This might be a problem with mercurial but I would still prefer that such errors would be skipped and the analysis and available scm information sent to SonarQube server.

We are using .NET though, not C.