Dynmap-Forge/Fabric

Dynmap-Forge/Fabric

888k Downloads

dynmap on headless 11.6.5 papermc - no tiles rendered, no error messages

smeenz opened this issue ยท 11 comments

commented

Issue Description:

I've deployed papermc using this docker image https://hub.docker.com/r/phyremaster/papermc. The server is based on alpine linux, is headless, and minecraft is running nogui. Being a docker image, it's a very minimal linux installation.

I've installed the latest beta dynmap (the latest stable says it is incompatible), and can not get any tiles to render at all. There are no error messages afaikt. The map is drawn, and I see my player icon (with the correct skin), but all tiles are black. Rendering seems to be running, but not actually doing anything

dynmap fullrender world
[21:50:53 INFO]: Full render of world 'world' already active.

From what I've read, my guess is this could be a silent failure due to a lack of x11/graphics libraries on the server, but I've not been able to find any definitive list as to what libraries are required. The closest I found was someone who commented that they had to install x11 and other stuff, and that made it work.

  • Dynmap Version: v3.1-beta7-449
  • Server Version: Paper version git-Paper-550 (MC: 1.16.5)
  • Pastebin of Configuration.txt: default
  • Server Host (if applicable): selfhosted
  • Pastebin of crashlogs or other relevant logs: https://pastebin.com/raw/nHkpY34Y

[x] I have looked at all other issues and this is not a duplicate
[x] I have been able to replicate this

commented

Closing due to age, if this is still relevant please reply and i will reopen

commented

I can confirm that this issue still exists. It's specific to dynmap on alpine. It appears that dynmap simply doesn't render anything on alpine.

commented

@FedUpWith-Tech reopen please?

commented

Need to be sure the JVM you are running is also set to be a headless JVM: default JVM depends on X libraries for things like JPEG encoding/decoding. If Alpine lacks a headless JVM, this configuration will not be supportable.

commented

Looking at that docker image, it is incorrectly configured for headless - the JRE included is NOT the headless one...

https://github.com/Phyremaster/papermc-docker/blob/master/Dockerfile#L15

commented

Here's my docker file. It experiences the same thing described and uses headless JRE. https://github.com/Opisek/mc-paper-docker/blob/master/Dockerfile

commented

Not sure what to tell ya - we depend upon the ImageIO component of the JRE for PNG and JPEG encode/decode, and if that isn't working in your JRE setup (as generally happens when a headless environment is misconfigured), there isn't anything we can do about it...

commented

(this specific issue is mortibund: the dynmap version listed is massively obsolete, so all the details are worthless - this can be discussed further in another issue, but we're honestly not going to debug someone's non-standard JVM setup - but do not expect this specific issue to be reopened.

Any reopen should be based on current DEVELOPMENT builds - https://dynmap.us/builds/dynmap/Dynmap-3.7-SNAPSHOT-spigot.jar )

commented

I know this issue has been closed, but I wanted to add some information related to my environment:
1: I am running a PaperMC server on an Alpine container (inside Proxmox), some version info:

  • Alpine: 3.15.0
  • Java: openjdk17-jre-headless-17.0.8_p7-r0 x86_64 {openjdk17} (GPL-2.0-with-classpath-exception)
  • PaperMC: 1.20.2

Dynmap did not want to render any tiles for our server, similar to what was listed in the initial report, players and spawn show, but not tiles, all black.

After a while, I installed the webp dependencies (as listed in the reddit post linked from the wiki) and switched dynmap configuration to use webp-95 as output format. This instantly started rendering tiles!

So, this makes me think that the headless Java JVM does not include the necessary OS dependencies to render the tiles in the default format? I know this is not your guys' call to fix, but perhaps add a note to the wiki to let people know they should try the webp format?

commented

as Mike already said, you need to use the jdk not the jre which you are now using, changing that should fix it too