Dynmap to display renderdata file name in log for invalid modellist patches etc,
BonaireDreams opened this issue · 5 comments
On servers with large mod packs I've run dynmapblockscan to add renderdata for all the blocks added by mods. As expected not all of the mods adhere to the proper data format so there are inevitably lots of blocks incorrect. While this does not affect the performance of the server, nor Dynmap, it would be nice to be able to manually edit the affected models.txt and texture.txt files to just remove the invalid entries. This would save a bit of startup time, and remove logfile spam.
For example I have almost 2000 lines of logs (like below) for my 200+ modpack, but I don't know which files to edit to remove the offending lines. It would be great to have dynmap add "in file modxyz-models.txt" to the log.
[Dynmap]: Invalid modellist patch for box 11.00/9.00/3.00:13.00/16.00/5.00 side SOUTH at line 171 **In file modxyz-models.txt** [Dynmap]: Invalid modellist patch for box 11.00/9.00/3.00:13.00/16.00/5.00 side TOP at line 171 [Dynmap]: Invalid modellist patch for box 11.00/9.00/3.00:13.00/16.00/5.00 side EAST at line 171 [Dynmap]: Invalid modellist patch for box 11.00/9.00/3.00:13.00/16.00/5.00 side NORTH at line 171 [Dynmap]: Invalid modellist patch for box 11.00/9.00/3.00:13.00/16.00/5.00 side WEST at line 171 [Dynmap]: Invalid modellist patch for box 11.00/9.00/11.00:13.00/16.00/13.00 side SOUTH at line 171 [Dynmap]: Invalid modellist patch for box 11.00/9.00/11.00:13.00/16.00/13.00 side TOP at line 171 [Dynmap]: Invalid modellist patch for box 11.00/9.00/11.00:13.00/16.00/13.00 side EAST at line 171 [Dynmap]: Invalid modellist patch for box 11.00/9.00/11.00:13.00/16.00/13.00 side NORTH at line 171 [Dynmap]: Invalid modellist patch for box 11.00/9.00/11.00:13.00/16.00/13.00 side WEST at line 171 [Dynmap]: Invalid modellist patch for box 3.00/9.00/11.00:5.00/16.00/13.00 side SOUTH at line 171 [Dynmap]: Invalid modellist patch for box 3.00/9.00/11.00:5.00/16.00/13.00 side TOP at line 171 [Dynmap]: Invalid modellist patch for box 3.00/9.00/11.00:5.00/16.00/13.00 side EAST at line 171 [Dynmap]: Invalid modellist patch for box 3.00/9.00/11.00:5.00/16.00/13.00 side NORTH at line 171 [Dynmap]: Invalid modellist patch for box 3.00/9.00/11.00:5.00/16.00/13.00 side WEST at line 171 Server thread/INFO15:39:29 [Dynmap]: cookingforblockheads[16.0.1] models enabled [Dynmap]: fluxnetworks[0.0.0] models enabled [Dynmap]: torchmaster[20.1.5] models enabled [Dynmap]: ae2additions[5.0.4] models enabled [Dynmap]: clickmachine[8.0.2] models enabled [Dynmap]: rftoolsbase[1.20.0] models enabled [Dynmap]: mob_grinding_utils[1.20.1] models enabled [Dynmap]: computercraft[1.109.3] models enabled Server thread/FATAL15:39:32 [Dynmap]: Invalid modellist patch for box 3.00/0.00/16.00:13.00/3.00/16.10 side WEST at line 7067 [Dynmap]: Invalid modellist patch for box 3.00/0.00/16.00:13.00/3.00/16.10 side WEST at line 7069
+1 to this
Also, unsure if this should be a separate FR, but it would probably be an expansion on the existing request:
After DynmapBlockScan is run, and the mod disabled, if Dynmap observes these "invalid modellist patches", piping them to a single logfile for reference and ease of lookup would be nice. Plus, it would cut down on bloat in the logfiles. As BonaireDreams mentioned, it adds an extra 2000 lines to their server logfile. For comparison, we have 1.3 million additional lines. As it stands, our server takes about 20 minutes to restart, and 90% of that time is due to the "invalid modellist patch" rechecks.
In addition to that, incorporating a function to Dynmap whereby it will check that list against if any texture/models have been added to render data would make it so Dynmap doesn't recheck every single invalid record every server restart.
Since there hasn't been any movement on this, I took the time to create a python script that will allow you to use a server console logfile to selectively delete the offending lines from the *-models.txt files in renderdata: https://github.com/eski-dev/dynmap_invalid-modellist_fix
I saved the original model text file definitions in a subfolder called "originals" in case I had any issues or needed to restore them for some reason, but you can just as easily temporarily remove dynmap from the mod folder and re-run dynmap-block-scan to regenerate the files.
Now instead of Dynmap taking 30 minutes to load on server start and generating over a million loglines, it only takes 30 seconds with no errors or warnings.
it is entirely possible to edit the files manually in the render data folder, maybe the actual name of the failing mod/block would be nice but editing itself can already be done
it is entirely possible to edit the files manually in the render data folder, maybe the actual name of the failing mod/block would be nice but editing itself can already be done
Correct, the feature request if for the filename to be displayed of the file that gave the error. I have 2000 invalid modellist errors in my log from 400 files (200 Model and 200 texture). Unless I manually go through each file and look at "line 171" in each one to see if its the one that matches the error I don't know which file generated the error. Obviously not a requirement, but would be a nice QoL for folks with large modpacks.