IntellectualSites / IntellectualSites/Plot2Dynmap

Use non persistent markers for dynmap

Open
#140 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Bug Requires Testing
Dominant language
Java
Stars
8
Forks
6
Avg merge
1m
Merged PRs (30d)
3

Description

Server Implementation

Paper

Server Version

1.19.3

Describe the bug

Plots2Dynmap creates a TON of dynmap markers. This is fine, but they should be created as non-persistent. Otherwise it will create a TON of persistent markers and clog up the database/file.

If dynmap is in file tree mode this may go unnoticed, but will wreck havoc in SQL mode. This is because Dynmap stores persistent markers as a single gigantic JSON object. This is not ideal (which I have reported here https://github.com/webbukkit/dynmap/issues/3954), but should not be a problem here since the markers have no reason to be persistent in this case anyway.
image

The result of this is every time the markers are updated, it hangs the entire dynmap sql server for a while since it has to update this gigantic string. This results in dynmap sporadically being completely nonfunctional at best and never functional at worst.
image

To Reproduce
  1. Install Plots2Dynmap (Preferrably with a large world)
  2. Configure dynmap to use SQL (I used MySQL but im sure you'd get the same result with sqlite)
  3. perform a dynmap fullrender
  4. Watch as the row in dynmap.MarkerFiles grows to an insane size, as all of the markers are being created as persistent
Expected behaviour

Markers are created as non-persistent and therefore do not explode the database

Screenshots / Videos

No response

Error log (if applicable)

No response

Plot Debugpaste

https://athion.net/ISPaster/paste/view/40ff9624b74145d6a3d3b409198c9ff2

Plot2Dynmap Version

6.0.3

Checklist
Anything else?

Server is 1.19.4 but that was not an option in the drop down

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating where Plot2Dynmap creates dynmap markers during a fullrender, then inspect how the marker persistence option is selected. Reproduce with dynmap using SQL storage and verify that plot markers are non-persistent and no longer enlarge the persistent MarkerFiles data; test the change with a fullrender.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.