Skip to content

POSIX parameter expansion causing SEVERE error in Analyzer (within SonarQube) #210

@pepeki

Description

@pepeki

Describe the bug
A POSIX parameter expansion for filename/path extraction from the absolute path string seems to be causing SEVERE error in Analyzer.

To reproduce
Steps to reproduce the behavior:

  1. Create bash script with the following lines
    • PATH=/home/ubuntu/test.file
    • echo ${PATH%/*}
    • echo ${PATH##*/}
  2. RUN: docker run --rm -v $BITBUCKET_CLONE_DIR:/usr/src sonarsource/sonar-scanner-cli
    • against your SonarQube server
  3. See error

Expected behavior
Successful analysis with results being uploaded to SonarQube

Screenshots & log

INFO: Sensor Sonar i-Code [icode]
Aug 27, 2020 9:20:33 AM fr.cnes.icode.logger.ICodeLogger error
SEVERE: [fr.cnes.icode] [ERROR] Class: fr.cnes.icode.Analyzer
Method: stableCheck
Message: Internal i-Code error: exception [JFlexException] thrown while checking [SH.MET.Nesting] on file [/usr/src/ansible/roles/mdoc-deploy/templates/deploy_devops.sh] - i-Code CNES analysis encountered a problem.
Analysis failure : At least one function is not ending correctly.
CheckerId: fr.cnes.icode.shell.metrics.SHMETNesting
File: /usr/src/ansible/roles/mdoc-deploy/templates/deploy_devops.sh
Line:219
Column:0
Last word scanned: [] []
Please report this issue on : https://github.com/lequal/i-CodeCNES/issues/
Aug 27, 2020 9:20:33 AM fr.cnes.icode.logger.ICodeLogger error
SEVERE: [fr.cnes.icode] [ERROR] Class: fr.cnes.icode.Analyzer
Method: stableCheck
fr.cnes.icode.exception.JFlexException: i-Code CNES analysis encountered a problem.
Analysis failure : At least one function is not ending correctly.
CheckerId: fr.cnes.icode.shell.metrics.SHMETNesting
File: /usr/src/ansible/roles/mdoc-deploy/templates/deploy_devops.sh
Line:219
Column:0
Last word scanned: [] []
Please report this issue on : https://github.com/lequal/i-CodeCNES/issues/
at fr.cnes.icode.shell.metrics.SHMETNesting.run(SHMETNesting.java:863)
at fr.cnes.icode.Analyzer.stableCheck(Analyzer.java:108)
at fr.cnes.sonar.plugins.icode.check.ICodeSensor.executeEmbeddedICode(ICodeSensor.java:187)
at fr.cnes.sonar.plugins.icode.check.ICodeSensor.execute(ICodeSensor.java:109)
at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:48)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:85)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:59)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:77)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:59)
at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:82)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:137)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:123)
at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:388)
at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:384)
at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:353)
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:144)
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(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)

User environment (please complete the following information):
INFO: SonarScanner 4.4.0.2170
INFO: Java 11.0.6 AdoptOpenJDK (64-bit)
INFO: Linux 4.19.128-flatcar amd64
INFO: User cache: /opt/sonar-scanner/.sonar/cache
INFO: Scanner configuration file: /opt/sonar-scanner/conf/sonar-scanner.properties
INFO: Project root configuration file: /usr/src/sonar-project.properties
INFO: Analyzing on SonarQube server 8.4.1
INFO: Default locale: "en_US", source code encoding: "UTF-8" (analysis is platform dependent)

Sonar i-Code CNES plugin for SonarQube 2.0.2 (from Marketplace)

Additional context
Ran within Bitbucket pipeline

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions