Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Render Errors with Older World #521

Closed
seifer44 opened this issue Mar 6, 2024 · 3 comments
Closed

Render Errors with Older World #521

seifer44 opened this issue Mar 6, 2024 · 3 comments

Comments

@seifer44
Copy link

seifer44 commented Mar 6, 2024

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

bluemap.log

@TBlueF
Copy link
Member

TBlueF commented Mar 6, 2024

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 :)

@TBlueF TBlueF closed this as completed Mar 6, 2024
@TBlueF
Copy link
Member

TBlueF commented Mar 6, 2024

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.

@seifer44
Copy link
Author

seifer44 commented Mar 6, 2024

FYI, the newest Snapshot 4.1 is working well. Thanks a bunch!

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

No branches or pull requests

2 participants