Skip to content

Option to raise -Xmx (java.lang.OutOfMemoryError: Java heap space) #60

Closed
@Marahin

Description

@Marahin

Hi. I'm super excited to see an alternative, hopefully Java will become a first-class citizen in VS Code.

I have a multi-module Maven project at work (Java 21). It seems this extension does not recognize the modules within the project ("PROJECTS" tab empty), and when I hover over symbols, it always says "Loading...". My CPU is constantly ~70-80% usage while having the project opened.

I opened "Oracle Java SE Language Server" logs to see:

INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN
INFO [org.netbeans.ui.maven.project]: A Maven project was opened. Appending the project's packaging type.
INFO [org.netbeans.ui.metrics.maven]: USG_PROJECT_OPEN_MAVEN

After about a minute, checking logs again:

java.lang.OutOfMemoryError: Java heap space
Dumping heap to /home/marahin/.vscode-server/data/User/workspaceStorage/02430741731cc08a0df7ab4f28b43b7a/Oracle.oracle-java/userdir/var/log/heapdump.hprof ...
Heap dump file created [1395106017 bytes in 29.245 secs]
WARNING [org.netbeans.modules.project.ui.OpenProjectList]
java.lang.OutOfMemoryError: Java heap space
	at java.base/java.lang.StringUTF16.compress(StringUTF16.java:161)
	at java.base/java.lang.String.<init>(String.java:4764)
	at java.base/java.lang.String.<init>(String.java:303)
	at org.codehaus.plexus.util.xml.pull.MXParser.newString(MXParser.java:79)
	at org.codehaus.plexus.util.xml.pull.MXParser.parseStartTag(MXParser.java:2252)
	at org.codehaus.plexus.util.xml.pull.MXParser.nextImpl(MXParser.java:1413)
	at org.codehaus.plexus.util.xml.pull.MXParser.next(MXParser.java:1375)
	at org.codehaus.plexus.util.xml.pull.MXParser.nextTag(MXParser.java:1360)
	at org.apache.maven.model.io.xpp3.MavenXpp3ReaderEx.parseModel(MavenXpp3ReaderEx.java:2575)
	at org.apache.maven.model.io.xpp3.MavenXpp3ReaderEx.read(MavenXpp3ReaderEx.java:626)
	at org.apache.maven.model.io.xpp3.MavenXpp3ReaderEx.read(MavenXpp3ReaderEx.java:658)
	at org.apache.maven.model.io.DefaultModelReader.read(DefaultModelReader.java:91)
	at org.apache.maven.model.io.DefaultModelReader.read(DefaultModelReader.java:74)
	at org.apache.maven.model.building.DefaultModelProcessor.read(DefaultModelProcessor.java:99)
	at org.apache.maven.model.building.DefaultModelBuilder.readModel(DefaultModelBuilder.java:552)
	at org.apache.maven.model.building.DefaultModelBuilder.readParentExternally(DefaultModelBuilder.java:1046)
	at org.apache.maven.model.building.DefaultModelBuilder.readParent(DefaultModelBuilder.java:801)
	at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:327)
	at org.apache.maven.model.building.DefaultModelBuilder.importDependencyManagement(DefaultModelBuilder.java:1208)
	at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:486)
	at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:410)
	at org.apache.maven.model.building.DefaultModelBuilder.importDependencyManagement(DefaultModelBuilder.java:1208)
	at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:486)
	at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:410)
	at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:243)
	at org.netbeans.modules.maven.embedder.impl.NBModelBuilder.build(NBModelBuilder.java:53)
	at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:176)
	at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:123)
	at org.netbeans.modules.maven.embedder.MavenEmbedder.readProjectWithDependencies(MavenEmbedder.java:246)
	at org.netbeans.modules.maven.modelcache.MavenProjectCache.loadOriginalMavenProject(MavenProjectCache.java:280)
	at org.netbeans.modules.maven.modelcache.MavenProjectCache.loadOriginalMavenProject(MavenProjectCache.java:166)
[catch] at org.netbeans.modules.maven.modelcache.MavenProjectCache.access$200(MavenProjectCache.java:66)
SEVERE [org.openide.util.RequestProcessor]

This message is repeated multiple times; my assumption is that it throws for each of the modules it OOMed for.

I have a pretty smooth brain, so I tried to raise -Xmx in Run Configuration/VM Options, but I noticed the background processes are still launching with -Xmx1g . Traversing this repo, I found this line:

https://github.com/oracle/javavscode/blob/4434cc51e9659dde8eae0bb7985c3844454a6516/script/etc/nbcode.conf#L61C55-L61C63

Where the -J-Xmx1G argument is.

Questions

  • is my approach correct, and raising -Xmx may solve this issue?
  • how can I set this argument?

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions