Invalid length given for storage, got: 320 but expected: 342 [Forge 1.16.1-32.0.66 / Dynmap 3.1 Beta 2]
josefkenny opened this issue ยท 2 comments
Tile generation stops after a few hundred tiles; when generation is manually started, all of the threads die within a couple of minutes due to this exception.
Dynmap version: Dynmap-3.1-beta-2-forge-1.16.1.jar
Forge version: Forge 1.16.1 32.0.66 (the last release that implements getCommandDispatcher()
)
Java version: openjdk 11.0.7 2020-04-14
[04Aug2020 11:46:53.257] [Server thread/INFO] [net.minecraft.server.dedicated.DedicatedServer/]: Full render starting on world 'jjsk-3'...
[04Aug2020 11:47:02.277] [Dynmap Render Thread/INFO] [net.minecraft.server.dedicated.DedicatedServer/]: Full render of map 'flat' of 'jjsk-3' in progress - 100 tiles rendered (90.16 msec/tile, 62.89 msec per render)
[04Aug2020 11:47:14.922] [Dynmap Render Thread/INFO] [net.minecraft.server.dedicated.DedicatedServer/]: Full render of map 'flat' of 'jjsk-3' in progress - 200 tiles rendered (108.30 msec/tile, 80.07 msec per render)
[04Aug2020 11:47:26.535] [Dynmap Render Thread/INFO] [net.minecraft.server.dedicated.DedicatedServer/]: Full render of map 'flat' of 'jjsk-3' in progress - 300 tiles rendered (110.90 msec/tile, 83.35 msec per render)
[04Aug2020 11:47:37.218] [Dynmap Render Thread/INFO] [net.minecraft.server.dedicated.DedicatedServer/]: Full render of map 'flat' of 'jjsk-3' in progress - 400 tiles rendered (109.88 msec/tile, 82.61 msec per render)
[04Aug2020 11:47:48.817] [Dynmap Render Thread/INFO] [net.minecraft.server.dedicated.DedicatedServer/]: Full render of map 'flat' of 'jjsk-3' in progress - 500 tiles rendered (111.10 msec/tile, 84.34 msec per render)
[04Aug2020 11:47:59.687] [Dynmap Render Thread/INFO] [net.minecraft.server.dedicated.DedicatedServer/]: Full render of map 'flat' of 'jjsk-3' in progress - 600 tiles rendered (110.69 msec/tile, 83.82 msec per render)
[04Aug2020 11:48:10.890] [Dynmap Render Thread/INFO] [net.minecraft.server.dedicated.DedicatedServer/]: Full render of map 'flat' of 'jjsk-3' in progress - 700 tiles rendered (110.88 msec/tile, 83.83 msec per render)
[04Aug2020 11:48:22.422] [Dynmap Render Thread/INFO] [net.minecraft.server.dedicated.DedicatedServer/]: Full render of map 'flat' of 'jjsk-3' in progress - 800 tiles rendered (111.43 msec/tile, 84.12 msec per render)
[04Aug2020 11:48:24.809] [Dynmap Render Thread/FATAL] [Dynmap/]: [Dynmap] Exception during render job: world=jjsk-3, map=org.dynmap.hdmap.HDMap@59c8b115
[04Aug2020 11:48:24.809] [Dynmap Render Thread/INFO] [STDERR/]: [org.dynmap.MapManager$DynmapScheduledThreadPoolExecutor$1:run:232]: java.lang.RuntimeException: Invalid length given for storage, got: 320 but expected: 342
[04Aug2020 11:48:24.809] [Dynmap Render Thread/INFO] [STDERR/]: [org.dynmap.MapManager$DynmapScheduledThreadPoolExecutor$1:run:232]: at net.minecraft.util.BitArray.<init>(SourceFile:111)
[04Aug2020 11:48:24.809] [Dynmap Render Thread/INFO] [STDERR/]: [org.dynmap.MapManager$DynmapScheduledThreadPoolExecutor$1:run:232]: at org.dynmap.forge_1_16_1.ChunkSnapshot.<init>(ChunkSnapshot.java:182)
[04Aug2020 11:48:24.810] [Dynmap Render Thread/INFO] [STDERR/]: [org.dynmap.MapManager$DynmapScheduledThreadPoolExecutor$1:run:232]: at org.dynmap.forge_1_16_1.ForgeMapChunkCache.prepChunkSnapshot(ForgeMapChunkCache.java:1147)
[04Aug2020 11:48:24.810] [Dynmap Render Thread/INFO] [STDERR/]: [org.dynmap.MapManager$DynmapScheduledThreadPoolExecutor$1:run:232]: at org.dynmap.forge_1_16_1.ForgeMapChunkCache.readChunks(ForgeMapChunkCache.java:1308)
[04Aug2020 11:48:24.810] [Dynmap Render Thread/INFO] [STDERR/]: [org.dynmap.MapManager$DynmapScheduledThreadPoolExecutor$1:run:232]: at org.dynmap.forge_1_16_1.DynmapPlugin$ForgeServer.createMapChunkCache(DynmapPlugin.java:915)
[04Aug2020 11:48:24.810] [Dynmap Render Thread/INFO] [STDERR/]: [org.dynmap.MapManager$DynmapScheduledThreadPoolExecutor$1:run:232]: at org.dynmap.MapManager$FullWorldRenderState.processTile(MapManager.java:761)
[04Aug2020 11:48:24.810] [Dynmap Render Thread/INFO] [STDERR/]: [org.dynmap.MapManager$DynmapScheduledThreadPoolExecutor$1:run:232]: at org.dynmap.MapManager$FullWorldRenderState.run(MapManager.java:720)
[04Aug2020 11:48:24.810] [Dynmap Render Thread/INFO] [STDERR/]: [org.dynmap.MapManager$DynmapScheduledThreadPoolExecutor$1:run:232]: at org.dynmap.MapManager$DynmapScheduledThreadPoolExecutor$1.run(MapManager.java:229)
[04Aug2020 11:48:24.810] [Dynmap Render Thread/INFO] [STDERR/]: [org.dynmap.MapManager$DynmapScheduledThreadPoolExecutor$1:run:232]: at org.dynmap.MapManager$DynmapScheduledThreadPoolExecutor$2.run(MapManager.java:245)
[04Aug2020 11:48:24.810] [Dynmap Render Thread/INFO] [STDERR/]: [org.dynmap.MapManager$DynmapScheduledThreadPoolExecutor$1:run:232]: at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
[04Aug2020 11:48:24.810] [Dynmap Render Thread/INFO] [STDERR/]: [org.dynmap.MapManager$DynmapScheduledThreadPoolExecutor$1:run:232]: at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[04Aug2020 11:48:24.810] [Dynmap Render Thread/INFO] [STDERR/]: [org.dynmap.MapManager$DynmapScheduledThreadPoolExecutor$1:run:232]: at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
[04Aug2020 11:48:24.811] [Dynmap Render Thread/INFO] [STDERR/]: [org.dynmap.MapManager$DynmapScheduledThreadPoolExecutor$1:run:232]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[04Aug2020 11:48:24.811] [Dynmap Render Thread/INFO] [STDERR/]: [org.dynmap.MapManager$DynmapScheduledThreadPoolExecutor$1:run:232]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[04Aug2020 11:48:24.811] [Dynmap Render Thread/INFO] [STDERR/]: [org.dynmap.MapManager$DynmapScheduledThreadPoolExecutor$1:run:232]: at java.base/java.lang.Thread.run(Thread.java:834)
Presumably this is related to the changed BlockStates struct packing in 1.16 (first mentioned in this blog post) and in #2992 which has apparently been fixed, for Bukkit at least? Is the Forge 1.16.1-specific ChunkSnapshot.java to be updated similarly?
Dynmap Forge 1.16.1 should really be considered an alpha, there are too many bugs with the release right now, that error in #2992 should have been a modification to the dynmap core which means it would fix it to all servers but who knows. I haven't had time to test and find the errors in dynmap forge 1.16 yet but this will be helpful for when the dev swings back around and catches up on the errors
Mike has addressed this issue in a recent snapshot, you can download that here:
https://dynmap.us/builds/dynmap/Dynmap-3.1-SNAPSHOT-forge-1.16.1.jar
I'm going to close this and assume its fixed but please reply and I will reopen it if the issue persists.