Chest Cavity [Fabric]

Chest Cavity [Fabric]

520k Downloads

[1.16.5] Player booted from server when using dragon breath

CplPibald opened this issue ยท 4 comments

commented

Using chestcavity-2.12.2
on MC 1.16.5
Dedicated server

  1. Add dragon lung to player
  2. Press dragon breath hotkey

Player is immediately disconnected from server. Neither client nor server has crashed; player can immediately reconnect.
Dragon breath cloud is created at player's location (player will probably get hit by it on next login)

Possibly related to issue #17


Server exception:

[15:14:43] [Netty Epoll Server IO #14/ERROR]: Encountered exception while handling in channel with name "chestcavity:hotkey"
java.lang.IllegalArgumentException: Maybe a mod is trying to add entity in a non-server thread. This is probably not IP's issue
        at org.apache.commons.lang3.Validate.isTrue(Validate.java:158) ~[intermediary-server.jar:?]
        at com.qouteall.immersive_portals.network.CommonNetwork.withForceRedirect(CommonNetwork.java:20) ~[3b9a9020-6398-40fb-80fe-e19c34352e61.jar:?]
        at net.minecraft.class_3898$class_3208.updateEntityTrackingStatus(class_3898.java:1957) ~[intermediary-server.jar:?]
        at net.minecraft.class_3898$class_3208.method_18729(class_3898.java:1913) ~[intermediary-server.jar:?]
        at net.minecraft.class_3898.method_18701(class_3898.java:1020) ~[intermediary-server.jar:?]
        at net.minecraft.class_3215.method_18755(class_3215.java:477) ~[intermediary-server.jar:?]
        at net.minecraft.class_3218.method_18778(class_3218.java:933) ~[intermediary-server.jar:?]
        at net.minecraft.class_3218.method_14175(class_3218.java:835) ~[intermediary-server.jar:?]
        at net.minecraft.class_3218.method_8649(class_3218.java:765) ~[intermediary-server.jar:?]
        at net.tigereye.chestcavity.listeners.OrganActivationListeners.ActivateDragonBreath(OrganActivationListeners.java:120) ~[chestcavity-2.12.2.jar:?]
        at net.tigereye.chestcavity.listeners.OrganActivationListeners.activate(OrganActivationListeners.java:62) ~[chestcavity-2.12.2.jar:?]
        at net.tigereye.chestcavity.util.NetworkUtil.ReadChestCavityHotkeyPacket(NetworkUtil.java:84) ~[chestcavity-2.12.2.jar:?]
        at net.tigereye.chestcavity.registration.CCNetworkingPackets.lambda$null$2(CCNetworkingPackets.java:34) ~[chestcavity-2.12.2.jar:?]
        at java.util.Optional.ifPresent(Optional.java:159) ~[?:1.8.0_181]
        at net.tigereye.chestcavity.registration.CCNetworkingPackets.lambda$register$3(CCNetworkingPackets.java:34) ~[chestcavity-2.12.2.jar:?]
        at net.fabricmc.fabric.impl.networking.server.ServerPlayNetworkAddon.receive(ServerPlayNetworkAddon.java:89) ~[39c7fdf9-2dc4-4421-9e09-7eb8dfa842dc.jar:
?]
        at net.fabricmc.fabric.impl.networking.server.ServerPlayNetworkAddon.receive(ServerPlayNetworkAddon.java:38) ~[39c7fdf9-2dc4-4421-9e09-7eb8dfa842dc.jar:
?]                                                                                                                                                                      at net.fabricmc.fabric.impl.networking.AbstractChanneledNetworkAddon.handle(AbstractChanneledNetworkAddon.java:100) [39c7fdf9-2dc4-4421-9e09-7eb8dfa842d
c.jar:?]
        at net.fabricmc.fabric.impl.networking.server.ServerPlayNetworkAddon.handle(ServerPlayNetworkAddon.java:84) [39c7fdf9-2dc4-4421-9e09-7eb8dfa842dc.jar:?]
        at net.minecraft.class_3244.handler$bkj000$handleCustomPayloadReceivedAsync(class_3244.java:2674) [intermediary-server.jar:?]
        at net.minecraft.class_3244.method_12075(class_3244.java) [intermediary-server.jar:?]
commented

it might be immersive portals, that causes issues with the silk gland for me

commented

I just got the exact same error in the 1.17 version (Chest Cavity 2.13.0).
Upon reconnecting to the server, the breath cloud is present, and you have the cooldown effect, so the log is probably right in that Chest Cavity is attempting to do something, maybe spawn the effect cloud, in a thread it shouldn't.

commented

Good news, I think I found the source of the problem! Entity spawning is a touchy thing to do, and doing so in the wrong thread can cause bad reactions. Immersive portals is reacting with the item and status effect cloud entities spawned by the abilities in question, though I do not really understand how or why. Perhaps because they still in the I/O thread? Regardless, moving the spawning of those entities to the spawning queue that handles CC's projectile abilities solved the problem. An update will be coming out soon with the fix.

So yea, the error was right all along.

commented

Immersive Portals was in my pack as well. It sounds like a mod conflict.

If that means this won't be fixed (not judging - I understand how difficult cross-mod issues are), then you may want to note the incompatibility on the download page. Immersive Portals is a pretty popular fabric mod.