C++ analysis fails Error 139: IllegalStateException

Hi,

I’m working on adding sonarcloud c++ analysis on our project and I am running into an issue where I get the following error (truncated and only including the last sections):

13:23:35.853103 ERROR Exception in thread pool-4-thread-8
com.sonar.cpp.analyzer.Analyzer$AnalyzerException: Exit code 139: /opt/actions-runner/_work/EPEXcpp/EPEXcpp/EPEX/tests/epex_broker/messages/error_response_tests.cpp
	at com.sonar.cpp.analyzer.AnalysisHandler.acceptResult(AnalysisHandler.java:47)
	at com.sonar.cpp.analyzer.Subprocess.execute(Subprocess.java:113)
	at com.sonar.cpp.plugin.CFamilySensor.lambda$process$22(CFamilySensor.java:1106)
	at com.sonar.cpp.analyzer.AnalysisExecutor.lambda$submit$0(AnalysisExecutor.java:58)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)

13:23:40.823054 DEBUG [pool-4-thread-10] /opt/actions-runner/_work/EPEXcpp/EPEXcpp/EPEX/include/EPEX/types/revision_no.h:33 no template named 'flat_hash_map' in namespace 'absl'
13:23:40.823852 DEBUG [pool-4-thread-10] /opt/actions-runner/_work/EPEXcpp/EPEXcpp/EPEX/tests/epex_broker/messages/contract_info_report_tests.cpp:171 implicit instantiation of undefined template 'std::basic_ifstream<char>'
13:23:40.828495 ERROR 
An error occurred while analyzing the following compilation unit: 
  /opt/actions-runner/_work/EPEXcpp/EPEXcpp/EPEX/src/epex_broker/messages/hub_to_hub_response.cpp
A file named "sonar-cfamily-reproducer.zip" has been generated to help the problem investigation.
Please contact SonarSource support providing the following file to help improving the analyzer:
  /opt/actions-runner/_work/EPEXcpp/EPEXcpp/sonar-cfamily-reproducer.zip

java.lang.IllegalStateException: 
An error occurred while analyzing the following compilation unit: 
  /opt/actions-runner/_work/EPEXcpp/EPEXcpp/EPEX/src/epex_broker/messages/hub_to_hub_response.cpp
A file named "sonar-cfamily-reproducer.zip" has been generated to help the problem investigation.
Please contact SonarSource support providing the following file to help improving the analyzer:
  /opt/actions-runner/_work/EPEXcpp/EPEXcpp/sonar-cfamily-reproducer.zip

	at com.sonar.cpp.plugin.CFamilySensor.process(CFamilySensor.java:457)
	at com.sonar.cpp.plugin.CFamilySensor.execute(CFamilySensor.java:220)
	at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:62)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:75)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:51)
	at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:64)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:123)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:109)
	at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:468)
	at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:464)
	at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:420)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:123)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:109)
	at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:130)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:123)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:109)
	at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:58)
	at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:52)
	at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
	at com.sun.proxy.$Proxy0.execute(Unknown Source)
	at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:189)
	at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:138)
	at org.sonarsource.scanner.cli.Main.execute(Main.java:112)
	at org.sonarsource.scanner.cli.Main.execute(Main.java:75)
	at org.sonarsource.scanner.cli.Main.main(Main.java:61)

The github action is quite simple:

...
      - name: Install sonar-scanner and build-wrapper
        uses: SonarSource/sonarcloud-github-c-cpp@v1

      - name: Release Build
        shell: bash
        run: |
          # Configure
          cmake --preset=Release

          # Build
          build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} cmake --build --preset=Default -j32
...

As a side node the analysis silently does not work when running with CMAKE_UNITY_BUILD set to true.

Hi @Anders_Wind,

You can exclude the culprit file to unblock the analysis.

Can you please provide the generated reproducer zip?

I can send you a PM if you prefer to share it privately.

Thanks,

Hi Abbas, please send a PM so I can share it privately.

Also for further information, sonarlint in vscode does work on the culprit files.

Hello @Anders_Wind,

Your code is making use of the C++23 feature if consteval. Since we do not yet support C++23 (well, it’s not even an official version yet), our rules were not prepared to see an if without an associated condition.

I created a ticket to solve this issue: [CPP-4134] - Jira

Hi! That makes a lot of sense!
I have exchanged our if consteval with if (std::is_constant_evaluated()) and it seems to be working smoothly now! Thanks for your investigation!

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.