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

Owner: Nobody
Requestors: efimov [at] reg.ru
Cc:
AdminCc:

Operating System: (no value)
PatchStatus: (no value)
Severity: low
Type: unknown
Perl Version: (no value)
Fixed In: 5.27.7



Subject: DESTROY no longer clobbers $@
To: perlbug [...] perl.org
Date: Tue, 29 Apr 2014 13:10:22 +0400
From: Victor Efimov <efimov [...] reg.ru>
Download (untitled) / with headers
text/plain 10.6k
There is a note in perlobj http://perldoc.perl.org/perlobj.html: === Because DESTROY methods can be called at any time, you should localize any global variables you might update in your DESTROY . In particular, if you use eval {} you should localize $@ , and if you use system or backticks you should localize $? . === but seems that was silently fixes somewhere in perl 5.14 ( I did not find note in perldelta). At leas for $@. === package MyClass; sub DESTROY { eval { 1; } }; package main; eval { my $obj = bless {}, 'MyClass'; die "foo"; }; print "Result: $@"; === prints "foo" after 5.14 Summary of my perl5 (revision 5 version 14 subversion 2) configuration: Platform: osname=linux, osvers=2.6.42-37-generic, archname=x86_64-linux-gnu-thread-multi uname='linux panlong 2.6.42-37-generic #58-ubuntu smp thu jan 24 15:28:10 utc 2013 x86_64 x86_64 x86_64 gnulinux ' config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=x86_64-linux-gnu -Dprefix=/usr -Dprivlib=/usr/share/perl/5.14 -Darchlib=/usr/lib/perl/5.14 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.14.2 -Dsitearch=/usr/local/lib/perl/5.14.2 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Duse64bitint -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm -Uusesfio -Uusenm -Ui_libutil -DDEBUGGING=-g -Doptimize=-O2 -Duseshrplib -Dlibperl=libperl.so.5.14.2 -des' hint=recommended, useposix=true, d_sigaction=define useithreads=define, usemultiplicity=define useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef use64bitint=define, use64bitall=define, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2 -g', cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include' ccversion='', gccversion='4.6.3', gccosandvers='' intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='cc', ldflags =' -fstack-protector -L/usr/local/lib' libpth=/usr/local/lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib /usr/lib libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt perllibs=-ldl -lm -lpthread -lc -lcrypt libc=, so=so, useshrplib=true, libperl=libperl.so.5.14.2 gnulibc_version='2.15' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' cccdlflags='-fPIC', lddlflags='-shared -O2 -g -L/usr/local/lib -fstack-protector' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP PERL_PRESERVE_IVUV USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF USE_REENTRANT_API Locally applied patches: DEBPKG:debian/arm_thread_stress_timeout - http://bugs.debian.org/501970 Raise the timeout of ext/threads/shared/t/stress.t to accommodate slower build hosts DEBPKG:debian/cpan_definstalldirs - Provide a sensible INSTALLDIRS default for modules installed from CPAN. DEBPKG:debian/db_file_ver - http://bugs.debian.org/340047 Remove overly restrictive DB_File version check. DEBPKG:debian/doc_info - Replace generic man(1) instructions with Debian-specific information. DEBPKG:debian/enc2xs_inc - http://bugs.debian.org/290336 Tweak enc2xs to follow symlinks and ignore missing @INC directories. DEBPKG:debian/errno_ver - http://bugs.debian.org/343351 Remove Errno version check due to upgrade problems with long-running processes. DEBPKG:debian/libperl_embed_doc - http://bugs.debian.org/186778 Note that libperl-dev package is required for embedded linking DEBPKG:fixes/respect_umask - Respect umask during installation DEBPKG:debian/writable_site_dirs - Set umask approproately for site install directories DEBPKG:debian/extutils_set_libperl_path - EU:MM: Set location of libperl.a to /usr/lib DEBPKG:debian/no_packlist_perllocal - Don't install .packlist or perllocal.pod for perl or vendor DEBPKG:debian/prefix_changes - Fiddle with *PREFIX and variables written to the makefile DEBPKG:debian/fakeroot - Postpone LD_LIBRARY_PATH evaluation to the binary targets. DEBPKG:debian/instmodsh_doc - Debian policy doesn't install .packlist files for core or vendor. DEBPKG:debian/ld_run_path - Remove standard libs from LD_RUN_PATH as per Debian policy. DEBPKG:debian/libnet_config_path - Set location of libnet.cfg to /etc/perl/Net as /usr may not be writable. DEBPKG:debian/m68k_thread_stress - http://bugs.debian.org/517938 http://bugs.debian.org/495826 Disable some threads tests on m68k for now due to missing TLS. DEBPKG:debian/mod_paths - Tweak @INC ordering for Debian DEBPKG:debian/module_build_man_extensions - http://bugs.debian.org/479460 Adjust Module::Build manual page extensions for the Debian Perl policy DEBPKG:debian/prune_libs - http://bugs.debian.org/128355 Prune the list of libraries wanted to what we actually need. DEBPKG:fixes/net_smtp_docs - [rt.cpan.org #36038] http://bugs.debian.org/100195 Document the Net::SMTP 'Port' option DEBPKG:debian/perlivp - http://bugs.debian.org/510895 Make perlivp skip include directories in /usr/local DEBPKG:debian/disable-zlib-bundling - Disable zlib bundling in Compress::Raw::Zlib DEBPKG:debian/cpanplus_definstalldirs - http://bugs.debian.org/533707 Configure CPANPLUS to use the site directories by default. DEBPKG:debian/cpanplus_config_path - Save local versions of CPANPLUS::Config::System into /etc/perl. DEBPKG:debian/deprecate-with-apt - http://bugs.debian.org/580034 Point users to Debian packages of deprecated core modules DEBPKG:fixes/hurd-ccflags - [a190e64] http://bugs.debian.org/587901 [perl #92244] Make hints/gnu.sh append to $ccflags rather than overriding them DEBPKG:debian/squelch-locale-warnings - http://bugs.debian.org/508764 Squelch locale warnings in Debian package maintainer scripts DEBPKG:debian/skip-upstream-git-tests - Skip tests specific to the upstream Git repository DEBPKG:fixes/extutils-cbuilder-cflags - [011e8fb] http://bugs.debian.org/624460 [perl #89478] Append CFLAGS and LDFLAGS to their Config.pm counterparts in EU::CBuilder DEBPKG:fixes/module-build-home-directory - http://bugs.debian.org/624850 [rt.cpan.org #67893] Fix failing tilde test when run under a UID without a passwd entry DEBPKG:debian/patchlevel - http://bugs.debian.org/567489 List packaged patches for 5.14.2-6ubuntu2.4 in patchlevel.h DEBPKG:fixes/h2ph-multiarch - [e7ec705] http://bugs.debian.org/625808 [perl #90122] Make h2ph correctly search gcc include directories DEBPKG:fixes/index-tainting - [3b36395] http://bugs.debian.org/291450 [perl #64804] RT 64804: tainting with index() of a constant DEBPKG:debian/skip-kfreebsd-crash - http://bugs.debian.org/628493 [perl #96272] Skip a crashing test case in t/op/threads.t on GNU/kFreeBSD DEBPKG:fixes/document_makemaker_ccflags - http://bugs.debian.org/628522 [rt.cpan.org #68613] Document that CCFLAGS should include $Config{ccflags} DEBPKG:fixes/sys-syslog-socket-timeout-kfreebsd.patch - http://bugs.debian.org/627821 [rt.cpan.org #69997] Use a socket timeout on GNU/kFreeBSD to catch ICMP port unreachable messages DEBPKG:fixes/hurd-hints - http://bugs.debian.org/636609 Improve general GNU hints, needed for GNU/Hurd. DEBPKG:fixes/pod_fixes - [7698aed] http://bugs.debian.org/637816 Fix typos in several pod/perl*.pod files DEBPKG:debian/find_html2text - http://bugs.debian.org/640479 Configure CPAN::Distribution with correct name of html2text DEBPKG:fixes/digest_eval_hole - http://bugs.debian.org/644108 Close the eval "require $module" security hole in Digest->new($algorithm) DEBPKG:fixes/hurd-ndbm - [f0d0a20] [perl #102680] http://bugs.debian.org/645989 Add GNU/Hurd hints for NDBM_File DEBPKG:fixes/sysconf.t-posix - [8040185] [perl #102888] http://bugs.debian.org/646016 Fix hang in ext/POSIX/t/sysconf.t on GNU/Hurd DEBPKG:fixes/hurd-largefile - [1fda587] [perl #103014] http://bugs.debian.org/645790 enable LFS on GNU/Hurd DEBPKG:debian/hurd_test_todo_syslog - http://bugs.debian.org/650093 Disable failing GNU/Hurd tests in cpan/Sys-Syslog/t/syslog.t DEBPKG:fixes/hurd_skip_itimer_virtual - [rt.cpan.org #72754] http://bugs.debian.org/650094 Skip interval timer tests in Time::HiRes on GNU/Hurd DEBPKG:debian/hurd_test_skip_socketpair - http://bugs.debian.org/650186 Disable failing GNU/Hurd tests ext/Socket/t/socketpair.t DEBPKG:debian/hurd_test_skip_sigdispatch - http://bugs.debian.org/650188 Disable failing GNU/Hurd tests op/sigdispatch.t DEBPKG:debian/hurd_test_skip_stack - http://bugs.debian.org/650175 Disable failing GNU/Hurd tests dist/threads/t/stack.t DEBPKG:debian/hurd_test_skip_recv - http://bugs.debian.org/650095 Disable failing GNU/Hurd tests cpan/autodie/t/recv.t DEBPKG:debian/hurd_test_skip_libc - http://bugs.debian.org/650097 Disable failing GNU/Hurd tests dist/threads/t/libc.t DEBPKG:debian/hurd_test_skip_pipe - http://bugs.debian.org/650187 Disable failing GNU/Hurd tests io/pipe.t DEBPKG:debian/hurd_test_skip_io_pipe - http://bugs.debian.org/650096 Disable failing GNU/Hurd tests dist/IO/t/io_pipe.t DEBPKG:fixes/CVE-2012-5195 - avoid calling memset with a negative count DEBPKG:fixes/CVE-2012-5526 - [PATCH 1/4] CR escaping for P3P header DEBPKG:CVE-2013-1667.patch - [PATCH] Prevent premature hsplit() calls, and only trigger REHASH after hsplit() DEBPKG:CVE-2012-6329.patch - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=695224 [1735f6f] fix arbitrary command execution via _compile function in Maketext.pm Built under linux Compiled at Feb 4 2014 23:11:19 %ENV: PERLBREW_BASHRC_VERSION="0.67" PERLBREW_HOME="/home/vse/.perlbrew" PERLBREW_MANPATH="" PERLBREW_PATH="/home/perlbrew/bin" PERLBREW_ROOT="/home/perlbrew" PERLBREW_VERSION="0.67" @INC: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 114b
From: Karl Williamson <public [...] khwilliamson.com>
Subject: Re: [perl #121761] DESTROY no longer clobbers $@
CC: perl5-porters [...] perl.org
To: perlbug-followup [...] perl.org
Date: Wed, 30 Apr 2014 11:53:49 -0600
Download (untitled) / with headers
text/plain 321b
On 04/30/2014 11:08 AM, Steve Hay via RT wrote: Show quoted text
> This was documented in perl5140delta.pod: > > https://metacpan.org/source/RJBS/perl-5.18.2/pod/perl5140delta.pod#L350 > > --- > via perlbug: queue: perl5 status: new > https://rt.perl.org/Ticket/Display.html?id=121761 >
But shouldn't we update perlobj to be accurate?
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 449b
On Wed Apr 30 10:54:23 2014, public@khwilliamson.com wrote: Show quoted text
> On 04/30/2014 11:08 AM, Steve Hay via RT wrote:
> > This was documented in perl5140delta.pod: > > > > https://metacpan.org/source/RJBS/perl-5.18.2/pod/perl5140delta.pod#L350 > > > > --- > > via perlbug: queue: perl5 status: new > > https://rt.perl.org/Ticket/Display.html?id=121761 > >
> > But shouldn't we update perlobj to be accurate? >
Ah yes, good point. Sorry, too hasty there.
Date: Wed, 30 Apr 2014 21:25:49 +0400
To: perlbug-followup [...] perl.org
Subject: Re: [perl #121761] DESTROY no longer clobbers $@
From: Victor Efimov <efimov [...] reg.ru>
Download (untitled) / with headers
text/plain 245b
Ok, indeed. But perldoc perlobj is now incorrect. 2014-04-30 21:08 GMT+04:00 Steve Hay via RT <perlbug-followup@perl.org>: Show quoted text
> This was documented in perl5140delta.pod: > > https://metacpan.org/source/RJBS/perl-5.18.2/pod/perl5140delta.pod#L350
From: Ricardo Signes <perl.p5p [...] rjbs.manxome.org>
CC: perlbug-followup [...] perl.org, perl5-porters [...] perl.org
To: Karl Williamson <public [...] khwilliamson.com>
Date: Mon, 5 May 2014 10:27:24 -0400
Subject: Re: [perl #121761] DESTROY no longer clobbers $@
Download (untitled) / with headers
text/plain 455b
* Karl Williamson <public@khwilliamson.com> [2014-04-30T13:53:49] Show quoted text
> > But shouldn't we update perlobj to be accurate? >
Absolutely. My recollection (I apologize for not doing the research right now) is that Zefram said that the behavior has been fixed/changed *in most cases*, so I'm not sure whether we're better off removing the suggestion of localization or leaving it in. Perhaps someone can refresh my memory or clarify the situation. -- rjbs
Download signature.asc
application/pgp-signature 473b

Message body not shown because it is not plain text.

From: Steve Hay <steve.m.hay [...] googlemail.com>
Date: Fri, 9 May 2014 14:39:16 +0100
To: Ricardo Signes <perl.p5p [...] rjbs.manxome.org>
CC: Karl Williamson <public [...] khwilliamson.com>, Tony Cook via RT <perlbug-followup [...] perl.org>, "perl5-porters [...] perl.org" <perl5-porters [...] perl.org>
Subject: Re: [perl #121761] DESTROY no longer clobbers $@
Download (untitled) / with headers
text/plain 699b
On 5 May 2014 15:27, Ricardo Signes <perl.p5p@rjbs.manxome.org> wrote: Show quoted text
> * Karl Williamson <public@khwilliamson.com> [2014-04-30T13:53:49]
>> >> But shouldn't we update perlobj to be accurate? >>
> > Absolutely. My recollection (I apologize for not doing the research right now) > is that Zefram said that the behavior has been fixed/changed *in most cases*, > so I'm not sure whether we're better off removing the suggestion of > localization or leaving it in. > > Perhaps someone can refresh my memory or clarify the situation. >
Is it this thread you're thinking of? http://code.activestate.com/lists/perl5-porters/170135/ There are a couple of outstanding problems still mentioned there...
Subject: Re: [perl #121761] DESTROY no longer clobbers $@
CC: Karl Williamson <public [...] khwilliamson.com>, Tony Cook via RT <perlbug-followup [...] perl.org>, "perl5-porters [...] perl.org" <perl5-porters [...] perl.org>
Date: Thu, 5 Jun 2014 22:10:35 -0400
From: Ricardo Signes <perl.p5p [...] rjbs.manxome.org>
To: Steve Hay <steve.m.hay [...] googlemail.com>
Download (untitled) / with headers
text/plain 803b
* Steve Hay <steve.m.hay@googlemail.com> [2014-05-09T09:39:16] Show quoted text
> On 5 May 2014 15:27, Ricardo Signes <perl.p5p@rjbs.manxome.org> wrote:
> > Absolutely. My recollection (I apologize for not doing the research right now) > > is that Zefram said that the behavior has been fixed/changed *in most cases*, > > so I'm not sure whether we're better off removing the suggestion of > > localization or leaving it in. > > > > Perhaps someone can refresh my memory or clarify the situation.
> > Is it this thread you're thinking of? > > http://code.activestate.com/lists/perl5-porters/170135/ > > There are a couple of outstanding problems still mentioned there...
I believe it is. Having re-read that, I believe the clobbering problem is generally fixed, and that the other problems are distinct. -- rjbs
Download signature.asc
application/pgp-signature 473b

Message body not shown because it is not plain text.

From: Zefram <zefram [...] fysh.org>
Subject: Re: [perl #121761] Update perlobj because DESTROY no longer clobbers $@
To: perl5-porters [...] perl.org
Date: Wed, 13 Dec 2017 03:54:37 +0000
Fixed in commit addf67e13a08f45d3bb4c245c821b1ef2767c5a5. -zefram
Download (untitled) / with headers
text/plain 317b
Thank you for filing this report. You have helped make Perl better. With the release yesterday of Perl 5.28.0, this and 185 other issues have been resolved. Perl 5.28.0 may be downloaded via: https://metacpan.org/release/XSAWYERX/perl-5.28.0 If you find that the problem persists, feel free to reopen this ticket.


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

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