Skip Menu |
Report information
Id: 105930
Status: resolved
Priority: 0/
Queue: perl5

Owner: Nobody
Requestors: sprout <sprout [at]>

Operating System: All
PatchStatus: (no value)
Severity: low
Perl Version:
  • 5.15.5
  • 5.25.2
Fixed In: (no value)

Subject: eval 'UNITCHECK{die}' crashes inside FETCH
Date: Sun, 11 Dec 2011 13:44:28 -0800
To: perlbug [...]
From: Father Chrysostomos <sprout [...]>
Download (untitled) / with headers
text/plain 2.6k
$ 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: c071f8d7e26d951a082adc9cd79aae32680c01ae 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
To: perl5-porters [...]
Subject: Re: [perl #105930] eval 'UNITCHECK{die}' crashes inside FETCH
From: Zefram <zefram [...]>
Date: Sun, 26 Mar 2017 22:24:06 +0100
Download (untitled) / with headers
text/plain 585b
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
Subject: Re: [perl #105930] eval 'UNITCHECK{die}' crashes inside FETCH
Date: Thu, 1 Jun 2017 18:32:58 +0100
To: perl5-porters [...]
From: Zefram <zefram [...]>
Download (untitled) / with headers
text/plain 173b
I wrote: Show quoted text
>Fix implemented as branch zefram/early_catcher, which I intend to merge >early in 5.27.
Now merged to blead as d7e3f70f30811328d2f6ae57e5892deccf64d0b2. -zefram
Subject: Re: [perl #105930] eval 'UNITCHECK{die}' crashes inside FETCH
From: Zefram <zefram [...]>
To: perl5-porters [...]
Date: Wed, 13 Dec 2017 20:00:35 +0000
This was fixed six months ago, and the ticket can now be closed. -zefram

This service is sponsored and maintained by Best Practical Solutions and runs on infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at