Tim Bunce wrote:
> If you, or someone, has something like valgrind handy (or any other
> tool that would help with malloc/threads debugging) that would be a
> big help.
Here's the valgrind -v output... I didn't do --trace-pthreads=all ... (way too much output)


I also lowered the $threads = 10 to $threads = 2 in the test script.
I'd say it happens > 70% of the time for me.

HTH

[see attached]

--
END
------------------------------------------------------
Philip M. Gollucci ([EMAIL PROTECTED]) 301.254.5198
Consultant / http://p6m7g8.net/Resume/resume.shtml
Senior Developer / Liquidity Services, Inc.
        http://www.liquidityservicesinc.com
==92812== Memcheck, a memory error detector for x86-linux.
==92812== Copyright (C) 2002-2004, and GNU GPL'd, by Julian Seward.
==92812== Using valgrind-2.1.0, a program supervision framework for x86-linux.
==92812== Copyright (C) 2000-2004, and GNU GPL'd, by Julian Seward.
==92812== Valgrind library directory: /usr/local/lib/valgrind
==92812== Command line
==92812==    /home/pgollucci/dev/inst/perl/5.9.3-i/bin/perl
==92812==    t/05thrclone.t
==92812== Startup, with flags:
==92812==    -v
==92812== Reading syms from 
/usr/home/pgollucci/dev/inst/perl/5.9.3-i/bin/perl5.9.3 (0x8048000)
==92812== Reading syms from /libexec/ld-elf.so.1 (0x3C000000)
==92812==    object doesn't have a symbol table
==92812==    object doesn't have any debug info
==92812== Reading syms from /libexec/ld-elf.so.1 (0xB0000000)
==92812==    object doesn't have a symbol table
==92812==    object doesn't have any debug info
==92812== Reading syms from /lib/libc.so.6 (0xB002B000)
==92812==    object doesn't have a symbol table
==92812==    object doesn't have any debug info
==92812== Reading syms from /usr/local/lib/valgrind/vgskin_memcheck.so 
(0xB010B000)
==92812==    object doesn't have a symbol table
==92812==    object doesn't have any debug info
==92812== Reading syms from /usr/local/lib/valgrind/stage2 (0xB8000000)
==92812==    object doesn't have a symbol table
==92812==    object doesn't have any debug info
==92812== Reading suppressions file: /usr/local/lib/valgrind/default.supp
==92812== Estimated CPU clock rate is 958 MHz
==92812== REDIRECT soname:libc.so.6(__GI___errno_location) to 
soname:libpthread.so.0(__errno_location)
==92812== REDIRECT soname:libc.so.6(__errno_location) to 
soname:libpthread.so.0(__errno_location)
==92812== REDIRECT soname:libc.so.6(__GI___h_errno_location) to 
soname:libpthread.so.0(__h_errno_location)
==92812== REDIRECT soname:libc.so.6(__h_errno_location) to 
soname:libpthread.so.0(__h_errno_location)
==92812== REDIRECT soname:libc.so.6(__GI___res_state) to 
soname:libpthread.so.0(__res_state)
==92812== REDIRECT soname:libc.so.6(__res_state) to 
soname:libpthread.so.0(__res_state)
==92812== REDIRECT soname:libc.so.6(stpcpy) to *vgpreload_memcheck.so*(stpcpy)
==92812== REDIRECT soname:libc.so.6(strnlen) to *vgpreload_memcheck.so*(strnlen)
==92812== REDIRECT soname:ld-linux.so.2(stpcpy) to 
*vgpreload_memcheck.so*(stpcpy)
==92812== REDIRECT soname:ld-linux.so.2(strchr) to 
*vgpreload_memcheck.so*(strchr)
==92812== 
==92812== Reading syms from /usr/local/lib/valgrind/vg_inject.so (0x3C02D000)
==92812==    object doesn't have a symbol table
==92812==    object doesn't have any debug info
==92812== Reading syms from /usr/local/lib/valgrind/vgpreload_memcheck.so 
(0x3C030000)
==92812==    object doesn't have a symbol table
==92812==    object doesn't have any debug info
==92812== Reading syms from 
/home/pgollucci/dev/inst/perl/5.9.3-i/lib/perl5/5.9.3/mach/CORE/libperl.so 
(0x3C040000)
==92812== Reading syms from /lib/libm.so.3 (0x3C1C9000)
==92812==    object doesn't have a symbol table
==92812==    object doesn't have any debug info
==92812== Reading syms from /lib/libcrypt.so.2 (0x3C1DE000)
==92812==    object doesn't have a symbol table
==92812==    object doesn't have any debug info
==92812== Reading syms from /lib/libutil.so.4 (0x3C1F7000)
==92812==    object doesn't have a symbol table
==92812==    object doesn't have any debug info
==92812== Reading syms from /usr/local/lib/valgrind/libpthread.so.1 (0x3C204000)
==92812==    object doesn't have a symbol table
==92812==    object doesn't have any debug info
==92812== Reading syms from /lib/libc.so.6 (0x3C222000)
==92812==    object doesn't have a symbol table
==92812==    object doesn't have any debug info
==92812== Reading syms from 
/home/pgollucci/dev/inst/perl/5.9.3-i/lib/perl5/5.9.3/mach/auto/threads/threads.so
 (0x3C3FB000)
==92812== Reading syms from 
/home/pgollucci/dev/inst/perl/5.9.3-i/lib/perl5/5.9.3/mach/auto/threads/shared/shared.so
 (0x3C403000)
==92812== Reading syms from 
/home/pgollucci/dev/inst/perl/5.9.3-i/lib/perl5/site_perl/5.9.3/mach/auto/DBI/DBI.so
 (0x3C412000)
==92812== Reading syms from 
/home/pgollucci/dev/inst/perl/5.9.3-i/lib/perl5/5.9.3/mach/auto/List/Util/Util.so
 (0x3C43B000)
1..11
ok 1 - ... assignment of neat_maxlen was successful
ok 2 - The object isa DBI::db
ok 3 - ... DBI::neat_maxlen still holding its value
ok 4 - The object isa DBI::db
ok 5 - ... new $dbh is not the same instance as $dbh_parent
ok 6 - ... the Driver has one Kid
==92812== Conditional jump or move depends on uninitialised value(s)
==92812==    at 0x3C10F615: Perl_sv_dup (sv.c:10747)
==92812==    by 0x3C3FF1D8: Perl_ithread_join (threads.xs:634)
==92812==    by 0x3C3FFCAE: XS_threads_join (threads.xs:728)
==92812==    by 0x3C0F593B: Perl_pp_entersub (pp_hot.c:2816)
==92812== 
==92812== Conditional jump or move depends on uninitialised value(s)
==92812==    at 0x3C10F615: Perl_sv_dup (sv.c:10747)
==92812==    by 0x3C110907: Perl_sv_dup (sv.c:10958)
==92812==    by 0x3C3FF1D8: Perl_ithread_join (threads.xs:634)
==92812==    by 0x3C3FFCAE: XS_threads_join (threads.xs:728)
ok 7 - ... DBI::neat_maxlen still holding its value
ok 8 - The object isa DBI::db
ok 9 - ... new $dbh is not the same instance as $dbh_parent
ok 10 - ... the Driver has one Kid
ok 11 - ... all tests have passed
==92812== warning: Valgrind's pthread_cond_destroy is incomplete
==92812==          (it doesn't check if the cond is waited on)
==92812==          your program may misbehave as a result
==92812== warning: Valgrind's pthread_cond_destroy is incomplete
==92812==          (it doesn't check if the cond is waited on)
==92812==          your program may misbehave as a result
==92812== warning: Valgrind's pthread_cond_destroy is incomplete
==92812==          (it doesn't check if the cond is waited on)
==92812==          your program may misbehave as a result
==92812== 
==92812== ERROR SUMMARY: 4 errors from 2 contexts (suppressed: 0 from 0)
==92812== 
==92812== 2 errors in context 1 of 2:
==92812== Conditional jump or move depends on uninitialised value(s)
==92812==    at 0x3C10F615: Perl_sv_dup (sv.c:10747)
==92812==    by 0x3C110907: Perl_sv_dup (sv.c:10958)
==92812==    by 0x3C3FF1D8: Perl_ithread_join (threads.xs:634)
==92812==    by 0x3C3FFCAE: XS_threads_join (threads.xs:728)
==92812== 
==92812== 2 errors in context 2 of 2:
==92812== Conditional jump or move depends on uninitialised value(s)
==92812==    at 0x3C10F615: Perl_sv_dup (sv.c:10747)
==92812==    by 0x3C3FF1D8: Perl_ithread_join (threads.xs:634)
==92812==    by 0x3C3FFCAE: XS_threads_join (threads.xs:728)
==92812==    by 0x3C0F593B: Perl_pp_entersub (pp_hot.c:2816)
==92812== IN SUMMARY: 4 errors from 2 contexts (suppressed: 0 from 0)
==92812== 
==92812== malloc/free: in use at exit: 2856 bytes in 11 blocks.
==92812== malloc/free: 6917 allocs, 6906 frees, 275822 bytes allocated.
==92812== 
--92812--     TT/TC: 0 tc sectors discarded.
--92812--            26487 chainings, 0 unchainings.
--92812-- translate: new     27642 (537662 -> 7367041; ratio 137:10)
--92812--            discard 0 (0 -> 0; ratio 0:10).
--92812--  dispatch: 55400000 jumps (bb entries), of which 7232789 (13%) were 
unchained.
--92812--            2011/1210991 major/minor sched events.  69172 tt_fast 
misses.
--92812-- reg-alloc: 5502 t-req-spill, 1339171+28009 orig+spill uis, 144142 
total-reg-r.
--92812--    sanity: 1803 cheap, 73 expensive checks.
--92812--    ccalls: 165286 C calls, 52% saves+restores avoided (509310 bytes)
--92812--            210788 args, avg 0.89 setup instrs each (42902 bytes)
--92812--            0% clear the stack (495858 bytes)
--92812--            74129 retvals, 28% of reg-reg movs avoided (41212 bytes)

Reply via email to