Bug #67319 MySQL 5.6 crashes with data files derived from MySQL 5.1
Submitted: 22 Oct 2012 8:38 Modified: 16 Jan 2013 19:47
Reporter: Mikiya Okuno Email Updates:
Status: Closed Impact on me:
Category:MySQL Server: Installing Severity:S3 (Non-critical)
Version:5.6.7 OS:Any
Assigned to: CPU Architecture:Any

[22 Oct 2012 8:38] Mikiya Okuno
MySQL 5.6.7 crashes with SIGSEGV when upgrading from 5.1 directly. This is not an officially supported operation, but SIGSEGV is too bad. Stacktrace is like below:


The server crashes when reading the acl table. To workaround this problem, specify --skip-grant-tables option, then execute mysql_upgrade.

How to repeat:
Upgrade from MySQL 5.1 to 5.6 with physical data files.

Suggested fix:
In the following code from sql_acl.cc...

        if (table->s->fields >= 36)
          /* Starting from 5.0.3 we have max_user_connections field */
          ptr= get_field(thd->mem_root,
          user.user_resource.user_conn= ptr ? atoi(ptr) : 0;

There is no field at MYSQL_USER_FIELD_MAX_USER_CONNECTIONS'th position, because Create_tablespace_priv was added in 5.5. Please do not specify MYSQL_USER_FIELD_MAX_USER_CONNECTIONS directly there, and make it conditional.
[16 Jan 2013 19:47] Paul DuBois
Noted in 5.6.10, 5.7.1 changelogs.

Attempting to perform an in-place upgrade from MySQL 5.1 to 5.6
causes the server to exit due to a mismatch between the privilege
structures in the two series. (This is not a supported operation, but
the server should not exit ungracefully.)