-
Bug
-
Resolution: Fixed
-
Low
-
ATST-1.23.1
-
18
-
Severity 3 - Minor
-
15
-
Issue Summary
Updating Atlassian Troubleshooting and Support Tools to the latest version 1.23.1 breaks the MySQL character set and collation health check which fails incorrectly.
Steps to Reproduce
- Confluence is connected to MySQL and you have verified your encoding and collation is correct utf8/utf8_bin
- Update ATST to the latest version 1.23.1
- Go to: General Configuration > Troubleshooting and support tools
- Notice the following errors:
Encoding: What does this check do?
Checks if the collation used by the tables, columns, and database defaults in your MySQL database is correct.
Result
Exception during health check invocation java.lang.RuntimeException: java.sql.SQLException: You can't operate on a closed ResultSet!!!Collation: What does this check do?
Checks if the character set used by the tables, columns, and database defaults in your MySQL database is correct.Result
Exception during health check invocation java.lang.RuntimeException: java.sql.SQLException: You can't operate on a closed ResultSet!!!
Expected Results
The test should pass as the error is only thrown after updating ATST without any changes made to the DB.
Actual Results
The collation and encoding MySQL health checks fail
The below exception is thrown in the xxxxxxx.log file:
2020-01-22 12:09:46,201 WARN [HealthCheckWatchdog:thread-7] [troubleshooting.healthcheck.concurrent.SupportHealthCheckTask] healthCheckError Unable to complete execution of health check Collation due to an exception │ │ -- referer: http://localhost:26154/c6154/plugins/servlet/troubleshooting/view/ | url: /c6154/rest/troubleshooting/1.0/check/process/ | traceId: b67f511ec9773af8 | userName: admin │ │java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.sql.SQLException: You can't operate on a closed ResultSet!!!
Workaround
Option 1 - Disable the MySQL modules
- Go to: > Manage Apps > Expand Atlassian Troubleshooting and Support Tools > Expand modules > Disable the following modules:
- confluence.healthcheck.mysql.character.set.name
- confluence.healthcheck.mysql.collation.name
Option 2 - Downgrade ATST to the previous version 1.22.0
- Download ATST 1.22.0 from here
- Shutdown Confluence
- Go to <CONF-INSTALL>/conlfuence/WEB-INF/atlassian-bundled-plugins
- Backup and delete the file plugin-confluence-1.22.0.jar and replace with the downloaded 1.22.0 version
- Clear the plug-in cache
- Start Confluence
- For some reason, this was not enough to downgrade the plugin, if it still fails, follow on:
- Please remember to take a database backup before making any changes.
- Shutdown Confluence
- Follow Manually remove plugin from DB
- Run the following query:
select PLUGINDATAID, PLUGINKEY, FILENAME, LASTMODDATE from PLUGINDATA;
- You should see the ASTS 1.23.1 listed, similar to below:
PLUGINDATAID PLUGINKEY FILENAME LASTMODDATE ------------ ----------------------------------------------- ------------------------------------------------------- ------------------- 1081345 com.atlassian.troubleshooting.plugin-confluence plugin.1358229087590107522.plugin-confluence-1.23.1.jar 2020-01-22 12:41:34
- Run the following query using the PLUGINDATAID from above for the ATST plugin - in this example it's 1081345:
delete from PLUGINDATA where PLUGINDATAID=XXXXXX;
- Run the following query:
- Clear the plug-in cache.
- Start Confluence
- You should now find the ATST version has been downgraded to 1.22.0. You can confirm from the UPM and also the health check will now pass.
- relates to
-
CONFSERVER-53642 Support MySQL Databases using utf8mb4
- Closed