dragon-forge / ImprovableSkills

Boost player's abilities as well as granting useful abilities using single book and your XP. (And more)
0 stars 4 forks source link

Occasionally cause players respawn in a corrupted state on server #4

Open TerwalEast opened 1 year ago

TerwalEast commented 1 year ago

In multiplayer games on remote server, sometimes players would immediately die a second time when they click respawn(Mod features like JourneyMap's Death point and FTB's /back command will record and recognize that second death). After that and another respawn, player is stuck in a half-dead state, cannot move but can destroy blocks or harm nearby entities. Disconnecting will solve this, and getting killed and respawn third time may or may not. On single player worlds "Die Twice" still happen from time to time, but without the following immobilization.

Tested and reproduced with the Improvable Skills only.

TerwalEast commented 1 year ago

Some more tests yield that: On the half-dead state, player can try to open their Inventory, but would immediately be kicked out as if player closed Inventory. In that brief moment the player avatar is shown in death animation's last frames, red and lying on side. Wait for ten secs or so before respawning helps avoiding that bug, greatly reducing the frequency of false-death happening, but not completely.

DinnerBeef commented 1 year ago

Do you have any updates on this? I have this issue on 1.19.2. I removed the mod, and the issues stopped, "I Killed my self a lot". But when I reinstalled the mod, the issue pop up only after few deaths.

Xplodin commented 1 year ago

I have seen this, and my fix was adding NaNny mod

Zeitheron commented 5 months ago

@Xplodin

I have seen this, and my fix was adding NaNny mod

Can you enable logging NaNny, to see which event causes this to happen? Would be much appreciated in getting this resolved.

Xplodin commented 5 months ago

ye, ill try this on a test instance. I havent really used the mod for a while.

Xplodin commented 5 months ago

Cant seem to reproduce with only this mod and NaNny I even command block repeat /kill on my character for 5 straight seconds of pressing respawn really quick

Zeitheron commented 5 months ago

Might be another mod causing this, then? Maybe incompatibility of another mod with Improvable Skills. That, or it has been fixed by Forge/Mojang. Idk.

TophC7 commented 4 months ago

This is happening to me and its really messing up the server now. If a player logs out while dead in this corrupted state it won't let them join the world anymore. Also, with our modpack mobs are pretty aggresive so while in this corrupted state u end up getting killed AGAIN.

I tried NaNny but that didnt help Heres my modpack: https://drive.toph.cc/share/lSCC1vFL Password is corrupted

Zeitheron commented 4 months ago

The modpack doesn't help much, I need actual debug info that would let me figure out the issue. In case of players being unable to join the world -- there must be a stack trace on the server logs or something.

This is one of those tricky issues where narrowing it down is very difficult due to the absence of any traces whatsoever.

TophC7 commented 4 months ago

debug-server.log latest-server.log

debug.log latest.log

Logs form server and client.

after this trying to join back in freezes the game

Zeitheron commented 4 months ago

There seem to be a ton of rendering errors from the overlay thirst:thirst_level. Your issue might be completely unrelated; the overlay rendering can cause freezing or crashing.

The server is completely lacking any errors, indicating that the issue you're facing is definitely client-related. The server itself has successfully read player data just fine.

The particular issue I am talking about:


[27Jun2024 20:24:25.610] [Render thread/ERROR] [net.minecraftforge.client.gui.overlay.ForgeGui/]: Error rendering overlay 'thirst:thirst_level'
java.lang.NullPointerException: Cannot invoke "dev.ghen.thirst.foundation.common.capability.IThirst.getShouldTickThirst()" because the return value of "net.minecraftforge.common.util.LazyOptional.orElse(Object)" is null
    at dev.ghen.thirst.foundation.gui.ThirstBarRenderer.lambda$static$0(ThirstBarRenderer.java:44) ~[ThirstWasTaken-1.20.1-1.3.7.jar%23798!/:1.20.1-1.3.7]
    at net.minecraftforge.client.gui.overlay.ForgeGui.lambda$render$0(ForgeGui.java:126) ~[forge-1.20.1-47.2.19-universal.jar%23831!/:?]
    at com.google.common.collect.ImmutableList.forEach(ImmutableList.java:422) ~[guava-31.1-jre.jar%23102!/:?]
    at net.minecraftforge.client.gui.overlay.ForgeGui.redirect$cjc000$batching(ForgeGui.java:1253) ~[forge-1.20.1-47.2.19-universal.jar%23831!/:?]
    at net.minecraftforge.client.gui.overlay.ForgeGui.m_280421_(ForgeGui.java:121) ~[forge-1.20.1-47.2.19-universal.jar%23831!/:?]
    at net.minecraft.client.renderer.GameRenderer.m_109093_(GameRenderer.java:945) ~[client-1.20.1-20230612.114412-srg.jar%23826!/:?]
    at net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1146) ~[client-1.20.1-20230612.114412-srg.jar%23826!/:?]
    at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:718) ~[client-1.20.1-20230612.114412-srg.jar%23826!/:?]
    at net.minecraft.client.main.Main.main(Main.java:218) ~[minecraft-1.20.1-client.jar:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
    at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:111) ~[fmlloader-1.20.1-47.2.19.jar:?]
    at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:99) ~[fmlloader-1.20.1-47.2.19.jar:?]
    at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$makeService$0(CommonClientLaunchHandler.java:25) ~[fmlloader-1.20.1-47.2.19.jar:?]
    at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) ~[modlauncher-10.0.9.jar:?]
    at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) ~[modlauncher-10.0.9.jar:?]
    at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) ~[modlauncher-10.0.9.jar:?]
    at cpw.mods.modlauncher.Launcher.run(Launcher.java:108) ~[modlauncher-10.0.9.jar:?]
    at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) ~[modlauncher-10.0.9.jar:?]
    at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.9.jar:?]
    at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.9.jar:?]
    at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[bootstraplauncher-1.1.2.jar:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
    at io.github.zekerzhayard.forgewrapper.installer.Main.main(Main.java:67) ~[?:?]
    at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:100) ~[?:?]
    at org.prismlauncher.EntryPoint.listen(EntryPoint.java:129) ~[?:?]
    at org.prismlauncher.EntryPoint.main(EntryPoint.java:70) ~[?:?]```
TophC7 commented 4 months ago

I removed thirst was taken and had the same results after dying and trying to joining again. Doesn't seem to be thirst The game freezes only happens when hammerlib and improvable skills is present on the modpack, I'm assuming its a compat issue but I can't figure out where

last logs with no thirst latest.log debug.log server debug.log latest.log

TophC7 commented 4 months ago

I narrowed down the issue something with JEI and EMI!!

I'm going to test and see which mod is the issue but after removing JEI, EMI and its addons the corrupted state no longer happens and naturally I can join again.

TophC7 commented 4 months ago

I tested on an empty instance with just JEI, EMI, and Improvable skills and the bug never happened So the compat issue is not entirely there

However on my modpack here's what I noted Removing EMI from just server, fixes the corrupted death bug but won't allow me to rejoin after death and leaving. Removing JEI and EMI from both client and server, no bugs happen, can join Removing hammerlib and skills no bugs happen, can join

So yeah even more confused now, where the issue is