Bug #113050 | Table Inaccessible after upgrade with in 8.0 and upgrade failures from 5.7 to 8 | ||
---|---|---|---|
Submitted: | 10 Nov 2023 19:27 | Modified: | 28 Feb 2024 16:38 |
Reporter: | Pranay Motupalli | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | Shell Upgrade Checker | Severity: | S2 (Serious) |
Version: | 8.0 | OS: | Any |
Assigned to: | CPU Architecture: | Any | |
Tags: | table inaccessible, Upgrade failed |
[10 Nov 2023 19:27]
Pranay Motupalli
[10 Nov 2023 19:53]
Pranay Motupalli
For issue 2: ############ Post Upgrade, table/partition cannot be rebuilt/reorganize or accessible mysql [localhost:8200] {msandbox} (test) > alter table test.i_am_not_going_to_open_after_upgrade REORGANIZE PARTITION p_2022_01 into (partition p_2022_01 VALUES LESS THAN ('2022-02-01')); ERROR 1654 (HY000): Partition column values of incorrect type mysql [localhost:8200] {msandbox} (test) > alter table test.i_am_not_going_to_open_after_upgrade engine=innodb; ERROR 1654 (HY000): Partition column values of incorrect type
[10 Nov 2023 20:02]
Pranay Motupalli
Update: Reorganize partition with correct format only works for 5.7 to 8.0 where partition reorg should be done on 5.7 and then upgrade. But it doesn't work for upgrades within 8.0 when you try to reorganize post upgrade.
[13 Nov 2023 11:51]
MySQL Verification Team
Hi Mr. Motupali, Thank you for your bug report. Rebuilding the table to supported delimiters work is the only available workaround for this problem. Hence, this problem can not be fixed, but we think that documentation is lacking on this topic and the upgrade checker needs to be fixed to take this incompatibility checked and reported. Your report is now verified.
[13 Nov 2023 19:25]
Pranay Motupalli
Hi, Thanks for the feedback. Having a pre-checker will just prevent the upgrade failure and rebuilding before upgrade helps in the case of 5.7 to 8.0 upgrades. However, there is still a problem with minor version upgrades. Let's say, I have the below setup. 1. MySQL server with 8.0.28 2. Created a partitioned table with above mentioned schema 3. Upgrade the server version to 8.0.35 [ This upgrade never fails and successfully upgrades to 8.0.35 ] The table is inaccessible and cannot be rebuilt as well post upgrade. Here is the biggest concern - If a feature is deprecated, it should just leave a warning and not break things after upgrade. In this case, the table is inaccessible and data cannot be retrieved post upgrade. This leads to data loss as we cannot rebuild/select from the table post upgrade. **** This is a breaking change between 8.0 minor releases leaving data inaccessible ***** So, this needs a fix to treat arbitrary delimiters as deprecated and not removed. Which means, allow tables to be accessible post upgrade ( unless the feature is removed - which is not the case here ) Thanks, Pranay
[14 Nov 2023 10:08]
MySQL Verification Team
Hi Mr. Motupalli, We agree with you that this is a bug.
[28 Feb 2024 16:38]
Edward Gilmore
Posted by developer: Added the following note to the MySQL Shell 8.0.37 and 8.4.0 release notes: The upgrade checker utility did not check for the presence of columns partitioned with temporal types which used non-standard temporal delimiters. As a result, the upgrade could fail or tables could be inaccessible after the upgrade. Non-standard delimiters were deprecated in MySQL 8.0.29. As of this release, the upgrade checker checks for such delimiters.
[29 Feb 2024 10:47]
MySQL Verification Team
Thank you, Mr. Gilmore ......