Equivalent-Exchange-3
Equivalent-Exchange-3 copied to clipboard
NBT Data Packet Overflow in Bag
If you put a large amount of NBT heavy items, for example about 60 full ae2 disks... Well this happens. I know this is not specifically the bags fault, but potentially it could stop excepting items if it is approaching the limit for too many nbt tags?
[16:38:44] [Netty Client IO #7/ERROR] [FML]: NetworkDispatcher exception
io.netty.handler.codec.DecoderException: java.io.EOFException
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:263) ~[ByteToMessageDecoder.class:?]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:131) ~[ByteToMessageDecoder.class:?]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:173) [ByteToMessageDecoder.class:?]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?]
at io.netty.handler.timeout.ReadTimeoutHandler.channelRead(ReadTimeoutHandler.java:149) [ReadTimeoutHandler.class:?]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [DefaultChannelPipeline.class:?]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:100) [AbstractNioByteChannel$NioByteUnsafe.class:?]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:480) [NioEventLoop.class:?]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:447) [NioEventLoop.class:?]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:341) [NioEventLoop.class:?]
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101) [SingleThreadEventExecutor$2.class:?]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_45]
Caused by: java.io.EOFException
at java.util.zip.GZIPInputStream.readUByte(Unknown Source) ~[?:1.8.0_45]
at java.util.zip.GZIPInputStream.readUShort(Unknown Source) ~[?:1.8.0_45]
at java.util.zip.GZIPInputStream.readHeader(Unknown Source) ~[?:1.8.0_45]
at java.util.zip.GZIPInputStream.
I need more than just the exception stack trace. This tells me nothing about your mod setup/etc
I am running the latest version of the DW20 pack, with ee3 0.3.505, when I filled an achemical bag with to many items with lots of NBT tags, the server could no longer sync my inventory. Using an nbt editor I found the bag had about 12000 nbt tags in total, I deleted one ae2 drive from the bag, which contained exactly 120 tags, and then was able to rejoin the server, as the packet was no longer above max size. I am aware this is my fault, just thought i would let you know this can happen.
A possible solution to this would be for EE3 inventories we could compress NBT tags on items when we save the inventory. This would make opening/closing the inventory slightly slower, but would reduce the total size of the object and avoid this issue.
NBT De-/Serialization might really help out at this, if I may just drop that info :p