ghost dimensions are on the rise again in ranked! these bugs when entities stop moving and the player can no longer take fall damage, among other things, are characteristic of a server freeze. In some cases however, servers don’t just freeze, but deadlock, and so are generally[1] irrecoverable. every time I see a bug report for one it hurts a little, because for this rare bug there is exactly one piece of useful information you can gather, and it’s probably impossible by the time you make that report or I respond to it. that is a java thread dump, and it can only be captured while the world is still open. if someone wants more instances of ghost dimensions fixed, please provide a thread dump. anyone. I beg of you.
note: this guide is not going to have a 100% success rate. you’re going to need to already have a JDK on PATH. there’s a relatively high chance of that (esp. if you’ve installed java following any guide from mcsr), but if you don’t (which will be determined up front), don’t worry about it. you have done all that you can do.
warning: I have no idea how followable this guide is. I wouldn’t say I’m great at writing instructions.
advanced users
If you know your way around the command line, feel free to ignore most of this guide. I want the output of jstack -l -e <pid> while the world is still open.
microslop windows
you’re probably on windows. to get a thread dump on windows we need to get the process id of the instance (which is javaw.exe process), and run a command with it.
to test if you have the requisite tools installed, open a command prompt (press win + r, type in cmd.exe, press enter). a black window should show up with somewhere for you to type (do not try to paste into this window, it will not work correctly).
type jstack in the window and press enter. if it says
'jstack' is not recognized as an internal or external command,
operable program or batch file.
then you can give up. otherwise, if it says something like
Usage:
jstack [-l][-e] <pid>
(to connect to running process)
etc, then you have access to jstack. yippee! next we need the id of the minecraft process. to get this we’re going to look in task manager, which you can open with the shortcut ctrl + shift + esc. we need to go to the details tab, which is the tab that’s second to the bottom and has the icon of 3 lines.
click on that, and then we need to find javaw.exe. there’s also a rare chance you’re using java.exe. if the details tab is not sorted by name then clicking on the title of the name column will make it so. if you have multiple javaw.exes, make sure you don’t have multiple instances open, or other java programs (close ninjabrain bot). also, if it’s some random java program like modcheck you can usually tell by cpu usage (focus the game and spin around, cpu usage will spike a bit for one entry).

once you find the right entry, take note of the number to the left of the name, in the PID column. it will be some 4-5 digit digit number. go back to the window we ran that command in before. we’re going to now run the command jstack -l -e PID > out.txt (that’s a lowercase L), where PID is replaced with the number you wrote down (e.x. jstack -l -e 31148 > out.txt, but the number will be different for you).
hopefully that ran successfully. if so, there will create a file called out.txt in your user folder which I hope you can get to. one way is to go to This PC → C: Drive → Users → <your username>. there you should have your thread dump which you may include in a ranked bug report or send in devcord or wherever else you may desire or to whomever you may desire.
linux
going to assume a basic level of competency with the shell here.
we’re looking for the pid of minecraft instance. ps -ax | grep java will list us the running java programs. make sure to close other instances if you have them open because it is very difficult to identify exactly which one you want via this simple method.
example output:
[justin@nixos:~]$ ps -ax | grep java
118852 ? SLl 2:32 /nix/store/2c52z0rvldik0rll2xz2ip5dl1c8f3pw-openjdk-21.0.10+7/bin/java --enable-native-access=ALL-UNNAMED -Djava.locale.providers=FALLBACK -XX:+UseZGC -Dseedqueue.logSystemInfo=false -Dawt.useSystemAAFontSettings=on -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true -Dorg.lwjgl.glfw.libname=/home/justin/projects/glfw/build/src/libglfw.so -Xms3072m -Xmx3072m -Duser.language=en -Djava.library.path=/home/justin/.local/share/PrismLauncher/instances/1.16/natives -cp /nix/store/pq95ryj5jcadfd9m7crwg24nipm8hlla-prismlauncher-unwrapped-10.0.5/share/PrismLauncher/NewLaunch.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-freetype-natives-linux/3.3.3/lwjgl-freetype-natives-linux-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-freetype/3.3.3/lwjgl-freetype-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-glfw-natives-linux/3.3.3/lwjgl-glfw-natives-linux-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-glfw/3.3.3/lwjgl-glfw-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-jemalloc-natives-linux/3.3.3/lwjgl-jemalloc-natives-linux-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-jemalloc/3.3.3/lwjgl-jemalloc-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-natives-linux/3.3.3/lwjgl-natives-linux-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-openal-natives-linux/3.3.3/lwjgl-openal-natives-linux-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-openal/3.3.3/lwjgl-openal-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-opengl-natives-linux/3.3.3/lwjgl-opengl-natives-linux-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-opengl/3.3.3/lwjgl-opengl-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-stb-natives-linux/3.3.3/lwjgl-stb-natives-linux-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-stb/3.3.3/lwjgl-stb-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-tinyfd-natives-linux/3.3.3/lwjgl-tinyfd-natives-linux-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-tinyfd/3.3.3/lwjgl-tinyfd-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl/3.3.3/lwjgl-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/com/mojang/patchy/1.3.9/patchy-1.3.9.jar:/home/justin/.local/share/PrismLauncher/libraries/oshi-project/oshi-core/1.1/oshi-core-1.1.jar:/home/justin/.local/share/PrismLauncher/libraries/net/java/dev/jna/jna/4.4.0/jna-4.4.0.jar:/home/justin/.local/share/PrismLauncher/libraries/net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar:/home/justin/.local/share/PrismLauncher/libraries/com/ibm/icu/icu4j/66.1/icu4j-66.1.jar:/home/justin/.local/share/PrismLauncher/libraries/com/mojang/javabridge/1.0.22/javabridge-1.0.22.jar:/home/justin/.local/share/PrismLauncher/libraries/net/sf/jopt-simple/jopt-simple/5.0.3/jopt-simple-5.0.3.jar:/home/justin/.local/share/PrismLauncher/libraries/io/netty/netty-all/4.1.25.Final/netty-all-4.1.25.Final.jar:/home/justin/.local/share/PrismLauncher/libraries/com/google/guava/guava/21.0/guava-21.0.jar:/home/justin/.local/share/PrismLauncher/libraries/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar:/home/justin/.local/share/PrismLauncher/libraries/commons-io/commons-io/2.5/commons-io-2.5.jar:/home/justin/.local/share/PrismLauncher/libraries/commons-codec/commons-codec/1.10/commons-codec-1.10.jar:/home/justin/.local/share/PrismLauncher/libraries/com/mojang/brigadier/1.0.17/brigadier-1.0.17.jar:/home/justin/.local/share/PrismLauncher/libraries/com/mojang/datafixerupper/3.0.25/datafixerupper-3.0.25.jar:/home/justin/.local/share/PrismLauncher/libraries/com/google/code/gson/gson/2.8.0/gson-2.8.0.jar:/home/justin/.local/share/PrismLauncher/libraries/com/mojang/authlib/1.6.25/authlib-1.6.25.jar:/home/justin/.local/share/PrismLauncher/libraries/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar:/home/justin/.local/share/PrismLauncher/libraries/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar:/home/justin/.local/share/PrismLauncher/libraries/it/unimi/dsi/fastutil/8.2.1/fastutil-8.2.1.jar:/home/justin/.local/share/PrismLauncher/libraries/org/apache/logging/log4j/log4j-api/2.17.1/log4j-api-2.17.1.jar:/home/justin/.local/share/PrismLauncher/libraries/org/apache/logging/log4j/log4j-core/2.17.1/log4j-core-2.17.1.jar:/home/justin/.local/share/PrismLauncher/libraries/com/mojang/text2speech/1.11.3/text2speech-1.11.3.jar:/home/justin/.local/share/PrismLauncher/libraries/net/fabricmc/intermediary/1.16/intermediary-1.16.jar:/home/justin/.local/share/PrismLauncher/libraries/org/ow2/asm/asm/9.9/asm-9.9.jar:/home/justin/.local/share/PrismLauncher/libraries/org/ow2/asm/asm-analysis/9.9/asm-analysis-9.9.jar:/home/justin/.local/share/PrismLauncher/libraries/org/ow2/asm/asm-commons/9.9/asm-commons-9.9.jar:/home/justin/.local/share/PrismLauncher/libraries/org/ow2/asm/asm-tree/9.9/asm-tree-9.9.jar:/home/justin/.local/share/PrismLauncher/libraries/org/ow2/asm/asm-util/9.9/asm-util-9.9.jar:/home/justin/.local/share/PrismLauncher/libraries/net/fabricmc/sponge-mixin/0.17.0+mixin.0.8.7/sponge-mixin-0.17.0+mixin.0.8.7.jar:/home/justin/.local/share/PrismLauncher/libraries/net/fabricmc/fabric-loader/0.18.5/fabric-loader-0.18.5.jar:/home/justin/.local/share/PrismLauncher/instances/1.16/minecraft/bin/minecraft.jar org.prismlauncher.EntryPoint
118904 ? S 0:01 /nix/store/2c52z0rvldik0rll2xz2ip5dl1c8f3pw-openjdk-21.0.10+7/bin/java --enable-native-access=ALL-UNNAMED -Djava.locale.providers=FALLBACK -XX:+UseZGC -Dseedqueue.logSystemInfo=false -Dawt.useSystemAAFontSettings=on -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true -Dorg.lwjgl.glfw.libname=/home/justin/projects/glfw/build/src/libglfw.so -Xms3072m -Xmx3072m -Duser.language=en -Djava.library.path=/home/justin/.local/share/PrismLauncher/instances/1.16/natives -cp /nix/store/pq95ryj5jcadfd9m7crwg24nipm8hlla-prismlauncher-unwrapped-10.0.5/share/PrismLauncher/NewLaunch.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-freetype-natives-linux/3.3.3/lwjgl-freetype-natives-linux-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-freetype/3.3.3/lwjgl-freetype-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-glfw-natives-linux/3.3.3/lwjgl-glfw-natives-linux-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-glfw/3.3.3/lwjgl-glfw-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-jemalloc-natives-linux/3.3.3/lwjgl-jemalloc-natives-linux-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-jemalloc/3.3.3/lwjgl-jemalloc-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-natives-linux/3.3.3/lwjgl-natives-linux-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-openal-natives-linux/3.3.3/lwjgl-openal-natives-linux-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-openal/3.3.3/lwjgl-openal-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-opengl-natives-linux/3.3.3/lwjgl-opengl-natives-linux-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-opengl/3.3.3/lwjgl-opengl-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-stb-natives-linux/3.3.3/lwjgl-stb-natives-linux-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-stb/3.3.3/lwjgl-stb-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-tinyfd-natives-linux/3.3.3/lwjgl-tinyfd-natives-linux-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl-tinyfd/3.3.3/lwjgl-tinyfd-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/lwjgl/lwjgl/3.3.3/lwjgl-3.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/com/mojang/patchy/1.3.9/patchy-1.3.9.jar:/home/justin/.local/share/PrismLauncher/libraries/oshi-project/oshi-core/1.1/oshi-core-1.1.jar:/home/justin/.local/share/PrismLauncher/libraries/net/java/dev/jna/jna/4.4.0/jna-4.4.0.jar:/home/justin/.local/share/PrismLauncher/libraries/net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar:/home/justin/.local/share/PrismLauncher/libraries/com/ibm/icu/icu4j/66.1/icu4j-66.1.jar:/home/justin/.local/share/PrismLauncher/libraries/com/mojang/javabridge/1.0.22/javabridge-1.0.22.jar:/home/justin/.local/share/PrismLauncher/libraries/net/sf/jopt-simple/jopt-simple/5.0.3/jopt-simple-5.0.3.jar:/home/justin/.local/share/PrismLauncher/libraries/io/netty/netty-all/4.1.25.Final/netty-all-4.1.25.Final.jar:/home/justin/.local/share/PrismLauncher/libraries/com/google/guava/guava/21.0/guava-21.0.jar:/home/justin/.local/share/PrismLauncher/libraries/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar:/home/justin/.local/share/PrismLauncher/libraries/commons-io/commons-io/2.5/commons-io-2.5.jar:/home/justin/.local/share/PrismLauncher/libraries/commons-codec/commons-codec/1.10/commons-codec-1.10.jar:/home/justin/.local/share/PrismLauncher/libraries/com/mojang/brigadier/1.0.17/brigadier-1.0.17.jar:/home/justin/.local/share/PrismLauncher/libraries/com/mojang/datafixerupper/3.0.25/datafixerupper-3.0.25.jar:/home/justin/.local/share/PrismLauncher/libraries/com/google/code/gson/gson/2.8.0/gson-2.8.0.jar:/home/justin/.local/share/PrismLauncher/libraries/com/mojang/authlib/1.6.25/authlib-1.6.25.jar:/home/justin/.local/share/PrismLauncher/libraries/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar:/home/justin/.local/share/PrismLauncher/libraries/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar:/home/justin/.local/share/PrismLauncher/libraries/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar:/home/justin/.local/share/PrismLauncher/libraries/org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar:/home/justin/.local/share/PrismLauncher/libraries/it/unimi/dsi/fastutil/8.2.1/fastutil-8.2.1.jar:/home/justin/.local/share/PrismLauncher/libraries/org/apache/logging/log4j/log4j-api/2.17.1/log4j-api-2.17.1.jar:/home/justin/.local/share/PrismLauncher/libraries/org/apache/logging/log4j/log4j-core/2.17.1/log4j-core-2.17.1.jar:/home/justin/.local/share/PrismLauncher/libraries/com/mojang/text2speech/1.11.3/text2speech-1.11.3.jar:/home/justin/.local/share/PrismLauncher/libraries/net/fabricmc/intermediary/1.16/intermediary-1.16.jar:/home/justin/.local/share/PrismLauncher/libraries/org/ow2/asm/asm/9.9/asm-9.9.jar:/home/justin/.local/share/PrismLauncher/libraries/org/ow2/asm/asm-analysis/9.9/asm-analysis-9.9.jar:/home/justin/.local/share/PrismLauncher/libraries/org/ow2/asm/asm-commons/9.9/asm-commons-9.9.jar:/home/justin/.local/share/PrismLauncher/libraries/org/ow2/asm/asm-tree/9.9/asm-tree-9.9.jar:/home/justin/.local/share/PrismLauncher/libraries/org/ow2/asm/asm-util/9.9/asm-util-9.9.jar:/home/justin/.local/share/PrismLauncher/libraries/net/fabricmc/sponge-mixin/0.17.0+mixin.0.8.7/sponge-mixin-0.17.0+mixin.0.8.7.jar:/home/justin/.local/share/PrismLauncher/libraries/net/fabricmc/fabric-loader/0.18.5/fabric-loader-0.18.5.jar:/home/justin/.local/share/PrismLauncher/instances/1.16/minecraft/bin/minecraft.jar org.prismlauncher.EntryPoint
120304 pts/3 Sl+ 0:05 /etc/profiles/per-user/justin/bin/java -jar downloads/Ninjabrain-Bot-1.5.1.jar
120455 pts/5 S+ 0:00 grep java
it can give a bit of an obnoxious output. you may need to make your text size a little smaller (ctrl + minus). luckily, it’s pretty obvious which are the minecraft instances because they have your java arguments, tell-tale text like “PrismLauncher,” “lwjgl,” “minecraft.jar,” etc, and they’re so much longer than other results. I don’t know why I have two results return, but if that happens for you too it’s not hard to identify the correct one as it is the one that has a plausible runtime (not 0:00 or 0:01, for instance) and also seems to always be the smaller pid. the pid is the leftmost number, so in this case 118852.
then you can just run jstack -l -e PID | tee out.txt (that’s a lowercase L), where PID is replaced with the number you wrote down (e.x. jstack -l -e 118852 | tee out.txt, but the number will be different for you). the thread dump (if successful) will be in out.txt in whatever folder you ran the command in. if there was obviously an error (e.x. Unable to open socket file), you can try with another pid, if there is one. submit a successful thread dump in a bug report if you wish.
macos
should be possible but you’re on your own, sorry.
ranked has some tricks, but I don’t think they have a particularly high success rate. ↩︎
