Folia icon indicating copy to clipboard operation
Folia copied to clipboard

"TrackedValues" is null when sending ClientboundSetEntityDataPacket to client and causes client to crash

Open ClayCoffee opened this issue 1 year ago • 5 comments

Expected behavior

No exceptions and everything works fine.

Observed/Actual behavior

Exception threw and then the client crashed.

Steps/models to reproduce

  1. playing normally with more than one player online in the same region
  2. crash

Plugin and Datapack List

BlueMap, BlueMap-Towny, Brewery, Chunky, CMI, CMILib, CoreProtect, FlagWar, floodgate InventoryRollbackPlus, LaggRemover, LuckPerms, NBTAPI, PlaceholderAPI, PlugManX, Scoreboard, SkinsRestorer, TheNewEconomy, Towny, TownyChat, Vault, ViaBackwards, ViaVersion, WorldEdit

Folia version

This server is running Folia version git-Folia-"25ee657" (MC: 1.20.4) (Implementing API version 1.20.4-R0.1-SNAPSHOT) (Git: 25ee657)

Other

[19:29:47 ERROR]: Packet encoding of packet ClientboundSetEntityDataPacket (ID: 86) threw (skippable? false) java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because "trackedValues" is null at net.minecraft.network.protocol.game.ClientboundSetEntityDataPacket.pack(ClientboundSetEntityDataPacket.java:17) ~[?:?] at net.minecraft.network.protocol.game.ClientboundSetEntityDataPacket.write(ClientboundSetEntityDataPacket.java:38) ~[?:?] at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:42) ~[folia-1.20.4.jar:git-Folia-"25ee657"] at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:14) ~[folia-1.20.4.jar:git-Folia-"25ee657"] at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:107) ~[netty-codec-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:113) ~[netty-codec-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:966) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:934) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:984) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1025) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:306) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at net.minecraft.network.Connection.doSendPacket(Connection.java:475) ~[?:?] at net.minecraft.network.Connection.lambda$sendPacket$10(Connection.java:460) ~[?:?] at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] at java.lang.Thread.run(Thread.java:842) ~[?:?] (Player xxx left the game)

ClayCoffee avatar Apr 22 '24 11:04 ClayCoffee

Client version: 1.20.4

ClayCoffee avatar Apr 22 '24 11:04 ClayCoffee

Looks like it might be a problem with LaggRemover.

ClayCoffee avatar Apr 27 '24 09:04 ClayCoffee

UPDATE: It happens occasionally even with LaggRemover removed.

ClayCoffee avatar Apr 30 '24 11:04 ClayCoffee

There comes a level of "it's very unlikely to be folia inducing this", if you know what you're doing, modify the constructor for that class to throw an exception if null is passed in instead of actual data

electronicboy avatar Apr 30 '24 11:04 electronicboy

There comes a level of "it's very unlikely to be folia inducing this", if you know what you're doing, modify the constructor for that class to throw an exception if null is passed in instead of actual data

ok im trying

ClayCoffee avatar Apr 30 '24 11:04 ClayCoffee