Skip to content

OutOfMemoryError #177

Closed
Closed

Description

@scauwe

Hi,

Now that the duplicate library object is solved, I clicked around, but encountered an OutOfMemoryError.

PS C:\Users\me> docker logs idmweb --tail 200
WARNING: no engine jars at /opt/idm/lib; validation's compile check and the simulator need them (mount the customer's lib/); vault access does not.
WARNING: /etc/idmweb/hosted.properties is readable by other users — run: chmod 600 '/etc/idmweb/hosted.properties'
DirXMLDevWeb 0.82.0 hosted: http://localhost:8080 (bound 0.0.0.0:8080), identity token, 1 agent(s), projects DV_DR_13, data /var/lib/idmweb
Exception in thread "tree-watcher" Exception in thread "idmweb-http" java.lang.OutOfMemoryError: Java heap space
        at java.xml/com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl.createChunk(Unknown Source)
        at java.xml/com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl.ensureCapacity(Unknown Source)
        at java.xml/com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl.createNode(Unknown Source)
        at java.xml/com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl.createDeferredAttribute(Unknown Source)
        at java.xml/com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl.setDeferredAttribute(Unknown Source)
        at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractDOMParser.startElement(Unknown Source)
        at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
        at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
        at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
        at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
        at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
        at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
        at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
        at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
        at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
        at com.pointblue.dirxml.dev.xml.CanonicalXml.parse(CanonicalXml.java:101)
        at com.pointblue.dirxml.dev.ascode.AsCodeReader.xml(AsCodeReader.java:430)
        at com.pointblue.dirxml.dev.ascode.AsCodeReader.readDriver(AsCodeReader.java:95)
        at com.pointblue.dirxml.dev.ascode.AsCodeReader.read(AsCodeReader.java:76)
        at com.pointblue.dirxml.web.VaultService.schemaClass(VaultService.java:476)
        at com.pointblue.dirxml.web.Api.route(Api.java:612)
        at com.pointblue.dirxml.web.Api.handle(Api.java:391)
        at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source)
        at jdk.httpserver/sun.net.httpserver.AuthFilter.doFilter(Unknown Source)
        at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source)
        at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(Unknown Source)
        at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source)
        at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange.run(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.base/java.lang.Thread.runWith(Unknown Source)
java.lang.OutOfMemoryError: Java heap space: failed reallocation of scalar replaced objects
Exception in thread "idmweb-http" java.lang.OutOfMemoryError: Java heap space
Exception in thread "idmweb-http" java.lang.OutOfMemoryError: Java heap space
        at java.base/java.lang.StringUTF16.compress(Unknown Source)
        at java.base/java.lang.String.<init>(Unknown Source)
        at java.base/java.lang.String.<init>(Unknown Source)
        at java.xml/com.sun.org.apache.xerces.internal.xni.XMLString.toString(Unknown Source)
        at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractDOMParser.characters(Unknown Source)
        at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
        at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
        at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
        at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
        at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
        at com.pointblue.dirxml.dev.xml.CanonicalXml.parse(CanonicalXml.java:101)
        at com.pointblue.dirxml.dev.ascode.AsCodeReader.xml(AsCodeReader.java:430)
        at com.pointblue.dirxml.dev.ascode.AsCodeReader.readArtifact(AsCodeReader.java:204)
        at com.pointblue.dirxml.dev.ascode.AsCodeReader.readDriver(AsCodeReader.java:123)
        at com.pointblue.dirxml.dev.ascode.AsCodeReader.read(AsCodeReader.java:76)
        at com.pointblue.dirxml.web.VaultService.appSchema(VaultService.java:528)
        at com.pointblue.dirxml.web.Api.route(Api.java:614)
        at com.pointblue.dirxml.web.Api.handle(Api.java:391)
        at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source)
        at jdk.httpserver/sun.net.httpserver.AuthFilter.doFilter(Unknown Source)
        at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source)
        at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(Unknown Source)
        at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source)
        at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange.run(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.base/java.lang.Thread.runWith(Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)

I searched around to see if I could set the jvm's memory, but I could not find anything to set jvm parameters.

Activity

  1. scauwe commented on Oct 28, 2026

    @scauwe
    Author

    Please ignore. I started docker run with -m 8g. Seemed that the default memory setting was 2g on my system.

  2. jcombs-pointblue commented on Oct 29, 2026

    @jcombs-pointblue
    Contributor

    Thanks, glad -m 8g sorted it. Two things for anyone who lands here:

    • The image passes IDM_JAVA_OPTS to Java, so -e IDM_JAVA_OPTS="-Xmx4g" sets the heap.
    • Your trace also shows a waste on our side: the vault-schema pages read the whole project from disk on every request, several at once. We'll fix that and document the memory setting.
  3. added 3 commits that reference this issue on Oct 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions