Analysis fails with OutOfMemoryError: Java heap space

SonarQube Enterprise server v9.4.0
SonarQube Ant Task version: 2.7.1.1951

After upgrading SonarQube Enterprise server from v8.9.7 to v9.4.0 analysis for one of our projects (1.2 mil LOC) started to fail with OutOfMemoryError: Java heap space
It is not clear if the problem is on the server or client side.

I tried:

  • Increase memory limit for the server with
    sonar.ce.javaOpts=-Xmx4G -Xms512m -XX:+HeapDumpOnOutOfMemoryError

sonar.web.javaOpts=-Xmx4g -Xms128m -XX:+HeapDumpOnOutOfMemoryError

  • Increase memory limit for the client with
    export SONAR_SCANNER_OPTS="-Xmx8G"
java.lang.OutOfMemoryError: Java heap space
        at java.base/java.util.stream.ForEachOps.makeRef(ForEachOps.java:72)
        at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
        at org.sonar.java.se.checks.ExceptionalYieldChecker.lambda$reportOnExceptionalYield$2(ExceptionalYieldChecker.java:61)
        at org.sonar.java.se.checks.ExceptionalYieldChecker$$Lambda$1673/0x0000000800daa840.accept(Unknown Source)
        at java.base/java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1693)
        at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658)
        at org.sonar.java.se.checks.ExceptionalYieldChecker.reportOnExceptionalYield(ExceptionalYieldChecker.java:59)
        at org.sonar.java.se.checks.OptionalGetBeforeIsPresentCheck.checkEndOfExecutionPath(OptionalGetBeforeIsPresentCheck.java:298)
        at org.sonar.java.se.CheckerDispatcher.executeCheckEndOfExecutionPath(CheckerDispatcher.java:150)
        at org.sonar.java.se.ExplodedGraphWalker.lambda$handleEndOfExecutionPath$0(ExplodedGraphWalker.java:336)
        at org.sonar.java.se.ExplodedGraphWalker$$Lambda$1672/0x0000000800daa440.accept(Unknown Source)
        at java.base/java.lang.Iterable.forEach(Iterable.java:75)
        at org.sonar.java.se.ExplodedGraphWalker.handleEndOfExecutionPath(ExplodedGraphWalker.java:334)
        at org.sonar.java.se.ExplodedGraphWalker.execute(ExplodedGraphWalker.java:286)
        at org.sonar.java.se.ExplodedGraphWalker.visitMethod(ExplodedGraphWalker.java:216)
        at org.sonar.java.se.ExplodedGraphWalker.visitMethod(ExplodedGraphWalker.java:208)
        at org.sonar.java.se.SymbolicExecutionVisitor.execute(SymbolicExecutionVisitor.java:79)
        at org.sonar.java.se.SymbolicExecutionVisitor.visitNode(SymbolicExecutionVisitor.java:65)
        at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:100)
        at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:125)
        at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:102)
        at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:125)
        at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:102)
        at org.sonar.java.ast.visitors.SubscriptionVisitor.scanTree(SubscriptionVisitor.java:83)
        at org.sonar.java.ast.visitors.SubscriptionVisitor.scanFile(SubscriptionVisitor.java:69)
        at org.sonar.java.se.SymbolicExecutionVisitor.scanFile(SymbolicExecutionVisitor.java:55)
        at org.sonar.java.model.VisitorsBridge.lambda$runScanner$1(VisitorsBridge.java:203)
        at org.sonar.java.model.VisitorsBridge$$Lambda$1483/0x0000000800cf0c40.run(Unknown Source)
        at org.sonar.java.model.VisitorsBridge.runScanner(VisitorsBridge.java:208)
        at org.sonar.java.model.VisitorsBridge.runScanner(VisitorsBridge.java:203)
        at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:186)
        at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:119)

It appeared the issues was due to Apache Ant. Fixed with export ANT_OPTS=-Xmx8G

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.