[Dbix-class] Class::C3::Componentised bug (was deployment bug with DBIC running from PAR)

Peter Rabbitson rabbit+dbic at rabbit.us
Wed Jan 28 09:56:16 GMT 2009


Toby Corkindale wrote:
> I need to stop replying to myself :(
> I'd say the problem lies this block of code:
> 
> # Look through the @INC path to find the file
>     foreach ( @try_first, @INC ) {
>         my $full = "$_/$filename";
>         next unless -e $full;
>         return $UNIX ? $full : $class->_inc_to_local($full);
> }
> 
> since when using PAR, the first entry in @INC is a coderef, and thus
> this routine tests for '-e "CODE(0xd34db33f)/Foo/Bar.pm"' which, not
> unsurprisingly, fails.
> 
> D'Oh.
> 
> I'll raise some bugs on RT. Not sure where the blame lies now..

Hi,
The issue you describe was worked around in this commit.
http://dev.catalyst.perl.org/svnweb/bast/revision/?rev=5355

I would recommend against raising a bug against C3:: as it behaves correctly
wrt availability of a module. Since there is no mechanism for a coderef in
@INC to say "I didn't find" vs "I didn't load", ensure_class_found can not
be expected to work correctly. A POD patch indicating the above would be
most welcome.

Happy hacking.



More information about the DBIx-Class mailing list