The error is observed in a docker containter while running as a CI job in GitLab:
Scanner configuration file: /opt/sonar-scanner/conf/sonar-scanner.properties
Project root configuration file: /builds//sonar-project.properties
SonarScanner 4.6.0.2311
Analyzing on SonarQube server Developer 8.6.0.39681
Java 11.0.12 Oracle Corporation (64-bit)
Linux 4.9.0-14-amd64 amd64
Plugins:
- CFamily Code Quality and Security 6.15.0.25047 (cpp)
ERROR: Exception in thread pool-3-thread-1
java.lang.IllegalStateException: java.io.IOException: Operation not permitted
at com.sonar.cpp.plugin.CFamilySensor.computeCanonicalPath(CFamilySensor.java:915)
at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1133)
at com.sonar.cpp.plugin.CFamilySensor.save(CFamilySensor.java:660)
at com.sonar.cpp.plugin.CFamilySensor.lambda$process$8(CFamilySensor.java:646)
at com.sonar.cpp.analyzer.AnalysisExecutor.lambda$submit$0(AnalysisExecutor.java:59)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.io.IOException: Operation not permitted
at java.base/java.io.UnixFileSystem.canonicalize0(Native Method)
at java.base/java.io.UnixFileSystem.canonicalize(UnixFileSystem.java:178)
at java.base/java.io.File.getCanonicalPath(File.java:626)
at com.sonar.cpp.plugin.CFamilySensor.computeCanonicalPath(CFamilySensor.java:913)
... 9 common frames omitted
The error occurs when analyzing CPP code from a QT application on linux (inside docker container). Analysis works perfectly when run on a regular linux with the same packages installed.
UPDATE: I updated SonarQube to the latest LTS version (8.9.2) but the issue still persists.
UPDATE (2): Also changing to the docker container of sonarsource (sonarsource/sonar-scanner-cli:latest) gives the same exception:
12:04:05.097 ERROR: Error during SonarScanner execution
java.lang.IllegalStateException: java.io.IOException: Operation not permitted
at com.sonar.cpp.plugin.CFamilySensor.computeCanonicalPath(CFamilySensor.java:1047)
...
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)
Caused by: java.io.IOException: Operation not permitted
at java.base/java.io.UnixFileSystem.canonicalize0(Native Method)
at java.base/java.io.UnixFileSystem.canonicalize(Unknown Source)
at java.base/java.io.File.getCanonicalPath(Unknown Source)
at com.sonar.cpp.plugin.CFamilySensor.computeCanonicalPath(CFamilySensor.java:1045)
... 33 more