On Mon, May 24, 2010 at 10:19 PM, Buddy Burden <barefootco...@gmail.com> wrote:
> Chris,
>
>> Not sure what part of the previous responses by Nick and Chris didn't make 
>> sense, but they were fairly clear to me.
>
> As it happens, no part of their responses were unclear, and I did in
> fact reply with code.  However, what I apparently did _not_ do is
> include the list on those replies (d'oh!).  Corrected now.
>
>>  Actual *code* demonstrating the problem would be nice.
>
> Well, if I had a small example that reproduced the problem, I
> certainly would have sent that.  But, as I said, I've thus far had no
> luck reproducing on a smaller scale.  I figured I could either spend a
> few more days beating my head against a wall, or I could toss what I
> know out here and see if it struck anyone's memory banks. :)
>
> I've just pushed a fix to our production servers that, again, makes
> the error go away, without really fixing it.  I added a simple:
>
> use Company::CompanyBusinessModel;
>
> into our mason_handler.pl.  Our QA guy reports that he can no longer
> reproduce the error with that fix in place.  But I'd still like to
> figure out what's going on there, because obviously this could pop up
> again.

Somewhere in the myriad of class loaders and syntax modifiers
something is passing '0' to CMOP::load_class. It *looks* like this is
coming from Devel::Declare (the thing MooseX::Declare uses to sugar up
the syntax) getting confused when it parses the
Company::CompanyBusinessModel during the dynamic load. Preloading it
"fixes" this by making sure that the class is already loaded when it
tries to bring it in (bypassing the auto-loading).

Things to check would be your version of Devel::Declare,
MooseX::Declare, Class::MOP, Moose etc to make sure they are up to
date. Then I'd start working on getting the case reproducible *at all*
(sounds like you can't get it to break outside of production, I hate
bugs like that) and start stepping through and seeing where things go
awry.

After that I'd try to take whatever I found from stepping through and
reducing it to a minimum test case, and present that to #moose or the
list here.

-Chris

Reply via email to