Invalid Equipment Skin
Opened this issue ยท 12 comments
Hello RiskyKen,
I have come across a weird bug in multiplayer that I managed to fix -I don't know how- but it came back. Here is the only error that shows up:
[21:07:39] [Armourer's Workshop Server Skin Thread/WARN]: java.io.EOFException
[21:07:39] [Armourer's Workshop Server Skin Thread/WARN]: at java.io.DataInputStream.readByte(DataInputStream.java:267)
[21:07:39] [Armourer's Workshop Server Skin Thread/WARN]: at riskyken.armourersWorkshop.common.skin.data.SkinCubeData.readFromStream(SkinCubeData.java:178)
[21:07:39] [Armourer's Workshop Server Skin Thread/WARN]: at riskyken.armourersWorkshop.common.skin.data.SkinPart.readFromStream(SkinPart.java:224)
[21:07:39] [Armourer's Workshop Server Skin Thread/WARN]: at riskyken.armourersWorkshop.common.skin.data.SkinPart.<init>(SkinPart.java:43)
[21:07:39] [Armourer's Workshop Server Skin Thread/WARN]: at riskyken.armourersWorkshop.common.skin.data.serialize.SkinSerializer.loadSkin(SkinSerializer.java:76)
[21:07:39] [Armourer's Workshop Server Skin Thread/WARN]: at riskyken.armourersWorkshop.utils.SkinIOUtils.loadSkinFromFile(SkinIOUtils.java:91)
[21:07:39] [Armourer's Workshop Server Skin Thread/WARN]: at riskyken.armourersWorkshop.common.skin.cache.CommonSkinCache.loadEquipmentFromDisk(CommonSkinCache.java:351)
[21:07:39] [Armourer's Workshop Server Skin Thread/WARN]: at riskyken.armourersWorkshop.common.skin.cache.CommonSkinCache.sendSkinToClient(CommonSkinCache.java:184)
[21:07:39] [Armourer's Workshop Server Skin Thread/WARN]: at riskyken.armourersWorkshop.common.skin.cache.CommonSkinCache.processMessage(CommonSkinCache.java:173)
[21:07:39] [Armourer's Workshop Server Skin Thread/WARN]: at riskyken.armourersWorkshop.common.skin.cache.CommonSkinCache.processNextMessage(CommonSkinCache.java:156)
[21:07:39] [Armourer's Workshop Server Skin Thread/WARN]: at riskyken.armourersWorkshop.common.skin.cache.CommonSkinCache.processMessageQueue(CommonSkinCache.java:131)
[21:07:39] [Armourer's Workshop Server Skin Thread/WARN]: at riskyken.armourersWorkshop.common.skin.cache.CommonSkinCache.run(CommonSkinCache.java:96)
[21:07:39] [Armourer's Workshop Server Skin Thread/WARN]: at java.lang.Thread.run(Thread.java:745)
[21:07:39] [Armourer's Workshop Server Skin Thread/ERROR]: Failed to load skin id:-1764712395 from disk.
[21:07:39] [Armourer's Workshop Server Skin Thread/ERROR]: Equipment id:-1764712395 was requested by Saik but was not found.
The bug - only in multiplayer: when we hold in hand an equipment item that had an armour in it, the equipment item goes : http://prntscr.com/ga91le . I am still able to equipment them by pressing "P" or moving them around any inventory. There are no flaws in SinglePlayer even with the other mods. Here is the list:
AmnesiaDecorations
Backpacks
BiblioCraft
Carpenter
CustomNPC
DecoCraft
MoCreatures
ItemPhysic
JourneyMap
LotsofFood
Optifine
In a nutshell, equipment items go invalid when held in Multiplayer. I hope I gave enough information -my bad if it wasn't.
Best regards,
ikbrunel
PS: I tried removing all mods and plugins but it didn't do a thing.
Here is where the error comes from: https://github.com/RiskyKen/Armourers-Workshop/blob/master/src/main/java/riskyken/armourersWorkshop/common/skin/data/SkinCubeData.java#L178
No it is happening with all the skins and also the ones created with the newest version of your mod.
Looks like the skins on the server are corrupt. Have you ran a virus check on the server? Can you send me your skin cache? On the server it's in "server instance\world\skin-database"
also if you are running a Linux server make sure the server has permission to read/write form the skin cache folder.
Here is the folder, and the server is not running on Linux.
skin-database.zip
Well after some messing around I was able to recover some of the skins.
You should check your server for viruses as I can't see anything in the code that would corrupt the skins like that.
I have added some code into the next build that will help corrupted skins load.
Here are the skins I was able to recover, some of them will still maybe not load.
recovered-skins.zip
Thanks a lot. I really appreciated the time you took to look into my issue and your quick response. Thank you also for the recovered skins. Just a last question: if I were to delete all existing skins and recreating them all over again I should be fine, right ?
I should be fine but am still not 100% sure how this happened. Am going to change some things in the next build to make the skin files more robust, so that should help skin recover if something goes wrong in the future.