Skip to content

Large VSIX (> 300 MB) published as inactive due to backend Java heap error #1450

@ErikaMolnar

Description

@ErikaMolnar

Hello

I saw that when publishing larger VSIX files (around 300 MB or more), the extension version is created but stays inactive and therefore isn’t visible in the registry.

After some investigation:

  • The extension appears in the database with active = false.
  • In the backend logs I see a java.lang.OutOfMemoryError: Java heap space during PublishExtensionVersionHandler.publishAsync.
  • The process never reaches the final activateExtension(...) call, so the version remains inactive.

When I increased the JVM heap for the backend container to 2 GB ( _JAVA_OPTIONS=-Xms2g -Xmx2g, 1 GB was not enough), publishing the same VSIX started working and the version became active as expected.

So currently the only workaround I found is to drastically increase the heap size of the backend for large extensions.

Env
OpenVSX version: 0.27.0 (self-hosted)
JVM: OpenJDK 17 (Temurin)
Backend heap:
1G → fails with Java heap space on ~300 MB VSIX
2G → succes

Question
Is this behavior expected for large VSIX files? Would you consider optimizing the publishing so that large extensions don’t require such a large heap (or at least fail instead of leaving the version inactive for such errors, because the CLI message was misleading, saying that it was published successfully)? Looked into the other releases after v0.27.0 and I did not see anything related to this in the change logs.

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