CJMinecraft01 / DoubleSlabs

Finally.. we can create double slabs and mix slab types!
GNU General Public License v3.0
18 stars 9 forks source link

Breaking and placing full double slab block very quickly causes game to crash (might be related to WorldEdit) #211

Closed CerbTheOne closed 2 years ago

CerbTheOne commented 3 years ago

I discovered this bug when playing on a personal modpack. It appears to be something related to replacing a mixed double slab block very quickly. It happened to me once by replacing the block by hand (pressing left and right mouse buttons simultaneously), but I haven't been able to do it again this way with only double slabs and no other mods. I have been able, however, to reproduce it successfully multiple times by breaking a mixed double slab with a wooden axe when WorldEdit is present. Because it happened for the first time when I was building by hand, I'm unsure whether WorldEdit is related to the bug or if it's merely an easier way to cause it.

How to reproduce:

Anyway, the crash report reads as follows:

// Hey, that tickles! Hehehe!

Time: 14/08/21 18:12
Description: Tesselating block model

java.lang.NullPointerException: Tesselating block model
    at cjminecraft.doubleslabs.client.util.DoubleSlabCulling.shouldSideBeRendered(DoubleSlabCulling.java:409) ~[doubleslabs:3.6.0] {re:mixin,re:classloading}
    at cjminecraft.doubleslabs.client.util.DoubleSlabCulling.shouldSideBeRendered(DoubleSlabCulling.java:248) ~[doubleslabs:3.6.0] {re:mixin,re:classloading}
    at net.minecraft.client.renderer.BlockModelRenderer.handler$zzb000$renderModelSmooth(BlockModelRenderer.java:587) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:doubleslabs.mixins.json:BlockModelRendererMixin,pl:mixin:A,pl:runtimedistcleaner:A}
    at net.minecraft.client.renderer.BlockModelRenderer.renderModelSmooth(BlockModelRenderer.java) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:doubleslabs.mixins.json:BlockModelRendererMixin,pl:mixin:A,pl:runtimedistcleaner:A}
    at net.minecraftforge.client.model.pipeline.ForgeBlockModelRenderer.renderModelSmooth(ForgeBlockModelRenderer.java:89) ~[forge:?] {re:classloading}
    at net.minecraft.client.renderer.BlockModelRenderer.renderModel(BlockModelRenderer.java:51) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:doubleslabs.mixins.json:BlockModelRendererMixin,pl:mixin:A,pl:runtimedistcleaner:A}
    at net.minecraft.client.renderer.BlockRendererDispatcher.renderModel(BlockRendererDispatcher.java:63) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}
    at net.minecraft.client.renderer.chunk.ChunkRenderDispatcher$ChunkRender$RebuildTask.func_228940_a_(ChunkRenderDispatcher.java:527) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}
    at net.minecraft.client.renderer.chunk.ChunkRenderDispatcher$ChunkRender$RebuildTask.func_225618_a_(ChunkRenderDispatcher.java:449) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}
    at net.minecraft.client.renderer.chunk.ChunkRenderDispatcher$ChunkRender.func_228936_k_(ChunkRenderDispatcher.java:383) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}
    at net.minecraft.client.renderer.chunk.ChunkRenderDispatcher.func_228902_a_(ChunkRenderDispatcher.java:164) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}
    at net.minecraft.client.renderer.WorldRenderer.func_228437_a_(WorldRenderer.java:847) ~[?:?] {re:classloading,pl:runtimedistcleaner:A,re:mixin,pl:runtimedistcleaner:A}
    at net.minecraft.client.renderer.WorldRenderer.func_228426_a_(WorldRenderer.java:936) ~[?:?] {re:classloading,pl:runtimedistcleaner:A,re:mixin,pl:runtimedistcleaner:A}
    at net.minecraft.client.renderer.GameRenderer.func_228378_a_(GameRenderer.java:608) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
    at net.minecraft.client.renderer.GameRenderer.func_195458_a(GameRenderer.java:425) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
    at net.minecraft.client.Minecraft.func_195542_b(Minecraft.java:976) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
    at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:607) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
    at net.minecraft.client.main.Main.main(Main.java:184) ~[1.16.5.jar:?] {re:classloading,pl:runtimedistcleaner:A}
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_301] {}
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_301] {}
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_301] {}
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_301] {}
    at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:51) ~[forge-1.16.5-36.2.2.jar:36.2] {}
    at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.0.9.jar:?] {}
    at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.0.9.jar:?] {}
    at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.0.9.jar:?] {}
    at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.0.9.jar:?] {}
    at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.0.9.jar:?] {}

A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Render thread
Stacktrace:
    at cjminecraft.doubleslabs.client.util.DoubleSlabCulling.shouldSideBeRendered(DoubleSlabCulling.java:409) ~[doubleslabs:3.6.0] {re:mixin,re:classloading}
    at cjminecraft.doubleslabs.client.util.DoubleSlabCulling.shouldSideBeRendered(DoubleSlabCulling.java:248) ~[doubleslabs:3.6.0] {re:mixin,re:classloading}
    at net.minecraft.client.renderer.BlockModelRenderer.handler$zzb000$renderModelSmooth(BlockModelRenderer.java:587) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:doubleslabs.mixins.json:BlockModelRendererMixin,pl:mixin:A,pl:runtimedistcleaner:A}
    at net.minecraft.client.renderer.BlockModelRenderer.renderModelSmooth(BlockModelRenderer.java) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:doubleslabs.mixins.json:BlockModelRendererMixin,pl:mixin:A,pl:runtimedistcleaner:A}
    at net.minecraftforge.client.model.pipeline.ForgeBlockModelRenderer.renderModelSmooth(ForgeBlockModelRenderer.java:89) ~[forge:?] {re:classloading}
-- Block model being tesselated --
Details:
    Block: Block{doubleslabs:double_slab}[waterlogged=false]
    Block location: World: (392,79,-175), Chunk: (at 8,4,1 in 24,-11; contains blocks 384,0,-176 to 399,255,-161), Region: (0,-1; contains chunks 0,-32 to 31,-1, blocks 0,0,-512 to 511,255,-1)
    Using AO: true
Stacktrace:
    at net.minecraft.client.renderer.BlockModelRenderer.renderModel(BlockModelRenderer.java:51) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:doubleslabs.mixins.json:BlockModelRendererMixin,pl:mixin:A,pl:runtimedistcleaner:A}

-- Block being tesselated --
Details:
    Block: Block{doubleslabs:double_slab}[waterlogged=false]
    Block location: World: (392,79,-175), Chunk: (at 8,4,1 in 24,-11; contains blocks 384,0,-176 to 399,255,-161), Region: (0,-1; contains chunks 0,-32 to 31,-1, blocks 0,0,-512 to 511,255,-1)
Stacktrace:
    at net.minecraft.client.renderer.BlockRendererDispatcher.renderModel(BlockRendererDispatcher.java:63) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}
    at net.minecraft.client.renderer.chunk.ChunkRenderDispatcher$ChunkRender$RebuildTask.func_228940_a_(ChunkRenderDispatcher.java:527) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}
    at net.minecraft.client.renderer.chunk.ChunkRenderDispatcher$ChunkRender$RebuildTask.func_225618_a_(ChunkRenderDispatcher.java:449) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}
    at net.minecraft.client.renderer.chunk.ChunkRenderDispatcher$ChunkRender.func_228936_k_(ChunkRenderDispatcher.java:383) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}
    at net.minecraft.client.renderer.chunk.ChunkRenderDispatcher.func_228902_a_(ChunkRenderDispatcher.java:164) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}
    at net.minecraft.client.renderer.WorldRenderer.func_228437_a_(WorldRenderer.java:847) ~[?:?] {re:classloading,pl:runtimedistcleaner:A,re:mixin,pl:runtimedistcleaner:A}
    at net.minecraft.client.renderer.WorldRenderer.func_228426_a_(WorldRenderer.java:936) ~[?:?] {re:classloading,pl:runtimedistcleaner:A,re:mixin,pl:runtimedistcleaner:A}
    at net.minecraft.client.renderer.GameRenderer.func_228378_a_(GameRenderer.java:608) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}

-- Affected level --
Details:
    All players: 1 total; [ClientPlayerEntity['CerbTheOne'/177, l='ClientLevel', x=389.80, y=79.00, z=-172.00]]
    Chunk stats: Client Chunk Cache: 841, 550
    Level dimension: minecraft:overworld
    Level spawn location: World: (128,65,-48), Chunk: (at 0,4,0 in 8,-3; contains blocks 128,0,-48 to 143,255,-33), Region: (0,-1; contains chunks 0,-32 to 31,-1, blocks 0,0,-512 to 511,255,-1)
    Level time: 14494 game time, 6084 day time
    Server brand: forge
    Server type: Integrated singleplayer server
Stacktrace:
    at net.minecraft.client.world.ClientWorld.func_72914_a(ClientWorld.java:447) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}
    at net.minecraft.client.Minecraft.func_71396_d(Minecraft.java:2029) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
    at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:623) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
    at net.minecraft.client.main.Main.main(Main.java:184) ~[1.16.5.jar:?] {re:classloading,pl:runtimedistcleaner:A}
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_301] {}
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_301] {}
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_301] {}
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_301] {}
    at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:51) ~[forge-1.16.5-36.2.2.jar:36.2] {}
    at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.0.9.jar:?] {}
    at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.0.9.jar:?] {}
    at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.0.9.jar:?] {}
    at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.0.9.jar:?] {}
    at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.0.9.jar:?] {}

-- System Details --
Details:
    Minecraft Version: 1.16.5
    Minecraft Version ID: 1.16.5
    Operating System: Windows 10 (amd64) version 10.0
    Java Version: 1.8.0_301, Oracle Corporation
    Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    Memory: 463537840 bytes (442 MB) / 1879048192 bytes (1792 MB) up to 3817865216 bytes (3641 MB)
    CPUs: 12
    JVM Flags: 5 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx4096m -Xms4096m -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xms256m
    ModLauncher: 8.0.9+86+master.3cf110c
    ModLauncher launch target: fmlclient
    ModLauncher naming: srg
    ModLauncher services: 
        /mixin-0.8.2.jar mixin PLUGINSERVICE 
        /eventbus-4.0.0.jar eventbus PLUGINSERVICE 
        /forge-1.16.5-36.2.2.jar object_holder_definalize PLUGINSERVICE 
        /forge-1.16.5-36.2.2.jar runtime_enum_extender PLUGINSERVICE 
        /accesstransformers-3.0.1.jar accesstransformer PLUGINSERVICE 
        /forge-1.16.5-36.2.2.jar capability_inject_definalize PLUGINSERVICE 
        /forge-1.16.5-36.2.2.jar runtimedistcleaner PLUGINSERVICE 
        /mixin-0.8.2.jar mixin TRANSFORMATIONSERVICE 
        /forge-1.16.5-36.2.2.jar fml TRANSFORMATIONSERVICE 
    FML: 36.2
    Forge: net.minecraftforge:36.2.2
    FML Language Providers: 
        javafml@36.2
        minecraft@1
    Mod List: 
        forge-1.16.5-36.2.2-client.jar                    |Minecraft                     |minecraft                     |1.16.5              |DONE      |Manifest: NOSIGNATURE
        DoubleSlabs-1.16-3.6.0.jar                        |Double Slabs                  |doubleslabs                   |3.6.0               |DONE      |Manifest: NOSIGNATURE
        forge-1.16.5-36.2.2-universal.jar                 |Forge                         |forge                         |36.2.2              |DONE      |Manifest: 22:af:21:d8:19:82:7f:93:94:fe:2b:ac:b7:e4:41:57:68:39:87:b1:a7:5c:c6:44:f9:25:74:21:14:f5:0d:90
        worldedit-mod-7.2.5-dist.jar                      |WorldEdit                     |worldedit                     |7.2.5+57d5ac9       |DONE      |Manifest: NOSIGNATURE
    Crash Report UUID: ce2fb579-1f30-481f-98f3-05cef294b774
    Launched Version: 1.16.5
    Backend library: LWJGL version 3.2.2 build 10
    Backend API: NVIDIA GeForce GTX 1050/PCIe/SSE2 GL version 4.6.0 NVIDIA 471.68, NVIDIA Corporation
    GL Caps: Using framebuffer using OpenGL 3.0
    Using VBOs: Yes
    Is Modded: Definitely; Client brand changed to 'forge'
    Type: Client (map_client.txt)
    Graphics mode: fancy
    Resource Packs: 
    Current Language: English (US)
    CPU: 12x Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Morabert commented 2 years ago

I've had this issue with any block copying utility: "WorldEdit", "Structurize" & even the apps MCASelector & Amulet. Sometimes the copied blocks are invisible, with no missing texture render. At all instances interacting with the block causes a crash.

CJMinecraft01 commented 2 years ago

Apologies for the massive delay in responding to this, been a hectic year at university so have only just got round to looking at the issue. It should be fixed in the next version :)