PaperMC / PaperMC/Folia

Cannot update owner state asynchronously

Open
#152 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

status: needs triage type: bug version: 1.20.1
Dominant language
Shell
Stars
4.4k
Forks
623
PR merge metrics
No merged PRs in 30d

Description

Expected behavior
[08:51:09] [Region Scheduler Thread #1/ERROR]: Thread Region Scheduler Thread #1 failed main thread check: Cannot update owner state asynchronously
java.lang.Throwable: null
	at io.papermc.paper.util.TickThread.ensureTickThread(TickThread.java:78) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at net.minecraft.world.entity.projectile.Projectile.getOwnerRaw(Projectile.java:78) ~[?:?]
	at net.minecraft.world.entity.projectile.Projectile.getOwner(Projectile.java:71) ~[?:?]
	at net.minecraft.world.entity.projectile.FishingHook.getPlayerOwner(FishingHook.java:627) ~[?:?]
	at net.minecraft.world.entity.projectile.FishingHook.retrieve(FishingHook.java:479) ~[?:?]
	at net.minecraft.world.item.FishingRodItem.use(FishingRodItem.java:32) ~[?:?]
	at net.minecraft.world.item.ItemStack.use(ItemStack.java:546) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at net.minecraft.server.level.ServerPlayerGameMode.useItem(ServerPlayerGameMode.java:481) ~[?:?]
	at net.minecraft.server.network.ServerGamePacketListenerImpl.handleUseItem(ServerGamePacketListenerImpl.java:2131) ~[?:?]
	at net.minecraft.network.protocol.game.ServerboundUseItemPacket.handle(ServerboundUseItemPacket.java:32) ~[?:?]
	at net.minecraft.network.protocol.game.ServerboundUseItemPacket.handle(ServerboundUseItemPacket.java:8) ~[?:?]
	at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:52) ~[?:?]
	at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$1(PacketUtils.java:75) ~[?:?]
	at io.papermc.paper.threadedregions.EntityScheduler.executeTick(EntityScheduler.java:173) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1523) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at io.papermc.paper.threadedregions.TickRegions$ConcreteRegionTickHandle.tickRegion(TickRegions.java:360) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at io.papermc.paper.threadedregions.TickRegionScheduler$RegionScheduleHandle.runTick(TickRegionScheduler.java:385) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at ca.spottedleaf.concurrentutil.scheduler.SchedulerThreadPool$TickThreadRunner.run(SchedulerThreadPool.java:525) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at java.lang.Thread.run(Thread.java:1623) ~[?:?]
[08:51:09] [Region Scheduler Thread #1/ERROR]: Failed to handle packet net.minecraft.network.protocol.game.PacketPlayInBlockPlace@33d0d944, suppressing error
java.lang.IllegalStateException: Cannot update owner state asynchronously
	at io.papermc.paper.util.TickThread.ensureTickThread(TickThread.java:79) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at net.minecraft.world.entity.projectile.Projectile.getOwnerRaw(Projectile.java:78) ~[?:?]
	at net.minecraft.world.entity.projectile.Projectile.getOwner(Projectile.java:71) ~[?:?]
	at net.minecraft.world.entity.projectile.FishingHook.getPlayerOwner(FishingHook.java:627) ~[?:?]
	at net.minecraft.world.entity.projectile.FishingHook.retrieve(FishingHook.java:479) ~[?:?]
	at net.minecraft.world.item.FishingRodItem.use(FishingRodItem.java:32) ~[?:?]
	at net.minecraft.world.item.ItemStack.use(ItemStack.java:546) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at net.minecraft.server.level.ServerPlayerGameMode.useItem(ServerPlayerGameMode.java:481) ~[?:?]
	at net.minecraft.server.network.ServerGamePacketListenerImpl.handleUseItem(ServerGamePacketListenerImpl.java:2131) ~[?:?]
	at net.minecraft.network.protocol.game.ServerboundUseItemPacket.handle(ServerboundUseItemPacket.java:32) ~[?:?]
	at net.minecraft.network.protocol.game.ServerboundUseItemPacket.handle(ServerboundUseItemPacket.java:8) ~[?:?]
	at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:52) ~[?:?]
	at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$1(PacketUtils.java:75) ~[?:?]
	at io.papermc.paper.threadedregions.EntityScheduler.executeTick(EntityScheduler.java:173) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1523) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at io.papermc.paper.threadedregions.TickRegions$ConcreteRegionTickHandle.tickRegion(TickRegions.java:360) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at io.papermc.paper.threadedregions.TickRegionScheduler$RegionScheduleHandle.runTick(TickRegionScheduler.java:385) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at ca.spottedleaf.concurrentutil.scheduler.SchedulerThreadPool$TickThreadRunner.run(SchedulerThreadPool.java:525) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at java.lang.Thread.run(Thread.java:1623) ~[?:?]
Failed to handle packet net.minecraft.network.protocol.game.PacketPlayInBlockPlace@33d0d944, suppressing error
java.lang.IllegalStateException: Cannot update owner state asynchronously
	at io.papermc.paper.util.TickThread.ensureTickThread(TickThread.java:79) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at net.minecraft.world.entity.projectile.Projectile.getOwnerRaw(Projectile.java:78) ~[?:?]
	at net.minecraft.world.entity.projectile.Projectile.getOwner(Projectile.java:71) ~[?:?]
	at net.minecraft.world.entity.projectile.FishingHook.getPlayerOwner(FishingHook.java:627) ~[?:?]
	at net.minecraft.world.entity.projectile.FishingHook.retrieve(FishingHook.java:479) ~[?:?]
	at net.minecraft.world.item.FishingRodItem.use(FishingRodItem.java:32) ~[?:?]
	at net.minecraft.world.item.ItemStack.use(ItemStack.java:546) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at net.minecraft.server.level.ServerPlayerGameMode.useItem(ServerPlayerGameMode.java:481) ~[?:?]
	at net.minecraft.server.network.ServerGamePacketListenerImpl.handleUseItem(ServerGamePacketListenerImpl.java:2131) ~[?:?]
	at net.minecraft.network.protocol.game.ServerboundUseItemPacket.handle(ServerboundUseItemPacket.java:32) ~[?:?]
	at net.minecraft.network.protocol.game.ServerboundUseItemPacket.handle(ServerboundUseItemPacket.java:8) ~[?:?]
	at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:52) ~[?:?]
	at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$1(PacketUtils.java:75) ~[?:?]
	at io.papermc.paper.threadedregions.EntityScheduler.executeTick(EntityScheduler.java:173) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1523) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at io.papermc.paper.threadedregions.TickRegions$ConcreteRegionTickHandle.tickRegion(TickRegions.java:360) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at io.papermc.paper.threadedregions.TickRegionScheduler$RegionScheduleHandle.runTick(TickRegionScheduler.java:385) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at ca.spottedleaf.concurrentutil.scheduler.SchedulerThreadPool$TickThreadRunner.run(SchedulerThreadPool.java:525) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at java.lang.Thread.run(Thread.java:1623) ~[?:?]
Failed to handle packet net.minecraft.network.protocol.game.PacketPlayInBlockPlace@2a7f5657, suppressing error
java.lang.IllegalStateException: Cannot update owner state asynchronously
	at io.papermc.paper.util.TickThread.ensureTickThread(TickThread.java:79) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at net.minecraft.world.entity.projectile.Projectile.getOwnerRaw(Projectile.java:78) ~[?:?]
	at net.minecraft.world.entity.projectile.Projectile.getOwner(Projectile.java:71) ~[?:?]
	at net.minecraft.world.entity.projectile.FishingHook.getPlayerOwner(FishingHook.java:627) ~[?:?]
	at net.minecraft.world.entity.projectile.FishingHook.retrieve(FishingHook.java:479) ~[?:?]
	at net.minecraft.world.item.FishingRodItem.use(FishingRodItem.java:32) ~[?:?]
	at net.minecraft.world.item.ItemStack.use(ItemStack.java:546) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at net.minecraft.server.level.ServerPlayerGameMode.useItem(ServerPlayerGameMode.java:481) ~[?:?]
	at net.minecraft.server.network.ServerGamePacketListenerImpl.handleUseItem(ServerGamePacketListenerImpl.java:2131) ~[?:?]
	at net.minecraft.network.protocol.game.ServerboundUseItemPacket.handle(ServerboundUseItemPacket.java:32) ~[?:?]
	at net.minecraft.network.protocol.game.ServerboundUseItemPacket.handle(ServerboundUseItemPacket.java:8) ~[?:?]
	at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:52) ~[?:?]
	at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$1(PacketUtils.java:75) ~[?:?]
	at io.papermc.paper.threadedregions.EntityScheduler.executeTick(EntityScheduler.java:173) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1523) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at io.papermc.paper.threadedregions.TickRegions$ConcreteRegionTickHandle.tickRegion(TickRegions.java:360) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at io.papermc.paper.threadedregions.TickRegionScheduler$RegionScheduleHandle.runTick(TickRegionScheduler.java:385) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at ca.spottedleaf.concurrentutil.scheduler.SchedulerThreadPool$TickThreadRunner.run(SchedulerThreadPool.java:525) ~[folia-1.20.1.jar:git-Folia-"372d479"]
	at java.lang.Thread.run(Thread.java:1623) ~[?:?]
Observed/Actual behavior

found at check log

Steps/models to reproduce

unknown

Plugin and Datapack List

original plugins

Folia version

This server is running Folia version git-Folia-"372d479" (MC: 1.20.1) (Implementing API version 1.20.1-R0.1-SNAPSHOT) (Git: 372d479)
You are running the latest version
Previous version: git-Folia-"f6e91e9" (MC: 1.20.1)

Other

No response

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the stack-trace path through Projectile.getOwnerRaw, FishingHook.getPlayerOwner, FishingHook.retrieve, and FishingRodItem.use, then inspect Folia's tick-thread checks around the reported calls. Reproduce the fishing-rod interaction if possible and determine why owner state is accessed from the region scheduler; done means the interaction no longer logs or throws the asynchronous owner-state error.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
distributed-systems, game-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.