[rt-users] Error when upgrading database from 3.8.9 to 3.9.1

Thomas Sibley trs at bestpractical.com
Mon Nov 5 14:37:15 EST 2012


On 11/05/2012 09:24 AM, CB wrote:
> We're long time RT users and are in the process of upgrading from 3.6.3 to
> 4.0.8 and are following the instructions on
> http://www.bestpractical.com/rt/docs/4.0/UPGRADING.mysql.html and
> http://www.bestpractical.com/rt/docs/4.0/README.html. I upgraded to 3.7.87,
> ran the extra queries and continued the upgrade however it failed at the
> step of upgrading to 3.9.1.

Be sure to read the other UPGRADING documentation as well, for all
versions between 3.6.3 and 4.0.8.

Your database contains rows in the ACL table which point to Principals
that no longer exist.  Grep for the [error] lines "ACE NNNN couldn't
load it's principal object".  This indicates that records were manually
deleted from the database at some point, and done so incorrectly (as is
almost always the case with manual deletes by folks not understanding
the whole of the database).

The code doesn't handle this error case and blows up.  The ACL rows in
question are:

21605
22605
22655
24605
24655
25655
25705

You may want to take a look and see what happened to the Principals
referred to.  To proceed with the upgrade, add the following line to
etc/upgrade/3.9.1/content after the line reading "my $principal =
$ace->PrincipalObj;":

    next unless $principal->id;

After you've upgraded to 4.0.8, you'll want to run rt-validator to check
the integrity of your database and clean it up.

Thomas



More information about the rt-users mailing list