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

eval 'UNITCHECK{die}' crashes inside FETCH #11804

Closed
p5pRT opened this issue Dec 11, 2011 · 6 comments
Closed

eval 'UNITCHECK{die}' crashes inside FETCH #11804

p5pRT opened this issue Dec 11, 2011 · 6 comments

Comments

@p5pRT
Copy link
Collaborator

@p5pRT p5pRT commented Dec 11, 2011

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

Searchable as RT105930$

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Dec 11, 2011

From @cpansprout

$ perl5.15.5 -le'sub FETCH{ eval "UNITCHECK{die}"} sub TIESCALAR{bless[]} tie $x, ""; "$x"'
Segmentation fault

I think DB​::postponed might be affected the same way, but I’m not sure.

This is related to #23810.


Flags​:
  category=core
  severity=low


Site configuration information for perl 5.15.5​:

Configured by sprout at Sat Nov 26 11​:40​:22 PST 2011.

Summary of my perl5 (revision 5 version 15 subversion 5) configuration​:
  Snapshot of​: c071f8d
  Platform​:
  osname=darwin, osvers=10.5.0, archname=darwin-thread-multi-2level
  uname='darwin pint.local 10.5.0 darwin kernel version 10.5.0​: fri nov 5 23​:20​:39 pdt 2010; root​:xnu-1504.9.17~1release_i386 i386 '
  config_args='-de -Dusedevel -Duseithreads -Dmad'
  hint=recommended, useposix=true, d_sigaction=define
  useithreads=define, usemultiplicity=define
  useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
  use64bitint=undef, use64bitall=undef, uselongdouble=undef
  usemymalloc=n, bincompat5005=undef
  Compiler​:
  cc='cc', ccflags ='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include',
  optimize='-O3',
  cppflags='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
  ccversion='', gccversion='4.2.1 (Apple Inc. build 5664)', gccosandvers=''
  intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
  d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
  ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
  alignbytes=8, prototype=define
  Linker and Libraries​:
  ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags =' -fstack-protector -L/usr/local/lib'
  libpth=/usr/local/lib /usr/lib
  libs=-ldbm -ldl -lm -lutil -lc
  perllibs=-ldl -lm -lutil -lc
  libc=, so=dylib, useshrplib=false, libperl=libperl.a
  gnulibc_version=''
  Dynamic Linking​:
  dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
  cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup -L/usr/local/lib -fstack-protector'

Locally applied patches​:
 


@​INC for perl 5.15.5​:
  /usr/local/lib/perl5/site_perl/5.15.5/darwin-thread-multi-2level
  /usr/local/lib/perl5/site_perl/5.15.5
  /usr/local/lib/perl5/5.15.5/darwin-thread-multi-2level
  /usr/local/lib/perl5/5.15.5
  /usr/local/lib/perl5/site_perl
  .


Environment for perl 5.15.5​:
  DYLD_LIBRARY_PATH (unset)
  HOME=/Users/sprout
  LANG=en_US.UTF-8
  LANGUAGE (unset)
  LD_LIBRARY_PATH (unset)
  LOGDIR (unset)
  PATH=/usr/bin​:/bin​:/usr/sbin​:/sbin​:/usr/local/bin​:/usr/X11/bin​:/usr/local/bin
  PERL_BADLANG (unset)
  SHELL=/bin/bash

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Mar 26, 2017

From zefram@fysh.org

The problem is that the lazy setup of the exception-catching jmpenv is
too lazy. During UNITCHECK the eval frame is set up, apparently providing
the destination for exceptions, but it's pointing at whatever jmpenv
happened to be on top of the stack, whether or not it's able to handle
catching for that eval frame. The fix is to set up catchers earlier​:
it can still be lazy, but to be safe the catcher should always be in
place before the eval frame is pushed onto the context stack.

Fix implemented as branch zefram/early_catcher, which I intend to merge
early in 5.27.

-zefram

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Mar 26, 2017

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

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Jun 1, 2017

From zefram@fysh.org

I wrote​:

Fix implemented as branch zefram/early_catcher, which I intend to merge
early in 5.27.

Now merged to blead as d7e3f70.

-zefram

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Dec 13, 2017

From zefram@fysh.org

This was fixed six months ago, and the ticket can now be closed.

-zefram

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Dec 14, 2017

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

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

Successfully merging a pull request may close this issue.

None yet
1 participant
You can’t perform that action at this time.