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.[The testing program]
In order to gather more information I organized a repository containing the test with as much detail as I could write down on what I figured out so far (little beyond what works and what doesn't).
If you would like to help, here's the repository that contains all you need to reproduce and test the issue: https://github.com/voidburn/kryonetCompressionTests
Any kind of feedback, fixes or improvements to the test are welcome. And you have my thanks in advance for whatever time you decide to invest to look into this.