ThexXTURBOXx / BlockHelper

Basically WAILA for b1.2_02-1.5.2
https://modrinth.com/mod/block-helper
MIT License
8 stars 3 forks source link

[1.4.7] EOF Exception spammed in console log serverside #6

Closed ThePixelbrain closed 2 years ago

ThePixelbrain commented 2 years ago

The following EOF Exception gets spammed in the server console when using BlockHelper 1.0.0 serverside. This doesn't happen with the older 0.9 release.

java.io.EOFException
21:41:31 [SEVERE]       at java.io.DataInputStream.readFully(DataInputStream.java:197)
21:41:31 [SEVERE]       at java.io.DataInputStream.readLong(DataInputStream.java:416)
21:41:31 [SEVERE]       at java.io.DataInputStream.readDouble(DataInputStream.java:468)
21:41:31 [SEVERE]       at de.thexxturboxx.blockhelper.PacketCoder.decode(PacketCoder.java:37)
21:41:31 [SEVERE]       at mod_BlockHelper.onPacketData(mod_BlockHelper.java:100)
21:41:31 [SEVERE]       at cpw.mods.fml.common.network.NetworkRegistry.handlePacket(NetworkRegistry.java:253)
21:41:31 [SEVERE]       at cpw.mods.fml.common.network.NetworkRegistry.handleCustomPacket(NetworkRegistry.java:242)
21:41:31 [SEVERE]       at cpw.mods.fml.common.network.FMLNetworkHandler.handlePacket250Packet(FMLNetworkHandler.java:75)
21:41:31 [SEVERE]       at iv.a(NetServerHandler.java:2079)
21:41:31 [SEVERE]       at di.a(Packet250CustomPayload.java:70)
21:41:31 [SEVERE]       at cg.b(TcpConnection.java:467)
21:41:31 [SEVERE]       at iv.d(NetServerHandler.java:220)
21:41:31 [SEVERE]       at iw.b_net_minecraft_network_NetworkListenThread_networkTick_p0(NetworkListenThread.java:57)
21:41:31 [SEVERE]       at iw.b(NetworkListenThread.java)
21:41:31 [SEVERE]       at ht.b(DedicatedServerListenThread.java:34)
21:41:31 [SEVERE]       at net.minecraft.server.MinecraftServer.r(MinecraftServer.java:430)
21:41:31 [SEVERE]       at ho.r(DedicatedServer.java:309)
21:41:31 [SEVERE]       at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:306)
21:41:31 [SEVERE]       at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:199)
21:41:31 [SEVERE]       at fy.run(ThreadMinecraftServer.java:16)

We suspect this happens because clients connect with the older version of BlockHelper, but the server has the newer one. Our server is heavily modified, it runs behind a proxy, has TickThreading and MCPC+. I tried to recreate this issue with a "vanilla" Forge server, but it won't let me connect to the server when having a different version of BlockHelper (Screenshot). Is this intended? I suspect people can still connect to our server when having a different version of BlockHelper or no BlockHelper at all, because of our proxy ignoring Forge's rejection. It's important to us that BlockHelper is optional clientside, because we don't want to enforce players to install BlockHelper.

ThexXTURBOXx commented 2 years ago

Thanks for reporting this issue! Yes, that indeed looks like an incompatibility between Block Helper 0.9.x and 1.0.0 to me. That is because of a small change in the packets that Block Helper exchanged with the server. Before 1.0.0, when looking at an entity, only the integer coordinates of the resulting hit vector were sent to the server. However, now, the entire double precision coordinates are being sent. This results in an incompability when reading the packet data. Actually, I have an idea for improving how Block Helper gets its extra information. This will most likely improve networking performance at the cost of adding additional logic server side. I have my last exam in two days and will start working on this and the other two issues on Wednesday (or even Tuesday already).

ThexXTURBOXx commented 2 years ago

Hi, your issue should be fixed in the new prerelase, available here. Could you please check if everything works for you and report back? Thank you very much in advance :)

ThePixelbrain commented 2 years ago

I just installed it on our server and it seems to work great, the EOF spam is gone. Everything seems to be fine when connecting with the 1.0.0 version of Block Helper. When joining with the 0.9 version however, it tells me "Server side error" when looking at machines, like can be seen in this screenshot. I don't know if this problem was existent before, because I never connected with an older release of Block Helper.

ThexXTURBOXx commented 2 years ago

I just installed it on our server and it seems to work great, the EOF spam is gone. Everything seems to be fine when connecting with the 1.0.0 version of Block Helper.

Perfect, very nice to hear! :) As soon as the other guy also checked his issues, I will upload 1.1.0 as an official release!

When joining with the 0.9 version however, it tells me "Server side error" when looking at machines, like can be seen in this screenshot. I don't know if this problem was existent before, because I never connected with an older release of Block Helper.

Yes, this "issue" was not existent before; I actually added this intentionally. It should also say "Version mismatch?" below that, but for some reason that is missing right now there. So, that's a tiny issue that I need to look at again and which will be fixed in the final 1.1.0. Would you mind elaborating which proxy you are using that lets you connect with the 0.9 version? I tried BungeeCord for 1.4.7, but it doesn't work with Forge for me appearently. If you could tell me that, I could be able to test many other things using 0.9 there also :)

ThePixelbrain commented 2 years ago

So, that's a tiny issue that I need to look at again and which will be fixed in the final 1.1.0.

Very cool, thanks for looking into it and keep up the great work!


Would you mind elaborating which proxy you are using that lets you connect with the 0.9 version? I tried BungeeCord for 1.4.7, but it doesn't work with Forge for me appearently. If you could tell me that, I could be able to test many other things using 0.9 there also :)

I would like to tell you, but I don't know for sure myself.. :D I'm part of a staff team on an FTB Ultimate 1.4.7 server, which has existed in some form since the release of FTB Ultimate in 2013. A whole lot of things have been done in the years, many (all?) undocumented. The proxy that we are using has been developed by @UXELDUXEL. It was custom-made for our server, but most likely based on something. I don't know it too well, maybe he can explain better, though he is quite busy atm.

ThexXTURBOXx commented 2 years ago

Very cool, thanks for looking into it and keep up the great work!

You're more than welcome! Always glad to help :)

I would like to tell you, but I don't know for sure myself.. :D

Oh okay, thank you anyway :) Then, I will just wait for @UXELDUXEL. But it's not too bad if he doesn't respond. I could always just modify the server myself ^^

ThexXTURBOXx commented 2 years ago

1.1.0 has been released a few minutes ago and includes a fix for this issue :)