Bug #90527 Failed to update tablespace_files dictionary object when upgrading to 8.0.11
Submitted: 20 Apr 2018 9:16 Modified: 2 Jun 2018 12:26
Reporter: Andrew Kendall Email Updates:
Status: No Feedback Impact on me:
Category:MySQL Server Severity:S3 (Non-critical)
Version:8.0.11 OS:CentOS (7)
Assigned to: CPU Architecture:x86

[20 Apr 2018 9:16] Andrew Kendall
I have a master with multiple slave set up which I am upgrading from 5.7.22 to 8.0.11.

So far three of the slaves have upgraded with no issues, on the fourth slave after installing the upgrade the server will not start.

The log output is very simple:

2018-04-20T07:44:23.618805Z 1 [ERROR] [MY-010520] [Server] Invalid (old?) table or database name '�^M'
mysqld: Failed to update tablespace_files dictionary object.
2018-04-20T07:44:23.627686Z 1 [ERROR] [MY-011006] [Server] Got error 168 from SE while migrating tablespaces.
2018-04-20T07:44:23.631075Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2018-04-20T07:44:23.631101Z 0 [ERROR] [MY-010119] [Server] Aborting

There is no database or table named '�^M' and I can't see any abnormal data in /var/lib/mysql/.

I'm presuming this must be some sort of data corruption on the slave which is not handled well by 8.0.11.

Any ideas or suggestions would be welcome. I know this isn't a lot to go on, so let me know what other information I can provide.

How to repeat:
Can currently only repeat on one server.
[22 Apr 2018 9:34] Andrew Kendall
A follow-up if anyone is looking for a fix for this issue. While still using 5.7.22 I ran an OPTIMIZE TABLE on everything in the mysql and performance_schema databases and after that the upgrade completed without issue.
[2 May 2018 12:26] MySQL Verification Team
Thank you for the report, and confirmation that post optimize you didn't notice this issue.
Also, you may want to use “Upgrade checker”, quoting as is from official blog - "What UC does is connect to specified server and, if the server version is supported (at the moment only 5.7) and user has enough privileges (ALL privileges with GRANT option), runs a series of checks. If any issues are discovered, it displays them along with any advice targeted at resolving those issues. Not all the issues discovered have the same gravity (they are all tagged either “notice”, “warning”, or “error”) and results in failed upgrade process, but you should consider them all to be able to take full advantage of MySQL 8.0. At the end, UC prints a summary and returns an integer value describing he severity of the issues found:

0 – no issues or only ones categorized as notice,
1 – No fatal errors were found, but some potential issues were detected,
2 – UC found errors that must be fixed before upgrading to 8.0."

More details here https://mysqlserverteam.com/mysql-shell-8-0-4-introducing-upgrade-checker-utility/
[3 Jun 2018 1:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".