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

Reply via email to