OutOfMemoryError during plugin verifier

Hi! We’re experiencing an OutOfMemoryError when running the verifyPlugin Gradle task.

  • This happens on a branch when I’m bumping the Kotlin version used by the project. I don’t see why this would cause it, but we don’t have the issue on the main branch
  • Happens on CI, I can’t reproduce on my local machine

I’ve tried passing -Xmx4g to JAVA_TOOL_OPTIONS env var and I see that it’s picked up, but this still happens.

Logs can been seen here.

Any idea?

1 Like

I’ve similar problem on my plugin.
I’ve the following property in gradle.properties:
org.gradle.jvmargs=-Xmx4096m

Not big changes in the code:

2025-03-21T14:50:57 [main] INFO  verification - Reading plugin to check from /home/circleci/project/build/distributions/intellij-gitlab-plugin-12.7.0-SNAPSHOT.zip
2025-03-21T14:50:59 [main] INFO  verification - Task check-plugin parameters:
Scheduled verifications (2):
com.gitlab.msciachero.intellij-gitlab-plugin:12.7.0-SNAPSHOT against IC-251.23774.109, com.gitlab.msciachero.intellij-gitlab-plugin:12.7.0-SNAPSHOT against IC-243.26053.27

Exception in thread "main" java.lang.RuntimeException: Worker 'com.gitlab.msciachero.intellij-gitlab-plugin:12.7.0-SNAPSHOT against IC-243.26053.27' finished with error
        at com.jetbrains.plugin.structure.base.utils.ExecutorWithProgress.waitAllFutures(ConcurrencyUtils.kt:96)
        at com.jetbrains.plugin.structure.base.utils.ExecutorWithProgress.executeTasks(ConcurrencyUtils.kt:62)
        at com.jetbrains.pluginverifier.PluginVerifierRunKt.runSeveralVerifiers(PluginVerifierRun.kt:42)
        at com.jetbrains.pluginverifier.tasks.checkPlugin.CheckPluginTask.execute(CheckPluginTask.kt:44)
        at com.jetbrains.pluginverifier.tasks.checkPlugin.CheckPluginTask.execute(CheckPluginTask.kt:26)
        at com.jetbrains.pluginverifier.PluginVerifierMain$main$3$1.invoke(PluginVerifierMain.kt:135)
        at com.jetbrains.pluginverifier.PluginVerifierMain$main$3$1.invoke(PluginVerifierMain.kt:123)
        at com.jetbrains.pluginverifier.tasks.profiling.PluginVerificationProfilingsKt.measurePluginVerification(PluginVerificationProfilings.kt:11)
        at com.jetbrains.pluginverifier.PluginVerifierMain.main(PluginVerifierMain.kt:123)
Caused by: java.lang.OutOfMemoryError: Java heap space
        at java.base/java.util.Arrays.copyOfRangeByte(Arrays.java:3863)
        at java.base/java.util.Arrays.copyOfRange(Arrays.java:3854)
        at java.base/java.lang.String.<init>(String.java:4788)
        at java.base/java.lang.String.<init>(String.java:1507)
        at java.base/java.lang.StringBuilder.toString(StringBuilder.java:475)
        at com.jetbrains.plugin.structure.classes.resolvers.PackageSet.addPackagesOfClass(PackageSet.kt:28)
        at com.jetbrains.plugin.structure.classes.resolvers.JarFileResolver$readClassNamesAndServiceProviders$1.visitFile(JarFileResolver.kt:65)
        at com.jetbrains.plugin.structure.classes.resolvers.JarFileResolver$readClassNamesAndServiceProviders$1.visitFile(JarFileResolver.kt:51)
        at java.base/java.nio.file.Files.walkFileTree(Files.java:2799)
        at java.base/java.nio.file.Files.walkFileTree(Files.java:2870)
        at com.jetbrains.plugin.structure.classes.resolvers.JarFileResolver.readClassNamesAndServiceProviders(JarFileResolver.kt:51)
        at com.jetbrains.plugin.structure.classes.resolvers.JarFileResolver.access$readClassNamesAndServiceProviders(JarFileResolver.kt:17)
        at com.jetbrains.plugin.structure.classes.resolvers.JarFileResolver$1.invoke(JarFileResolver.kt:44)
        at com.jetbrains.plugin.structure.classes.resolvers.JarFileResolver$1.invoke(JarFileResolver.kt:17)
        at com.jetbrains.plugin.structure.classes.resolvers.JarFileSystemsPool.perform(JarFileSystemsPool.kt:37)
        at com.jetbrains.plugin.structure.classes.resolvers.JarFileResolver.<init>(JarFileResolver.kt:43)
        at com.jetbrains.plugin.structure.ide.classes.resolver.PluginDependencyFilteredResolver.asResolver(PluginDependencyFilteredResolver.kt:85)
        at com.jetbrains.plugin.structure.ide.classes.resolver.PluginDependencyFilteredResolver.getResolvers(PluginDependencyFilteredResolver.kt:40)
        at com.jetbrains.plugin.structure.ide.classes.resolver.PluginDependencyFilteredResolver.<init>(PluginDependencyFilteredResolver.kt:36)
        at com.jetbrains.plugin.structure.ide.classes.resolver.PluginDependencyFilteredResolver.<init>(PluginDependencyFilteredResolver.kt:34)
        at com.jetbrains.pluginverifier.resolution.DefaultClassResolverProvider.getIdeResolver(DefaultClassResolverProvider.kt:70)
        at com.jetbrains.pluginverifier.resolution.DefaultClassResolverProvider.provide(DefaultClassResolverProvider.kt:54)
        at com.jetbrains.pluginverifier.PluginVerifier.verify(PluginVerifier.kt:92)
        at com.jetbrains.pluginverifier.PluginVerifier.loadPluginAndVerify(PluginVerifier.kt:84)
        at com.jetbrains.pluginverifier.PluginVerifierRunKt.runSeveralVerifiers$lambda$3$lambda$2(PluginVerifierRun.kt:31)
        at com.jetbrains.pluginverifier.PluginVerifierRunKt$$Lambda/0x00007f46a8416000.call(Unknown Source)
        at com.jetbrains.plugin.structure.base.utils.ExecutorWithProgress$TimedCallable.call(ConcurrencyUtils.kt:133)
        at com.jetbrains.plugin.structure.base.utils.ExecutorWithProgress$TimedCallable.call(ConcurrencyUtils.kt:127)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)

I think this is probably this issue: https://youtrack.jetbrains.com/issue/MP-7366/Plugin-Verifier-OOM-when-checking-large-number-of-plugins

Please downgrade to 1.383 manually if you experience this problem: https://youtrack.jetbrains.com/issue/MP-7366/Plugin-Verifier-1.384-OOM-when-checking-large-number-of-plugins#focus=Comments-27-11774230.0-0

3 Likes

Is there any ETA on a fix to address this particular issue?