I have attached 5 patches, can you try each one individually and see if any
of them make your problem go away?

Some of these patches will break Test-Simples test suite, Best option is to
-I /path/to/patched  or use a localib and apply the patch in there. None of
these patches are actually something I would put into the repo, they are
just to see if we can narrow down the problem.

On Thu, Apr 30, 2015 at 7:45 AM, Chad Granum <exodi...@gmail.com> wrote:

> I have no problem blocking on #589, so long as it remains actionable. We
> need to try to narrow down on the problem, and if possible reproduce it
> somewhere else.
>
> Does this occur on any other cpan module?
> Would you mind trying to find out?
> Does it still happen in mobogdb in a fresh/new perlbrew if you spin one up?
> Until we find a way to reproduce this in a condition that is not "xdg's
> machine and module" would you mind running the tests with a handful of
> patches (1 at a time) if I get them to you asap? (to help me hone in on the
> problem)
>
> If we cannot find any other module or machine to reproduce the issue, and
> you are unable or unwilling to help debug then I will have an objection to
> blocking on this.
>
> -Chad
>
>
> On Thu, Apr 30, 2015 at 3:08 AM, David Golden <x...@xdg.me> wrote:
>
>> I consider this ticket a blocker:
>> https://github.com/Test-More/test-more/issues/589
>>
>> I realize that it's hard to replicate and we may need to see if the
>> problem crops up elsewhere for confirmation, but sporadic global
>> destruction memory errors isn't something I want released to the world.
>>
>> David
>>
>>
>> On Thu, Apr 30, 2015 at 1:27 AM, Chad Granum <exodi...@gmail.com> wrote:
>>
>>> _110 uploaded as expected, documentation changes only. Unless someone
>>> else reports something that NEEDS to be fixed, nothing will be touched
>>> until stable.
>>>
>>> On Wed, Apr 29, 2015 at 9:52 AM, Chad Granum <exodi...@gmail.com> wrote:
>>>
>>>> I do not consider Test-Stream to be experimental. I am also unhappy
>>>> with the churn that has occurred, and recognize that it makes things hard
>>>> for people who are spot-checking me, specially since it means starting 
>>>> over.
>>>>
>>>>    - Changes up to and including _105 were directly a result of the
>>>>    punchlist and QAH review.
>>>>    - Changes after _105 have to do with some concurrency things
>>>>    discovered in peer review (See my other email).
>>>>    - I consider the concurrency issue from _106->_109 fixed and done,
>>>>    no more churn should be coming from that
>>>>    - I have one more task on my todo list, a documentation audit, no
>>>>    code change expected, just POD.
>>>>
>>>> I do not feel that either of these parts of churn should have been put
>>>> off. These were not the results of me playing around, or with
>>>> experimenting. These were things that review found that needed to be
>>>> addressed before a stable release locked them into stone. There are plenty
>>>> of other things in branches and pull requests (from bulk88, and some from
>>>> me) that I refuse to merge before a stable release is made because they
>>>> would introduce unnecessary churn.
>>>>
>>>> Now, about easing the burden of spot-checkers:
>>>>
>>>> I think that the spot-checkers choosing to wait until an entire week (7
>>>> days) has gone by with no new dev releases, and no new commits to
>>>> stream/master before running their checks is perfectly reasonable. I tend
>>>> to address things within hours of finding out about them, so a week of no
>>>> churn is a really good measurement to go with.
>>>>
>>>> So, I hope to do my documentation audit today, and release _110 with
>>>> ONLY doc changes tonight. If there is no churn for 1 full week the spot
>>>> checkers can be sure I have nothing left to change and I consider it
>>>> release-ready, and they can do their spot checks.
>>>>
>>>> -Chad
>>>>
>>>
>>>
>>
>>
>> --
>> David Golden <x...@xdg.me> Twitter/IRC: @xdg
>>
>
>
From 8db965320f8dfd2dfa5b40ca936b7eae482aa53a Mon Sep 17 00:00:00 2001
From: Chad Granum <exodi...@gmail.com>
Date: Thu, 30 Apr 2015 07:50:18 -0700
Subject: [PATCH] RealLocal

---
 lib/Test/Stream/Util.pm | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/lib/Test/Stream/Util.pm b/lib/Test/Stream/Util.pm
index fd945c2..7c63f1d 100644
--- a/lib/Test/Stream/Util.pm
+++ b/lib/Test/Stream/Util.pm
@@ -79,14 +79,8 @@ sub _local_try(&) {
 }
 
 BEGIN {
-    if ($^O eq 'MSWin32' && $] < 5.020002) {
-        *protect = \&_manual_protect;
-        *try     = \&_manual_try;
-    }
-    else {
-        *protect = \&_local_protect;
-        *try     = \&_local_try;
-    }
+    *protect = \&_local_protect;
+    *try     = \&_local_try;
 }
 
 
-- 
1.9.1

From d159bff6125bbd26f74d844b3d2dfc342cca5552 Mon Sep 17 00:00:00 2001
From: Chad Granum <exodi...@gmail.com>
Date: Thu, 30 Apr 2015 07:49:45 -0700
Subject: [PATCH] ManualLocal

---
 lib/Test/Stream/Util.pm | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/lib/Test/Stream/Util.pm b/lib/Test/Stream/Util.pm
index fd945c2..c0140ef 100644
--- a/lib/Test/Stream/Util.pm
+++ b/lib/Test/Stream/Util.pm
@@ -79,14 +79,8 @@ sub _local_try(&) {
 }
 
 BEGIN {
-    if ($^O eq 'MSWin32' && $] < 5.020002) {
-        *protect = \&_manual_protect;
-        *try     = \&_manual_try;
-    }
-    else {
-        *protect = \&_local_protect;
-        *try     = \&_local_try;
-    }
+    *protect = \&_manual_protect;
+    *try     = \&_manual_try;
 }
 
 
-- 
1.9.1

From d9bf010516083b3bd60ebbdf5fe9ebfce6014779 Mon Sep 17 00:00:00 2001
From: Chad Granum <exodi...@gmail.com>
Date: Thu, 30 Apr 2015 07:48:05 -0700
Subject: [PATCH] NoDestroy

---
 lib/Test/Builder.pm                  | 1 +
 lib/Test/Stream/Concurrency/Files.pm | 1 +
 2 files changed, 2 insertions(+)

diff --git a/lib/Test/Builder.pm b/lib/Test/Builder.pm
index 71a7965..8f29253 100644
--- a/lib/Test/Builder.pm
+++ b/lib/Test/Builder.pm
@@ -184,6 +184,7 @@ sub name   { $_[0]->{Name} }
 
 sub DESTROY {
     my $self = shift;
+    return;
     return unless $self->{parent};
     return if $self->{Skip_All};
     $self->{parent}->is_passing(0);
diff --git a/lib/Test/Stream/Concurrency/Files.pm b/lib/Test/Stream/Concurrency/Files.pm
index 3c44334..8849d85 100644
--- a/lib/Test/Stream/Concurrency/Files.pm
+++ b/lib/Test/Stream/Concurrency/Files.pm
@@ -116,6 +116,7 @@ sub cull {
 
 sub DESTROY {
     my $self = shift;
+    return;
 
     return unless defined $self->pid;
     return unless defined $self->tid;
-- 
1.9.1

From d41a3f38905cf6b2bb47aac1e830be18c23c1a30 Mon Sep 17 00:00:00 2001
From: Chad Granum <exodi...@gmail.com>
Date: Thu, 30 Apr 2015 07:46:53 -0700
Subject: [PATCH] noweaken

---
 lib/Test/Stream/Context.pm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/Test/Stream/Context.pm b/lib/Test/Stream/Context.pm
index e6a8008..67841d9 100644
--- a/lib/Test/Stream/Context.pm
+++ b/lib/Test/Stream/Context.pm
@@ -45,7 +45,7 @@ sub peek_todo { @TODO ? $TODO[-1] : undef }
 
 sub set {
     $CURRENT = pop;
-    weaken($CURRENT);
+    #weaken($CURRENT);
 }
 
 my $WARNED;
@@ -153,12 +153,12 @@ sub context {
         __PACKAGE__
     );
 
-    weaken($ctx->{+HUB});
+    #weaken($ctx->{+HUB});
 
     return $ctx if $CURRENT;
 
     $CURRENT = $ctx;
-    weaken($CURRENT);
+    #weaken($CURRENT);
     return $ctx;
 }
 
-- 
1.9.1

From 41f915c571077fbdedc41221934e7d8357a0364f Mon Sep 17 00:00:00 2001
From: Chad Granum <exodi...@gmail.com>
Date: Thu, 30 Apr 2015 07:46:02 -0700
Subject: [PATCH] RemoveEnd

---
 lib/Test/Stream.pm | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/lib/Test/Stream.pm b/lib/Test/Stream.pm
index e6efd68..2e121c9 100644
--- a/lib/Test/Stream.pm
+++ b/lib/Test/Stream.pm
@@ -21,16 +21,16 @@ use Test::Stream::ExitMagic::Context;
 # Do not repeat Test::Builders singleton error, these are lexical vars, not package vars.
 my ($root, @stack, $magic);
 
-END {
-    my $driver = $root->concurrency_driver;
-    if ($driver && $$ == $root->pid) {
-        local $?;
-        $driver->finalize;
-        $root->ipc_cull;
-    }
-
-    $magic->do_magic($root) if $magic && $root && !$root->no_ending
-}
+#END {
+#    my $driver = $root->concurrency_driver;
+#    if ($driver && $$ == $root->pid) {
+#        local $?;
+#        $driver->finalize;
+#        $root->ipc_cull;
+#    }
+#
+#    $magic->do_magic($root) if $magic && $root && !$root->no_ending
+#}
 
 sub _stack { @stack }
 
-- 
1.9.1

Reply via email to