Unable to analyze file and java.lang.IllegalStateException: Fail to read file input stream

I am running scanner cli via k8s pod and it is terminating with below. what does it imply and how can I fix it?

it works fine on sonarqube:8.9.1-community and fails on sonarqube:9.7.1-community. so a regression?

bash-5.1# uname -a
Linux sonarscanner-test-cron-1min-1669673280-zw8d2 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021 x86_64 Linux
bash-5.1# sonar-scanner --version
INFO: Scanner configuration file: /opt/sonar-scanner/conf/sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarScanner 4.7.0.2747
INFO: Java 11.0.17 Alpine (64-bit)
INFO: Linux 5.4.0-65-generic amd64
INFO: SONAR_SCANNER_OPTS=-Dsonar.projectKey=Main_AV1-Dev0
ERROR: Unable to analyze file file:///usr/src/team/v/devops/terraform/archived/module.tf: Fail to read file input stream
java.lang.IllegalStateException: Fail to read file input stream
	at org.sonar.plugins.text.checks.BIDICharacterCheck.analyze(BIDICharacterCheck.java:63)
	at org.sonar.plugins.text.visitor.ChecksVisitor.lambda$scan$1(ChecksVisitor.java:50)
	at java.base/java.util.HashMap$Values.forEach(HashMap.java:977)
	at org.sonar.plugins.text.visitor.ChecksVisitor.scan(ChecksVisitor.java:50)
	at org.sonar.plugins.text.core.TextSensor$Analyzer.analyseFiles(TextSensor.java:93)
	at org.sonar.plugins.text.core.TextSensor.execute(TextSensor.java:68)
	at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:64)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:88)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:61)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:79)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:61)
	at org.sonar.scanner.scan.SpringModuleScanContainer.doAfterStart(SpringModuleScanContainer.java:82)
	at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:188)
	at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:167)
	at org.sonar.scanner.scan.SpringProjectScanContainer.scan(SpringProjectScanContainer.java:399)
	at org.sonar.scanner.scan.SpringProjectScanContainer.scanRecursively(SpringProjectScanContainer.java:395)
	at org.sonar.scanner.scan.SpringProjectScanContainer.doAfterStart(SpringProjectScanContainer.java:364)
	at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:188)
	at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:167)
	at org.sonar.scanner.bootstrap.SpringGlobalContainer.doAfterStart(SpringGlobalContainer.java:135)
	at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:188)
	at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:167)
	at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:72)
	at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:66)
	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(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	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)

INFO: 21882/21882 source files have been analyzed
INFO: Sensor Text Sensor [text] (done) | time=8664ms
INFO: Sensor VB.NET Project Type Information [vbnet]
INFO: Sensor VB.NET Project Type Information [vbnet] (done) | time=17ms
INFO: Sensor VB.NET Analysis Log [vbnet]
INFO: Sensor VB.NET Analysis Log [vbnet] (done) | time=11ms
INFO: Sensor VB.NET Properties [vbnet]
INFO: Sensor VB.NET Properties [vbnet] (done) | time=0ms
INFO: ------------- Run sensors on project
INFO: Sensor Analysis Warnings import [csharp]
INFO: Sensor Analysis Warnings import [csharp] (done) | time=1ms
INFO: Sensor Zero Coverage Sensor
INFO: Sensor Zero Coverage Sensor (done) | time=957ms
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 11:35.128s
INFO: Final Memory: 77M/696M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarScanner execution

Hi @Abdul_Mohammed,

Thank you for your report. Is the error reproducible and does it always appear in the same file? Either way, we should not interrupt the analysis if a single file cannot be read. This case should already be caught.

Best,
Nils

yes it is reproducible every time and I finally downgraded to older version and using that. just cannot use this version at all.
am now using 8.9.1-community

Hi Abdul,

that’s a shame to hear. We have also investigated a bit. The Sensor Text Sensor does indicate when a file cannot be loaded correctly and does this using a displayed stack trace. However, this does not cause a scan to be aborted or fail. Can you send the full log or look for another warning/error message in your log?

Best,

sonar-scanner --version
INFO: Scanner configuration file: /opt/sonar-scanner/conf/sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarScanner 4.7.0.2747
INFO: Java 11.0.17 Alpine (64-bit)
INFO: Linux 5.4.0-65-generic amd64
echo "copy scaner config"
copy scaner config
22:01:05.593 INFO: EXECUTION FAILURE
22:01:05.593 INFO: ------------------------------------------------------------------------
22:01:05.593 INFO: Total time: 20:05.900s
22:01:06.551 INFO: Final Memory: 2083M/4364M
22:01:06.551 INFO: ------------------------------------------------------------------------
22:01:06.551 ERROR: Error during SonarScanner execution
java.lang.IllegalStateException: java.lang.IllegalStateException: Unable to read file /home/jenkins/agent/workspace/honda/code-coverage-WIP/devops/terraform/archived/delta-aws-wild-west/honda-canary-sjc4.nvda.ai/productsd/module.tf
	at org.sonar.scanner.scan.filesystem.MetadataGenerator.setMetadata(MetadataGenerator.java:69)
	at org.sonar.scanner.scan.filesystem.FileIndexer.lambda$indexFile$0(FileIndexer.java:138)
	at org.sonar.api.batch.fs.internal.DefaultInputFile.checkMetadata(DefaultInputFile.java:91)
	at org.sonar.api.batch.fs.internal.DefaultInputFile.lines(DefaultInputFile.java:218)
	at org.sonar.scanner.report.ComponentsPublisher.publish(ComponentsPublisher.java:67)
	at org.sonar.scanner.report.ReportPublisher.generateReportFile(ReportPublisher.java:163)
	at org.sonar.scanner.report.ReportPublisher.execute(ReportPublisher.java:137)
	at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:357)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:137)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:123)
	at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:136)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:137)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:123)
	at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:72)
	at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:66)
	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(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	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)
Caused by: java.lang.IllegalStateException: Unable to read file /home/jenkins/agent/workspace/honda/code-coverage-WIP/devops/terraform/archived/delta-aws-wild-west/honda-canary-sjc4.nvda.ai/productsd/module.tf
	at org.sonar.scanner.scan.filesystem.CharsetDetector.run(CharsetDetector.java:50)
	at org.sonar.scanner.scan.filesystem.MetadataGenerator.setMetadata(MetadataGenerator.java:56)
	... 26 more
Caused by: java.nio.file.NoSuchFileException: /home/jenkins/agent/workspace/honda/code-coverage-WIP/devops/terraform/archived/delta-aws-wild-west/honda-canary-sjc4.nvda.ai/productsd/module.tf
	at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116)
	at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:219)
	at java.base/java.nio.file.Files.newByteChannel(Files.java:371)
	at java.base/java.nio.file.Files.newByteChannel(Files.java:422)
	at java.base/java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:420)
	at java.base/java.nio.file.Files.newInputStream(Files.java:156)
	at org.sonar.scanner.scan.filesystem.CharsetDetector.readBuffer(CharsetDetector.java:66)
	at org.sonar.scanner.scan.filesystem.CharsetDetector.run(CharsetDetector.java:47)
	... 27 more
[Pipeline] }
[Pipeline] }`

@Nils_Werner i posted the new logs and it is happening for terraform file. is it related to setting some encoding in sonar-scanner.properties?

i am using below settings and it is commented.

#----- Default source code encoding
#sonar.sourceEncoding=UTF-8
#Exclusions
sonar.c.file.suffixes=-
sonar.cpp.file.suffixes=-
sonar.objc.file.suffixes=-