Matthew,

I cant possible follow what you are talking about here so I will wait for a runnable example.

Thanks,

- Stevan

On Feb 24, 2009, at 1:15 PM, Matthew Persico wrote:

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