[Solved] Need to pick your gentlemen/ladies's brains on something..

Hello everyone,

[Preamble]

I’ve explored this as far as I could before accepting the obvious fact that I cannot figure it out by myself. It’s well beyond my ability to follow the byte stream inside kryonet’s sources to figure out what can possibly go wrong, this is the kind of issue that is best debugged when you’re intimately familiar with all the expected states of the software you’re writing, and I quickly lose the bundle when trying to follow this one.

So ultimately I devised a test that can navigate this issue, help finding a broken state and reproduce it with accuracy, in the hope that someone smarter than me can understand what’s going on, what causes it, and ultimately inspire a solution to retain the ability to compress data sent by kryonet’s endpoints without random crashes.

[Problem description]

The problem arises when sending a object over the wire and using the DeflateSerializer provided by Kryo: it crashes when the object contains some specific payload as the result of the compression.

Cheers!

[Solution]

Edit: It was not a kryo/kryonet problem, faulty NIC -_-

Stacktrace!

Cas :slight_smile:

I promise it’s not going to help, just fuel preconceptions, the issue is terribly random:


Exception in thread "Client" com.esotericsoftware.kryonet.KryoNetException: Incorrect number of bytes (2 remaining) used to deserialize object: com.unobtanium.data.world.WorldRegionData@6f92f2f3
	at com.esotericsoftware.kryonet.TcpConnection.readObject(TcpConnection.java:146)
	at com.esotericsoftware.kryonet.Client.update(Client.java:255)
	at com.esotericsoftware.kryonet.Client.run(Client.java:338)
	at java.lang.Thread.run(Thread.java:745)

Edit: I included it in the README of the repository, it was cut down but I think you’re right and should be front and center there.