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


_______________________________________________
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/

Reply via email to