I am conducting some experiments with small test cases to see if I can duplicate the behavior in a postable case. So far, what I have discovered is this: I have three modules: lth::confgi lth::mqueue and amg::continuefile. Turns out that after instantiating all three, I make a method call in the mqueue one that in turn calls the cpan mqueue module. That appears to fail in a way that causes moose to start the demolish all sequence even though I have the offending call in am eval at the highest level. As a second test, I stopped using my lth::mqueue module and just did the cpan calls in my main. Same behavior. More experimentation to come...
On 2/24/09, Stevan Little <stevan.lit...@iinteractive.com> wrote: > It would be much easier if we could see the actual DEMOLISH sub. Also > I would recommend upgrading Moose as recent fixes may have solved this. > > But the two destroy sequences could easily be because something is > being called inside DEMOLISH that causes it to create another copy of > the object, perhaps the object is stored in a lazy attribute and > somehow it is being clearer first then later in the destruction > process is reinitialized. Perl global destruction can produce some > really weird things. > > - Stevan > > On Feb 24, 2009, at 9:56 AM, Matthew Persico wrote: > >> I have run some tests. In the end, I have a die() in one of my Moose >> object's attribute builder function. As I trace the destruct sequence, >> it appears that ALL of my objects are being destroyed twice. >> I think I will pull the die() in favor of a return undef and force the >> caller to check validity. die() in a constructor is probably bad news. >> But does anyone have any idea about running two destroy sequences? >> >> On 2/23/09, Stevan Little <stevan.lit...@iinteractive.com> wrote: >>> Thomas, >>> >>> Matthew forwarded your mail, here is what I responded to him with: >>> >>> Try updating Moose, I think this might have been fixed recently. >>> >>> Perl's destruction order is essentially random, which can complicate >>> things a lot. If you can provide a stack trace we might be able to >>> provide some more insight. >>> >>> - Stevan >>> >>> On Feb 20, 2009, at 12:50 PM, Thomas, Terry L wrote: >>> >>>> Sorry for the possibly empty prior email with this subject. Limited >>>> connectivity here. >>>> >>>> I am working with Moose v0.65 and I am getting messages in my logs >>>> that >>>> look like: >>>> >>>> DESTROY created new reference to dead object Foo::Bar during global >>>> destruction. >>>> >>>> In broad terms, what am I looking for? Badly defined DEMOLISH >>>> sequences? >>>> Missing or present explicit destroys? >>>> >>>> Any help would be appreciated. Sorry about the terseness - limited >>>> connectivity at this time. >>>> >>>> Thanks >>> >>> >> >> -- >> Sent from my mobile device >> >> Matthew O. Persico > > -- Sent from my mobile device Matthew O. Persico