Bug #40053 'check table .. for upgrade' doesn't detect collation change made in 5.1.24-rc
Submitted: 15 Oct 2008 14:50 Modified: 10 Nov 2008 19:04
Reporter: Ramil Kalimullin Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Charsets Severity:S3 (Non-critical)
Version:>= 5.1.24-rc OS:Any
Assigned to: Ramil Kalimullin
Triage: Triaged: D1 (Critical)

[15 Oct 2008 14:50] Ramil Kalimullin
Description:
There were incompatible collation changes in 5.1.24-rc, see bug #27877: incorrect german order in utf8_general_ci, that mysql_upgrade doesn't detect.
This may lead to a situation when a table is marked as corrupted after mysqld upgrade (as in bug #39585: innodb and myisam corruption after binary upgrade from <=5.0.46 to >=5.0.48).

How to repeat:
No actual data at the moment.

Suggested fix:
Fix 'check table .. for upgrade'.
[17 Oct 2008 12:45] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/56470

2771 Ramil Kalimullin	2008-10-17
      Fix for bug #40053: 'check table .. for upgrade' doesn't detect 
      collation change made in 5.1.24-rc
      
      Problem: 'CHECK TABLE ... FOR UPGRADE' did not check for 
      incompatible collation changes made in MySQL 5.1.24-rc.
      
      Fix: add the check.
[30 Oct 2008 10:25] Alexander Barkov
The patch looks fine.
[4 Nov 2008 9:20] Bugs System
Pushed into 5.1.30  (revid:ramil@mysql.com-20081017124517-q7ei428ojr2j59iv) (version source revid:mats@sun.com-20081103175049-ulv24ke1m2lpi632) (pib:5)
[4 Nov 2008 16:30] Paul Dubois
Noted in 5.1.30 changelog.

CHECK TABLE ... FOR UPGRADE did not check for incompatible collation 
changes made in MySQL 5.1.24.  

Setting report to NDI pending push into 6.0.x.
[10 Nov 2008 10:51] Bugs System
Pushed into 6.0.8-alpha  (revid:ramil@mysql.com-20081017124517-q7ei428ojr2j59iv) (version source revid:kgeorge@mysql.com-20081106161825-9biri1v40v7b0kg3) (pib:5)
[10 Nov 2008 17:06] Paul Dubois
Expanded changelog entry:

he CHECK TABLE ... FOR UPGRADE statement did not check for
incompatible collation changes made in MySQL 5.1.24. (This also
affects mysqlcheck and mysql_upgrade, which cause that statement to
be executed.)
    
Prior to this fix, a binary upgrade (performed without dumping tables
with mysqldump before the upgrade and reloading the dump file after
the upgrade) would corrupt tables. After the fix, CHECK TABLE ... FOR
UPGRADE properly detects the problem and upgrades tables.
      
However, the fix is not backward compatible and can result in a
downgrading problem under these circumstances:
        
1) Perform a binary upgrade to a version of MySQL that includes the fix.
  
2) Run CHECK TABLE ... FOR UPGRADE (or mysqlcheck or mysql_upgrade) to
upgrade tables. 
    
3) Perform a binary downgrade to a version of MySQL that does not
include the fix. 
            
The solution is to dump tables with mysqldump before the downgrade
and reload the dump file after the downgrade. Alternatively, drop and
recreate affected indexes.
[10 Nov 2008 19:04] Paul Dubois
Noted in 6.0.8 changelog.
[21 Nov 2008 21:02] Bugs System
Pushed into 5.1.30-ndb-6.2.17  (revid:ramil@mysql.com-20081017124517-q7ei428ojr2j59iv) (version source revid:tomas.ulin@sun.com-20081121161314-jhz3twf5xjt8stnh) (pib:5)
[21 Nov 2008 23:45] Bugs System
Pushed into 5.1.30-ndb-6.3.20  (revid:ramil@mysql.com-20081017124517-q7ei428ojr2j59iv) (version source revid:tomas.ulin@sun.com-20081121210644-zas6e9wa5kuj7d6f) (pib:5)
[24 Nov 2008 15:09] Alexander Barkov
Bug#37046 was marked as duplicate for this bug.
[27 Nov 2008 14:52] Bugs System
Pushed into 5.1.30-ndb-6.4.0  (revid:ramil@mysql.com-20081017124517-q7ei428ojr2j59iv) (version source revid:tomas.ulin@sun.com-20081126125835-5sohkzk2jjwpq1wp) (pib:5)