[Catalyst] inconsistent hierarchy ... after installing C::P::LogWarnings

Brandon Black blblack at gmail.com
Sat Jan 13 19:55:22 GMT 2007


On 1/13/07, Daniel McBrearty <danielmcbrearty at gmail.com> wrote:
> I wanted to see carp/warn errors in the debug output, so I installed
>
> http://search.cpan.org/~jrockway/Catalyst-Plugin-LogWarnings-0.02/lib/Catalyst/Plugin/LogWarnings.pm
>
> it seemed to have a lot of prerequisites, I just let it install them ...
>
> but on starting the test server and running the first request, I got :
>
> Inconsistent hierarchy found while merging 'Engoi':
>         current merge results [
>                 Engoi,
>                 Catalyst::Plugin::Dumper,
>                 Catalyst::Plugin::ConfigLoader,
>                 Catalyst::Plugin::Static::Simple,
>                 Catalyst::Plugin::Engoi::L10n,
>                 Catalyst::Plugin::Session,
>                 Catalyst::Plugin::Session::Store::FastMmap,
>                 Catalyst::Plugin::Session::State::Cookie,
>                 Catalyst::Plugin::Session::State,
>                 Catalyst::Plugin::StackTrace,
>                 Catalyst::Plugin::Authentication,
>                 Catalyst::Plugin::Authentication::Credential::Password,
>                 Catalyst::Plugin::Authentication::Store::DBIC,
>                 Catalyst::Plugin::EmailTestable,
>                 Catalyst::Plugin::Email,
>                 Catalyst::Plugin::SubRequest,
>                 Catalyst::Plugin::LogWarnings,
>                 Catalyst::Plugin::C3,
>                 Catalyst,
>                 Catalyst::Controller,
>                 Catalyst::Base,
>                 Catalyst::Component,
>                 Catalyst::AttrContainer
>         ]
>         merging failed on 'Class::Accessor::Fast'
>
> the error goes away after I take the plugin out again ...
>
> any ideas?
>

I've seen this before.  The basic cause is that some of your plugins
use the same base classes in different orders, which makes them
inconsistent if C3 is in use (which LogWarnings uses).

Usually the problem is that Catalyst::Component and most other things
do "use base qw/Class::Accessor::Fast Class::Data::Inheritable", and
some other plugin you're using has those backwards in its bases.
IIRC, the last time I saw this, the culprit was
Catalyst::Plugin::Session::Store::FastMmap, you might look there and
reverse those two bases if neccesary.

-- Brandon



More information about the Catalyst mailing list