Dynmap-Forge/Fabric

Dynmap-Forge/Fabric

888k Downloads

SQLite hangs itsself every once in a while

Pingger opened this issue ยท 7 comments

commented

Hi,

I'm experiencing an issue, where a Dynmap, that is configured to use sqlite, hangs itsself every few hours. Map generation is halted and the webserver stops responding. This is "fixed" by using dynmap reload. However I get the following output in that case:

[12:21:23] [Server thread/INFO] [net.minecraft.server.dedicated.DedicatedServer]: Reloading Dynmap...
[12:21:23] [pool-5-thread-19/FATAL] [Dynmap]: [Dynmap] Tile read error - Interruped
[12:21:23] [pool-5-thread-29/FATAL] [Dynmap]: [Dynmap] Tile read error - Interruped
[12:21:23] [pool-5-thread-16/FATAL] [Dynmap]: [Dynmap] Tile read error - Interruped
[12:21:23] [pool-5-thread-25/FATAL] [Dynmap]: [Dynmap] Tile read error - Interruped
[12:21:23] [pool-5-thread-15/FATAL] [Dynmap]: [Dynmap] Tile read error - Interruped
[12:21:23] [pool-5-thread-10/FATAL] [Dynmap]: [Dynmap] Tile read error - Interruped
[12:21:23] [pool-5-thread-17/FATAL] [Dynmap]: [Dynmap] Tile read error - Interruped
[12:21:23] [pool-5-thread-28/FATAL] [Dynmap]: [Dynmap] Tile read error - Interruped
[12:21:23] [pool-5-thread-8/FATAL] [Dynmap]: [Dynmap] Tile read error - Interruped
[12:21:23] [pool-5-thread-23/FATAL] [Dynmap]: [Dynmap] Tile read error - Interruped
[12:21:23] [pool-5-thread-30/FATAL] [Dynmap]: [Dynmap] Tile read error - Interruped
[12:21:23] [pool-5-thread-20/FATAL] [Dynmap]: [Dynmap] Tile read error - Interruped
[12:21:23] [pool-5-thread-22/FATAL] [Dynmap]: [Dynmap] Tile read error - Interruped
[12:21:23] [pool-5-thread-14/FATAL] [Dynmap]: [Dynmap] Tile read error - Interruped
[12:21:23] [pool-5-thread-3/FATAL] [Dynmap]: [Dynmap] Face read error - Interruped
[12:21:23] [pool-5-thread-13/FATAL] [Dynmap]: [Dynmap] Tile read error - Interruped
[12:21:23] [pool-5-thread-11/FATAL] [Dynmap]: [Dynmap] Tile read error - Interruped
[12:21:23] [pool-5-thread-21/FATAL] [Dynmap]: [Dynmap] Tile read error - Interruped
[12:21:23] [pool-5-thread-27/FATAL] [Dynmap]: [Dynmap] Face read error - Interruped
[12:21:23] [pool-5-thread-24/FATAL] [Dynmap]: [Dynmap] Tile read error - Interruped
[12:21:23] [pool-5-thread-12/FATAL] [Dynmap]: [Dynmap] Tile read error - Interruped
[12:21:23] [pool-5-thread-9/FATAL] [Dynmap]: [Dynmap] Tile read error - Interruped
[12:21:23] [pool-5-thread-18/FATAL] [Dynmap]: [Dynmap] Tile read error - Interruped
[12:21:23] [pool-5-thread-26/FATAL] [Dynmap]: [Dynmap] Face read error - Interruped
[12:21:23] [pool-5-thread-7/FATAL] [Dynmap]: [Dynmap] Marker file read error - Interruped
[12:21:23] [pool-5-thread-4/FATAL] [Dynmap]: [Dynmap] Tile read error - Interruped
[12:21:23] [pool-5-thread-6/FATAL] [Dynmap]: [Dynmap] Face read error - Interruped
[12:21:23] [pool-5-thread-5/FATAL] [Dynmap]: [Dynmap] Face read error - Interruped
[12:21:23] [Server thread/INFO] [Dynmap]: [Dynmap] Unloaded 11 components.
[12:21:23] [Server thread/INFO] [Dynmap]: [Dynmap] Stopping map renderer...
[12:21:24] [Server thread/INFO] [Dynmap]: [Dynmap] Saved 82 pending tile renders in world 'world'
[12:21:24] [Server thread/INFO] [Dynmap]: [Dynmap] Full render job saved for world 'world'
[12:21:29] [Server thread/INFO] [Dynmap]: [Dynmap] Disabled
[12:21:29] [Server thread/INFO] [Dynmap]: [Dynmap] Using ops.txt for access control
[12:21:29] [Server thread/INFO] [Dynmap]: [Dynmap] Opening SQLite file /home/minecraft/ftb-revelation/dynmap/dynmap.db as map store
[12:21:30] [Server thread/INFO] [Dynmap]: [Dynmap] Mod Support processing completed
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:wheat:8
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:wheat:9
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:wheat:10
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:wheat:11
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:wheat:12
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:wheat:13
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:wheat:14
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:wheat:15
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:cake:7
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:cake:8
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:cake:9
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:cake:10
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:cake:11
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:cake:12
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:cake:13
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:cake:14
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:cake:15
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:pumpkin_stem:8
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:pumpkin_stem:9
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:pumpkin_stem:10
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:pumpkin_stem:11
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:pumpkin_stem:12
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:pumpkin_stem:13
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:pumpkin_stem:14
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:pumpkin_stem:15
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:melon_stem:8
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:melon_stem:9
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:melon_stem:10
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:melon_stem:11
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:melon_stem:12
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:melon_stem:13
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:melon_stem:14
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:melon_stem:15
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:nether_wart:4
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:nether_wart:5
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:nether_wart:6
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:nether_wart:7
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:cauldron:4
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:cauldron:5
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:cauldron:6
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:cauldron:7
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:cauldron:8
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:cauldron:9
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:cauldron:10
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:cauldron:11
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:cauldron:12
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:cauldron:13
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:cauldron:14
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:cauldron:15
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:cocoa:12
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:cocoa:13
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:cocoa:14
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:cocoa:15
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:anvil:12
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:anvil:13
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:anvil:14
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:anvil:15
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:hopper:1
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:hopper:7
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:hopper:9
[12:21:30] [Server thread/WARN] [Dynmap]: [Dynmap] Invalid texture block state: minecraft:hopper:15
[12:23:13] [Server thread/INFO] [Dynmap]: [Dynmap] Loaded 25 shaders.
[12:23:13] [Server thread/INFO] [Dynmap]: [Dynmap] Loaded 82 perspectives.
[12:23:13] [Server thread/INFO] [Dynmap]: [Dynmap] Loaded 14 lightings.
[12:23:13] [Server thread/INFO] [Dynmap]: [Dynmap] Web server started on address 127.0.0.1:24575
[12:23:13] [Server thread/INFO] [Dynmap]: [Dynmap] version 3.0-beta-4-213 is enabled - core version 3.0-beta-4-213
[12:23:13] [Server thread/INFO] [Dynmap]: [Dynmap] For support, visit https://forums.dynmap.us
[12:23:13] [Server thread/INFO] [Dynmap]: [Dynmap] To report or track bugs, visit https://github.com/webbukkit/dynmap/issues
[12:23:13] [Server thread/INFO] [Dynmap]: [Dynmap] Loaded 1 maps of world 'world'.
[12:23:13] [Server thread/INFO] [Dynmap]: [Dynmap] Loaded 1 maps of world 'DIM1'.
[12:23:13] [Server thread/INFO] [Dynmap]: [Dynmap] Loaded 1 maps of world 'DIM-1'.
[12:23:13] [Server thread/INFO] [Dynmap]: [Dynmap] Loaded 82 pending tile renders for world 'world'
[12:23:13] [Server thread/INFO] [Dynmap]: [Dynmap] Full render for world 'world' restored
[12:23:13] [Server thread/INFO] [Dynmap]: [Dynmap] Register events
[12:23:13] [Server thread/INFO] [Dynmap]: [Dynmap] Register commands
[12:23:13] [Server thread/INFO] [Dynmap]: [Dynmap] Enabled
[12:23:13] [Server thread/INFO] [net.minecraft.server.dedicated.DedicatedServer]: Dynmap reloaded

I wonder if it would be possible to add a Watchdog, that checks if any read/write process have hung for too long (e.g. 20 seconds/configurable) and in that case close and reopen the database connection.

Environment:

Dynmap 3.0-beta-4-213
Forge Mod Loader version 14.23.5.2846 (Minecraft 1.12.2)
Forge Mod Loader version 14.23.5.2768 (Minecraft 1.12.2) (both tested)
SQLITE: sqlite-jdbc-3.30.1
Tested without addtional mods and within FTB Revelation 3.2.0 modpack

I also remember, to have seen this issue on 1.7.10 and 1.14 spigot servers, but can't test that again at the moment.

If you need more information, don't hesitate to ask. But I would rather not post the complete logfile publicly, if you need it, pls PM me.

Greetings

commented

@Pingger have you given it a go?

commented

SQLite is just a mess as far as thread safety, so I've adjusted the connection pool down to 1, which will avoid those issues. In latest 3.4-SNAPSHOT

commented

This should be fixed on the latest dynmap version. Let me know if this persists even on the latest version

commented

@FedUpWith-Tech This issue still persists!
Dynmap-Version: 3.1-SNAPSHOT-391
sqlite-connector: sqlite-jdbc-3.32.3.2
Forge: forge-1.15.2-31.2.33
LogFile latest.log: https://pastebin.com/A1sYuELE
LogFile debug.log: https://pastebin.com/CqcvY6tz
Configutation: https://pastebin.com/8vVVH5MA

commented

Yeah, seems to be an issue with a broken jdbc dependency on the forge version. Someone else had the same issue on the discord and that was the concluded problem. The dev will likely fix this soon but the only way forge works right now is filetree storage option

commented

BTW: My steps to reproduce

  1. setup up clean forge server
  2. set view-distance to 64, to create a large enough area for the issue to surface
  3. Fly around a bit just for good measure.
  4. Add dynmap and sqlite-jdbc
  5. Set preset to hires_boost_xhi (just so more writes are necessary in a fullrender)
  6. do a fullrender
  7. open the web map, while that fullrender is happening
  8. wait between a few minutes and up to several days until the issue surfaces
commented

Yeah, seems to be an issue with a broken jdbc dependency on the forge version. Someone else had the same issue on the discord and that was the concluded problem. The dev will likely fix this soon but the only way forge works right now is filetree storage option

forge doesn't ship with sqlite! sqlite needs to be provided and added to the classpath seperatly.