Philip Martin wrote on 3/28/2006 8:02 PM:
> Sviatoslav Sviridov <svd@altlinux.ru> writes:
>
>> Can you show how to run in under valgrind (I'm not familiar with it).
>
> Just prefix "valgrind" to the command, in your case probably something
> like:
>
> $ valgrind subversion/tests/libsvn_repos/.libs/lt-repos-test
>
> If valgrind does show a problem then using --db-attach=yes allows you
> to attach gdb and get a stack trace at the point the error is
> detected (quit out of gdb to return to valgrind and continue running).
There really was a problems!
I used the following command to start test:
$ LD_LIBRARY_PATH="$LDLP" valgrind
subversion/tests/libsvn_repos/.libs/repos-test --fs-type=bdb
I've got the following output:
==22561== Conditional jump or move depends on uninitialised value(s)
==22561== at 0x4354D01: __log_putr (log_put.c:637)
==22561== by 0x4354716: __log_put_next (log_put.c:392)
==22561== by 0x4354139: __log_put (log_put.c:154)
==22561== by 0x4304F21: __db_addrem_log (db_auto.c:187)
==22561== by 0x4312406: __db_pitem (db_dup.c:133)
==22561== by 0x4284354: __bam_ovput (bt_put.c:849)
==22561== by 0x4284208: __bam_dup_convert (bt_put.c:795)
==22561== by 0x4283197: __bam_iitem (bt_put.c:384)
==22561== by 0x427C3AF: __bam_c_put (bt_cursor.c:1950)
==22561== by 0x430D0CB: __db_c_put (db_cam.c:1363)
==22561== by 0x430391B: __db_put (db_am.c:390)
==22561== by 0x4316777: __db_put_pp (db_iface.c:1369)
==22561==
==22561== Syscall param write(buf) points to uninitialised byte(s)
==22561== at 0x4158EE8: write (in /lib/libc-2.3.6.so)
==22561== by 0x4368852: __os_write (os_rw.c:177)
==22561== by 0x435616F: __log_write (log_put.c:1098)
==22561== by 0x4355FF3: __log_fill (log_put.c:1042)
==22561== by 0x4354DD9: __log_putr (log_put.c:649)
==22561== by 0x4354716: __log_put_next (log_put.c:392)
==22561== by 0x4354139: __log_put (log_put.c:154)
==22561== by 0x43067BD: __db_debug_log (db_auto.c:932)
==22561== by 0x431762B: __db_c_get_pp (db_iface.c:1738)
==22561== by 0x44C2A61: get_next_length (strings-table.c:160)
==22561== by 0x44C2BB8: svn_fs_bdb__string_read (strings-table.c:216)
==22561== by 0x44CDA0D: rep_read_range (reps-strings.c:470)
==22561== Address 0x49848E3 is not stack'd, malloc'd or (recently) free'd
==22561==
==22561== Syscall param pwrite64(buf) points to uninitialised byte(s)
==22561== at 0x4157375: (within /lib/libc-2.3.6.so)
==22561== by 0x436847F: __os_io (os_rw.c:68)
==22561== by 0x435937A: __memp_pgwrite (mp_bh.c:397)
==22561== by 0x4358B65: __memp_bhwrite (mp_bh.c:172)
==22561== by 0x43650CC: __memp_sync_int (mp_sync.c:492)
==22561== by 0x43643CA: __memp_sync (mp_sync.c:98)
==22561== by 0x4370F62: __txn_checkpoint (txn.c:1371)
==22561== by 0x4370CC4: __txn_checkpoint_pp (txn.c:1276)
==22561== by 0x44D19C4: commit_trail (trail.c:180)
==22561== by 0x44D1A71: do_retry (trail.c:232)
==22561== by 0x44D1BA2: svn_fs_base__retry_txn (trail.c:286)
==22561== by 0x44D319D: base_node_id (tree.c:1055)
==22561== Address 0x4915258 is not stack'd, malloc'd or (recently) free'd
==22561==
==22561== Syscall param write(buf) points to uninitialised byte(s)
==22561== at 0x4158EE8: write (in /lib/libc-2.3.6.so)
==22561== by 0x4368852: __os_write (os_rw.c:177)
==22561== by 0x435616F: __log_write (log_put.c:1098)
==22561== by 0x4355925: __log_flush_int (log_put.c:890)
==22561== by 0x43548D2: __log_newfile (log_put.c:503)
==22561== by 0x43546A7: __log_put_next (log_put.c:368)
==22561== by 0x4354139: __log_put (log_put.c:154)
==22561== by 0x43067BD: __db_debug_log (db_auto.c:932)
==22561== by 0x4314F6E: __db_get (db_iface.c:632)
==22561== by 0x4314D89: __db_get_pp (db_iface.c:592)
==22561== by 0x44C3CBD: svn_fs_bdb__get_txn (txn-table.c:210)
==22561== by 0x44CFA0D: get_txn (revs-txns.c:62)
==22561== Address 0x495DB64 is not stack'd, malloc'd or (recently) free'd
PASS: repos-test 1: test svn_repos_dir_delta
PASS: repos-test 2: test deletions under copies in node_tree code
PASS: repos-test 3: test svn_repos_history() (partially)
PASS: repos-test 4: test svn_repos_node_locations
PASS: repos-test 5: test removal of defunct locks
PASS: repos-test 6: test authz access control
PASS: repos-test 7: test authz in the commit editor
==22561==
==22561== Jump to the invalid address stated on the next line
==22561== at 0x44C0193: ???
==22561== by 0x40A3BB6: pool_clear_debug (apr_pools.c:1361)
==22561== by 0x40A3D1B: apr_pool_destroy_debug (apr_pools.c:1437)
==22561== by 0x40A3BA6: pool_clear_debug (apr_pools.c:1358)
==22561== by 0x40A3CAD: apr_pool_clear_debug (apr_pools.c:1411)
==22561== by 0x4023C1E: main (svn_test_main.c:315)
==22561== Address 0x44C0193 is not stack'd, malloc'd or (recently) free'd
==22561==
==22561== Process terminating with default action of signal 11 (SIGSEGV)
==22561== Access not within mapped region at address 0x44C0193
==22561== at 0x44C0193: ???
==22561== by 0x40A3BB6: pool_clear_debug (apr_pools.c:1361)
==22561== by 0x40A3D1B: apr_pool_destroy_debug (apr_pools.c:1437)
==22561== by 0x40A3BA6: pool_clear_debug (apr_pools.c:1358)
==22561== by 0x40A3CAD: apr_pool_clear_debug (apr_pools.c:1411)
==22561== by 0x4023C1E: main (svn_test_main.c:315)
==22561==
==22561== ERROR SUMMARY: 21 errors from 5 contexts (suppressed: 65 from 2)
==22561== malloc/free: in use at exit: 9,186 bytes in 261 blocks.
==22561== malloc/free: 1,461,016 allocs, 1,460,755 frees, 90,420,075
bytes allocated.
==22561== For counts of detected errors, rerun with: -v
==22561== searching for pointers to 261 not-freed blocks.
==22561== checked 594,796 bytes.
==22561==
==22561== LEAK SUMMARY:
==22561== definitely lost: 0 bytes in 0 blocks.
==22561== possibly lost: 0 bytes in 0 blocks.
==22561== still reachable: 9,186 bytes in 261 blocks.
==22561== suppressed: 0 bytes in 0 blocks.
==22561== Reachable blocks (those to which a pointer was found) are not
shown.
==22561== To see them, rerun with: --show-reachable=yes
Segmentation fault
If you could recommend what exactly shall I check in debugger, I would
try it...
--
Best Regards,
Sviatoslav Sviridov
Received on Wed Mar 29 10:15:50 2006