Skip Menu |

This queue is for tickets about the XML-Easy CPAN distribution.

Report information
The Basics
Id: 127416
Status: open
Priority: 0/
Queue: XML-Easy

People
Owner: Nobody in particular
Requestors: jkeenan [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: t/syntax_main.t: fails against perl-5.29.4
Today, as part of assessing the perl-5.30-readiness of a selected subset of CPAN distributions (the "CPAN River 3000"), I attempted to build and test XML-Easy on FreeBSD-11 against perl-5.29.4 using 'cpanm' as the installer. I got a test failure which caused XML-Easy to be graded FAIL. That grade in turn prevents any of XML-Easy's reverse dependencies from being reached in this testing process or from being installed by installers such as 'cpanm' or 'cpan'. ##### $ ~/bin/perl/dumpjson ZEFRAM.XML-Easy-0.011.log.json { author => "ZEFRAM", dist => "XML-Easy", distname => "XML-Easy-0.011", distversion => 0.011, grade => "FAIL", prereqs => undef, test_output => [ "Building and testing XML-Easy-0.011", "Building XML-Easy", "cc -I/home/jkeenan/var/tad/testing/perl-5.29.4/lib/5.29.4/amd64-freebsd-thread-multi/CORE -DVERSION=\"0.011\" -DXS_VERSION=\"0.011\" -DPIC -fPIC -c -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_FORTIFY_SOURCE=2 -O2 -pipe -fstack-protector -fno-strict-aliasing -o lib/XML/Easy.o lib/XML/Easy.c", "ExtUtils::Mkbootstrap::Mkbootstrap('blib/arch/auto/XML/Easy/Easy.bs')", "cc -shared -L/usr/local/lib -fstack-protector-strong -o blib/arch/auto/XML/Easy/Easy.so lib/XML/Easy.o", "t/classify.t ........ ok", "t/classify_pp.t ..... ok", "t/easy_module.t ..... ok", "t/easy_module_pp.t .. ok", "t/node_basics.t ..... ok", "t/node_basics_pp.t .. ok", "t/node_object.t ..... ok", "t/node_object_pp.t .. ok", "t/pod_cvg.t ......... ok", "t/pod_cvg_pp.t ...... ok", "t/pod_syn.t ......... ok", "t/read.t ............ ok", "t/read_pp.t ......... ok", "WARNING: Complex regular subexpression recursion limit (65534) exceeded at t/syntax_main.t line 79, <GEN0> line 1635.", "# Looks like your test exited with 25 just after 369.", "t/syntax_main.t ..... ", "Dubious, test returned 25 (wstat 6400, 0x1900)", "Failed 640/1009 subtests ", "t/version_synch.t ... ok", "t/write.t ........... ok", "t/write_pp.t ........ ok", "", "Test Summary Report", "-------------------", "t/syntax_main.t (Wstat: 6400 Tests: 369 Failed: 0)", " Non-zero exit status: 25", " Parse errors: Bad plan. You planned 1009 tests but ran 369.", "Files=17, Tests=100677, 47 wallclock secs ( 0.46 usr 7.45 sys + 40.20 cusr 6.88 csys = 54.98 CPU)", "Result: FAIL", ], via => "App::cpanminus::reporter 0.17 (1.7044)", } ##### Thank you very much. Jim Keenan
RT-Send-CC: public [...] khwilliamson.com
On Sun Oct 21 12:14:58 2018, JKEENAN wrote: Show quoted text
> Today, as part of assessing the perl-5.30-readiness of a selected > subset of CPAN distributions (the "CPAN River 3000"), I attempted to > build and test XML-Easy on FreeBSD-11 against perl-5.29.4 using > 'cpanm' as the installer. I got a test failure which caused XML-Easy > to be graded FAIL. That grade in turn prevents any of XML-Easy's > reverse dependencies from being reached in this testing process or > from being installed by installers such as 'cpanm' or 'cpan'. > > ##### > $ ~/bin/perl/dumpjson ZEFRAM.XML-Easy-0.011.log.json > { > author => "ZEFRAM", > dist => "XML-Easy", > distname => "XML-Easy-0.011", > distversion => 0.011, > grade => "FAIL", > prereqs => undef, > test_output => [ > "Building and testing XML-Easy-0.011", > "Building XML-Easy", > "cc -I/home/jkeenan/var/tad/testing/perl-5.29.4/lib/5.29.4/amd64- > freebsd-thread-multi/CORE -DVERSION=\"0.011\" -DXS_VERSION=\"0.011\" > -DPIC -fPIC -c -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict- > aliasing -pipe -fstack-protector-strong -I/usr/local/include > -D_FORTIFY_SOURCE=2 -O2 -pipe -fstack-protector -fno-strict-aliasing > -o lib/XML/Easy.o lib/XML/Easy.c", > "ExtUtils::Mkbootstrap::Mkbootstrap('blib/arch/auto/XML/Easy/Easy.bs')", > "cc -shared -L/usr/local/lib -fstack-protector-strong -o > blib/arch/auto/XML/Easy/Easy.so lib/XML/Easy.o", > "t/classify.t ........ ok", > "t/classify_pp.t ..... ok", > "t/easy_module.t ..... ok", > "t/easy_module_pp.t .. ok", > "t/node_basics.t ..... ok", > "t/node_basics_pp.t .. ok", > "t/node_object.t ..... ok", > "t/node_object_pp.t .. ok", > "t/pod_cvg.t ......... ok", > "t/pod_cvg_pp.t ...... ok", > "t/pod_syn.t ......... ok", > "t/read.t ............ ok", > "t/read_pp.t ......... ok", > "WARNING: Complex regular subexpression recursion limit (65534) > exceeded at t/syntax_main.t line 79, <GEN0> line 1635.", > "# Looks like your test exited with 25 just after 369.", > "t/syntax_main.t ..... ", > "Dubious, test returned 25 (wstat 6400, 0x1900)", > "Failed 640/1009 subtests ", > "t/version_synch.t ... ok", > "t/write.t ........... ok", > "t/write_pp.t ........ ok", > "", > "Test Summary Report", > "-------------------", > "t/syntax_main.t (Wstat: 6400 Tests: 369 Failed: 0)", > " Non-zero exit status: 25", > " Parse errors: Bad plan. You planned 1009 tests but ran 369.", > "Files=17, Tests=100677, 47 wallclock secs ( 0.46 usr 7.45 sys + > 40.20 cusr 6.88 csys = 54.98 CPU)", > "Result: FAIL", > ], > via => "App::cpanminus::reporter 0.17 (1.7044)", > } > ##### > > Thank you very much. > Jim Keenan
I believe this is the unit in t/read.data where the exception is (first) encountered: ##### 1622-###d 1623:<a z="x$(~ 1624-)y"/> 1625-# 1626-bless( [ 1627- "a", 1628- { 1629- "z" => "x".(" "x40000)."y" 1630- }, 1631- bless( [ [ 1632- "" 1633- ] ], 'XML::Easy::Content' ) 1634-], 'XML::Easy::Element' ) #####
RT-Send-CC: public [...] khwilliamson.com
On Tue Oct 23 09:13:37 2018, JKEENAN wrote: Show quoted text
> On Sun Oct 21 12:14:58 2018, JKEENAN wrote:
> > Today, as part of assessing the perl-5.30-readiness of a selected > > subset of CPAN distributions (the "CPAN River 3000"), I attempted to > > build and test XML-Easy on FreeBSD-11 against perl-5.29.4 using > > 'cpanm' as the installer. I got a test failure which caused XML-Easy > > to be graded FAIL. That grade in turn prevents any of XML-Easy's > > reverse dependencies from being reached in this testing process or > > from being installed by installers such as 'cpanm' or 'cpan'. > > > > ##### > > $ ~/bin/perl/dumpjson ZEFRAM.XML-Easy-0.011.log.json > > { > > author => "ZEFRAM", > > dist => "XML-Easy", > > distname => "XML-Easy-0.011", > > distversion => 0.011, > > grade => "FAIL", > > prereqs => undef, > > test_output => [ > > "Building and testing XML-Easy-0.011", > > "Building XML-Easy", > > "cc -I/home/jkeenan/var/tad/testing/perl-5.29.4/lib/5.29.4/amd64- > > freebsd-thread-multi/CORE -DVERSION=\"0.011\" -DXS_VERSION=\"0.011\" > > -DPIC -fPIC -c -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict- > > aliasing -pipe -fstack-protector-strong -I/usr/local/include > > -D_FORTIFY_SOURCE=2 -O2 -pipe -fstack-protector -fno-strict-aliasing > > -o lib/XML/Easy.o lib/XML/Easy.c", > > "ExtUtils::Mkbootstrap::Mkbootstrap('blib/arch/auto/XML/Easy/Easy.bs')", > > "cc -shared -L/usr/local/lib -fstack-protector-strong -o > > blib/arch/auto/XML/Easy/Easy.so lib/XML/Easy.o", > > "t/classify.t ........ ok", > > "t/classify_pp.t ..... ok", > > "t/easy_module.t ..... ok", > > "t/easy_module_pp.t .. ok", > > "t/node_basics.t ..... ok", > > "t/node_basics_pp.t .. ok", > > "t/node_object.t ..... ok", > > "t/node_object_pp.t .. ok", > > "t/pod_cvg.t ......... ok", > > "t/pod_cvg_pp.t ...... ok", > > "t/pod_syn.t ......... ok", > > "t/read.t ............ ok", > > "t/read_pp.t ......... ok", > > "WARNING: Complex regular subexpression recursion limit (65534) > > exceeded at t/syntax_main.t line 79, <GEN0> line 1635.", > > "# Looks like your test exited with 25 just after 369.", > > "t/syntax_main.t ..... ", > > "Dubious, test returned 25 (wstat 6400, 0x1900)", > > "Failed 640/1009 subtests ", > > "t/version_synch.t ... ok", > > "t/write.t ........... ok", > > "t/write_pp.t ........ ok", > > "", > > "Test Summary Report", > > "-------------------", > > "t/syntax_main.t (Wstat: 6400 Tests: 369 Failed: 0)", > > " Non-zero exit status: 25", > > " Parse errors: Bad plan. You planned 1009 tests but ran 369.", > > "Files=17, Tests=100677, 47 wallclock secs ( 0.46 usr 7.45 sys + > > 40.20 cusr 6.88 csys = 54.98 CPU)", > > "Result: FAIL", > > ], > > via => "App::cpanminus::reporter 0.17 (1.7044)", > > } > > ##### > > > > Thank you very much. > > Jim Keenan
> > I believe this is the unit in t/read.data where the exception is > (first) encountered: > > ##### > 1622-###d > 1623:<a z="x$(~ > 1624-)y"/> > 1625-# > 1626-bless( [ > 1627- "a", > 1628- { > 1629- "z" => "x".(" "x40000)."y" > 1630- }, > 1631- bless( [ [ > 1632- "" > 1633- ] ], 'XML::Easy::Content' ) > 1634-], 'XML::Easy::Element' ) > #####
I note that if I run just this one test block with a 'prove' built with perl-5.28 rather than perl-5.29.4, the tests are skipped: ##### $ prove -vb t/syntax_main.t t/syntax_main.t .. 1..1009 ok 1 - use XML::Easy::Syntax; AAA: d BBB: <a z="x$(~ ok 2 # skip perl bug affects long inputs ok 3 # skip perl bug affects long inputs ##### (Some debugging code thrown in.)
RT-Send-CC: public [...] khwilliamson.com
On Tue Oct 23 09:45:19 2018, JKEENAN wrote: Show quoted text
> On Tue Oct 23 09:13:37 2018, JKEENAN wrote:
> > On Sun Oct 21 12:14:58 2018, JKEENAN wrote:
> > > Today, as part of assessing the perl-5.30-readiness of a selected > > > subset of CPAN distributions (the "CPAN River 3000"), I attempted > > > to > > > build and test XML-Easy on FreeBSD-11 against perl-5.29.4 using > > > 'cpanm' as the installer. I got a test failure which caused XML- > > > Easy > > > to be graded FAIL. That grade in turn prevents any of XML-Easy's > > > reverse dependencies from being reached in this testing process or > > > from being installed by installers such as 'cpanm' or 'cpan'. > > > > > > ##### > > > $ ~/bin/perl/dumpjson ZEFRAM.XML-Easy-0.011.log.json > > > { > > > author => "ZEFRAM", > > > dist => "XML-Easy", > > > distname => "XML-Easy-0.011", > > > distversion => 0.011, > > > grade => "FAIL", > > > prereqs => undef, > > > test_output => [ > > > "Building and testing XML-Easy-0.011", > > > "Building XML-Easy", > > > "cc -I/home/jkeenan/var/tad/testing/perl- > > > 5.29.4/lib/5.29.4/amd64- > > > freebsd-thread-multi/CORE -DVERSION=\"0.011\" > > > -DXS_VERSION=\"0.011\" > > > -DPIC -fPIC -c -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict- > > > aliasing -pipe -fstack-protector-strong -I/usr/local/include > > > -D_FORTIFY_SOURCE=2 -O2 -pipe -fstack-protector -fno-strict- > > > aliasing > > > -o lib/XML/Easy.o lib/XML/Easy.c", > > > "ExtUtils::Mkbootstrap::Mkbootstrap('blib/arch/auto/XML/Easy/Easy.bs')", > > > "cc -shared -L/usr/local/lib -fstack-protector-strong -o > > > blib/arch/auto/XML/Easy/Easy.so lib/XML/Easy.o", > > > "t/classify.t ........ ok", > > > "t/classify_pp.t ..... ok", > > > "t/easy_module.t ..... ok", > > > "t/easy_module_pp.t .. ok", > > > "t/node_basics.t ..... ok", > > > "t/node_basics_pp.t .. ok", > > > "t/node_object.t ..... ok", > > > "t/node_object_pp.t .. ok", > > > "t/pod_cvg.t ......... ok", > > > "t/pod_cvg_pp.t ...... ok", > > > "t/pod_syn.t ......... ok", > > > "t/read.t ............ ok", > > > "t/read_pp.t ......... ok", > > > "WARNING: Complex regular subexpression recursion limit (65534) > > > exceeded at t/syntax_main.t line 79, <GEN0> line 1635.", > > > "# Looks like your test exited with 25 just after 369.", > > > "t/syntax_main.t ..... ", > > > "Dubious, test returned 25 (wstat 6400, 0x1900)", > > > "Failed 640/1009 subtests ", > > > "t/version_synch.t ... ok", > > > "t/write.t ........... ok", > > > "t/write_pp.t ........ ok", > > > "", > > > "Test Summary Report", > > > "-------------------", > > > "t/syntax_main.t (Wstat: 6400 Tests: 369 Failed: 0)", > > > " Non-zero exit status: 25", > > > " Parse errors: Bad plan. You planned 1009 tests but ran > > > 369.", > > > "Files=17, Tests=100677, 47 wallclock secs ( 0.46 usr 7.45 sys > > > + > > > 40.20 cusr 6.88 csys = 54.98 CPU)", > > > "Result: FAIL", > > > ], > > > via => "App::cpanminus::reporter 0.17 (1.7044)", > > > } > > > ##### > > > > > > Thank you very much. > > > Jim Keenan
> > > > I believe this is the unit in t/read.data where the exception is > > (first) encountered: > > > > ##### > > 1622-###d > > 1623:<a z="x$(~ > > 1624-)y"/> > > 1625-# > > 1626-bless( [ > > 1627- "a", > > 1628- { > > 1629- "z" => "x".(" "x40000)."y" > > 1630- }, > > 1631- bless( [ [ > > 1632- "" > > 1633- ] ], 'XML::Easy::Content' ) > > 1634-], 'XML::Easy::Element' ) > > #####
> > I note that if I run just this one test block with a 'prove' built > with perl-5.28 rather than perl-5.29.4, the tests are skipped: > > ##### > $ prove -vb t/syntax_main.t > t/syntax_main.t .. > 1..1009 > ok 1 - use XML::Easy::Syntax; > AAA: d > BBB: <a z="x$(~ > > ok 2 # skip perl bug affects long inputs > ok 3 # skip perl bug affects long inputs > ##### > > (Some debugging code thrown in.)
Please evaluate the patch attached. It works for me on both 5.28.0 and 5.29.4. Thank you very much. Jim Keenan
Subject: rtc-127416.diff
diff -u -w -r /home/jkeenan/learn/perl/rtc-127416-xml-easy/XML-Easy-0.011/t/syntax_main.t ./t/syntax_main.t --- /home/jkeenan/learn/perl/rtc-127416-xml-easy/XML-Easy-0.011/t/syntax_main.t 2017-07-25 10:36:09.000000000 -0400 +++ ./t/syntax_main.t 2018-10-23 09:54:06.908478549 -0400 @@ -43,7 +43,7 @@ # 5.10 fixed the stack issue, so it's safe to run the proper test there. my $have_iterlimit_bug = "$]" < 5.010 || do { local $SIG{__WARN__} = sub { }; - ("a"x40000) !~ /\A(?:X?[a-z])*\z/; + ("a"x (2**16)) !~ /\A(?:X?[a-z])*\z/; };
On 2018-10-23 10:06:33, JKEENAN wrote: Show quoted text
> On Tue Oct 23 09:45:19 2018, JKEENAN wrote:
> > On Tue Oct 23 09:13:37 2018, JKEENAN wrote:
> > > On Sun Oct 21 12:14:58 2018, JKEENAN wrote:
> > > > Today, as part of assessing the perl-5.30-readiness of a selected > > > > subset of CPAN distributions (the "CPAN River 3000"), I attempted > > > > to > > > > build and test XML-Easy on FreeBSD-11 against perl-5.29.4 using > > > > 'cpanm' as the installer. I got a test failure which caused XML- > > > > Easy > > > > to be graded FAIL. That grade in turn prevents any of XML-Easy's > > > > reverse dependencies from being reached in this testing process > > > > or > > > > from being installed by installers such as 'cpanm' or 'cpan'. > > > > > > > > ##### > > > > $ ~/bin/perl/dumpjson ZEFRAM.XML-Easy-0.011.log.json > > > > { > > > > author => "ZEFRAM", > > > > dist => "XML-Easy", > > > > distname => "XML-Easy-0.011", > > > > distversion => 0.011, > > > > grade => "FAIL", > > > > prereqs => undef, > > > > test_output => [ > > > > "Building and testing XML-Easy-0.011", > > > > "Building XML-Easy", > > > > "cc -I/home/jkeenan/var/tad/testing/perl- > > > > 5.29.4/lib/5.29.4/amd64- > > > > freebsd-thread-multi/CORE -DVERSION=\"0.011\" > > > > -DXS_VERSION=\"0.011\" > > > > -DPIC -fPIC -c -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict- > > > > aliasing -pipe -fstack-protector-strong -I/usr/local/include > > > > -D_FORTIFY_SOURCE=2 -O2 -pipe -fstack-protector -fno-strict- > > > > aliasing > > > > -o lib/XML/Easy.o lib/XML/Easy.c", > > > > "ExtUtils::Mkbootstrap::Mkbootstrap('blib/arch/auto/XML/Easy/Easy.bs')", > > > > "cc -shared -L/usr/local/lib -fstack-protector-strong -o > > > > blib/arch/auto/XML/Easy/Easy.so lib/XML/Easy.o", > > > > "t/classify.t ........ ok", > > > > "t/classify_pp.t ..... ok", > > > > "t/easy_module.t ..... ok", > > > > "t/easy_module_pp.t .. ok", > > > > "t/node_basics.t ..... ok", > > > > "t/node_basics_pp.t .. ok", > > > > "t/node_object.t ..... ok", > > > > "t/node_object_pp.t .. ok", > > > > "t/pod_cvg.t ......... ok", > > > > "t/pod_cvg_pp.t ...... ok", > > > > "t/pod_syn.t ......... ok", > > > > "t/read.t ............ ok", > > > > "t/read_pp.t ......... ok", > > > > "WARNING: Complex regular subexpression recursion limit > > > > (65534) > > > > exceeded at t/syntax_main.t line 79, <GEN0> line 1635.", > > > > "# Looks like your test exited with 25 just after 369.", > > > > "t/syntax_main.t ..... ", > > > > "Dubious, test returned 25 (wstat 6400, 0x1900)", > > > > "Failed 640/1009 subtests ", > > > > "t/version_synch.t ... ok", > > > > "t/write.t ........... ok", > > > > "t/write_pp.t ........ ok", > > > > "", > > > > "Test Summary Report", > > > > "-------------------", > > > > "t/syntax_main.t (Wstat: 6400 Tests: 369 Failed: 0)", > > > > " Non-zero exit status: 25", > > > > " Parse errors: Bad plan. You planned 1009 tests but ran > > > > 369.", > > > > "Files=17, Tests=100677, 47 wallclock secs ( 0.46 usr 7.45 > > > > sys > > > > + > > > > 40.20 cusr 6.88 csys = 54.98 CPU)", > > > > "Result: FAIL", > > > > ], > > > > via => "App::cpanminus::reporter 0.17 (1.7044)", > > > > } > > > > ##### > > > > > > > > Thank you very much. > > > > Jim Keenan
> > > > > > I believe this is the unit in t/read.data where the exception is > > > (first) encountered: > > > > > > ##### > > > 1622-###d > > > 1623:<a z="x$(~ > > > 1624-)y"/> > > > 1625-# > > > 1626-bless( [ > > > 1627- "a", > > > 1628- { > > > 1629- "z" => "x".(" "x40000)."y" > > > 1630- }, > > > 1631- bless( [ [ > > > 1632- "" > > > 1633- ] ], 'XML::Easy::Content' ) > > > 1634-], 'XML::Easy::Element' ) > > > #####
> > > > I note that if I run just this one test block with a 'prove' built > > with perl-5.28 rather than perl-5.29.4, the tests are skipped: > > > > ##### > > $ prove -vb t/syntax_main.t > > t/syntax_main.t .. > > 1..1009 > > ok 1 - use XML::Easy::Syntax; > > AAA: d > > BBB: <a z="x$(~ > > > > ok 2 # skip perl bug affects long inputs > > ok 3 # skip perl bug affects long inputs > > ##### > > > > (Some debugging code thrown in.)
> > Please evaluate the patch attached. It works for me on both 5.28.0 > and 5.29.4.
This looks rather like a bleadperl regression. Is there a BBC ticket? Regards, Slaven
On Tue Oct 23 10:06:33 2018, JKEENAN wrote: Show quoted text
> On Tue Oct 23 09:45:19 2018, JKEENAN wrote:
> > On Tue Oct 23 09:13:37 2018, JKEENAN wrote:
> > > On Sun Oct 21 12:14:58 2018, JKEENAN wrote:
> > > > Today, as part of assessing the perl-5.30-readiness of a selected > > > > subset of CPAN distributions (the "CPAN River 3000"), I attempted > > > > to > > > > build and test XML-Easy on FreeBSD-11 against perl-5.29.4 using > > > > 'cpanm' as the installer. I got a test failure which caused XML- > > > > Easy > > > > to be graded FAIL. That grade in turn prevents any of XML-Easy's > > > > reverse dependencies from being reached in this testing process > > > > or > > > > from being installed by installers such as 'cpanm' or 'cpan'. > > > > > > > > ##### > > > > $ ~/bin/perl/dumpjson ZEFRAM.XML-Easy-0.011.log.json > > > > { > > > > author => "ZEFRAM", > > > > dist => "XML-Easy", > > > > distname => "XML-Easy-0.011", > > > > distversion => 0.011, > > > > grade => "FAIL", > > > > prereqs => undef, > > > > test_output => [ > > > > "Building and testing XML-Easy-0.011", > > > > "Building XML-Easy", > > > > "cc -I/home/jkeenan/var/tad/testing/perl- > > > > 5.29.4/lib/5.29.4/amd64- > > > > freebsd-thread-multi/CORE -DVERSION=\"0.011\" > > > > -DXS_VERSION=\"0.011\" > > > > -DPIC -fPIC -c -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict- > > > > aliasing -pipe -fstack-protector-strong -I/usr/local/include > > > > -D_FORTIFY_SOURCE=2 -O2 -pipe -fstack-protector -fno-strict- > > > > aliasing > > > > -o lib/XML/Easy.o lib/XML/Easy.c", > > > > "ExtUtils::Mkbootstrap::Mkbootstrap('blib/arch/auto/XML/Easy/Easy.bs')", > > > > "cc -shared -L/usr/local/lib -fstack-protector-strong -o > > > > blib/arch/auto/XML/Easy/Easy.so lib/XML/Easy.o", > > > > "t/classify.t ........ ok", > > > > "t/classify_pp.t ..... ok", > > > > "t/easy_module.t ..... ok", > > > > "t/easy_module_pp.t .. ok", > > > > "t/node_basics.t ..... ok", > > > > "t/node_basics_pp.t .. ok", > > > > "t/node_object.t ..... ok", > > > > "t/node_object_pp.t .. ok", > > > > "t/pod_cvg.t ......... ok", > > > > "t/pod_cvg_pp.t ...... ok", > > > > "t/pod_syn.t ......... ok", > > > > "t/read.t ............ ok", > > > > "t/read_pp.t ......... ok", > > > > "WARNING: Complex regular subexpression recursion limit > > > > (65534) > > > > exceeded at t/syntax_main.t line 79, <GEN0> line 1635.", > > > > "# Looks like your test exited with 25 just after 369.", > > > > "t/syntax_main.t ..... ", > > > > "Dubious, test returned 25 (wstat 6400, 0x1900)", > > > > "Failed 640/1009 subtests ", > > > > "t/version_synch.t ... ok", > > > > "t/write.t ........... ok", > > > > "t/write_pp.t ........ ok", > > > > "", > > > > "Test Summary Report", > > > > "-------------------", > > > > "t/syntax_main.t (Wstat: 6400 Tests: 369 Failed: 0)", > > > > " Non-zero exit status: 25", > > > > " Parse errors: Bad plan. You planned 1009 tests but ran > > > > 369.", > > > > "Files=17, Tests=100677, 47 wallclock secs ( 0.46 usr 7.45 > > > > sys > > > > + > > > > 40.20 cusr 6.88 csys = 54.98 CPU)", > > > > "Result: FAIL", > > > > ], > > > > via => "App::cpanminus::reporter 0.17 (1.7044)", > > > > } > > > > ##### > > > > > > > > Thank you very much. > > > > Jim Keenan
> > > > > > I believe this is the unit in t/read.data where the exception is > > > (first) encountered: > > > > > > ##### > > > 1622-###d > > > 1623:<a z="x$(~ > > > 1624-)y"/> > > > 1625-# > > > 1626-bless( [ > > > 1627- "a", > > > 1628- { > > > 1629- "z" => "x".(" "x40000)."y" > > > 1630- }, > > > 1631- bless( [ [ > > > 1632- "" > > > 1633- ] ], 'XML::Easy::Content' ) > > > 1634-], 'XML::Easy::Element' ) > > > #####
> > > > I note that if I run just this one test block with a 'prove' built > > with perl-5.28 rather than perl-5.29.4, the tests are skipped: > > > > ##### > > $ prove -vb t/syntax_main.t > > t/syntax_main.t .. > > 1..1009 > > ok 1 - use XML::Easy::Syntax; > > AAA: d > > BBB: <a z="x$(~ > > > > ok 2 # skip perl bug affects long inputs > > ok 3 # skip perl bug affects long inputs > > ##### > > > > (Some debugging code thrown in.)
> > Please evaluate the patch attached. It works for me on both 5.28.0 > and 5.29.4. > > Thank you very much. > Jim Keenan
Please review this patch so that this module can be classified as perl-5.30-ready. Thank you very much. Jim Keenan
On Sat Apr 13 22:21:00 2019, JKEENAN wrote: Show quoted text
> Please review this patch so that this module can be classified as > perl-5.30-ready.
I suggest instead the following patch, which is based around probing for the maximum length before the perl bug triggers. The change between 5.29.3 and 5.29.4 mereley changed the threashold. And it should also cope with the bug disappearing sometime in 5.31.x (now that I'm aware of it).
Subject: syntax_main.t.diff
--- t/syntax_main.t- 2019-04-24 11:47:08.365496801 +0100 +++ t/syntax_main.t 2019-04-24 12:01:50.459442769 +0100 @@ -35,16 +35,34 @@ # This code checks whether the regexp iteration limit bug (#60034) is # present. The regexp match expression checks for getting the wrong -# result with a long input, and suffices to diagnose the bug. However, -# running that test on a pre-5.10 perl causes the stack to grow large, +# result with a long input, and suffices to diagnose the bug. +# for a pattern like /X*/, where X is sub-pattern that can match variable +# length string, e.g. (ab?), it is currently known that: +# +# on < 5.10.0, the old recursive engine will crash on too long a match; +# on < 5.29.4, /X*/ is misinterpreted as /X{0,32767}/ +# on 5.29.4+, /X*/ is misinterpreted as /X{0,65535}/ +# +# Running that test on a pre-5.10 perl causes the stack to grow large, # and if there's a limited stack size then this may overflow it and # cause perl to crash. All pre-5.10 perls have the iteration limit # bug, so there's no need to run the proper test on those verions. # 5.10 fixed the stack issue, so it's safe to run the proper test there. -my $have_iterlimit_bug = "$]" < 5.010 || do { - local $SIG{__WARN__} = sub { }; - ("a"x40000) !~ /\A(?:X?[a-z])*\z/; -}; + +my $iterlimit; # if defined, sets an upper limit for iterations + +if ($] < 5.010) { + $iterlimit = 0; +} +else { + local $SIG{__WARN__} = sub { }; + for my $i (32767, 65535) { + if (("a"x($i+1)) !~ /\A(?:X?[a-z])*\z/) { + $iterlimit = $i; + last; + } + } +} my $data_in = IO::File->new("t/read.data", "r") or die; my $line = $data_in->getline; @@ -75,7 +93,7 @@ } SKIP: { skip "perl bug affects long inputs", 2 - if $have_iterlimit_bug && length($input) >= 32766; + if defined $iterlimit && length($input) >= $iterlimit; is upgraded($input) =~ $recogniser{$prod}, !$syntax_error; is downgraded($input) =~ $recogniser{$prod}, !$syntax_error; }
On 2019-04-24 17:39:54, davem@iabyn.com wrote: Show quoted text
> On Sat Apr 13 22:21:00 2019, JKEENAN wrote:
> > Please review this patch so that this module can be classified as > > perl-5.30-ready.
> > I suggest instead the following patch, which is based around probing > for the maximum length before the perl bug triggers. The change > between 5.29.3 and 5.29.4 mereley changed the threashold. And it > should also cope with the bug disappearing sometime in 5.31.x (now > that I'm aware of it).
This patch is now available through a CPAN distroprefs file for automatic patching on bleadperl: https://github.com/eserte/srezic-cpan-distroprefs/blob/a819e1aeb0faa2e800aa44c1c2d7392cf8458f2b/XML-Easy.yml
On Sat Apr 13 22:21:00 2019, JKEENAN wrote: Show quoted text
> On Tue Oct 23 10:06:33 2018, JKEENAN wrote:
> > On Tue Oct 23 09:45:19 2018, JKEENAN wrote:
> > > On Tue Oct 23 09:13:37 2018, JKEENAN wrote:
> > > > On Sun Oct 21 12:14:58 2018, JKEENAN wrote:
> > > > > Today, as part of assessing the perl-5.30-readiness of a > > > > > selected > > > > > subset of CPAN distributions (the "CPAN River 3000"), I > > > > > attempted > > > > > to > > > > > build and test XML-Easy on FreeBSD-11 against perl-5.29.4 using > > > > > 'cpanm' as the installer. I got a test failure which caused > > > > > XML- > > > > > Easy > > > > > to be graded FAIL. That grade in turn prevents any of XML- > > > > > Easy's > > > > > reverse dependencies from being reached in this testing process > > > > > or > > > > > from being installed by installers such as 'cpanm' or 'cpan'. > > > > > > > > > > ##### > > > > > $ ~/bin/perl/dumpjson ZEFRAM.XML-Easy-0.011.log.json > > > > > { > > > > > author => "ZEFRAM", > > > > > dist => "XML-Easy", > > > > > distname => "XML-Easy-0.011", > > > > > distversion => 0.011, > > > > > grade => "FAIL", > > > > > prereqs => undef, > > > > > test_output => [ > > > > > "Building and testing XML-Easy-0.011", > > > > > "Building XML-Easy", > > > > > "cc -I/home/jkeenan/var/tad/testing/perl- > > > > > 5.29.4/lib/5.29.4/amd64- > > > > > freebsd-thread-multi/CORE -DVERSION=\"0.011\" > > > > > -DXS_VERSION=\"0.011\" > > > > > -DPIC -fPIC -c -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno- > > > > > strict- > > > > > aliasing -pipe -fstack-protector-strong -I/usr/local/include > > > > > -D_FORTIFY_SOURCE=2 -O2 -pipe -fstack-protector -fno-strict- > > > > > aliasing > > > > > -o lib/XML/Easy.o lib/XML/Easy.c", > > > > > "ExtUtils::Mkbootstrap::Mkbootstrap('blib/arch/auto/XML/Easy/Easy.bs')", > > > > > "cc -shared -L/usr/local/lib -fstack-protector-strong -o > > > > > blib/arch/auto/XML/Easy/Easy.so lib/XML/Easy.o", > > > > > "t/classify.t ........ ok", > > > > > "t/classify_pp.t ..... ok", > > > > > "t/easy_module.t ..... ok", > > > > > "t/easy_module_pp.t .. ok", > > > > > "t/node_basics.t ..... ok", > > > > > "t/node_basics_pp.t .. ok", > > > > > "t/node_object.t ..... ok", > > > > > "t/node_object_pp.t .. ok", > > > > > "t/pod_cvg.t ......... ok", > > > > > "t/pod_cvg_pp.t ...... ok", > > > > > "t/pod_syn.t ......... ok", > > > > > "t/read.t ............ ok", > > > > > "t/read_pp.t ......... ok", > > > > > "WARNING: Complex regular subexpression recursion limit > > > > > (65534) > > > > > exceeded at t/syntax_main.t line 79, <GEN0> line 1635.", > > > > > "# Looks like your test exited with 25 just after 369.", > > > > > "t/syntax_main.t ..... ", > > > > > "Dubious, test returned 25 (wstat 6400, 0x1900)", > > > > > "Failed 640/1009 subtests ", > > > > > "t/version_synch.t ... ok", > > > > > "t/write.t ........... ok", > > > > > "t/write_pp.t ........ ok", > > > > > "", > > > > > "Test Summary Report", > > > > > "-------------------", > > > > > "t/syntax_main.t (Wstat: 6400 Tests: 369 Failed: 0)", > > > > > " Non-zero exit status: 25", > > > > > " Parse errors: Bad plan. You planned 1009 tests but ran > > > > > 369.", > > > > > "Files=17, Tests=100677, 47 wallclock secs ( 0.46 usr 7.45 > > > > > sys > > > > > + > > > > > 40.20 cusr 6.88 csys = 54.98 CPU)", > > > > > "Result: FAIL", > > > > > ], > > > > > via => "App::cpanminus::reporter 0.17 (1.7044)", > > > > > } > > > > > ##### > > > > > > > > > > Thank you very much. > > > > > Jim Keenan
> > > > > > > > I believe this is the unit in t/read.data where the exception is > > > > (first) encountered: > > > > > > > > ##### > > > > 1622-###d > > > > 1623:<a z="x$(~ > > > > 1624-)y"/> > > > > 1625-# > > > > 1626-bless( [ > > > > 1627- "a", > > > > 1628- { > > > > 1629- "z" => "x".(" "x40000)."y" > > > > 1630- }, > > > > 1631- bless( [ [ > > > > 1632- "" > > > > 1633- ] ], 'XML::Easy::Content' ) > > > > 1634-], 'XML::Easy::Element' ) > > > > #####
> > > > > > I note that if I run just this one test block with a 'prove' built > > > with perl-5.28 rather than perl-5.29.4, the tests are skipped: > > > > > > ##### > > > $ prove -vb t/syntax_main.t > > > t/syntax_main.t .. > > > 1..1009 > > > ok 1 - use XML::Easy::Syntax; > > > AAA: d > > > BBB: <a z="x$(~ > > > > > > ok 2 # skip perl bug affects long inputs > > > ok 3 # skip perl bug affects long inputs > > > ##### > > > > > > (Some debugging code thrown in.)
> > > > Please evaluate the patch attached. It works for me on both 5.28.0 > > and 5.29.4. > > > > Thank you very much. > > Jim Keenan
> > Please review this patch so that this module can be classified as > perl-5.30-ready. > > Thank you very much. > Jim Keenan
Still failing against perl-5.31.0 on FreeBSD-12. Please consider applying patch. Thank you very much. Jim Keenan