Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Blead breaks CPAN: 2abbd513b8 breaks MP3::Tag #16901

Closed
p5pRT opened this issue Mar 22, 2019 · 8 comments
Closed

Blead breaks CPAN: 2abbd513b8 breaks MP3::Tag #16901

p5pRT opened this issue Mar 22, 2019 · 8 comments
Labels
BBC Blead Breaks CPAN - changes in blead broke a cpan module(s) type-regex
Milestone

Comments

@p5pRT
Copy link

p5pRT commented Mar 22, 2019

Migrated from rt.perl.org#133948 (status was 'resolved')

Searchable as RT133948$

@p5pRT
Copy link
Author

p5pRT commented Mar 22, 2019

From @jkeenan

As reported to the perl5-porters newsgroup earlier today, I noticed test
failures in MP3-Tag when building it as part of the CPAN-River-3000 run
kicked off yesterday after the release of perl-5.29.9. Since I was not
immediately certain that the fault lay in blead, and since this module
is throwing a lot of "deprecated in perl-5.32" warnings, I began by
simply opening this bug ticket​:

https://rt.cpan.org/Ticket/Display.html?id=128915

The module proved difficult to bisect because its build process requires
the user to respond to prompts.

Eventually, with the following bisection command​:

#####
perl Porting/bisect.pl -Uuseithreads --start=v5.29.8 --end=v5.29.9
--module=MP3​::Tag
#####

... I was able to identify a problematic commit​:

#####
HEAD is now at 2abbd51 Implement variable length lookbehind in regex
patterns
bad - non-zero exit from /tmp/YJl89Q_BUW/bin/perl -I /home/jkeenan/.cpan
-MCPAN​::MyConfig -MCPAN -e
$CPAN​::Config->{build_dir}=q{/tmp/hAZueFfERu}; -e install('MP3​::Tag');
die unless CPAN​::Shell->expand(Module => 'MP3​::Tag')->uptodate;
2abbd51 is the first bad commit
commit 2abbd51
Author​: Karl Williamson <khw@​cpan.org>
Date​: Sun Mar 17 21​:06​:10 2019 -0600

  Implement variable length lookbehind in regex patterns

  See [perl #132367].

:040000 040000 7448ad0bab5d8be805d1e8909c1a10339fafa173
8a633adba6c841e8a9ba2cbda1e6e660d9a1d3dc M pod
:100644 100644 658896f6150002907ba830c3743457189523b51f
275945c388f51a00c8692b849e4007efbf64610b M regcomp.c
:100644 100644 4b9a42c3381f1f340c5210634b61308ce8ec3522
11cf43f4293368558c39902d4137ee4f4f470e6a M regcomp.sym
:100644 100644 f72503e54ae3fc44735991ad88f3b637a19abd87
cafc6b795a204d471caa5cb95eee41ad0003e981 M regexec.c
:100644 100644 9d43083a4098781e2faa15a3a9d14400d3c72ca4
45f64e8cdb4ab3b82d6a3aa337990c40fae07445 M regexp.h
:100644 100644 3b53c1715fe9868506e44eedbe50c33870c1bc94
803938ac480bf73e9ccd0721e9f8e1445e9c92b1 M regnodes.h
:040000 040000 b87dcbd6cf55a137f71309b57ac7047965984a9c
47b04175b15a8325d52c64f9f230ce18291b4eaf M t
bisect run success
That took 1277 seconds.
#####

I then manually built perl and cpanm at this commit and tried to install
MP3​::Tag. I got a FAIL. Doing the same at the immediately preceding
commit, I got a PASS.

Note that these were threaded builds, which is how I customarily test on
this platform. I have not yet tried unthreaded builds.

Karl, can you take a look?

Thank you very much.
Jim Keenan

@p5pRT
Copy link
Author

p5pRT commented Mar 22, 2019

From @jkeenan

Summary of my perl5 (revision 5 version 29 subversion 9) configuration​:
  Commit id​: 2abbd51
  Platform​:
  osname=freebsd
  osvers=11.2-stable
  archname=amd64-freebsd-thread-multi
  uname='freebsd perlmonger.nycbug.org 11.2-stable freebsd 11.2-stable #0 r339445​: sat oct 20 00​:08​:11 utc 2018 root@​perlmonger.nycbug.org​:usrobjusrsrcsysgeneric amd64 '
  config_args='-des -Dusedevel -Duseithreads -Dprefix=/home/jkeenan/testing/2abbd513b8 -Uversiononly -Dman1dir=none -Dman3dir=none'
  hint=recommended
  useposix=true
  d_sigaction=define
  useithreads=define
  usemultiplicity=define
  use64bitint=define
  use64bitall=define
  uselongdouble=undef
  usemymalloc=n
  default_inc_excludes_dot=define
  bincompat5005=undef
  Compiler​:
  cc='cc'
  ccflags ='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_FORTIFY_SOURCE=2'
  optimize='-O2'
  cppflags='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
  ccversion=''
  gccversion='4.2.1 Compatible FreeBSD Clang 6.0.1 (tags/RELEASE_601/final 335540)'
  gccosandvers=''
  intsize=4
  longsize=8
  ptrsize=8
  doublesize=8
  byteorder=12345678
  doublekind=3
  d_longlong=define
  longlongsize=8
  d_longdbl=define
  longdblsize=16
  longdblkind=3
  ivtype='long'
  ivsize=8
  nvtype='double'
  nvsize=8
  Off_t='off_t'
  lseeksize=8
  alignbytes=8
  prototype=define
  Linker and Libraries​:
  ld='cc'
  ldflags ='-pthread -Wl,-E -fstack-protector-strong -L/usr/local/lib'
  libpth=/usr/lib /usr/local/lib /usr/lib/clang/6.0.1/lib /usr/lib
  libs=-lpthread -lgdbm -ldl -lm -lcrypt -lutil
  perllibs=-lpthread -ldl -lm -lcrypt -lutil
  libc=
  so=so
  useshrplib=false
  libperl=libperl.a
  gnulibc_version=''
  Dynamic Linking​:
  dlsrc=dl_dlopen.xs
  dlext=so
  d_dlsymun=undef
  ccdlflags=' '
  cccdlflags='-DPIC -fPIC'
  lddlflags='-shared -L/usr/local/lib -fstack-protector-strong'

Characteristics of this binary (from libperl)​:
  Compile-time options​:
  HAS_TIMES
  MULTIPLICITY
  PERLIO_LAYERS
  PERL_COPY_ON_WRITE
  PERL_DONT_CREATE_GVSV
  PERL_IMPLICIT_CONTEXT
  PERL_MALLOC_WRAP
  PERL_OP_PARENT
  PERL_PRESERVE_IVUV
  PERL_USE_DEVEL
  USE_64_BIT_ALL
  USE_64_BIT_INT
  USE_ITHREADS
  USE_LARGE_FILES
  USE_LOCALE
  USE_LOCALE_COLLATE
  USE_LOCALE_CTYPE
  USE_LOCALE_NUMERIC
  USE_LOCALE_TIME
  USE_PERLIO
  USE_PERL_ATOF
  USE_REENTRANT_API
  Built under freebsd
  Compiled at Mar 22 2019 17​:34​:34
  %ENV​:
  PERL2DIR="/home/jkeenan/gitwork/perl2"
  PERL_WORKDIR="/home/jkeenan/gitwork/perl"
  @​INC​:
  lib
  /home/jkeenan/testing/2abbd513b8/lib/perl5/site_perl/5.29.9/amd64-freebsd-thread-multi
  /home/jkeenan/testing/2abbd513b8/lib/perl5/site_perl/5.29.9
  /home/jkeenan/testing/2abbd513b8/lib/perl5/5.29.9/amd64-freebsd-thread-multi
  /home/jkeenan/testing/2abbd513b8/lib/perl5/5.29.9

@p5pRT
Copy link
Author

p5pRT commented Mar 22, 2019

From @khwilliamson

On 3/22/19 11​:51 AM, James E Keenan (via RT) wrote​:

# New Ticket Created by James E Keenan
# Please include the string​: [perl #133948]
# in the subject line of all future correspondence about this issue.
# <URL​: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=133948 >

As reported to the perl5-porters newsgroup earlier today, I noticed test
failures in MP3-Tag when building it as part of the CPAN-River-3000 run
kicked off yesterday after the release of perl-5.29.9. Since I was not
immediately certain that the fault lay in blead, and since this module
is throwing a lot of "deprecated in perl-5.32" warnings, I began by
simply opening this bug ticket​:

https://rt.cpan.org/Ticket/Display.html?id=128915

The module proved difficult to bisect because its build process requires
the user to respond to prompts.

Eventually, with the following bisection command​:

#####
perl Porting/bisect.pl -Uuseithreads --start=v5.29.8 --end=v5.29.9
--module=MP3​::Tag
#####

... I was able to identify a problematic commit​:

#####
HEAD is now at 2abbd51 Implement variable length lookbehind in regex
patterns
bad - non-zero exit from /tmp/YJl89Q_BUW/bin/perl -I /home/jkeenan/.cpan
-MCPAN​::MyConfig -MCPAN -e
$CPAN​::Config->{build_dir}=q{/tmp/hAZueFfERu}; -e install('MP3​::Tag');
die unless CPAN​::Shell->expand(Module => 'MP3​::Tag')->uptodate;
2abbd51 is the first bad commit
commit 2abbd51
Author​: Karl Williamson <khw@​cpan.org>
Date​: Sun Mar 17 21​:06​:10 2019 -0600

  Implement variable length lookbehind in regex patterns

  See \[perl \#132367\]\.

This should be fixed by

commit 39ce401
  Author​: Karl Williamson <khw@​cpan.org>
  Date​: Fri Mar 22 14​:54​:33 2019 -0600

  PATCH​: [perl #133984] Failure in lookbehind

  I thought that lookbehind assertions weren't supposed to look
beyond the
  current position; but this CPAN module demonstrates that they can look
  ahead as well.

  I built some infrastructure to prevent them from looking ahead. In
  part, this is because Unicode recommends that pattern matching
have the
  ability to restrict the area of the target being matched. That
  infrastructure is not needed at this time. But I think we should
leave
  it in for now anyway, as we see what other bugs the variable length
  lookbehind changes may have caused.

  So this patch just takes the easy way out, and at the place where it
  would restrict the area searched, it uses the full width. It's a one
  line change.

@p5pRT
Copy link
Author

p5pRT commented Mar 22, 2019

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Mar 22, 2019

From @jkeenan

On 3/22/19 5​:02 PM, Karl Williamson wrote​:

On 3/22/19 11​:51 AM, James E Keenan (via RT) wrote​:

# New Ticket Created by  James E Keenan
# Please include the string​:  [perl #133948]
# in the subject line of all future correspondence about this issue.
# <URL​: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=133948 >

As reported to the perl5-porters newsgroup earlier today, I noticed test
failures in MP3-Tag when building it as part of the CPAN-River-3000 run
kicked off yesterday after the release of perl-5.29.9.  Since I was not
immediately certain that the fault lay in blead, and since this module
is throwing a lot of "deprecated in perl-5.32" warnings, I began by
simply opening this bug ticket​:

https://rt.cpan.org/Ticket/Display.html?id=128915

The module proved difficult to bisect because its build process requires
the user to respond to prompts.

Eventually, with the following bisection command​:

#####
perl Porting/bisect.pl -Uuseithreads --start=v5.29.8 --end=v5.29.9
--module=MP3​::Tag
#####

... I was able to identify a problematic commit​:

#####
HEAD is now at 2abbd51 Implement variable length lookbehind in regex
patterns
bad - non-zero exit from /tmp/YJl89Q_BUW/bin/perl -I /home/jkeenan/.cpan
-MCPAN​::MyConfig -MCPAN -e
$CPAN​::Config->{build_dir}=q{/tmp/hAZueFfERu}; -e install('MP3​::Tag');
die unless CPAN​::Shell->expand(Module => 'MP3​::Tag')->uptodate;
2abbd51 is the first bad commit
commit 2abbd51
Author​: Karl Williamson <khw@​cpan.org>
Date​:   Sun Mar 17 21​:06​:10 2019 -0600

      Implement variable length lookbehind in regex patterns

      See [perl #132367].

This should be fixed by

commit 39ce401
 Author​: Karl Williamson <khw@​cpan.org>
 Date​:   Fri Mar 22 14​:54​:33 2019 -0600

     PATCH​: [perl #133984] Failure in lookbehind

     I thought that lookbehind assertions weren't supposed to look
beyond the
     current position; but this CPAN module demonstrates that they can
look
     ahead as well.

     I built some infrastructure to prevent them from looking ahead.  In
     part, this is because Unicode recommends that pattern matching
have the
     ability to restrict the area of the target being matched.  That
     infrastructure is not needed at this time.  But I think we should
leave
     it in for now anyway, as we see what other bugs the variable length
     lookbehind changes may have caused.

     So this patch just takes the easy way out, and at the place where it
     would restrict the area searched, it uses the full width.  It's a one
     line change.

Looks good to me.

#####
[blead] $ ./bin/perl -Ilib -V​:config_args
config_args='-des -Dusedevel -Uversiononly
-Dprefix=/home/jkeenan/testing/blead -Dman1dir=none -Dman3dir=none
-Duseithreads -Doptimize=-O2 -pipe -fstack-protector -fno-strict-aliasing';

[blead] $ ./bin/cpanm MP3​::Tag
--> Working on MP3​::Tag
Fetching
http​://www.cpan.org/authors/id/I/IL/ILYAZ/modules/MP3-Tag-1.14.tar.gz ... OK
Configuring MP3-Tag-1.14 ... OK
Building and testing MP3-Tag-1.14 ... OK
Successfully installed MP3-Tag-1.14
1 distribution installed
#####

But we should leave this RT open for a while to see what other breakage
occurs.

Thank you very much.
Jim Keenan

@p5pRT
Copy link
Author

p5pRT commented Apr 24, 2019

From @iabyn

On Fri, Mar 22, 2019 at 06​:35​:32PM -0400, James E Keenan wrote​:

On 3/22/19 5​:02 PM, Karl Williamson wrote​:

This should be fixed by

commit 39ce401
 Author​: Karl Williamson <khw@​cpan.org>
 Date​:   Fri Mar 22 14​:54​:33 2019 -0600

     PATCH​: [perl #133984] Failure in lookbehind

Looks good to me.
....

But we should leave this RT open for a while to see what other breakage
occurs.

I think this ticket can be closed now.

--
"Procrastination grows to fill the available time"
  -- Mitchell's corollary to P

@p5pRT
Copy link
Author

p5pRT commented Apr 24, 2019

From @jkeenan

On Wed, 24 Apr 2019 13​:48​:42 GMT, davem wrote​:

On Fri, Mar 22, 2019 at 06​:35​:32PM -0400, James E Keenan wrote​:

On 3/22/19 5​:02 PM, Karl Williamson wrote​:

This should be fixed by

commit 39ce401
 Author​: Karl Williamson <khw@​cpan.org>
 Date​:   Fri Mar 22 14​:54​:33 2019 -0600

     PATCH​: [perl #133984] Failure in lookbehind

Looks good to me.
....

But we should leave this RT open for a while to see what other breakage
occurs.

I think this ticket can be closed now.

Agreed. Closing. Thanks.

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

@p5pRT
Copy link
Author

p5pRT commented Apr 24, 2019

@jkeenan - Status changed from 'open' to 'resolved'

@p5pRT p5pRT closed this as completed Apr 24, 2019
@p5pRT p5pRT added BBC Blead Breaks CPAN - changes in blead broke a cpan module(s) Severity Low type-regex labels Oct 19, 2019
@toddr toddr added this to the 5.30.0 milestone Oct 26, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BBC Blead Breaks CPAN - changes in blead broke a cpan module(s) type-regex
Projects
None yet
Development

No branches or pull requests

2 participants