Skip to content

fix(linux): flatten jpackage classpath to work around JDK-8380085 - #511

Open
jfb112697 wants to merge 1 commit into
NuvioMedia:Devfrom
jfb112697:fix/linux-jpackage-classpath
Open

jfb112697 wants to merge 1 commit into
NuvioMedia:Devfrom
jfb112697:fix/linux-jpackage-classpath

Conversation

@jfb112697

Copy link
Copy Markdown

Problem

The jpackage Linux launcher pipe-transfers the serialized application config to the JVM with a single read. With many jars on the classpath the serialized blob exceeds the pipe capacity, gets truncated, and the packaged launcher dies with a SIGSEGV in jvmLauncherStartJvm — the packaged Linux app crashes at startup.

Tracked upstream as JDK-8380085.

Solution

Collapse app.classpath in the packaged .cfg files to a directory wildcard (lib/app/*), shrinking the serialized config well under the pipe limit.

Testing

Packaged distributable (createDistributable) and release AppImage build and launch correctly with the flattened classpath; playback verified end to end.

The jpackage Linux launcher pipe-transfers the serialized config with a
single read; with many jars it exceeds the pipe capacity, truncates, and
SIGSEGVs in jvmLauncherStartJvm. Collapse app.classpath to a directory
wildcard in the packaged .cfg files.
@KhooLy

KhooLy commented Sep 3, 2026

Copy link
Copy Markdown
Member

The fix looks good, but the current Linux release pipeline also uses packageReleaseDeb, packageReleaseRpm, and packageReleaseAppImage. Please make sure the classpath workaround is applied to those package paths too, not only createReleaseDistributable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants