CloudburstMC / Protocol

A protocol library for Minecraft Bedrock Edition
https://git.io/ProtocolLib
Apache License 2.0
312 stars 94 forks source link

Unable to inflate buffer data #92

Closed hax0r31337 closed 3 years ago

hax0r31337 commented 3 years ago

Crash while receiveing packet. maybe its my code wrong.

Dec 05, 2020 3:52:04 PM com.nukkitx.network.raknet.RakNetClient lambda$new$0
SEVERE: An exception occurred in RakNet (Client)
java.lang.RuntimeException: Unable to inflate buffer data
    at com.nukkitx.protocol.bedrock.wrapper.BedrockWrapperSerializerV9_10.deserialize(BedrockWrapperSerializerV9_10.java:85)
    at com.nukkitx.protocol.bedrock.BedrockSession.onWrappedPacket(BedrockSession.java:286)
    at com.nukkitx.protocol.bedrock.BedrockRakNetSessionListener.onEncapsulated(BedrockRakNetSessionListener.java:32)
    at com.nukkitx.network.raknet.RakNetSession.onEncapsulatedInternal(RakNetSession.java:300)
    at com.nukkitx.network.raknet.RakNetSession.onOrderedReceived(RakNetSession.java:427)
    at com.nukkitx.network.raknet.RakNetSession.checkForOrdered(RakNetSession.java:405)
    at com.nukkitx.network.raknet.RakNetSession.onRakNetDatagram(RakNetSession.java:393)
    at com.nukkitx.network.raknet.RakNetSession.onDatagram(RakNetSession.java:272)
    at com.nukkitx.network.raknet.RakNetClient$ClientDatagramHandler.channelRead(RakNetClient.java:176)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1412)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:943)
    at io.netty.channel.epoll.EpollDatagramChannel$EpollDatagramChannelUnsafe.epollInReady(EpollDatagramChannel.java:478)
    at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:404)
    at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:304)
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.util.zip.DataFormatException: Packet cannot be empty
    at com.nukkitx.protocol.bedrock.wrapper.BedrockWrapperSerializerV9_10.deserialize(BedrockWrapperSerializerV9_10.java:68)
    ... 20 more
SupremeMortal commented 3 years ago

What server software were you connecting to when this happened?

Alemiz112 commented 3 years ago

I have seen this with 1.16.100 branch of Nukkit. It might be caused by some of item packets serialization. It would help if you could tell when exactly does it happen (at least if after StartGamePacket). If you forgot to define "shield blocking id" in BedrockSession it might cause this.

hax0r31337 commented 3 years ago

yeah is nukkit 1.16.100

hax0r31337 commented 3 years ago

it crashed lots of times so i'll send log file of this.thx for help me fix this problem. 1.log

Alemiz112 commented 3 years ago

Ensure that you have configured hardcodedBlockingId for session using correct id. It might be 355 but I would recommend to handle correct id using item entries from StartGamePacket as it may be different per server/server software in the future.

hax0r31337 commented 3 years ago

i find setHardcodedBlockingId in 2.6.0-SNAPSHOT but its removed in 2.6.1,then i cant modify it. when i use 2.6.0 to set HardcodedBlockingId to 355,it still crashed :(