Smyler
- Smyler
- smyler
- Europe/Stockholm
- Yes
- No
Game crashed on Linux, as I tried to open the link to your feedback page
What I expected to happen was...:
that the Browser (Firefox) should open and I would browse to Mojangs feedback page
What actually happened was...:
The game stuck, I couldn't do anything. Then a Linux pop-up came "Minecraft 1.14 pre-Release 2 isn't responding!" Options were "wait" and "Force Quit" so I first clicked on "wait" then after a while the pop-up returned, so I clicked "Force Quit"
Steps to Reproduce:
1. Open a world in Minecraft 1.14 pre-Release 2.
2. Go in the Game Menu ("Esc")
3. Press the "Give Feedback" button
4. Press "Open in browser"
Code Analysis:
Code analysis by Smyler can be found in this comment.
How to reproduce
- Open Minecraft in linux
- Take a screenshot with F2
- Click the underlined text in chat
→ The game will hang until you close the image viewer
Code analysis & fix
Code analysis and fix by Smyler can be found in this comment.
How would you do that with the Vanilla launcher?
[Mod] Pokechu22 I just attached the crash-report as you asked.
Also, I don't think anyone experienced the issue in 1.14.3, I definitely didn't and I have played a long time on that version.
The issue first appeared in 1.14 snapshots for me, in 19w06a according to this bug report and to my testing. Here is the list of version I tested and whether or not they are affected:
So the problem was introduced in 19w06a, fixed in 1.14.3-pre2, and then re-introduced in 1.14.4-pre2.
I am running plasmashell 5.16.3 on Arch Linux and Minecraft is in a maximized window.
This is intended, you need to use a smithing table.
If you are self hosting your server, it could simply be caused by a poor upstream bandwidth.
I can confirm this issue on Manjaro. It seems to be a problem with LWJGL 3. Here is a rundown of my tests:
After digging a little deeper it has nothing to do with LWJGL directly and comes down to the way the game incorrectly opens the sub-process that opens the file. I have implemented a fix in this fabic mod.
The game creates a sub-process that runs the relevant command that will open the file (xdg-open on Linux), and then waits to see if that process prints out any error. Relevant vanilla method in net.minecraft.util.OperatingSystem with YARN mappings:
The problem here is the while loop: I don't know how the relevant commands behave on other operating systems, but on Linux, xdg-open creates a process that inherits its standard input/output/error streams, meaning that the error stream the while loop is checking will only be closed when the child process exits, hence why the loop freezes the game until you close the image viewer / file viewer / whatever was opened.
The correct way to handle error messages from the child process or the open command would be to used something non-blocking, like making the child inherit the game's output stream using a ProcessBuilder. Example implementation from the mod above: