The "build-wrapper-dump.json" file was found empty. Please make sure that:

Hi,

My project is c++ based, my main goal is to scan all the files regarding .cpp. In the build phase I am using build-wrapper and passing the output of that in the sonarcloud step.

I am doing

sonar-scanner -Dsonar.projectKey=**** -Dsonar.host.url="https://sonarcloud.io" -Dsonar.cfamily.build-wrapper-output=build/build_wrapper_output_directory -Dsonar.sources=. -Dsonar.exclusions=**/*.java,**/*.sql,**/*.xml,**/*.rpgle,**/*.ts,**/*.rb,**/*.php,**/*.html,**/*.swift,**/*.go,**/*.inc,**/*.sh,**/*.py -Dsonar.cfamily.threads=8 -Dsonar.organization=****

I got this in log

INFO:   Excluded sources: **/build-wrapper-dump.json, **/*.java, **/*.sql, **/*.xml, **/*.rpgle, **/*.ts, **/*.rb, **/*.php, **/*.html, **/*.swift, **/*.go, **/*.inc, **/*.sh, **/*.py

its also excluding **/build-wrapper-dump.json. In exclusions I didn’t mentioned anything regarding this file.

I am getting this error:

ERROR: Error during SonarScanner execution
java.lang.IllegalStateException: The "build-wrapper-dump.json" file was found empty. Please make sure that:
  * you are using the latest version of the build-wrapper and the CFamily analyzer
  * your compiler is supported
  * you are wrapping your build correctly
  * you are wrapping a full/clean build
  * if you are building your project inside a Docker container, build-wrapper is wrapping the build process inside the container and not wrapping the external Docker process
	at com.sonar.cpp.plugin.CFamilySensor.process(CFamilySensor.java:446)
	at com.sonar.cpp.plugin.CFamilySensor.execute(CFamilySensor.java:204)
	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:446)
	at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:442)
	at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:400)
	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:129)
	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)
ERROR:

Can you please guide me, What's I am missing or what changes I should made.

Thanks

Can you upload your build-wrapper.log file that should be in the build wrapper output directory?

Hi, I am not facing the issue when I mentioned about sonar.inclusions. But now when I am trying to scan my whole project, which is super big and has 1000s of files. I am using sonar.threads=8 and it takes hours to scan all those files and in the end scan is getting fail when I am scanning 1000s of .cpp files on the other hand when I am just scanning specific single .cpp files at that time sonar analysis is successful.

Can you please suggest me, what can I do to make the analysis faster?
Increasing the threads gonna help me ?
If it gonna make the scanning faster, how many (sonar.threads) should I use?

Take a look at the documentation on Analysis cache and Parallel code scan to understand more about the options you have to speed up analysis.

Hi, When I am executing sonar-scanner in my pipeline. I am getting this error line 8: -Dsonar.organization=clibmouse: command not found.
But when I do it manually on my container, I can successfully do the analysis.

I did sonar-scanner -X and I got this logs

20:51:39.609 INFO: Scanner configuration file: /opt/sonar-scanner/conf/sonar-scanner.properties
20:51:39.611 INFO: Project root configuration file: NONE
20:51:39.634 INFO: SonarScanner 4.7.0.2747
20:51:39.635 INFO: Java 11.0.14.1 Eclipse Adoptium (64-bit)
20:51:39.635 INFO: Linux 4.15.0-173-generic amd64
20:51:39.742 DEBUG: keyStore is : 
20:51:39.742 DEBUG: keyStore type is : pkcs12
20:51:39.742 DEBUG: keyStore provider is : 
20:51:39.742 DEBUG: init keystore
20:51:39.743 DEBUG: init keymanager of type SunX509
20:51:39.831 DEBUG: Create: /root/.sonar/cache
20:51:39.832 INFO: User cache: /root/.sonar/cache
20:51:39.832 DEBUG: Create: /root/.sonar/cache/_tmp
20:51:39.834 DEBUG: Extract sonar-scanner-api-batch in temp...
20:51:39.836 DEBUG: Get bootstrap index...
20:51:39.837 DEBUG: Download: http://localhost:9000/batch/index
20:51:39.866 INFO: ------------------------------------------------------------------------
20:51:39.866 INFO: EXECUTION FAILURE
20:51:39.866 INFO: ------------------------------------------------------------------------
20:51:39.866 ERROR: SonarQube server [http://localhost:9000] can not be reached
20:51:39.866 INFO: Total time: 0.263s
20:51:39.884 INFO: Final Memory: 10M/1345M
20:51:39.884 INFO: ------------------------------------------------------------------------
20:51:39.884 ERROR: Error during SonarScanner execution
org.sonarsource.scanner.api.internal.ScannerException: Unable to execute SonarScanner analysis
	at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory.lambda$createLauncher$0(IsolatedLauncherFactory.java:85)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory.createLauncher(IsolatedLauncherFactory.java:74)
	at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory.createLauncher(IsolatedLauncherFactory.java:70)
	at org.sonarsource.scanner.api.EmbeddedScanner.doStart(EmbeddedScanner.java:185)
	at org.sonarsource.scanner.api.EmbeddedScanner.start(EmbeddedScanner.java:123)
	at org.sonarsource.scanner.cli.Main.execute(Main.java:73)
	at org.sonarsource.scanner.cli.Main.main(Main.java:61)
Caused by: java.lang.IllegalStateException: Fail to get bootstrap index from server
	at org.sonarsource.scanner.api.internal.BootstrapIndexDownloader.getIndex(BootstrapIndexDownloader.java:42)
	at org.sonarsource.scanner.api.internal.JarDownloader.getScannerEngineFiles(JarDownloader.java:58)
	at org.sonarsource.scanner.api.internal.JarDownloader.download(JarDownloader.java:53)
	at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory.lambda$createLauncher$0(IsolatedLauncherFactory.java:76)
	... 7 more
Caused by: java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0:1:9000
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.connection.RealConnection.connectSocket(RealConnection.java:265)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.connection.RealConnection.connect(RealConnection.java:183)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.java:224)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.java:108)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.connection.ExchangeFinder.find(ExchangeFinder.java:88)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.connection.Transmitter.newExchange(Transmitter.java:169)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:41)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:94)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:88)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.RealCall.getResponseWithInterceptorChain(RealCall.java:221)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.RealCall.execute(RealCall.java:81)
	at org.sonarsource.scanner.api.internal.ServerConnection.callUrl(ServerConnection.java:115)
	at org.sonarsource.scanner.api.internal.ServerConnection.downloadString(ServerConnection.java:99)
	at org.sonarsource.scanner.api.internal.BootstrapIndexDownloader.getIndex(BootstrapIndexDownloader.java:39)
	... 10 more
Caused by: java.net.ConnectException: Connection refused (Connection refused)
	at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.base/java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
	at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
	at java.base/java.net.AbstractPlainSocketImpl.connect(Unknown Source)
	at java.base/java.net.SocksSocketImpl.connect(Unknown Source)
	at java.base/java.net.Socket.connect(Unknown Source)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.platform.Platform.connectSocket(Platform.java:130)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.connection.RealConnection.connectSocket(RealConnection.java:263)
	... 31 more

In my sonar-properties I mentioned sonar.host.url=http://sonarcloud.io.
I am wondering why inside logs its saying ERROR: SonarQube server [http://localhost:9000] can not be reached and if you see in logs its also asking me to Download Download: http://localhost:9000/batch/index

What’s the name of the file you put sonar.host.url=http://sonarcloud.io in?

I didn’t got exactly what you trying to point out.
I am pointing out a .cpp file using sonar.sources.

Below command I am using to execute sonar-scanner.

sonar-scanner -Dsonar.projectKey=*** -Dsonar.host.url="https://sonarcloud.io" -Dsonar.cfamily.build-wrapper-output=build/build_wrapper_output_directory  -Dsonar.sources=** -Dsonar.cfamily.threads=8 -Dsonar.organization=*** -Dsonar.sourceEncoding=UTF-8 -Dsonar.projectVersion=1.0 -Dsonar.cfamily.cache.enabled=false

As I mentioned its working fine, when I am doing locally or you can say in my container but getting the below error when I use the same thing in my ci-pipeline.

ERROR: Unrecognized option:  
INFO: 
INFO: usage: sonar-scanner [options]
INFO: 
INFO: Options:
INFO:  -D,--define <arg>     Define property
INFO:  -h,--help             Display help information
INFO:  -v,--version          Display version information
INFO:  -X,--debug            Produce execution debug output
/artifacts/sonar-script.sh: line 9: -Dsonar.organization=clibmouse: command not found
/artifacts/sonar-script.sh: line 15: -Dsonar.sourceEncoding=UTF-8: command not found

I am also getting this error when I do sonar-scanner-x