Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UsePriorityInlining in EE 22.2.0 breaks Minecraft #4772

Closed
brucethemoose opened this issue Jul 30, 2022 · 4 comments
Closed

UsePriorityInlining in EE 22.2.0 breaks Minecraft #4772

brucethemoose opened this issue Jul 30, 2022 · 4 comments
Labels

Comments

@brucethemoose
Copy link

brucethemoose commented Jul 30, 2022

Describe the issue
To be more precise, GraalVM Enterprise Edition 22.2.0 Windows x86 for Java 17 crashes a specific Minecraft modification called "Immersive Portals."

But disabling JVMCI with the flags -XX:-UseJVMCICompiler -Dgraal.CompilerConfiguration=community fixes the crash. And this crash does not happen running any other Java 17 distribution (including GraalVM CE) with their default flags.

Here are 2 crashlogs in 2 different versions of that mod:

https://mclo.gs/azus7sJ#L415
https://mclo.gs/f3iATRd#L238

And a log from running GraalVM CE in what is otherwise the exact same environment, for reference:

https://mclo.gs/oXbXJoO

I know what you're thinking... this is some Minecraft mod thing, not GraalVM business. But this crash is, in fact, highly unusual, as GraalVM EE with the enterprise compiler works perfectly with Minecraft Java Edition and hundreds of other extensive modifications. This is the first GraalVM EE crash I have run into.

Steps to reproduce the issue
I can't redistribute Minecraft, but I can make the reproduction as easy as possible for anyone with a license on Windows:

Extract the zip from this link, and run the PolyMC launcher: https://drive.google.com/file/d/1_kY-Bjb0Y_-gDfZVmE7e47ltJe1jTnw9/view?usp=sharing

Or, if you wish, install/compile PolyMC yourself and create a 1.19 instance with "immersive portals" and "fabric" mods installed through the UI.

Select GraalVM EE as your Java runtime, no additional arguments are needed.

Sign in with a valid Minecraft or Microsoft account.

Launch the Minecraft instance, try to start a singleplayer world, and the game will crash.

Describe GraalVM and your environment:

  • GraalVM version EE 22.2.0
  • JDK major version: 17
  • OS: Windows 10 Home 21H2
  • Architecture: AMD64

More details
I've opened an issue here as well: iPortalTeam/ImmersivePortalsMod#1153

This crash is reproducible for other users on different systems.

I am also going to disable the GraalVM optimizations (other than disabling the enterprise compiler entirely) to see if any of them are triggering this error.

@brucethemoose brucethemoose changed the title GraalVM EE Crashes Minecraft GraalVM EE Crashes a Minecraft Mod Jul 30, 2022
@brucethemoose
Copy link
Author

brucethemoose commented Jul 30, 2022

The crash happens in 22.2.0, but doesn't happen in 22.1.0, as seen in this log: https://mclo.gs/Bn4OqTG

It seems to be some kind of regression in 22.2.0.

@brucethemoose brucethemoose changed the title GraalVM EE Crashes a Minecraft Mod GraalVM EE 22.2.0 Regression in Minecraft Jul 30, 2022
@brucethemoose
Copy link
Author

I narrowed this down to UsePriorityInlining. Launching GraalVM with the -Dgraal.UsePriorityInlining=false argument fixes the crash.

@HyperSoop you may be interested in this fix as well.

@brucethemoose brucethemoose changed the title GraalVM EE 22.2.0 Regression in Minecraft UsePriorityInlining in EE 22.2.0 breaks Minecraft Jul 30, 2022
@brucethemoose
Copy link
Author

This same flag seems to break mods related to graphics, but unrelated to Immersive Portals' codebase. Here is a very similar crashlog for Sodium, an alternative Minecraft renderer:

https://mclo.gs/ESNDv2s

@brucethemoose
Copy link
Author

Whoops, this is actually a vanilla issue. I think I will remake it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant