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