From: Troels W. H. <tr...@th...> - 2003-05-07 08:22:05
|
Valgrind 1.9.6 runs much better on RH8+glibc 2.3.2/RH9, but it doesn't appear to be perfect yet. I have reproduced this problem on both of the mentioned platforms. This is the expected behavior of the program. $ python dbboguserrno.py Traceback (most recent call last): File "dbboguserrno.py", line 4, in ? filetype = db.DB_BTREE) File "/usr/lib/python2.2/site-packages/rpmdb/dbshelve.py", line 69, in open d.open(filename, dbname, filetype, flags, mode) rpmdb._rpmdb.DBNoSuchFileError: (2, 'No such file or directory') This is what happens in Valgrind. RH8 and RH9 uses BerkeleyDB 4.0.14, with a custom compiled Python interpreter and BerkeleyDB 3.3.11 I get "bsddb3._db.DBError: (9, 'Bad file descriptor -- nosuchfile.db: Bad file descriptor')" errors instead. $ valgrind -v python dbboguserrno.py ==7099== Memcheck, a.k.a. Valgrind, a memory error detector for x86-linux. ==7099== Copyright (C) 2002, and GNU GPL'd, by Julian Seward. ==7099== Using valgrind-1.9.6, a program instrumentation system for x86-linux. ==7099== Copyright (C) 2000-2002, and GNU GPL'd, by Julian Seward. ==7099== Startup, with flags: ==7099== --suppressions=/usr/local/lib/valgrind/default.supp ==7099== -v ==7099== Reading suppressions file: /usr/local/lib/valgrind/default.supp ==7099== Estimated CPU clock rate is 702 MHz ==7099== ==7099== Reading syms from /usr/bin/python ==7099== object doesn't have any debug info ==7099== Reading syms from /lib/ld-2.3.2.so ==7099== object doesn't have any debug info ==7099== Reading syms from /usr/local/lib/valgrind/vgskin_memcheck.so ==7099== Reading syms from /usr/local/lib/valgrind/valgrind.so ==7099== Reading syms from /lib/libdl-2.3.2.so ==7099== object doesn't have any debug info ==7099== Reading syms from /usr/local/lib/valgrind/libpthread.so ==7099== Reading syms from /lib/libutil-2.3.2.so ==7099== object doesn't have any debug info ==7099== Reading syms from /lib/libm-2.3.2.so ==7099== object doesn't have a symbol table ==7099== object doesn't have any debug info ==7099== Reading syms from /lib/libc-2.3.2.so ==7099== object doesn't have a symbol table ==7099== object doesn't have any debug info ==7099== Reading syms from /usr/lib/python2.2/lib-dynload/structmodule.so ==7099== Conditional jump or move depends on uninitialised value(s) ==7099== at 0x40008D55: elf_dynamic_do_rel.7 (in /lib/ld-2.3.2.so) ==7099== by 0x4000942A: _dl_relocate_object_internal (in /lib/ld-2.3.2.so) ==7099== by 0x40377D90: (within /lib/libc-2.3.2.so) ==7099== by 0x4000B115: _dl_catch_error_internal (in /lib/ld-2.3.2.so) ==7099== ==7099== Conditional jump or move depends on uninitialised value(s) ==7099== at 0x40008D59: elf_dynamic_do_rel.7 (in /lib/ld-2.3.2.so) ==7099== by 0x4000942A: _dl_relocate_object_internal (in /lib/ld-2.3.2.so) ==7099== by 0x40377D90: (within /lib/libc-2.3.2.so) ==7099== by 0x4000B115: _dl_catch_error_internal (in /lib/ld-2.3.2.so) ==7099== ==7099== Conditional jump or move depends on uninitialised value(s) ==7099== at 0x40009517: _dl_relocate_object_internal (in /lib/ld-2.3.2.so) ==7099== by 0x40377D90: (within /lib/libc-2.3.2.so) ==7099== by 0x4000B115: _dl_catch_error_internal (in /lib/ld-2.3.2.so) ==7099== by 0x403774AE: _dl_open (in /lib/libc-2.3.2.so) ==7099== ==7099== Conditional jump or move depends on uninitialised value(s) ==7099== at 0x40009565: _dl_relocate_object_internal (in /lib/ld-2.3.2.so) ==7099== by 0x40377D90: (within /lib/libc-2.3.2.so) ==7099== by 0x4000B115: _dl_catch_error_internal (in /lib/ld-2.3.2.so) ==7099== by 0x403774AE: _dl_open (in /lib/libc-2.3.2.so) ==7099== Reading syms from /usr/lib/python2.2/lib-dynload/_codecsmodule.so ==7099== Reading syms from /usr/lib/python2.2/site-packages/rpmdb/_rpmdb.so ==7099== Reading syms from /usr/lib/librpm-4.1.so ==7099== Reading syms from /usr/lib/librpmdb-4.1.so ==7099== Reading syms from /usr/lib/librpmio-4.1.so ==7099== Reading syms from /usr/lib/libpopt.so.0.0.0 ==7099== Reading syms from /lib/librt-2.3.2.so ==7099== object doesn't have any debug info ==7099== Reading syms from /usr/lib/libelf.so.0.8.2 ==7099== Reading syms from /usr/lib/libbz2.so.1.0.2 ==7099== Reading syms from /usr/lib/python2.2/lib-dynload/cPickle.so ==7099== Reading syms from /usr/lib/python2.2/lib-dynload/cStringIO.so Traceback (most recent call last): File "dbboguserrno.py", line 4, in ? filetype = db.DB_BTREE) File "/usr/lib/python2.2/site-packages/rpmdb/dbshelve.py", line 69, in open d.open(filename, dbname, filetype, flags, mode) rpmdb._rpmdb.DBAgainError: (11, 'Resource temporarily unavailable -- nosuchfile.db: Resource temporarily unavailable') ==7099== ==7099== ERROR SUMMARY: 48 errors from 4 contexts (suppressed: 2 from 1) ==7099== ==7099== 12 errors in context 1 of 4: ==7099== Conditional jump or move depends on uninitialised value(s) ==7099== at 0x40009565: _dl_relocate_object_internal (in /lib/ld-2.3.2.so) ==7099== by 0x40377D90: (within /lib/libc-2.3.2.so) ==7099== by 0x4000B115: _dl_catch_error_internal (in /lib/ld-2.3.2.so) ==7099== by 0x403774AE: _dl_open (in /lib/libc-2.3.2.so) ==7099== ==7099== 12 errors in context 2 of 4: ==7099== Conditional jump or move depends on uninitialised value(s) ==7099== at 0x40009517: _dl_relocate_object_internal (in /lib/ld-2.3.2.so) ==7099== by 0x40377D90: (within /lib/libc-2.3.2.so) ==7099== by 0x4000B115: _dl_catch_error_internal (in /lib/ld-2.3.2.so) ==7099== by 0x403774AE: _dl_open (in /lib/libc-2.3.2.so) ==7099== ==7099== 12 errors in context 3 of 4: ==7099== Conditional jump or move depends on uninitialised value(s) ==7099== at 0x40008D59: elf_dynamic_do_rel.7 (in /lib/ld-2.3.2.so) ==7099== by 0x4000942A: _dl_relocate_object_internal (in /lib/ld-2.3.2.so) ==7099== by 0x40377D90: (within /lib/libc-2.3.2.so) ==7099== by 0x4000B115: _dl_catch_error_internal (in /lib/ld-2.3.2.so) ==7099== ==7099== 12 errors in context 4 of 4: ==7099== Conditional jump or move depends on uninitialised value(s) ==7099== at 0x40008D55: elf_dynamic_do_rel.7 (in /lib/ld-2.3.2.so) ==7099== by 0x4000942A: _dl_relocate_object_internal (in /lib/ld-2.3.2.so) ==7099== by 0x40377D90: (within /lib/libc-2.3.2.so) ==7099== by 0x4000B115: _dl_catch_error_internal (in /lib/ld-2.3.2.so) --7099-- --7099-- supp: 2 __pthread_mutex_unlock/_IO_funlockfile ==7099== ==7099== IN SUMMARY: 48 errors from 4 contexts (suppressed: 2 from 1) ==7099== ==7099== malloc/free: in use at exit: 120602 bytes in 1147 blocks. ==7099== malloc/free: 31726 allocs, 30579 frees, 2322038 bytes allocated. ==7099== --7099-- TT/TC: 0 tc sectors discarded. --7099-- 11223 chainings, 0 unchainings. --7099-- translate: new 14012 (209064 -> 2646829; ratio 126:10) --7099-- discard 0 (0 -> 0; ratio 0:10). --7099-- dispatch: 6900000 jumps (bb entries), of which 1304733 (18%) were unchained. --7099-- 140/88816 major/minor sched events. 17845 tt_fast misses. --7099-- reg-alloc: 1950 t-req-spill, 497014+11920 orig+spill uis, 70141 total-reg-r. --7099-- sanity: 141 cheap, 6 expensive checks. --7099-- ccalls: 51904 C calls, 58% saves+restores avoided (178738 bytes) --7099-- 71568 args, avg 0.87 setup instrs each (17770 bytes) --7099-- 0% clear the stack (155712 bytes) --7099-- 19332 retvals, 34% of reg-reg movs avoided (12842 bytes) -- Troels Walsted Hansen |