# New Ticket Created by Pip Cet # Please include the string: [perl #132545] # in the subject line of all future correspondence about this issue. # <URL: https://rt.perl.org/Ticket/Display.html?id=132545 > This is a bug report for perl from pipcet@gmail.com, generated with the help of perlbug 1.41 running under perl 5.27.7. ----------------------------------------------------------------- [Please describe your issue here] I just came across the following problem: S_init_main_stash contains the code: PL_curstash = PL_defstash = (HV *)SvREFCNT_inc_simple_NN(newHV()); SvREFCNT_inc_simple_NN is defined as: #define SvREFCNT_inc_simple_NN(sv) (++(SvREFCNT(sv)),MUTABLE_SV(sv)) That evaluates its argument twice, which breaks with side effects. So newHV() is called twice, one of the new HVs gets refcount 2 and gets leaked, the other gets refcount 1 and gets stored in two places. I suspect this is low-priority, but there might be a way to actually destroy the stash while it is still stored in PL_defstash, in which case it's a user-visible bug. Sorry if this message gets duplicated, I tried sending it a few days ago and it appears to have vanished. [Please do not change anything below this line] ----------------------------------------------------------------- --- Flags: category=core severity=low --- Site configuration information for perl 5.27.7: Configured by pip at Mon Dec 4 13:27:33 UTC 2017. Summary of my perl5 (revision 5 version 27 subversion 7) configuration: Platform: osname=linux osvers=4.13.0-1-amd64 archname=x86_64-linux uname='linux amygdala 4.13.0-1-amd64 #1 smp debian 4.13.10-1 (2017-10-30) x86_64 gnulinux ' config_args='' hint=recommended useposix=true d_sigaction=define useithreads=undef usemultiplicity=undef use64bitint=define use64bitall=define uselongdouble=undef usemymalloc=n default_inc_excludes_dot=define bincompat5005=undef Compiler: cc='g++' ccflags ='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/home/pip/git/emacs-c++/js/dist/include -pthread -g3 -ggdb' optimize='-O2' cppflags='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -pthread' ccversion='' gccversion='8.0.0 20171124 (experimental)' gccosandvers='' intsize=4 longsize=8 ptrsize=8 doublesize=8 byteorder=12345678 doublekind=3 d_longlong=define longlongsize=8 d_longdbl=define longdblsize=16 longdblkind=3 ivtype='long' ivsize=8 nvtype='double' nvsize=8 Off_t='off_t' lseeksize=8 alignbytes=8 prototype=define Linker and Libraries: ld='ld' ldflags =' -fstack-protector-strong -g3 -ggdb -L/usr/local/lib' libpth=/usr/local/lib/gcc/x86_64-pc-linux-gnu/8.0.0/../../../../include/c++/8.0.0 /usr/local/lib/gcc/x86_64-pc-linux-gnu/8.0.0/../../../../include/c++/8.0.0/x86_64-pc-linux-gnu /usr/local/lib/gcc/x86_64-pc-linux-gnu/8.0.0/../../../../include/c++/8.0.0/backward /usr/local/lib /usr/local/lib/gcc/x86_64-pc-linux-gnu/8.0.0/include-fixed /usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib /lib64 /usr/lib64 /usr/local/lib64 libs=-lpthread -pthread -lnsl -ldl -lm -lcrypt -lutil -lc -lmozjs-58a1 -Wl,--whole-archive mozglue.a -Wl,--no-whole-archive perllibs=-lpthread -pthread -lnsl -ldl -lm -lcrypt -lutil -lc -L /home/pip/git/emacs-c++/js/dist/bin -lmozjs-58a1 -Wl,--whole-archive /home/pip/git/emacs-c++/js/mozglue/build/libmozglue.a -Wl,--no-whole-archive libc=libc-2.25.so so=so useshrplib=false libperl=libperl.a gnulibc_version='2.25' Dynamic Linking: dlsrc=dl_none.xs dlext=none d_dlsymun=undef ccdlflags='' cccdlflags='' lddlflags='' --- @INC for perl 5.27.7: . lib /usr/local/lib/perl5/site_perl/5.27.7/x86_64-linux /usr/local/lib/perl5/site_perl/5.27.7 /usr/local/lib/perl5/5.27.7/x86_64-linux /usr/local/lib/perl5/5.27.7 --- Environment for perl 5.27.7: HOME=/home/pip LANG=en_US.UTF-8 LANGUAGE (unset) LD_LIBRARY_PATH=/home/pip/git/emacs-c++/js/dist/bin:/home/pip/amd/AMDAPPSDK-3.0/lib/x86_64/ LOGDIR (unset) PATH=/home/pip/.cargo/bin:/home/pip/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/sbin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/sbin:/usr/sbin PERL_BADLANG (unset) SHELL=/bin/bashThread Previous