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

[FAILURE 5.005_60] Assertion failed: file "pp_ctl.c", line 2430, <DATA> line 212. #371

Comments

Copy link

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

Searchable as RT1206$

Copy link
Author

From @schwern

bash-2.02$ /usr/local/perl5.005_60/bin/perl -dw /usr/local/perl5.005_60/bin/pod2html

Loading DB routines from perl5db.pl version 1.0402
Emacs support available.

Enter h or `h h' for help.

Assertion failed​: file "pp_ctl.c", line 2430, <DATA> line 212.
Debugged program terminated. Use q to quit or R to restart,
  use O inhibit_exit to avoid stopping after program termination,
  h q, h R or h O to get additional info.
  DB<1>

This is just trying to run pod2html that comes with 5.005_60 under the
debugger with warnings on. Interestingly, it works without the
debugger on.

I brought the case down to​:

#!/usr/local/perl5.005_60/bin/perl
  eval 'exec /usr/local/perl5.005_60/bin/perl -S $0 ${1+"$@​"}'
  if $running_under_some_shell;

use Pod​::Html;

That's enough to get the assertation to fail. Strangely enough it
-has- to be Pod​::Html. I tried a few other modules and nothing seemed
to do it.

Maybe it just hates tchrist? ;)

Summary of my perl5 (revision 5.0 version 5 subversion 60) configuration​:
  Platform​:
  osname=linux, osvers=2.2.10, archname=i686-linux
  uname='linux athens 2.2.10 #3 smp mon aug 2 16​:48​:09 edt 1999 i686 unknown '
  config_args=''
  hint=recommended, useposix=true, d_sigaction=define
  usethreads=undef useperlio=undef d_sfio=undef
  use64bits=undef usemultiplicity=undef
  Compiler​:
  cc='cc', optimize='-g', gccversion=2.95 19990728 (release)
  cppflags='-Dbool=char -DHAS_BOOL -DDEBUGGING -DDEBUGGING_MSTATS -DDEBUGGING_OPS'
  ccflags ='-Dbool=char -DHAS_BOOL -DDEBUGGING -DDEBUGGING_MSTATS -DDEBUGGING_OPS'
  stdchar='char', d_stdstdio=define, usevfork=false
  intsize=4, longsize=4, ptrsize=4, doublesize=8
  d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
  alignbytes=4, usemymalloc=y, prototype=define
  Linker and Libraries​:
  ld='cc', ldflags =' -L/usr/local/lib'
  libpth=/usr/local/lib /lib /usr/lib
  libs=-lnsl -lndbm -lgdbm -ldbm -ldb -ldl -lm -lrt -lc -lposix -lcrypt
  libc=/lib/libc-2.1.2.so, so=so, useshrplib=false, libperl=libperl.a
  Dynamic Linking​:
  dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic'
  cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'

Characteristics of this binary (from libperl)​:
  Compile-time options​: DEBUGGING
  Built under linux
  Compiled at Aug 6 1999 23​:43​:33
  @​INC​:
  /usr/local/perl5.005_60/lib/i686-linux
  /usr/local/perl5.005_60/lib
  /usr/local/perl5.005_60/lib/site_perl/5.00560/i686-linux
  /usr/local/perl5.005_60/lib/site_perl
  .

--

Michael G Schwern schwern@​pobox.com
  http​://www.pobox.com/~schwern
  /(?​:(?​:(1)[.-]?)?\(?(\d{3})\)?[.-]?)?(\d{3})[.-]?(\d{4})(x\d+)?/i

Copy link
Author

From @schwern

Damnit, it happened again, this time in 5.005_61​:

$ /usr/local/perl5.005_61/bin/perl -Mblib -d t/fields.t

Loading DB routines from perl5db.pl version 1.0402
Emacs support available.

Enter h or `h h' for help.

Assertion failed​: file "pp_ctl.c", line 2430.
BEGIN failed--compilation aborted.
Debugged program terminated. Use q to quit or R to restart,
  use O inhibit_exit to avoid stopping after program termination,
  h q, h R or h O to get additional info.
  DB<1>

The assertation is​:
assert(CATCH_GET == TRUE)
which is just checking to see if PL_top_env->je_mustcatch is true (it isn't).

I found the following comment in scope.h which might prove useful​:
* je_mustcatch, when set at any runlevel to TRUE, means eval ops must
* establish a local jmpenv to handle exception traps. Care must be taken
* to restore the previous value of je_mustcatch before exiting the
* stack frame iff JMPENV_PUSH was not called in that stack frame.
* GSAR 97-03-27

I guess care wasn't taken. :(

Something in blib.pm is tripping the assertion, because if I use
-Iblib/lib instead of -Mblib I don't get the error.

For what its worth, here's a stack backtrace​:

#0 S_docatch (o=0x82ba1c8) at pp_ctl.c​:2427
#1 0x80e2e25 in Perl_pp_require () at pp_ctl.c​:3007
#2 0x80abbee in Perl_runops_debug () at run.c​:57
#3 0x805cecd in S_call_xbody (myop=0xbffff458, is_eval=0) at perl.c​:1347
#4 0x805c87e in perl_call_sv (sv=0x8234474, flags=2) at perl.c​:1235
#5 0x809e4ed in Perl_vwarn (pat=0x811a0e6 "%_", args=0xbffff4f8)
  at util.c​:1637
#6 0x809e640 in Perl_warn (pat=0x811a0e6 "%_") at util.c​:1672
#7 0x80e64dc in Perl_pp_warn () at pp_sys.c​:436
#8 0x80abbee in Perl_runops_debug () at run.c​:57
#9 0x805cecd in S_call_xbody (myop=0xbffff718, is_eval=0) at perl.c​:1347
#10 0x805ce74 in S_call_body (args=0xbffff6d4) at perl.c​:1331
#11 0x80d532e in Perl_vdefault_protect (excpt=0xbffff704,
  body=0x805ce40 <S_call_body>, args=0xbffff6b4) at scope.c​:44
#12 0x80d5260 in Perl_default_protect (excpt=0xbffff704,
  body=0x805ce40 <S_call_body>) at scope.c​:25
#13 0x805cb3e in perl_call_sv (sv=0x8136020, flags=6) at perl.c​:1266
#14 0x805ff24 in S_call_list_body (args=0xbffff890) at perl.c​:3045
#15 0x80d532e in Perl_vdefault_protect (excpt=0xbffff8a8,
  body=0x805fecc <S_call_list_body>, args=0xbffff874) at scope.c​:44
#16 0x80d5260 in Perl_default_protect (excpt=0xbffff8a8,
  body=0x805fecc <S_call_list_body>) at scope.c​:25
#17 0x805fbee in Perl_call_list (oldscope=1, paramList=0x81360c8)
  at perl.c​:2988
#18 0x8089694 in Perl_newSUB (floor=78, o=0x82639c8, proto=0x0,
  block=0x8136f88) at op.c​:4122
#19 0x8085955 in Perl_utilize (aver=1, floor=78, version=0x0, id=0x8135408,
  arg=0x0) at op.c​:2816
#20 0x807d265 in Perl_yyparse () at perly.y​:333
#21 0x805bcdb in S_parse_body (args=0xbffffb64) at perl.c​:953
#22 0x80d532e in Perl_vdefault_protect (excpt=0xbffffb74,
  body=0x805b350 <S_parse_body>, args=0xbffffb44) at scope.c​:44
#23 0x80d5260 in Perl_default_protect (excpt=0xbffffb74,
  body=0x805b350 <S_parse_body>) at scope.c​:25
#24 0x805b25f in perl_parse (my_perl=0x8128808, xsinit=0x8059778 <xs_init>,
  argc=4, argv=0xbffffc24, env=0x0) at perl.c​:632
#25 0x8059719 in main (argc=4, argv=0xbffffc24, env=0xbffffc38)
  at perlmain.c​:51

And the value of *PL_top_env at that point​:
{je_prev = 0xbffff7a0, je_buf = {{__jmpbuf = {64, 135090752, 1075154995,
  -1073744244, -1073744460, 135090921}, __mask_was_saved = 1,
  __saved_mask = {__val = {0, 0, 3221223288, 3221223148, 135090990,
  3221223220, 1, 3221223020, 134959818, 64, 1074949332, 135491584,
  134620189, 135466292, 0, 0, 3221223424, 64, 135090752, 1075154995,
  3221223148, 3221222932, 135090921, 1, 0, 0, 3221223136, 0, 4, 4, 16,
  0}}}}, je_ret = 0, je_mustcatch = 0 '\000', je_throw = 0}

Attached is a copy of the code which I was testing that caused the
problem. Its the complete directory tree, every file. Just cd into
Class-Fields and run /usr/local/perl5.005_61/bin/perl -Mblib -d
t/fields.t

--

Michael G Schwern schwern@​pobox.com
  http​://www.pobox.com/~schwern
  /(?​:(?​:(1)[.-]?)?\(?(\d{3})\)?[.-]?)?(\d{3})[.-]?(\d{4})(x\d+)?/i

Copy link
Author

From @schwern

Class-Fields.tar.gz

Copy link
Author

From The RT System itself

fixed in bleadperl DEVEL7093

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant