
Render Errors with Older World
seifer44 opened this issue ยท 3 comments
What i did / Steps to reproduce
This is my first time attempting to run BlueMap with my Minecraft world originating from 2012. This world has seen a lot of version updates over the years, running constantly. I suspect the heightmaps
errors below are related to old chunk data, as the errors come up immediately after rendering has started in the oldest parts of this Minecraft world.
[03:22:17 INFO] Starting webserver ...
[03:22:17 INFO] Initializing Storage: 'mariadb' (Type: SQL)
[03:22:17 INFO] Initializing database-schema...
[03:22:17 INFO] WebServer bound to all network interfaces on port 8100
[03:22:17 INFO] WebServer started.
[03:22:18 INFO] Downloading https://piston-data.mojang.com/v1/objects/b178a327a96f2cf1c9f98a45e5588d654a3e4369/client.jar to data/minecraft-client-1.20.3.jar ...
[03:22:20 INFO] Loading resources...
[03:22:21 INFO] Loading textures...
[03:22:22 INFO] Baking resources...
[03:22:22 INFO] Resources loaded.
[03:22:22 INFO] Loading map 'overworld'...
[03:22:22 INFO] Start updating 1 maps (7686 regions, ~7870464 chunks)...
...
[03:23:50 ERROR] RenderManager(0): WorkerThread(6): Exception while doing some work!
java.lang.NullPointerException: Cannot read field "worldSurface" because "level.heightmaps" is null
at de.bluecolored.bluemap.core.world.mca.chunk.Chunk_1_13.<init>(Chunk_1_13.java:80)
at de.bluecolored.bluemap.core.world.mca.chunk.Chunk_1_15.<init>(Chunk_1_15.java:33)
at de.bluecolored.bluemap.core.world.mca.chunk.ChunkLoader$ChunkVersionLoader.load(ChunkLoader.java:100)
at de.bluecolored.bluemap.core.world.mca.chunk.ChunkLoader.load(ChunkLoader.java:67)
at de.bluecolored.bluemap.core.world.mca.region.MCARegion.loadChunk(MCARegion.java:171)
at de.bluecolored.bluemap.core.world.mca.region.MCARegion.iterateAllChunks(MCARegion.java:151)
at de.bluecolored.bluemap.core.world.mca.MCAWorld.preloadRegionChunks(MCAWorld.java:192)
at de.bluecolored.bluemap.common.rendermanager.WorldRegionRenderTask.init(WorldRegionRenderTask.java:118)
at de.bluecolored.bluemap.common.rendermanager.WorldRegionRenderTask.doWork(WorldRegionRenderTask.java:129)
at de.bluecolored.bluemap.common.rendermanager.CombinedRenderTask.doWork(CombinedRenderTask.java:59)
at de.bluecolored.bluemap.common.rendermanager.RenderManager.doWork(RenderManager.java:305)
at de.bluecolored.bluemap.common.rendermanager.RenderManager$WorkerThread.run(RenderManager.java:330)
[03:23:52 INFO] Update map 'overworld': 0.236% (ETA: 11:09:48)
...
From here, the logs become more noisy, and it appears that rendering stops. CPU load seems to correlate to this. The web interface appears to remain responsive.
Expected result
More chunk rendering, less log errors.
Actual result
Application encounters multiple errors. Chunk rendering doesn't appear to run for long.
Note: For some reason, the container downloads minecraft-client-1.20.3.jar, when my server is running 1.20.4.
Context
BlueMap Version: 3.20; docker tag 0b73d93fc7c17f6b0e5acbcb5e5c90c1f577c201c7bce3d48fdc3f2045e3f881
Minecraft: Vanilla Minecraft v1.20.4
OS: Rocky Linux 8
I'm working on a Kubernetes PoC. Here's the deployment file.
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: bluemap
name: bluemap
namespace: minecraft
spec:
replicas: 1
selector:
matchLabels:
app: bluemap
template:
metadata:
labels:
app: bluemap
spec:
containers:
- name: bluemap
image: ghcr.io/bluemap-minecraft/bluemap:latest
#imagePullPolicy: Always
command: ["java", "-jar", "./cli.jar", "-r", "-w"]
ports:
- containerPort: 8100
protocol: TCP
volumeMounts:
- name: bluemap-config
mountPath: /app/config
- name: minecraft-world-ph
mountPath: /app/world
readOnly: true
volumes:
- name: minecraft-world-ph
nfs:
path: /opt/minecraft/ph/world
readOnly: true
server: example.local
- name: bluemap-config
persistentVolumeClaim:
claimName: bluemap
...
There's no change in behavior whether SELinux is in enforcing or in permissive mode.
Bluemap Configuration
Comments removed.
core.conf
accept-download: true
data: "data"
render-thread-count: 0
scan-for-mod-resources: false
metrics: true
log: {
file: "data/logs/debug_%1$tF_%1$tT.log"
append: false
}
storages/mariadb.conf
storage-type: SQL
connection-url: "jdbc:mariadb://mariadb-bluemap.minecraft.svc:3306/bluemap_ph"
connection-properties: {
user: "user",
password: "lolno"
}
max-connections: -1
driver-jar: "/app/config/mariadb-java-client.jar"
driver-class: "org.mariadb.jdbc.Driver"
compression: GZIP
Logs
Hi, first of all thanks a lot for taking the time to make such a detailed error-report!
The heightmap NPE has already been fixed with 5bb7a77 and the Self-Supression error has been fixed with d1aba56.
There is just not yet a new snapshot with these fixes ^^
You can download the latest build from here: https://github.com/BlueMap-Minecraft/BlueMap/actions/runs/8139906875
if you don't want to wait for a new Snapshot with the fixes.
Closing this as already fixed :)
Ah also a note, as i see you are using the "latest" docker container:
The latest
tag is right now always pointing at the latest release, which also includes snapshots. So you might want to use a fixed stable tag for now.
I am already checking if and how we can change the latest tag to only point at the latest "recomended" release.
FYI, the newest Snapshot 4.1 is working well. Thanks a bunch!