← Back to team overview

openstack team mailing list archive

Re: Failed "db sync" while upgrading from essex to folsom

 

On Mon, 2013-04-29 at 20:16 +0530, Shashank Sahni wrote:
> Hi everyone,
> 
> I'm having some trouble upgrading from essex to folsom. The cloud is
> currently running on Ubuntu 12.04. For the upgrade, I included the folsom
> repo(ubuntu cloud archive) and upgraded the packages. Things went fine
> until I issued "nova-manage db sync". It failed with the following error.
> 
> 2013-04-29 20:13:50 23254 TRACE nova     raise
> exc.NoSuchTableError(full_name)
> 2013-04-29 20:13:50 23254 TRACE nova NoSuchTableError: `projects`
> 
> Ironically, the table exists. But I get the same message accessing it
> through mysql console.

This is due to a bug in one version of the Ubuntu package that included
a broken database migration; it had a foreign key on a latin-1 table
(dns_domains) referencing a text column on a utf-8 table (projects),
which mysql does not support. As a result, a *later* migration that
changed the projects table partially failed, and left the table in a
half-created state.

I ran into this problem, and the only way I found to *fix* the error was
to dump the database to a sql file, drop the entire database, manually
edit the dump file to correct the referencing table charset on the
'dns_domains' table, add the definition for the projects table back,
then restore the database from the dump.

Related issues on launchpad:
https://bugs.launchpad.net/nova/+bug/993663
https://bugs.launchpad.net/ubuntu/+source/nova/+bug/975085

Amusingly, if you're using keystone, the 'projects' table is actually
not used by anything, but it still has to exist.

-- 
Calvin Walton <calvin.walton@xxxxxxxxxx>

Attachment: smime.p7s
Description: S/MIME cryptographic signature


Follow ups

References