This is a bug report for perl from jdhe...@cpan.org,
generated with the help of perlbug 1.39 running under perl 5.11.0.
-----------------------------------------------------------------
[Please describe your issue here]
The following:
use threads;
sub foo {
return (sub { });
}
my $bar = threads->create(\&foo)->join();
threads->create(sub { })->join();
produces:
panic: del_backref during global destruction.
This bug was introduced with change 34354
(commit a49ba3fcbe357fbacf7b9898df08daa2cbdfc8c4)
Once fixed, the following can be added to t/op/threads.t:
# Test we don't get:
# panic: del_backref during global destruction.
fresh_perl_is(<<'EOI', 'ok', { }, 'Direct lookup hash for ->isa()');
use threads;
sub foo { return (sub { }); }
my $bar = threads->create(\&foo)->join();
threads->create(sub { })->join();
print "ok";
EOI
[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
category=core
severity=medium
---
Site configuration information for perl 5.11.0:
Configured by Jerry at Mon Nov 23 09:24:58 EST 2009.
Summary of my perl5 (revision 5 version 11 subversion 0 patch 34354)
configuration:
Platform:
osname=cygwin, osvers=1.5.25(0.15642), archname=cygwin-thread-multi-64int
uname='cygwin_nt-5.1 pn100-02-2-364p 1.5.25(0.15642) 2008-06-12
19:34 i686 cygwin '
config_args='-de -Dusedevel -Dversiononly=no -Dinstallusrbinperl
-Uusemallocwrap -Duse64bitint -Dusethreads -Dinc_version_list=none
-Dnoextensions=IPC/SysV Sys/Syslog Devel/DProf Devel/Peek re GDBM_File
NDBM_File ODBM_File Text/Soundex attrs Math/BigInt/FastCalc Time/Piece
-A append:ccflags= -DNO_MATHOMS -A define:optimize=-Os -pipe
-funit-at-a-time -march=pentium4 -mfpmath=sse -mieee-fp -mmmx -msse
-msse2'
hint=recommended, useposix=true, d_sigaction=define
useithreads=define, usemultiplicity=define
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=define, use64bitall=undef, uselongdouble=undef
usemymalloc=y, bincompat5005=undef
Compiler:
cc='gcc', ccflags ='-DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__
-DNO_MATHOMS -fno-strict-aliasing -pipe',
optimize='-Os -pipe -funit-at-a-time -march=pentium4 -mfpmath=sse
-mieee-fp -mmmx -msse -msse2',
cppflags='-DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -DNO_MATHOMS
-fno-strict-aliasing -pipe'
ccversion='', gccversion='3.4.4 (cygming special, gdc 0.12, using
dmd 0.125)', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long long', ivsize=8, nvtype='double', nvsize=8,
Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='g++', ldflags =' -Wl,--enable-auto-import
-Wl,--export-all-symbols -Wl,--stack,8388608
-Wl,--enable-auto-image-base -s -L/usr/local/lib'
libpth=/usr/local/lib /usr/lib /lib
libs=-lgdbm -ldl -lcrypt -lgdbm_compat
perllibs=-ldl -lcrypt
libc=/usr/lib/libc.a, so=dll, useshrplib=true, libperl=cygperl5_11_0.dll
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' -s'
cccdlflags=' ', lddlflags=' --shared -Wl,--enable-auto-import
-Wl,--export-all-symbols -Wl,--stack,8388608
-Wl,--enable-auto-image-base -s -L/usr/local/lib'
Locally applied patches:
DEVEL
---
@INC for perl 5.11.0:
lib
/usr/lib/perl5/5.11.0/cygwin
/usr/lib/perl5/5.11.0
/usr/lib/perl5/site_perl/5.11.0/cygwin
/usr/lib/perl5/site_perl/5.11.0
.
---
Environment for perl 5.11.0:
CYGWIN=ntsec
HOME=/home/jhedden
LANG=C
LANGUAGE=C
LC_ALL=C
LD_LIBRARY_PATH (unset)
LOGDIR (unset)
PATH=/home/jhedden/bin:/usr/local/src/perl/bin:/link/work/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/c/Program
Files/WiX:/c/djgpp/bin:/c/bb/tools/apache-ant-1.6.5/bin:/c/Program
Files/nant-0.85/bin:/c/bb/tools/jse5/bin:/c/dev-cpp/bin:/c/WINDOWS/system32:/c/WINDOWS:/c/WINDOWS/system32/WBEM:/c/blp/API/dde:/c/blp/API:/c/oracle/ora92/bin:/c/Program
Files/Oracle/jre/1.3.1/bin:/c/Program
Files/Oracle/jre/1.1.8/bin:/c/Program
Files/Hummingbird/Connectivity/7.10/Accessories:/usr/bin:/c/Program
Files/Windows Imaging/:.
PERLIO=perlio
PERL_BADLANG (unset)
SHELL (unset)
It get trickier. With commit 789c461534f3eb0346447f8127786b7da3017f6c
the bug "goes away". The only substantive thing that commit did was add
fatal_enabled() to warnings.pm. If I manually edit warnings.pm to remove
that function, the bug reappears.
I can't re-create this on any platform I have access to (Linux, OS X, FreeBSD),
with any revision I tried. (Just after the revision you report introduced it,
and with various recent revisions prior to 789c461534f3eb03).
Does this happen on any platform other than Cygwin?
Is it sensitive to external factors? For example, the number of environment
variables set?
Nicholas Clark
It get trickier. With commit 789c461534f3eb0346447f8127786b7da3017f6c
the bug "goes away". The only substantive thing that commit did was add
fatal_enabled() to warnings.pm. If I manually edit warnings.pm to remove
that function, the bug reappears.
Nicholas Clark wrote:
> I can't re-create this on any platform I have access to (Linux, OS X, FreeBSD),
> with any revision I tried. (Just after the revision you report introduced it,
> and with various recent revisions prior to 789c461534f3eb03).
>
> Does this happen on any platform other than Cygwin?
Yes. I can reproduce it with ActivePerl 5.10.1.
(I tried 5.10.1 under Solaris, but that did not reproduce the bug.)
At this point, should this issue still be blocking 5.12.0?
For that it's worth, my opinion is that this should be looked into and
fixed. It looks to be some internal bug that could potentially cause
threaded apps to become unusable.
On Wed, Dec 16, 2009 at 11:45:25AM -0500, Jerry D. Hedden wrote:
> On Tue, Dec 15, 2009 at 19:04, Jesse via RT <perlbug-...@perl.org> wrote:
> > On Sat Nov 28 13:59:06 2009, jdhe...@cpan.org wrote:
> >> Jerry D. Hedden wrote:
> >> > # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=70748 >
> >> >
> >> > I can't re-create this on any platform I have access to (Linux, OS X, FreeBSD),
> >> > with any revision I tried. (Just after the revision you report introduced it,
> >> > and with various recent revisions prior to 789c461534f3eb03).
> >
> > At this point, should this issue still be blocking 5.12.0?
>
> For that it's worth, my opinion is that this should be looked into and
> fixed. It looks to be some internal bug that could potentially cause
> threaded apps to become unusable.
>
[resent with perlbug on cc list]
I have absolutely no problem keeping it open. But it doesn't look like
it fits the criteria for blocking shipment of 5.12.0.
--