develooper Front page | perl.perl5.porters | Postings from October 2018

[perl #2754] [BUG] can't exit 0 from CHECK{}

From:
James E Keenan via RT
Date:
October 9, 2018 21:08
Subject:
[perl #2754] [BUG] can't exit 0 from CHECK{}
Message ID:
rt-4.0.24-10410-1539119282-872.2754-15-0@perl.org
On Sat, 29 Sep 2018 23:37:56 GMT, jkeenan wrote:
> On Tue, 25 Sep 2018 14:52:40 GMT, jkeenan wrote:
> > On Wed, 27 Dec 2017 22:43:00 GMT, jkeenan wrote:
> > > Re-opening ticket per discussion.
> > 
> > We should try to move this ticket and the related
> > https://rt.perl.org/Ticket/Display.html?id=132577 to
> > resolution.  What follows are my understanding of the issues
> > and suggestions for resolution.
> > 
> > 1. The ticket was filed eighteen-and-a-half years ago by Tom
> > Christiansen.  Discussion proceeded sporadically over the
> > years.
> > 
> > 2. Zefram reported solving the bug on Dec 10 2017
> > (https://rt.perl.org/Ticket/Display.html?id=2754#txn-1514806)
> > and pushed the solution to blead in commit
> > 0301e899536a22752f40481d8a1d141b7a7dda82.
> > 
> > 3. By Dec 12 2017 CPAN breakage had been spotted --
> > specifically, in Module::Install -- and Zefram filed RT
> > 132577.  He observed that the breakage point was in
> > Module::Install::DSL and opened a bug ticket in M-I's
> > tracker: https://rt.cpan.org/Ticket/Display.html?id=123867.
> > So that put us in the situation where a legitimate change to
> > blead triggered a failure in dodgy -- but heavily used --
> > code on CPAN.
> > 
> > 4. While Module::Install could be fixed and was fixed by
> > Karen Etheridge on Dec 19 2017, many CPAN distributions
> > which embed an unfixed version of Module::Install::DSL
> > remain "unfixed" and would need a new CPAN release to embed
> > a "fixed" version of Module::Install::DSL.  Karen provides a
> > list of those distributions at
> > https://rt.cpan.org/Ticket/Display.html?id=123867#txn-1762016.
> > Most of them are distributions originally written by Adam
> > Kennedy.
> > 
> > 5. Back in RT 132577 (the BBC ticket), discussion ensued
> > which led to a decision to revert Zefram's fix for RT 2754
> > for the balance of the 5.27 development cycle and to try
> > again during the (current) 5.29 cycle.  Zefram wrote:
> > 
> > "We expect to fix the bug again during the 5.29 cycle. This
> > would consist of reverting most of commit
> > 857320cbf85e762add18885ae8a197b5e0c21b69: the documentation
> > and code changes in perl.c, and the test changes in
> > t/op/blocks.t. This issue should block 5.30.0."
> > 
> > In RT 2754 (this ticket), he wrote:
> > 
> > "In order to give Module::Install distros more time to roll
> > out a fix for [perl #132577], this bug [perl #2754] has been
> > reintroduced in commit
> > 857320cbf85e762add18885ae8a197b5e0c21b69."
> > 
> > Pumpking Sawyer X concurred, writing:
> > 
> > "Following this, we should formulate a plan for dealing with
> > these distributions and having them release new versions. We
> > have time but our goal is to still have this bug fix in the
> > next version [5.30.0 -- JK] and this could only be done if
> > we are able to have enough distributions released with the
> > fix."
> > 
> > 6. The complicating factor in giving CPAN distributions
> > using Module::Install::DSL "more time to roll out a fix for"
> > RT 132577 is that many experienced contributors (e.g., the
> > Perl Toolchain Gang) believe that Module::Install is
> > fundamentally unmaintainable over the long run; that should
> > be deprecated for new usage in CPAN distros; and that any
> > advice to authors of those distros should not only advise
> > using an upgraded Module::Install::DSL but should also
> > advise moving away from Module::Install entirely.
> > 
> > 7. In an attempt to get some empirical data to inform this
> > discussion, I embarked on the following research:
> > 
> > a. I created a branch, "smoke-me/jkeenan/2754-re-revert",
> > from blead at commit 9d6ed46, i.e., shortly after the
> > release of perl-5.27.3. In that branch I reverted Zefram's
> > reversion commit and nothing more (see b64ae69c).
> > Smoke-testing rigs picked that branch up
> > (http://perl.develop-help.com/?b=smoke-me%2Fjkeenan%2F2754-re-revert)
> > with satisfactory results, i.e., the rigs which are getting
> > FAILs are not doing so because of this commit and are also
> > getting FAILs in blead.
> > 
> > b. I then wrote a program similar to the "test CPAN river
> > against dev releases" program upon which I have been
> > reporting to the P5P list since June.  I configured and
> > built perl from the 2754-re-revert branch
> > on a FreeBSD-11 machine, installed cpanm against that perl
> > and then attempted to install a large list of CPAN modules
> > against that perl.  That list was composed as follows:
> > 
> > i. Start with the same "CPAN river 3000" modules I've been
> > using in monthly test-against-dev testing.
> > 
> > ii. Remove those modules which got a non-PASS grade in last
> > week's post-5.29.3 run.  Among others, this removed
> > Catalyst-Runtime and its revdeps which were experiencing
> > non-BBC-related issues.
> > 
> > iii. Add the CPAN distributions listed as being revdeps of
> > Module::Install at
> > https://metacpan.org/requires/distribution/Module-
> > Install?p=1&size=200&sort=%5B%5B2%2C1%5D%5D.
> > 
> > iv. Remove the M-I revdeps whose names begin with 'Task' or
> > 'Bundle'.
> > 
> > c. I ran the program yesterday in an environment similar but
> > not identical to that which I use for the monthly
> > test-against-dev runs.  The difference is that in this
> > environment I have not installed as many external packages
> > as I have in the test-against-dev VM, so there were more
> > non-PASS grades due to unsatisfied prerequisites.
> > 
> > d. I examined the resulting data for the purpose of
> > determining the cause of non-PASS grades when run against
> > the "2754-re-revert" perl.  I identified 12 distros which
> > were graded 'NA' due to failures in the configuration stage.
> > All 12 of those distros were found in the list of distros
> > with unfixed embedded Module::Install::DSL provided by Karen
> > last December.  When I examined these distros individually
> > and ran them with the "stock" perl on this machine -- 5.26.2
> > -- each failed with "Can't locate inc/Module/Install/DSL.pm
> > in @INC".  When I ran them with the post-5.23.4,
> > 2754-re-revert perl, "perl Makefile.PL" created no Makefile
> > -- which explains the configuration-stage NA grade.  I could
> > not attribute any other non-PASS grades in this run to
> > RT-2754 related issues.  (I can make the data and program
> > available upon request.)
> > 
> > 8. I therefore believe that we can predict with reasonable
> > certainty what would happen if, in the current dev cycle, we
> > re-implemented Zefram's fix for this ticket.  Those CPAN
> > distributions which have not upgraded their embedded
> > Module::Install::DSL packages would break because the
> > distros would no longer be able to generate a Makefile.  But
> > beyond that there would be little impact.
> > 
> > 9. I therefore believe that we should move forward on this.
> > To do so we would need to take the following steps:
> > 
> > a. Re-examine the chain of commits to determine whether the
> > 2754-re-revert branch fully gets us to the state intended by
> > Zefram for the resolution of the original problem.
> > 
> > b. Come to consensus among P5P and Toolchain Gang as to what
> > to recommend to the maintainers of CPAN distributions with
> > non-upgraded versions of Module::Install::DSL concerning
> > this breakage and advise them that the distros will not work
> > in perl-5.30 unless they take action.
> > 
> > c. Merge the 2754-re-revert branch -- or an improved version
> > thereof -- into blead and monitor results via CPANtesters,
> > test-against-dev and any other appropriate means.  That
> > should enable resolution of both RT 2754 and RT 132577.
> > 
> > Thank you very much.
> 
> TonyC, DaveM, list: Any feedback on this plan?
> 
> Thank you very much.

sawyer, list: Any feedback on this plan?

Thank you very much.

-- 
James E Keenan (jkeenan@cpan.org)

---
via perlbug:  queue: perl5 status: open
https://rt.perl.org/Ticket/Display.html?id=2754



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About