Hi,
I’m experiencing OutOfMemoryErrors running sonar scanner to analyze sql project.
I’m using folowing versions:
- SonarQube Server: 25.3.0.104237-community using docker
- Sonar Scanner docker: sonarsource/sonarqube-scan:4.0.0
I want to analyze a sql project from sql server using tsql dialect. No matter the size of the project is I’m facing constantly the same error.
I’ve tested following things:
- Analyze the files directly with the plugin sonar-sql-plugin directly (using rulesHelper.jar) and files are analyzed correctly. So I’ve discarded file problems:
+ java -jar rulesHelper.jar analyze file "NA" tsql /opt/atlassian/pipelines/agent/build/src
Analyzing folder: /opt/atlassian/pipelines/agent/build/src
Issue found: "C014(OR verb is used in a WHERE clause)" at line 110 in "XXX.sql" file
Issue found: "C007(NOLOCK hint used)" at line 42 in "XXX.sql" file
Issue found: "C007(NOLOCK hint used)" at line 47 in "XXX.sql" file
- I’ve tried to increase mem and also play a bit with GC parameters, ended in this moment with the followings: SONAR_SCANNER_OPTS=“-Xms2g -Xmx6g -XX:+UseG1GC -XX:InitiatingHeapOccupancyPercent=60 -XX:G1ReservePercent=20”. But still having same OOM error. I add the scanner log for more informacion.
19:28:46.160 INFO Project root configuration file: /opt/atlassian/pipelines/agent/build/sonar-project.properties
19:28:46.174 INFO SonarScanner CLI 7.0.2.4839
19:28:46.176 INFO Java 17.0.14 Amazon.com Inc. (64-bit)
19:28:46.176 INFO Linux 6.1.79 amd64
19:28:46.178 INFO SONAR_SCANNER_OPTS=-Xms2g -Xmx6g -XX:+UseG1GC -XX:InitiatingHeapOccupancyPercent=60 -XX:G1ReservePercent=20
19:28:46.219 INFO User cache: /opt/sonar-scanner/.sonar/cache
19:28:47.841 INFO JRE provisioning: os[linux], arch[x86_64]
19:28:55.135 INFO Communicating with SonarQube Community Build 25.3.0.104237
19:28:55.459 INFO Starting SonarScanner Engine...
19:28:55.459 INFO Java 17.0.13 Eclipse Adoptium (64-bit)
19:28:56.545 INFO Load global settings
19:28:57.125 INFO Load global settings (done) | time=581ms
19:28:57.128 INFO Server id: XXXXX
19:28:57.136 INFO Loading required plugins
19:28:57.136 INFO Load plugins index
19:28:57.358 INFO Load plugins index (done) | time=221ms
19:28:57.358 INFO Load/download plugins
19:29:00.329 INFO Load/download plugins (done) | time=2971ms
19:29:00.733 INFO Process project properties
19:29:00.745 INFO Process project properties (done) | time=11ms
19:29:00.752 INFO Project key: XXXXXX
19:29:00.753 INFO Base dir: /opt/atlassian/pipelines/agent/build
19:29:00.753 INFO Working dir: /opt/atlassian/pipelines/agent/build/.scannerwork
19:29:00.758 INFO Load project settings for component key: 'XXXXXX
19:29:00.881 INFO Load project settings for component key: 'XXXXXX' (done) | time=123ms
19:29:00.902 INFO Load quality profiles
19:29:01.062 INFO Load quality profiles (done) | time=160ms
19:29:01.075 INFO Auto-configuring with CI 'Bitbucket Pipelines'
19:29:01.096 INFO Load active rules
19:29:01.494 INFO Load active rules (done) | time=398ms
19:29:01.499 INFO Load analysis cache
19:29:01.617 INFO Load analysis cache (404) | time=118ms
19:29:01.897 INFO Preprocessing files...
19:29:02.802 INFO 1 language detected in 357 preprocessed files
19:29:02.802 INFO 310 files ignored because of inclusion/exclusion patterns
19:29:02.803 INFO 0 files ignored because of scm ignore settings
19:29:02.804 INFO Loading plugins for detected languages
19:29:02.804 INFO Load/download plugins
19:29:02.804 INFO Load/download plugins (done) | time=0ms
19:29:02.842 INFO Load project repositories
19:29:03.046 INFO Load project repositories (done) | time=205ms
19:29:03.057 INFO Indexing files...
19:29:03.057 INFO Project configuration:
19:29:03.058 INFO Excluded sources: **/Security/**/*.*, **/dbo/Synonyms/**/*.*, **/dbo/Tables/**/*.*, **/dbo/Views/**/*.*
19:29:03.077 INFO 357 files indexed
19:29:03.078 INFO Quality profile for sql: SQL rules
19:29:03.078 INFO ------------- Run sensors on module XXXXXX
19:29:03.112 INFO Load metrics repository
19:29:03.237 INFO Load metrics repository (done) | time=126ms
19:29:03.486 INFO Sensor JaCoCo XML Report Importer [jacoco]
19:29:03.487 INFO 'sonar.coverage.jacoco.xmlReportPaths' is not defined. Using default locations: target/site/jacoco/jacoco.xml,target/site/jacoco-it/jacoco.xml,build/reports/jacoco/test/jacocoTestReport.xml
19:29:03.487 INFO No report imported, no coverage information will be imported by JaCoCo XML Report Importer
19:29:03.487 INFO Sensor JaCoCo XML Report Importer [jacoco] (done) | time=2ms
19:29:03.487 INFO Sensor Java Config Sensor [iac]
19:29:03.510 INFO 0 source files to be analyzed
19:29:03.515 INFO 0/0 source files have been analyzed
19:29:03.516 INFO Sensor Java Config Sensor [iac] (done) | time=29ms
19:29:03.516 INFO Sensor org.sonar.plugins.sql.sensors.SQLSensor [sql]
19:30:23.741 WARN Unexpected exception while analyzing file: F1.sql
java.lang.OutOfMemoryError: Java heap space
19:30:23.742 WARN Unexpected exception while analyzing file: F2.sql
java.lang.OutOfMemoryError: Java heap space
at org.antlr.v4.runtime.atn.ParserATNSimulator.getEpsilonTarget(ParserATNSimulator.java:1785)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closure_(ParserATNSimulator.java:1544)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closureCheckingStopState(ParserATNSimulator.java:1516)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closure_(ParserATNSimulator.java:1589)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closureCheckingStopState(ParserATNSimulator.java:1516)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closure_(ParserATNSimulator.java:1589)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closureCheckingStopState(ParserATNSimulator.java:1516)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closure_(ParserATNSimulator.java:1589)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closureCheckingStopState(ParserATNSimulator.java:1516)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closure_(ParserATNSimulator.java:1589)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closureCheckingStopState(ParserATNSimulator.java:1516)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closure_(ParserATNSimulator.java:1589)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closureCheckingStopState(ParserATNSimulator.java:1516)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closure_(ParserATNSimulator.java:1589)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closureCheckingStopState(ParserATNSimulator.java:1516)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closure_(ParserATNSimulator.java:1589)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closureCheckingStopState(ParserATNSimulator.java:1516)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closure_(ParserATNSimulator.java:1589)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closureCheckingStopState(ParserATNSimulator.java:1516)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closure_(ParserATNSimulator.java:1589)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closureCheckingStopState(ParserATNSimulator.java:1516)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closure_(ParserATNSimulator.java:1589)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closureCheckingStopState(ParserATNSimulator.java:1516)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closure_(ParserATNSimulator.java:1589)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closureCheckingStopState(ParserATNSimulator.java:1516)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closure_(ParserATNSimulator.java:1589)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closureCheckingStopState(ParserATNSimulator.java:1516)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closure_(ParserATNSimulator.java:1589)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closureCheckingStopState(ParserATNSimulator.java:1516)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closure_(ParserATNSimulator.java:1589)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closureCheckingStopState(ParserATNSimulator.java:1516)
at org.antlr.v4.runtime.atn.ParserATNSimulator.closure_(ParserATNSimulator.java:1589)
19:30:23.744 WARN Unexpected exception while analyzing file: F3.sql
java.lang.OutOfMemoryError: Java heap space
19:30:23.745 WARN Unexpected exception while analyzing file: F4.sql
java.lang.OutOfMemoryError: Java heap space
at org.antlr.v4.runtime.misc.FlexibleHashMap.createEntryListArray(FlexibleHashMap.java:73)
at org.antlr.v4.runtime.misc.FlexibleHashMap.expand(FlexibleHashMap.java:188)
at org.antlr.v4.runtime.misc.FlexibleHashMap.put(FlexibleHashMap.java:102)
at org.antlr.v4.runtime.misc.FlexibleHashMap.expand(FlexibleHashMap.java:198)
at org.antlr.v4.runtime.misc.FlexibleHashMap.put(FlexibleHashMap.java:102)
at org.antlr.v4.runtime.atn.PredictionMode.getConflictingAltSubsets(PredictionMode.java:552)
at org.antlr.v4.runtime.atn.PredictionMode.hasSLLConflictTerminatingPrediction(PredictionMode.java:241)
at org.antlr.v4.runtime.atn.ParserATNSimulator.computeTargetState(ParserATNSimulator.java:605)
at org.antlr.v4.runtime.atn.ParserATNSimulator.execATN(ParserATNSimulator.java:457)
at org.antlr.v4.runtime.atn.ParserATNSimulator.adaptivePredict(ParserATNSimulator.java:396)
at org.antlr.sql.dialects.tsql.TSqlParser.table_source_item(TSqlParser.java)
at org.antlr.sql.dialects.tsql.TSqlParser.table_source(TSqlParser.java)
at org.antlr.sql.dialects.tsql.TSqlParser.non_ansi_join(TSqlParser.java)
at org.antlr.sql.dialects.tsql.TSqlParser.table_sources(TSqlParser.java)
at org.antlr.sql.dialects.tsql.TSqlParser.update_statement(TSqlParser.java)
at org.antlr.sql.dialects.tsql.TSqlParser.dml_clause(TSqlParser.java:5655)
at org.antlr.sql.dialects.tsql.TSqlParser.sql_clauses(TSqlParser.java:5449)
at org.antlr.sql.dialects.tsql.TSqlParser.block_statement(TSqlParser.java:7902)
at org.antlr.sql.dialects.tsql.TSqlParser.cfl_statement(TSqlParser.java:7729)
at org.antlr.sql.dialects.tsql.TSqlParser.sql_clauses(TSqlParser.java:5466)
at org.antlr.sql.dialects.tsql.TSqlParser.create_or_alter_procedure(TSqlParser.java)
at org.antlr.sql.dialects.tsql.TSqlParser.batch_level_statement(TSqlParser.java:5351)
at org.antlr.sql.dialects.tsql.TSqlParser.batch(TSqlParser.java:5255)
at org.antlr.sql.dialects.tsql.TSqlParser.tsql_file(TSqlParser.java:5063)
at org.antlr.sql.dialects.TSQLDialect.getRoot(TSQLDialect.java:21)
at org.antlr.sql.dialects.BaseDialect.parse(BaseDialect.java:29)
at org.antlr.sql.dialects.Dialects.parse(Dialects.java:45)
at org.sonar.plugins.sql.sensors.SQLSensor$1.run(SQLSensor.java:105)
at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)
19:30:51.774 WARN Unexpected exception while analyzing file: F5.sql
java.lang.OutOfMemoryError: Java heap space: failed reallocation of scalar replaced objects