Skip to content

Fix client-side ModelData crash#90

Open
DenisCooper09 wants to merge 1 commit intoaurilisdev:1.21.1from
DenisCooper09:1.21.1
Open

Fix client-side ModelData crash#90
DenisCooper09 wants to merge 1 commit intoaurilisdev:1.21.1from
DenisCooper09:1.21.1

Conversation

@DenisCooper09
Copy link
Copy Markdown

Fix client-side ModelData crash by scheduling setBlockAndUpdate() on render thread instead of server tick thread.

@aurilisdev
Copy link
Copy Markdown
Owner

Why would it crash? It is placing the block on the server thread? Is that not fine?

Could i get a crash report from this?

@DenisCooper09
Copy link
Copy Markdown
Author

Here's the log:

---- Minecraft Crash Report ----
// My bad.

Time: 2026-04-04 18:06:05
Description: Exception in server tick loop

java.lang.UnsupportedOperationException: Cannot request ModelData refresh outside the owning thread: Thread[#1,Render thread,10,main]
	at TRANSFORMER/neoforge@21.1.221/net.neoforged.neoforge.client.model.data.ModelDataManager.requestRefresh(ModelDataManager.java:51) ~[neoforge-21.1.221-universal.jar%23217!/:?] {re:classloading}
	at TRANSFORMER/neoforge@21.1.221/net.neoforged.neoforge.common.extensions.IBlockEntityExtension.requestModelDataUpdate(IBlockEntityExtension.java:82) ~[neoforge-21.1.221-universal.jar%23217!/:?] {re:computing_frames,re:mixin,re:classloading}
	at TRANSFORMER/minecraft@1.21.1/net.minecraft.world.level.block.entity.BlockEntity.setRemoved(BlockEntity.java:228) ~[client-1.21.1-20240808.144430-srg.jar%23216!/:?] {re:mixin,re:computing_frames,re:classloading,pl:mixin:APP:fabric-block-view-api-v2.mixins.json:BlockEntityMixin from mod fabric_block_view_api_v2,pl:mixin:APP:fabric-rendering-data-attachment-v1.mixins.json:BlockEntityMixin from mod fabric_rendering_data_attachment_v1,pl:mixin:A}
	at TRANSFORMER/voltaic@1.0.2-0/voltaic.prefab.tile.GenericTile.setRemoved(GenericTile.java:231) ~[voltaic-1.21.1-1.0.2-0.jar%23243!/:?] {re:classloading}
	at TRANSFORMER/minecraft@1.21.1/net.minecraft.world.level.chunk.LevelChunk.removeBlockEntity(LevelChunk.java:447) ~[client-1.21.1-20240808.144430-srg.jar%23216!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:xaerohud.mixins.json:MixinWorldChunk from mod xaerominimap,pl:mixin:APP:xaeroworldmap.mixins.json:MixinWorldChunk from mod xaeroworldmap,pl:mixin:A}
	at TRANSFORMER/minecraft@1.21.1/net.minecraft.world.level.chunk.LevelChunk.setBlockState(LevelChunk.java:276) ~[client-1.21.1-20240808.144430-srg.jar%23216!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:xaerohud.mixins.json:MixinWorldChunk from mod xaerominimap,pl:mixin:APP:xaeroworldmap.mixins.json:MixinWorldChunk from mod xaeroworldmap,pl:mixin:A}
	at TRANSFORMER/minecraft@1.21.1/net.minecraft.world.level.Level.setBlock(Level.java:236) ~[client-1.21.1-20240808.144430-srg.jar%23216!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:sereneseasons.mixins.json:MixinLevel from mod sereneseasons,pl:mixin:APP:mixins.superbwarfare.json:LevelMixin from mod superbwarfare,pl:mixin:A}
	at TRANSFORMER/minecraft@1.21.1/net.minecraft.client.multiplayer.ClientLevel.setBlock(ClientLevel.java:176) ~[client-1.21.1-20240808.144430-srg.jar%23216!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:xaerohud.mixins.json:MixinClientWorld from mod xaerominimap,pl:mixin:APP:xaeroworldmap.mixins.json:MixinClientWorld from mod xaeroworldmap,pl:mixin:APP:mixins.iris.vertexformat.json:block_rendering.MixinClientLevel from mod iris,pl:mixin:APP:sodium-common.mixins.json:core.world.biome.ClientLevelMixin from mod sodium,pl:mixin:APP:sodium-common.mixins.json:core.world.map.ClientLevelMixin from mod sodium,pl:mixin:APP:adpother.mixins.json:minecraft.ClientLevelMixin from mod adpother,pl:mixin:A,pl:runtimedistcleaner:A}
	at TRANSFORMER/minecraft@1.21.1/net.minecraft.world.level.Level.setBlock(Level.java:212) ~[client-1.21.1-20240808.144430-srg.jar%23216!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:sereneseasons.mixins.json:MixinLevel from mod sereneseasons,pl:mixin:APP:mixins.superbwarfare.json:LevelMixin from mod superbwarfare,pl:mixin:A}
	at TRANSFORMER/minecraft@1.21.1/net.minecraft.world.level.Level.setBlockAndUpdate(Level.java:328) ~[client-1.21.1-20240808.144430-srg.jar%23216!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:sereneseasons.mixins.json:MixinLevel from mod sereneseasons,pl:mixin:APP:mixins.superbwarfare.json:LevelMixin from mod superbwarfare,pl:mixin:A}
	at TRANSFORMER/voltaic@1.0.2-0/voltaic.api.multiblock.assemblybased.TileMultiblockSlave.lambda$new$0(TileMultiblockSlave.java:48) ~[voltaic-1.21.1-1.0.2-0.jar%23243!/:?] {re:classloading}
	at TRANSFORMER/voltaic@1.0.2-0/voltaic.prefab.utilities.Scheduler.onTick(Scheduler.java:23) ~[voltaic-1.21.1-1.0.2-0.jar%23243!/:?] {re:classloading}
	at MC-BOOTSTRAP/net.neoforged.bus/net.neoforged.bus.EventBus.post(EventBus.java:360) ~[bus-8.0.5.jar%23110!/:?] {}
	at MC-BOOTSTRAP/net.neoforged.bus/net.neoforged.bus.EventBus.post(EventBus.java:328) ~[bus-8.0.5.jar%23110!/:?] {}
	at TRANSFORMER/neoforge@21.1.221/net.neoforged.neoforge.event.EventHooks.fireServerTickPost(EventHooks.java:1020) ~[neoforge-21.1.221-universal.jar%23217!/:?] {re:classloading}
	at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:943) ~[client-1.21.1-20240808.144430-srg.jar%23216!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}
	at TRANSFORMER/minecraft@1.21.1/net.minecraft.client.server.IntegratedServer.tickServer(IntegratedServer.java:110) ~[client-1.21.1-20240808.144430-srg.jar%23216!/:?] {re:classloading,pl:runtimedistcleaner:A}
	at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:707) ~[client-1.21.1-20240808.144430-srg.jar%23216!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}
	at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:267) ~[client-1.21.1-20240808.144430-srg.jar%23216!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}
	at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?] {}

The exception is thrown when a chunk with an electrolysis chamber is loaded.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants