develooper Front page | perl.perl5.porters | Postings from June 2013

Re: Storable refactoring, was Re: [perl #118139] Storable in DESTROYblocks

Thread Previous | Thread Next
From:
Nicholas Clark
Date:
June 12, 2013 20:15
Subject:
Re: Storable refactoring, was Re: [perl #118139] Storable in DESTROYblocks
Message ID:
20130612201514.GF3729@plum.flirble.org
On Wed, Jun 12, 2013 at 02:29:38PM -0500, Reini Urban wrote:
> On 06/12/2013 11:28 AM, Salvador FandiƱo via RT wrote:

> > At this point I think the module is ready to be released to CPAN as a development version so that it gets stressed by the CPAN Testers or anybody that want to give it a try.
> >
> > So, could I have comaintainership of the module assigned so that it doesn't appear as a unauthorized release?

I don't think that it's time for a CPAN dev release yet.

I've taken your branch, rebased it onto blead, updated the MANIFEST in the
commits that moved or added files, grabbed Reini's fixes (but not the
Changelog yet), and pushed it as a branch smoke-me/salva/Storable


This will tell us what the various systems set up to smoke blead make of it,
but I've already got one SEGV locally.

> > Also, is the CPAN package stored in some version control system somewhere?

No, blead is upstream.

> I tracked the cpan history and latest blead and your patches
> in git@github.com:rurban/Storable.git
> 
> Can you fix the ChangeLog entry?
> 
> But I'm still working on some pointer-sign problems in your changes.
> And you cannot just remove the hints to fix gcc -O3 optimizer problems.

Yes, this is troubling me. In particular, the HP-UX hints file seems to
represent a real current issue. I may be able to test that.

I also discover that there is at least one bug still present. This the
branch that I pushed:

$ valgrind ./perl -T -Ilib cpan/Tie-RefHash/t/storable.t
==13753== Memcheck, a memory error detector
==13753== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==13753== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==13753== Command: ./perl -T -Ilib cpan/Tie-RefHash/t/storable.t
==13753== 
1..42
==13753== Invalid read of size 1
==13753==    at 0x47B602: Perl_mg_find (in /home/nick/Perl/perl/perl)
==13753==    by 0x648DB9E: store (in /home/nick/Perl/perl/lib/auto/Storable/Storable.so)
==13753==    by 0x648EBBF: store_ref (in /home/nick/Perl/perl/lib/auto/Storable/Storable.so)
==13753==    by 0x648E17E: store (in /home/nick/Perl/perl/lib/auto/Storable/Storable.so)
==13753==    by 0x648E31B: store_tied (in /home/nick/Perl/perl/lib/auto/Storable/Storable.so)
==13753==    by 0x648E17E: store (in /home/nick/Perl/perl/lib/auto/Storable/Storable.so)
==13753==    by 0x648ED00: dclone (in /home/nick/Perl/perl/lib/auto/Storable/Storable.so)
==13753==    by 0x648EE4A: XS_Storable_dclone (in /home/nick/Perl/perl/lib/auto/Storable/Storable.so)
==13753==    by 0x48F33E: Perl_pp_entersub (in /home/nick/Perl/perl/perl)
==13753==    by 0x48DCE9: Perl_runops_standard (in /home/nick/Perl/perl/perl)
==13753==    by 0x432EF3: perl_run (in /home/nick/Perl/perl/perl)
==13753==    by 0x41D5D1: main (in /home/nick/Perl/perl/perl)
==13753==  Address 0x68d9ce2 is 2 bytes after a block of size 16 alloc'd
==13753==    at 0x4C25D8C: malloc (vg_replace_malloc.c:270)
==13753==    by 0x476C03: Perl_safesysmalloc (in /home/nick/Perl/perl/perl)
==13753==    by 0x49A943: Perl_sv_grow (in /home/nick/Perl/perl/perl)
==13753==    by 0x49E164: Perl_sv_setpvn (in /home/nick/Perl/perl/perl)
==13753==    by 0x648ECF2: dclone (in /home/nick/Perl/perl/lib/auto/Storable/Storable.so)
==13753==    by 0x648EE4A: XS_Storable_dclone (in /home/nick/Perl/perl/lib/auto/Storable/Storable.so)
==13753==    by 0x48F33E: Perl_pp_entersub (in /home/nick/Perl/perl/perl)
==13753==    by 0x48DCE9: Perl_runops_standard (in /home/nick/Perl/perl/perl)
==13753==    by 0x432EF3: perl_run (in /home/nick/Perl/perl/perl)
==13753==    by 0x41D5D1: main (in /home/nick/Perl/perl/perl)
==13753== 
==13753== 
==13753== Process terminating with default action of signal 11 (SIGSEGV)
==13753==  General Protection Fault
==13753==    at 0x47B602: Perl_mg_find (in /home/nick/Perl/perl/perl)
==13753==    by 0x648DB9E: store (in /home/nick/Perl/perl/lib/auto/Storable/Storable.so)
==13753==    by 0x648EBBF: store_ref (in /home/nick/Perl/perl/lib/auto/Storable/Storable.so)
==13753==    by 0x648E17E: store (in /home/nick/Perl/perl/lib/auto/Storable/Storable.so)
==13753==    by 0x648E31B: store_tied (in /home/nick/Perl/perl/lib/auto/Storable/Storable.so)
==13753==    by 0x648E17E: store (in /home/nick/Perl/perl/lib/auto/Storable/Storable.so)
==13753==    by 0x648ED00: dclone (in /home/nick/Perl/perl/lib/auto/Storable/Storable.so)
==13753==    by 0x648EE4A: XS_Storable_dclone (in /home/nick/Perl/perl/lib/auto/Storable/Storable.so)
==13753==    by 0x48F33E: Perl_pp_entersub (in /home/nick/Perl/perl/perl)
==13753==    by 0x48DCE9: Perl_runops_standard (in /home/nick/Perl/perl/perl)
==13753==    by 0x432EF3: perl_run (in /home/nick/Perl/perl/perl)
==13753==    by 0x41D5D1: main (in /home/nick/Perl/perl/perl)
==13753== 
==13753== HEAP SUMMARY:
==13753==     in use at exit: 1,833,483 bytes in 6,382 blocks
==13753==   total heap usage: 15,761 allocs, 9,379 frees, 3,411,485 bytes allocated
==13753== 
==13753== LEAK SUMMARY:
==13753==    definitely lost: 452 bytes in 11 blocks
==13753==    indirectly lost: 2,153 bytes in 30 blocks
==13753==      possibly lost: 948,889 bytes in 1,474 blocks
==13753==    still reachable: 881,989 bytes in 4,867 blocks
==13753==         suppressed: 0 bytes in 0 blocks
==13753== Rerun with --leak-check=full to see details of leaked memory
==13753== 
==13753== For counts of detected and suppressed errors, rerun with: -v
==13753== ERROR SUMMARY: 2 errors from 1 contexts (suppressed: 4 from 4)
Segmentation fault


Perl built with -UDEBUGGING -Doptimize=-Os -Dusethreads

(this is probably key - other permutations I happened to try didn't have
problems).

Full -V is:


Summary of my perl5 (revision 5 version 19 subversion 1) configuration:
  Derived from: 5fa04395b5f903b295875988c4aa513df6315ad7
  Platform:
    osname=linux, osvers=2.6.32-5-amd64, archname=x86_64-linux-thread-multi
    uname='linux gcc20 2.6.32-5-amd64 #1 smp mon jan 16 16:22:28 utc 2012 x86_64 gnulinux '
    config_args='-Dusedevel=y -Dcc=ccache gcc -Dld=gcc -Dcf_email=nick@ccl4.org -Dperladmin=nick@ccl4.org -Dinc_version_list=  -Dinc_version_list_init=0 -UDEBUGGING -Doptimize=-Os -Dusethreads -Uuselongdouble -Uuse64bitall -Uusemymalloc -Duseperlio -Dprefix=~/Sandpit/snap-v5.19.0-640-g5fa0439 -Uusevendorprefix -Uvendorprefix=~/Sandpit/snap-v5.19.0-640-g5fa0439 -Uuserelocatableinc -Umad -Uuseshrplib -de'
    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=n, bincompat5005=undef
  Compiler:
    cc='ccache gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-Os',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
    ccversion='', gccversion='4.4.5', 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='gcc', ldflags =' -fstack-protector -L/usr/local/lib'
    libpth=/usr/local/lib /lib/../lib /usr/lib/../lib /lib /usr/lib /lib64 /usr/lib64
    libs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
    libc=/lib/libc-2.11.3.so, so=so, useshrplib=false, libperl=libperl.a
    gnulibc_version='2.11.3'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
    cccdlflags='-fPIC', lddlflags='-shared -Os -L/usr/local/lib -fstack-protector'


Characteristics of this binary (from libperl): 
  Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS
                        PERL_DONT_CREATE_GVSV
                        PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
                        PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
                        PERL_NEW_COPY_ON_WRITE PERL_PRESERVE_IVUV
                        PERL_USE_DEVEL USE_64_BIT_INT USE_ITHREADS
                        USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
                        USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_PERLIO
                        USE_PERL_ATOF USE_REENTRANT_API
  Locally applied patches:
        uncommitted-changes
  Built under linux
  Compiled at Jun 12 2013 22:00:42
  @INC:
    lib
    /home/nick/Sandpit/snap-v5.19.0-640-g5fa0439/lib/perl5/site_perl/5.19.1/x86_64-linux-thread-multi
    /home/nick/Sandpit/snap-v5.19.0-640-g5fa0439/lib/perl5/site_perl/5.19.1
    /home/nick/Sandpit/snap-v5.19.0-640-g5fa0439/lib/perl5/5.19.1/x86_64-linux-thread-multi
    /home/nick/Sandpit/snap-v5.19.0-640-g5fa0439/lib/perl5/5.19.1
    .


I don't have any more time to look at this tonight, hence the dump of the
summary into this e-mail.

Nicholas Clark

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About