jborgers / sonar-pmd

☕️ PMD Plugin for SonarQube
https://redirect.sonarsource.com/plugins/pmd.html
GNU Lesser General Public License v3.0
258 stars 156 forks source link

Analysis fails with FileNotFoundException (too many open files) in PmdConfiguration.dumpXmlRuleSet(), log contains hundreds of "Fail to execute PMD" #29

Closed ewirch closed 2 years ago

ewirch commented 8 years ago

We have a Sonar-Job on our Jenkins CI server. The job fails sometimes showing this stack trace:

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.0.2:sonar (default-cli) on project fff: java.lang.IllegalStateException: Fail to save the PMD configuration
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:555)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:158)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: java.lang.IllegalStateException: Fail to save the PMD configuration
    at org.sonarsource.scanner.maven.bootstrap.ExceptionHandling.handle(ExceptionHandling.java:36)
    at org.sonarsource.scanner.maven.bootstrap.ScannerBootstrapper.execute(ScannerBootstrapper.java:81)
    at org.sonarsource.scanner.maven.SonarQubeMojo.execute(SonarQubeMojo.java:112)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:106)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
    ... 19 more
Caused by: org.sonar.api.utils.XmlParserException: java.lang.IllegalStateException: Fail to save the PMD configuration
    at org.sonar.plugins.pmd.PmdSensor.analyse(PmdSensor.java:72)
    at org.sonar.batch.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:58)
    at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:50)
    at org.sonar.batch.phases.PhaseExecutor.execute(PhaseExecutor.java:98)
    at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:192)
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:100)
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:85)
    at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:258)
    at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:253)
    at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:251)
    at org.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:243)
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:100)
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:85)
    at org.sonar.batch.bootstrap.GlobalContainer.executeAnalysis(GlobalContainer.java:153)
    at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:110)
    at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:62)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
    at com.sun.proxy.$Proxy18.execute(Unknown Source)
    at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:240)
    at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151)
    at org.sonarsource.scanner.maven.bootstrap.ScannerBootstrapper.execute(ScannerBootstrapper.java:78)
    ... 22 more
Caused by: java.lang.IllegalStateException: Fail to save the PMD configuration
    at org.sonar.plugins.pmd.PmdConfiguration.dumpXmlRuleSet(PmdConfiguration.java:59)
    at org.sonar.plugins.pmd.PmdExecutor.createRulesets(PmdExecutor.java:128)
    at org.sonar.plugins.pmd.PmdExecutor.executeRules(PmdExecutor.java:111)
    at org.sonar.plugins.pmd.PmdExecutor.executePmd(PmdExecutor.java:91)
    at org.sonar.plugins.pmd.PmdExecutor.execute(PmdExecutor.java:75)
    at org.sonar.plugins.pmd.PmdSensor.analyse(PmdSensor.java:67)
    ... 46 more
Caused by: java.io.FileNotFoundException: /var/lib/jenkins/workspace/FACT-Finder-Framework-JDK8_Sonar/fff-ui/target/sonar/pmd-unit-tests.xml (too many open files)
    at java.io.FileOutputStream.open0(Native Method)
    at java.io.FileOutputStream.open(FileOutputStream.java:270)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
    at com.google.common.io.Files$2.getOutput(Files.java:132)
    at com.google.common.io.Files$2.getOutput(Files.java:129)
    at com.google.common.io.CharStreams$3.getOutput(CharStreams.java:111)
    at com.google.common.io.CharStreams$3.getOutput(CharStreams.java:108)
    at com.google.common.io.CharStreams.write(CharStreams.java:128)
    at com.google.common.io.Files.write(Files.java:335)
    at com.google.common.io.Files.write(Files.java:306)
    at org.sonar.plugins.pmd.PmdConfiguration.writeToWorkingDirectory(PmdConfiguration.java:95)
    at org.sonar.plugins.pmd.PmdConfiguration.dumpXmlRuleSet(PmdConfiguration.java:53)
    ... 51 more

I already found https://jira.sonarsource.com/browse/SONARPMD-6 which should be fixed in PMD plugin 2.4. We're using 2.5.

ghost commented 7 years ago

ERROR: Unable to create symbol table for : /***/dummy/DummyTest.java java.lang.IllegalStateException: Can not create ClassLoader at org.sonar.java.bytecode.ClassLoaderBuilder.create(ClassLoaderBuilder.java:61) ~[java-frontend-4.7.1.9272.jar:na] at org.sonar.java.resolve.BytecodeCompleter.getClassLoader(BytecodeCompleter.java:118) ~[java-frontend-4.7.1.9272.jar:na] at org.sonar.java.resolve.BytecodeCompleter.inputStreamFor(BytecodeCompleter.java:113) ~[java-frontend-4.7.1.9272.jar:na] at org.sonar.java.resolve.BytecodeCompleter.loadClass(BytecodeCompleter.java:212) ~[java-frontend-4.7.1.9272.jar:na] at org.sonar.java.resolve.Symbols.(Symbols.java:176) ~[java-frontend-4.7.1.9272.jar:na] at org.sonar.java.resolve.SemanticModel.createFor(SemanticModel.java:57) ~[java-frontend-4.7.1.9272.jar:na] at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:95) ~[java-frontend-4.7.1.9272.jar:na] at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:86) [java-frontend-4.7.1.9272.jar:na] at org.sonar.java.ast.JavaAstScanner.scan(JavaAstScanner.java:63) [java-frontend-4.7.1.9272.jar:na] at org.sonar.java.JavaSquid.scanSources(JavaSquid.java:119) [java-frontend-4.7.1.9272.jar:na] at org.sonar.java.JavaSquid.scan(JavaSquid.java:113) [java-frontend-4.7.1.9272.jar:na] at org.sonar.plugins.java.JavaSquidSensor.execute(JavaSquidSensor.java:84) [sonar-java-plugin-4.7.1.9272.jar:na] at org.sonar.batch.sensor.SensorWrapper.analyse(SensorWrapper.java:57) [sonar-scanner-engine-shaded-5.6.5.jar:na] at org.sonar.batch.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:58) [sonar-scanner-engine-shaded-5.6.5.jar:na] at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:50) [sonar-scanner-engine-shaded-5.6.5.jar:na] at org.sonar.batch.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:83) [sonar-scanner-engine-shaded-5.6.5.jar:na] at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:192) [sonar-scanner-engine-shaded-5.6.5.jar:na] at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142) [sonar-scanner-engine-shaded-5.6.5.jar:na] at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127) [sonar-scanner-engine-shaded-5.6.5.jar:na] at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:241) [sonar-scanner-engine-shaded-5.6.5.jar:na] at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:236) [sonar-scanner-engine-shaded-5.6.5.jar:na] at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:234) [sonar-scanner-engine-shaded-5.6.5.jar:na] at org.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:226) [sonar-scanner-engine-shaded-5.6.5.jar:na] at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142) [sonar-scanner-engine-shaded-5.6.5.jar:na] at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127) [sonar-scanner-engine-shaded-5.6.5.jar:na] at org.sonar.batch.task.ScanTask.execute(ScanTask.java:47) [sonar-scanner-engine-shaded-5.6.5.jar:na] at org.sonar.batch.task.TaskContainer.doAfterStart(TaskContainer.java:86) [sonar-scanner-engine-shaded-5.6.5.jar:na] at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142) [sonar-scanner-engine-shaded-5.6.5.jar:na] at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127) [sonar-scanner-engine-shaded-5.6.5.jar:na] at org.sonar.batch.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:106) [sonar-scanner-engine-shaded-5.6.5.jar:na] at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:119) [sonar-scanner-engine-shaded-5.6.5.jar:na] at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:63) [sonar-scanner-api-batch3088588118789591126.jar:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_101] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_101] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_101] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_101] at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60) [sonar-scanner-cli-3.0.1.733.jar:na] at com.sun.proxy.$Proxy0.execute(Unknown Source) [na:na] at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:233) [sonar-scanner-cli-3.0.1.733.jar:na] at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151) [sonar-scanner-cli-3.0.1.733.jar:na] at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:123) [sonar-scanner-cli-3.0.1.733.jar:na] at org.sonarsource.scanner.cli.Main.execute(Main.java:77) [sonar-scanner-cli-3.0.1.733.jar:na] at org.sonarsource.scanner.cli.Main.main(Main.java:61) [sonar-scanner-cli-3.0.1.733.jar:na] Caused by: java.lang.IllegalStateException: Unable to open /***/lib/hazelcast-3.7.5.jar at org.sonar.java.bytecode.loader.JarLoader.(JarLoader.java:51) ~[java-frontend-4.7.1.9272.jar:na] at org.sonar.java.bytecode.loader.SquidClassLoader.(SquidClassLoader.java:51) ~[java-frontend-4.7.1.9272.jar:na] at org.sonar.java.bytecode.ClassLoaderBuilder.create(ClassLoaderBuilder.java:59) ~[java-frontend-4.7.1.9272.jar:na] ... 42 common frames omitted Caused by: java.io.FileNotFoundException: /*******/lib/hazelcast-3.7.5.jar (Too many open files) at java.util.zip.ZipFile.open(Native Method) ~[na:1.8.0_101] at java.util.zip.ZipFile.(ZipFile.java:219) ~[na:1.8.0_101] at java.util.zip.ZipFile.(ZipFile.java:149) ~[na:1.8.0_101] at java.util.jar.JarFile.(JarFile.java:166) ~[na:1.8.0_101] at java.util.jar.JarFile.(JarFile.java:130) ~[na:1.8.0_101] at org.sonar.java.bytecode.loader.JarLoader.(JarLoader.java:48) ~[java-frontend-4.7.1.9272.jar:na] ... 44 common frames omitted

INFO: ------------------------------------------------------------------------ INFO: EXECUTION FAILURE INFO: ------------------------------------------------------------------------ INFO: Total time: 1:31.038s INFO: Final Memory: 97M/1055M INFO: ------------------------------------------------------------------------ ERROR: Error during SonarQube Scanner execution org.sonar.squidbridge.api.AnalysisException: SonarQube is unable to analyze file : '/***/dummy/package-info.java' at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:95) at org.sonar.java.ast.JavaAstScanner.scan(JavaAstScanner.java:63) at org.sonar.java.JavaSquid.scanSources(JavaSquid.java:119) at org.sonar.java.JavaSquid.scan(JavaSquid.java:113) at org.sonar.plugins.java.JavaSquidSensor.execute(JavaSquidSensor.java:84) at org.sonar.batch.sensor.SensorWrapper.analyse(SensorWrapper.java:57) at org.sonar.batch.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:58) at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:50) at org.sonar.batch.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:83) at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:192) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127) at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:241) at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:236) at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:234) at org.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:226) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127) at org.sonar.batch.task.ScanTask.execute(ScanTask.java:47) at org.sonar.batch.task.TaskContainer.doAfterStart(TaskContainer.java:86) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127) at org.sonar.batch.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:106) at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:119) at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:63) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) 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:233) at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151) at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:123) at org.sonarsource.scanner.cli.Main.execute(Main.java:77) at org.sonarsource.scanner.cli.Main.main(Main.java:61) Caused by: org.sonar.squidbridge.api.AnalysisException: Unable to read file /***/dummy/package-info.java at org.sonar.java.SonarComponents.fileContent(SonarComponents.java:256) at org.sonar.java.ast.JavaAstScanner.getFileContent(JavaAstScanner.java:106) at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:79) ... 35 more Caused by: java.io.FileNotFoundException: /*******/dummy/package-info.java (Too many open files) at java.io.FileInputStream.open0(Native Method) at java.io.FileInputStream.open(FileInputStream.java:195) at java.io.FileInputStream.(FileInputStream.java:138) at com.google.common.io.Files$FileByteSource.openStream(Files.java:126) at com.google.common.io.Files$FileByteSource.openStream(Files.java:116) at com.google.common.io.ByteSource$AsCharSource.openStream(ByteSource.java:448) at com.google.common.io.CharSource.read(CharSource.java:213) at com.google.common.io.Files.toString(Files.java:274) at org.sonar.java.SonarComponents.fileContent(SonarComponents.java:254) ... 37 more ERROR: ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.

ghost commented 7 years ago

We are getting this error on SonarQube 5.6.5 with Sonar PMD Plugin v2.6 . Please help us fix this since this looks like a bug to us. If not, then kindly suggest a solution to this issue.

jborgers commented 2 years ago

Old versions. Is this still relevant?

jborgers commented 2 years ago

Assuming not relevant anymore.