Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NBT tag too Big #137

Open
Howman opened this issue Jun 13, 2022 · 7 comments
Open

NBT tag too Big #137

Howman opened this issue Jun 13, 2022 · 7 comments
Labels
bug Something isn't working

Comments

@Howman
Copy link

Howman commented Jun 13, 2022

I keep getting this error when using pretty pipes well i be leave this is but not 100 % sure tho "Internal Exception: io.netty.handler.codec.DecoderException: java.lang.RuntimeException: Tried to read NBT tag that was too big; tried to allocate: 2097175bytes where max allowed: 2097152"

I am using prettypipes with minecolonies to move items into a sorter so it could be a minecolonies item going into pipes triggering error.

and I am playing through lan server so if you need any log files i would need to get them off the other computer since it hosts minecraft

@Ellpeck
Copy link
Owner

Ellpeck commented Jun 27, 2022

Hi, can you share both the client and server log files in full from a session where this issue occurred? You can remove any personal information like folder paths etc. if you want, of course.

@innerlurken
Copy link

Hi, I also get this problem, i have to replace the capabilities.dat file with an older one, when looking inside it has a few hundred 'items' in the pretty pipes section which i think is the issue, so just too many items being transferred in the pipe network

@Ellpeck Ellpeck added the question Further information is requested label Aug 1, 2022
@aofekiko
Copy link

I'd like to join in on this problem, I have encountered a capabilities.dat file that has 1678 prettypipe:network items in it that reaches the packet size limit.

I've attached a parsed file with the error from the server:
error.txt
and the capabilities.dat file (Replaced the file extension to .txt since GitHub doesn't allow .dat files):
capabilities.txt

Most data seems to be spent on path, isn't there a way to allow the client to calculate the path for itself?
If not, perhaps a collection of cardinal vectors would be a more compact way to define the path of items are supposed to take?
Something like this:

{
  "path": [
   {"axis":"y", "value":5}, 
   {"axis":"x", "value":-4},
   {"axis":"z", "value":1},
  ]
}

@Ellpeck Ellpeck added bug Something isn't working and removed question Further information is requested labels Dec 22, 2023
@Ellpeck
Copy link
Owner

Ellpeck commented Dec 22, 2023

Hi! I'll need a bit more context for the error you posted, @aofekiko.

It seems like a big packet is being sent here that features forge capabilities for the world from multiple mods? By default (at least when I first made the mod), Forge's Level capabilities aren't ever sent to the client automatically, and Pretty Pipes doesn't do so or require them to be either.

Can you try to reproduce this issue with just Pretty Pipes installed? There might be a mod that sends all capability data to the client, no matter what mods it comes from.

It might also be that I'm misunderstanding what specific packet this is, and so the full stack trace would be very useful!

@aofekiko
Copy link

aofekiko commented Dec 22, 2023

I am running the FTB Inferno modpack.
Sadly there is no stack trace other than the packet dump that I sent and the line [00:55:09] [Netty Epoll Server IO #6/ERROR]: Attempted to send packet over maximum protocol size: 2119699 > 2097152 that comes before it.

I will work on trying to reproduce this.
Right now I cant seem to populate items with any entries

@aofekiko
Copy link

aofekiko commented Dec 22, 2023

I managed to reproduce the issue.
image
Server stack trace:

[20:38:06] [Netty Server IO #6/ERROR] [minecraft/PacketEncoder]: Error receiving packet 34
java.lang.IllegalArgumentException: Packet too big (is 10053572, should be less than 8388608): net.minecraft.network.protocol.game.ClientboundLevelChunkWithLightPacket@2fe9c4fc
	at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:48) ~[server-1.18.2-20220404.173914-srg.jar%2342!/:?]
	at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:14) ~[server-1.18.2-20220404.173914-srg.jar%2342!/:?]
	at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:107) ~[netty-all-4.1.68.Final.jar%2330!/:4.1.68.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717) ~[netty-all-4.1.68.Final.jar%2330!/:4.1.68.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:709) ~[netty-all-4.1.68.Final.jar%2330!/:4.1.68.Final]
	at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:792) ~[netty-all-4.1.68.Final.jar%2330!/:4.1.68.Final]
	at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:702) ~[netty-all-4.1.68.Final.jar%2330!/:4.1.68.Final]
	at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:110) ~[netty-all-4.1.68.Final.jar%2330!/:4.1.68.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717) ~[netty-all-4.1.68.Final.jar%2330!/:4.1.68.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:764) ~[netty-all-4.1.68.Final.jar%2330!/:4.1.68.Final]
	at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:790) ~[netty-all-4.1.68.Final.jar%2330!/:4.1.68.Final]
	at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:758) ~[netty-all-4.1.68.Final.jar%2330!/:4.1.68.Final]
	at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:808) ~[netty-all-4.1.68.Final.jar%2330!/:4.1.68.Final]
	at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1025) ~[netty-all-4.1.68.Final.jar%2330!/:4.1.68.Final]
	at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:306) ~[netty-all-4.1.68.Final.jar%2330!/:4.1.68.Final]
	at net.minecraft.network.Connection.m_178303_(Connection.java:214) ~[server-1.18.2-20220404.173914-srg.jar%2342!/:?]
	at net.minecraft.network.Connection.lambda$sendPacket$8(Connection.java:203) ~[server-1.18.2-20220404.173914-srg.jar%2342!/:?]
	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) [netty-all-4.1.68.Final.jar%2330!/:4.1.68.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469) [netty-all-4.1.68.Final.jar%2330!/:4.1.68.Final]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500) [netty-all-4.1.68.Final.jar%2330!/:4.1.68.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) [netty-all-4.1.68.Final.jar%2330!/:4.1.68.Final]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-all-4.1.68.Final.jar%2330!/:4.1.68.Final]
	at java.lang.Thread.run(Thread.java:833) [?:?]

Client logs show no error.

capabilities.dat file:
capabilities.txt

World file used for reproduction:
world.zip

Minecraft verison: 1.18.2
Forge verion: 40.2.7
Mod version: 1.12.8

@Ellpeck
Copy link
Owner

Ellpeck commented Dec 22, 2023

Thanks for investigating! This looks like it'll help a lot :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants