Dynmap-Forge/Fabric

Dynmap-Forge/Fabric

888k Downloads

DynMap 3.2 Beta 2 - 1.17.1 - SQL 5.7 Communication Issue

BurntValentine opened this issue ยท 7 comments

commented

Issue Description:
DynMap fails to load - but only on 1.17.1 (Spigot or Paper) and only with an SQL running version 5.7.

  • Dynmap Version:
    3.2 Beta 2

  • Server Version:
    Spigot or Paper 1.17.1

  • Pastebin of Configuration.txt:
    Not relevant to the issue.

  • Server Host (if applicable):
    BeastNode. The host tested it across servers running different server versions, plugin versions and across systems with different SQL versions to try and isolate when the issue happens.

The issue only happens when running a 1.17.1 server, and only when the SQL is version 5.7 - on a system using SQL 5.5 with the exact same server setup (on 1.17.1, same plugin version) it loads without issue, and if the server running on SQL 5.7 is changed to 1.16.5 (no config or plugin version changes) the plugin loads fine.
Other plugins are communicating with the SQL at the same time without issue when DynMap fails, and nothing SQL-end should be effecting the connection.

  • Pastebin of crashlogs or other relevant logs:
    Output from DynMap on load when it is a 1.17.1 server with SQL version 5.7 (including Java and server version information):
    https://pastebin.com/NYvfBrVY

  • Steps to Replicate:
    The above - run a 1.17.1 server (Spigot or Paper, makes no difference) with DynMap 3.2 Beta 2 linked to an SQL running version 5.7 and it fails. As stated above other plugins are communicating with the SQL at the same time and switching to 1.16.5 fixes it without any config/plugin version changes.

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

commented

I also have exact same issue.

commented

"SQL 5.7" is vague even when assuming you mean MySQL 5.7 cuz there's M$ SQL, PostgreSQL, ...

commented

Server version: 5.7.23 MySQL Community Server (GPL)

commented

having this issues as well.

commented

Same... Paper 1.17.1 with MySQL 5.7

17.08 12:36:08 [Server] ERROR [dynmap] Map storage initialization failure
17.08 12:36:08 [Server] INFO The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
17.08 12:36:08 [Server] ERROR [dynmap] Error creating tables - Communications link failure
17.08 12:36:08 [Server] ERROR [[STDERR] ] com.mysql.jdbc.Driver Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
17.08 12:36:08 [Server] INFO [dynmap] Opening MySQL database db5004439376.hosting-data.io:3306/dbs3702478 as map store
17.08 12:36:08 [Server] INFO [dynmap] Web interface permissions only available for online users
17.08 12:36:08 [Server] INFO [dynmap] Using Bukkit Permissions (superperms) for access control
17.08 12:36:08 [Server] INFO [dynmap] Added 2 custom biome mappings
17.08 12:36:07 [Server] INFO [dynmap] Enabling dynmap v3.2-beta-2-483
commented

This is not reproducable for me using the Default configuration of mysql server. I am using the following setup:
mysql-server 5.7.34
Spigot version 3231-Spigot-3c1fc60-e167f28 (MC: 1.17.1)
Dynmap 3.2-beta-3-514 (downloaded from Spigot Download page)

Dynmap can successfully connect to the Database and is storing rendered tiles. Rendered tiles get displayed when opening Dynmap Page.
But I'm getting log spams about (not) using SSL (my mysql server is not configured for ssl)
[20:30:43] [etp354265781-81/WARN]: Sat Aug 28 20:30:43 CEST 2021 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

As your error log points us to an "outdated" mysql connector I went ahead and compiled a dynmap version using the "new" connector "com.mysql.cj.jdbc.Driver". I needed to add "mysql:mysql-connector-java:8.0.26" to the dependencys
--> With the "new" Connector I'm not getting any more SSL errors, even though my server is still not configured for SSL

Beside from increasing the resulting plugin jar, dynmap behaves like before and rendering all the tiles to database.

Update:
The error message ERROR [[STDERR] ] com.mysql.jdbc.Driver Loading class 'com.mysql.jdbc.Driver'. This is deprecated. The new driver class is 'com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary. Seems to be specific to paper, I am not getting the Error with Spigot.
Also for paper I do not need to add "mysql:mysql-connector-java:8.0.26" to the dependencys.
But even on paper the Dynmap build "3.2-beta-3-514" is working without any issues on my setup

commented

was able to reproduce on 1.18.1, setting the flags to
flags: "?allowReconnect=true&useSSL=false"
helped mitigate this error.