Tinkers' Tool Leveling

Tinkers' Tool Leveling

67M Downloads

Netty DecoderException

Mohron opened this issue ยท 22 comments

commented

Version: TinkerToolLeveling-1.10.2-1.0.0
Forge: forge-1.10.2-12.18.2.2099
Modpack: Uprising

After updating from version 0.2.0, I was unable to connect to my server. On review of the client log, I found TiC to be the last mod to log an action before the errors occurred. TiC had not updated so I rolled back TTL and I was able to connect to the server again.

Client Log

commented

Hi,
getting the same netty error too.
Forge: 2106
TC: 2.5.6
Mantle 1.10
TTL: 1.0.0

Maybe an already leveled tool in player inventory causes the crash?
Don't want to fiddle aorund the server too much.
A quick test in SSP with a tool leveled on 0.20 loaded fine on 1.0.0.

commented

Having the same issue. Its not an already leveled tool in a player's inventory that causes the problem. I reset my server 3 times, still have the error.

commented

If you take the config from your client and copy it to the server, does it still happen?

commented

I can confirm that regenerating the config from fresh, and copying it over to the server, still results in this issue. I deleted the config on both the client and the server. Generated it on the client, customized a few XP values, then copied it to the server, started the server, and then attempted to connect to the server, resulting in being kicked.

Here is the copy of my connection log that I referenced on IE's issue page:

hastebin.com/raw/viyarubuci

And here is a copy of my config file:

hastebin.com/raw/gisimirine

I would also like to point out that I am using a build of the source from the bows branch for my client and server, although that shouldn't have any effect on this issue. Especially since other people are experiencing this issue from the CurseForge releases of both Tinkers' Construct and Tinker Tool Leveling.

commented

confirmed mine is a bit different I get a error just trying to log into server Internal Exception: io.netty.handler.codec.DecoderException: The received string length is longer than maximum allowed ( 23 >20 If I remove this mod im fine or downgrade it back to beta version

0.2.0 works

1.0.0 I get that error above ^

Forge 2099

seems we are all maybe running 2099? maybe ill try a different version....though 2099 is the stable version.

commented

No, I'm using Forge version 12.18.2.2107, apologies for not clarifying.

commented

Yes, the config file is to big to send. A bit weird because it didn't happen before. I guess they don't compress strings by default, meh. This will take a while to fix, downgrade to 0.2.0 for now.

commented

its ok i just tried different forges as well its a no go

Ok thanks! also thanks for all the hard work love how the mod is coming along!

commented

Good luck Bonii. I would offer to help but I know nothing about this kind of stuff >.<

commented

Oh no, I know exactly what the problem is. The solution is the hard part. Theoretically I just need to gzip the data before sending.. practically it's not that easy though.

commented

What about breaking the config file up into multiple files so that way it's only sending chunks at a time?

commented

Wow, I've been wondering what caused this problem on my test server, I can play world fine in single player and now, just found out your mod is the one causing me issues, I was about to report it, seems its already done, will wait for a fix before upgrading it on my server, I'm always testing on a test server with a test client (curse for test, multiMC is for playing for real) with a copy of my actual world before deploying any updates, you never know what could happen.

commented

Just spent the better part of an hour trying to debug this same issue myself until I found the Immersive Engineering issue; thank god someone else is going through this too. Thanks to everyone who's gone through this already, hope the issue can be resolved!

commented

So I don't understand here, Immersive Engineering is the one causing this issue in combination with Tinkers Tool Leveling, but how is it possible that two mods that have nothing to share in between cause this type of issues, Immersive Engineering isn't linked to any Tinkers Construct stuff, or I'm missing something I've not noticed.

commented

When I tried updating TTL and ran into this issue, I did a search of the Forge Support Forum and found a similar problem there. The response they got was "The channel name of your SimpleNetworkWrapper (usually your mod ID) can't be more than 20 characters long.". Looking at TinkerToolLeveling,java, I see networkWrapper = new NetworkWrapper(MODID + ":sync"); and public static final String MODID = "tinkertoolleveling";. "tinkertoolleveling:sync" is 23 characters, and the relevant line in the crash log is io.netty.handler.codec.DecoderException: The received string length is longer than maximum allowed (23 > 20). It looks to me like that's the problem here.

commented

Oooh. That'd explain why it's such a mysterious issue.

commented

@ReverseStateMonad Kudos on figuring that out! I Google'd around for the error and couldn't find anything, besides generic (and ignored) messages on various forums.

commented

The fix was indeed to simply shorten the channel name. But I found a bug with the way syncing is done, so it took a bit longer. That's in Mantle though.

commented

Glad I could help!

commented

Aaand the fix is live. It also requires a mantle update to make the syncing smarter. Thanks again @ReverseStateMonad

commented

Wow, good work, thanks for the fix and quick update. work very appreciated

commented

I'm not sure if I'm the only one still experiencing issues related to the syncing of the TTL configs.

Tinkers: TConstruct-1.10.2-2.5.6b
Mantle: Mantle-1.10.2-1.1.1
TTL: TinkerToolLeveling-1.10.2-1.0.1
Using Hermitpack

[Netty Client IO #1/INFO] [tconstruct-Config]: Syncing Config with Server [Netty Client IO #1/ERROR] [FML]: FMLIndexedMessageCodec exception caught io.netty.handler.codec.DecoderException: java.lang.IndexOutOfBoundsException

Client Log

Edit: Removing Tinkers' Tool Leveling form the server allowed all players to connect once again.