[Catalyst] Installing Catalyst::Authentication::Store::DBIx::Class
Breaks Catalyst
Tomas Doran
bobtfish at bobtfish.net
Wed Apr 8 09:43:21 GMT 2009
Collin Condray wrote:
> This completely rendered my site totally unusable. Now I am receiving
> the error:
> Inconsistent hierarchy during C3 merge of class 'myAPP': merging failed
> on parent 'Class::Accessor::Fast' at
> /home/username/local/lib/perl/5.8.4/Class/C3/XS.pm line 56., referer:
> https://www.mysite.com/
>
> I have been unable to find anything that I've been able to understand on
> the cause of this problem. Has anyone else come across this error
> message and if so, has anyone found a solution to it.
Yes.
If you remove /home/username/local/lib/perl/5.8.4/Class/C3/XS.pm then
you'll get a better / more helpful error message.
The (brief) explanation is that somehow, your application is composed of
base classes which cannot be resolved into a linear order.
Example:
package BaseLeft;
our $VERSION = 0.1;
package BaseRight;
our $VERSION = 0.1;
package A;
use base qw/BaseLeft BaseRight/;
package B;
use base qw/BaseRight BaseLeft/;
package CrashAndBurn;
use base qw/A B/;
Now, using Algorithm::C3, try to resolve a method call in
CrashAndBurn... Answer - you can't!!! It doesn't make sense..
Which means that C3 resolution is going to explode, just as you're
seeing. You should be able to look at the 'use base' lines in your
plugins, and work out if you have this situation. Most often, its caused
by code which says use base qw/Class::Data::Inheritable
Class::Accessor::Fast/ (as everything else does it the other way round.
The most common plugin causing this is
Catalyst::Plugin::Session::Store::FastMMap <= version 0.03. So if you're
using that, upgrade, and it should fix your issues!
Cheers
t0m
More information about the Catalyst
mailing list