Re: On the current Test::More-to-be

[email protected] (Chad Granum)
Newsgroups perl.cpan.workers
Message-ID <CAJFr3kuL6iS5jA73mHrwavT2qgSDgsjmqZFQA91kQ0V7tXM5nA@mail.gmail.com>
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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> Twitter/IRC: @xdg
>>
>
>
0001-RealLocal.patch (text/x-patch, 777 B)
From 8db965320f8dfd2dfa5b40ca936b7eae482aa53a Mon Sep 17 00:00:00 2001
From: Chad Granum <[email protected]>
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
0001-ManualLocal.patch (text/x-patch, 781 B)
From d159bff6125bbd26f74d844b3d2dfc342cca5552 Mon Sep 17 00:00:00 2001
From: Chad Granum <[email protected]>
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
0001-NoDestroy.patch (text/x-patch, 1 KB)
From d9bf010516083b3bd60ebbdf5fe9ebfce6014779 Mon Sep 17 00:00:00 2001
From: Chad Granum <[email protected]>
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
0001-noweaken.patch (text/x-patch, 853 B)
From d41a3f38905cf6b2bb47aac1e830be18c23c1a30 Mon Sep 17 00:00:00 2001
From: Chad Granum <[email protected]>
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
0001-RemoveEnd.patch (text/x-patch, 1.1 KB)
From 41f915c571077fbdedc41221934e7d8357a0364f Mon Sep 17 00:00:00 2001
From: Chad Granum <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.