Skip Menu |
Report information
Id: 121761
Status: pending release
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


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