Front page | perl.perl5.porters |
Postings from January 2012
[perl #108994] certain objects crash SvPVutf8()
Thread Previous
From:
Ricardo SIGNES
Date:
January 24, 2012 19:05
Subject:
[perl #108994] certain objects crash SvPVutf8()
Message ID:
rt-3.6.HEAD-14510-1327460718-563.108994-75-0@perl.org
# New Ticket Created by Ricardo SIGNES
# Please include the string: [perl #108994]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=108994 >
This is a bug report for perl from rjbs@cpan.org,
generated with the help of perlbug 1.39 running under perl 5.14.2.
-----------------------------------------------------------------
[Please describe your issue here]
I am reporting thus bug on behalf of Andrew Dunstan <andrew@dunslane.net>
He is a programmer with PostgreSQL.
Essentially, the problem is the one seen in this email thread:
<http://archives.postgresql.org/pgsql-hackers/2012-01/msg00149.php>
and this one:
<http://archives.postgresql.org/pgsql-hackers/2012-01/msg00287.php>
and this:
<http://archives.postgresql.org/pgsql-hackers/2012-01/msg00295.php>
In a nutshell, if we pass certain objects to SvPVutf8() we get a
crash. If we copy them first using newSVsv() we don't get a crash.
Things we know of that have this problem include $^V and typeglobs.
Not sure if there are others. Of course, a crash in a database server
(this is a perl interpreter that runs inside the database server) is a
pretty bad thing. Currently we're working around it by unconditionally
copying the argument with newSVsv(), but we'd like to reduce the
overhead of that by knowing exactly when we need to do it. And from
our POV getting a crash at all is a bug in Perl.
[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
category=core
severity=medium
---
Site configuration information for perl 5.14.2:
Configured by rjbs at Tue Nov 15 23:14:56 EST 2011.
Summary of my perl5 (revision 5 version 14 subversion 2) configuration:
Platform:
osname=darwin, osvers=11.2.0, archname=darwin-2level
uname='darwin walrus.local 11.2.0 darwin kernel version 11.2.0: tue aug 9 20:54:00 pdt 2011; root:xnu-1699.24.8~1release_x86_64 x86_64 '
config_args='-de -Dprefix=/Users/rjbs/perl5/perlbrew/perls/14.2 -Dusedtrace'
hint=recommended, useposix=true, d_sigaction=define
useithreads=undef, usemultiplicity=undef
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=define, use64bitall=define, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include',
optimize='-O3',
cppflags='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include'
ccversion='', gccversion='4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)', 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='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags =' -fstack-protector -L/usr/local/lib -L/opt/local/lib'
libpth=/usr/local/lib /opt/local/lib /usr/lib
libs=-lgdbm -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 -L/opt/local/lib -fstack-protector'
Locally applied patches:
---
@INC for perl 5.14.2:
/Users/rjbs/.perlbrew/libs/14.2@std/lib/perl5/darwin-2level
/Users/rjbs/.perlbrew/libs/14.2@std/lib/perl5/darwin-2level
/Users/rjbs/.perlbrew/libs/14.2@std/lib/perl5
/Users/rjbs/perl5/perlbrew/perls/14.2/lib/site_perl/5.14.2/darwin-2level
/Users/rjbs/perl5/perlbrew/perls/14.2/lib/site_perl/5.14.2
/Users/rjbs/perl5/perlbrew/perls/14.2/lib/5.14.2/darwin-2level
/Users/rjbs/perl5/perlbrew/perls/14.2/lib/5.14.2
.
---
Environment for perl 5.14.2:
DYLD_LIBRARY_PATH (unset)
HOME=/Users/rjbs
LANG=en_US.UTF-8
LANGUAGE (unset)
LD_LIBRARY_PATH (unset)
LOGDIR (unset)
PATH=/Users/rjbs/.perlbrew/libs/14.2@std/bin:/Users/rjbs/perl5/perlbrew/bin:/Users/rjbs/perl5/perlbrew/perls/14.2/bin:/Users/rjbs/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin
PERL5LIB=/Users/rjbs/.perlbrew/libs/14.2@std/lib/perl5/darwin-2level:/Users/rjbs/.perlbrew/libs/14.2@std/lib/perl5:
PERLBREW_BASHRC_VERSION=0.33
PERLBREW_HOME=/Users/rjbs/.perlbrew
PERLBREW_LIB=std
PERLBREW_PATH=/Users/rjbs/.perlbrew/libs/14.2@std/bin:/Users/rjbs/perl5/perlbrew/bin:/Users/rjbs/perl5/perlbrew/perls/14.2/bin
PERLBREW_PERL=14.2
PERLBREW_ROOT=/Users/rjbs/perl5/perlbrew
PERLBREW_VERSION=0.30
PERL_AUTOINSTALL=--skipdeps
PERL_BADLANG (unset)
PERL_LOCAL_LIB_ROOT=/Users/rjbs/.perlbrew/libs/14.2@std
PERL_MB_OPT=--install_base /Users/rjbs/.perlbrew/libs/14.2@std
PERL_MM_OPT=INSTALL_BASE=/Users/rjbs/.perlbrew/libs/14.2@std
SHELL=/opt/local/bin/zsh
Thread Previous