# Broken valgrind 3.6.1 seen on i686 openSUSE 12.1
# also seen with valgrind 3.6.0 on i586 Debian 6.0.x (vm11)
#
# For libpcp/interp.c as of commit ba2cb05135896224d534ff9e1d1195e9193facba
# the full reported "error" is
# Conditional jump or move depends on uninitialised value(s)
#    at 0x4076805: __pmLogFetchInterp (interp.c:1437)
#    by 0x40716FB: __pmLogFetch (logutil.c:1653)
#    by 0x4021917: ???
#  Uninitialised value was created by a heap allocation
#    at 0x402913D: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
#    by 0x40765EB: __pmLogFetchInterp (interp.c:1427)
#    by 0x40716FB: __pmLogFetch (logutil.c:1653)
#    by 0x4021917: ???
# which is bogus
#
{
   Valgrind 3.6.1 botch
   Memcheck:Cond
   fun:__pmLogFetchInterp
   fun:__pmLogFetch
   obj:*
}

# and on vm11
#	at 0x4023F50: malloc (vg_replace_malloc.c:236)
#	by 0x4085CAE: __pmHashAdd (hash.c:85)
#	by 0x4060CB8: addindom (logmeta.c:66)
#	by 0x4061D57: __pmLogLoadMeta (logmeta.c:329)
#	by 0x406821E: __pmLogOpen (logutil.c:1013)
#	by 0x4048632: pmNewContext (context.c:579)
#	by 0x8048F2B: main (interp2.c:119)
# which is bogus
{
   Valgrind 3.6.0.SVN-Debian botch #1 loadmeta
   Memcheck:Leak
   fun:malloc
   fun:__pmHashAdd
   fun:addindom
   fun:__pmLogLoadMeta
   fun:__pmLogOpen
   fun:pmNewContext
   fun:main
}

# also on vm11, similar to above
#	at 0x4023F50: malloc (vg_replace_malloc.c:236)
#	by 0x4060B93: addindom (logmeta.c:45)
#	by 0x4061D57: __pmLogLoadMeta (logmeta.c:329)
#	by 0x406821E: __pmLogOpen (logutil.c:1013)
#	by 0x4048632: pmNewContext (context.c:579)
#	by 0x8048F2B: main (interp2.c:119)
{
   Valgrind 3.6.0.SVN-Debian botch #2 loadmeta
   Memcheck:Leak
   fun:malloc
   fun:addindom
   fun:__pmLogLoadMeta
   fun:__pmLogOpen
   fun:pmNewContext
   fun:main
}

# also on vm11, similar to above
#	at 0x4023F50: malloc (vg_replace_malloc.c:236)
#	by 0x4061C4D: __pmLogLoadMeta (logmeta.c:271)
#	by 0x406821E: __pmLogOpen (logutil.c:1013)
#	by 0x4048632: pmNewContext (context.c:579)
#	by 0x8048F2B: main (interp2.c:119)
{
   Valgrind 3.6.0.SVN-Debian botch #3 loadmeta
   Memcheck:Leak
   fun:malloc
   fun:__pmLogLoadMeta
   fun:__pmLogOpen
   fun:pmNewContext
   fun:main
}

# also on vm11, similar to above
#	at 0x4023F50: malloc (vg_replace_malloc.c:236)
#	by 0x404CD8B: __pmDecodeResult (p_result.c:236)
#	by 0x4065516: __pmLogRead (logutil.c:1662)
#	by 0x4069E52: cache_read (interp.c:198)
#	by 0x406CD17: __pmLogFetchInterp (interp.c:872)
#	by 0x4067657: __pmLogFetch (logutil.c:1749)
#	by 0x4049D65: pmFetch (fetch.c:151)
#	by 0x8049514: main (interp4.c:240)
{
   Valgrind 3.6.0.SVN-Debian botch
   Memcheck:Leak
   fun:malloc
   fun:__pmDecodeResult
   fun:__pmLogRead
   fun:cache_read
   fun:__pmLogFetchInterp
   fun:__pmLogFetch
   fun:pmFetch
   fun:main
}

# also on vm11, similar to above
#	by 0x4085D3E: __pmHashAdd (in /usr/lib/libpcp.so.3) [2 cases with & w/out this call]
#	by 0x4060CE8: ??? (in /usr/lib/libpcp.so.3)
#	by 0x4061D87: __pmLogLoadMeta (in /usr/lib/libpcp.so.3)
#	by 0x406824E: __pmLogOpen (in /usr/lib/libpcp.so.3)
#	by 0x4048662: pmNewContext (in /usr/lib/libpcp.so.3)
#	by 0x8048F2B: main (interp2.c:119)
# interestingly, may be related to stripping libpcp ... remaking
# the library (same optimizer flags) and make install it and the
# valgrind failure goes away
{
   Valgrind 3.6.0.SVN-Debian botch
   Memcheck:Leak
   fun:malloc
   ...
   fun:__pmLogLoadMeta
   fun:__pmLogOpen
   fun:pmNewContext
}

# also on vm11, similar to above
#	Command: src/interp4 -a src/noti-foo
#	64 bytes in 2 blocks are possibly lost in loss record 20 of 40
#	at 0x4023F50: malloc (vg_replace_malloc.c:236)
#	by 0x404CDBB: __pmDecodeResult (in /usr/lib/libpcp.so.3)
#	by 0x4065546: __pmLogRead (in /usr/lib/libpcp.so.3)
#	by 0x4069E82: ??? (in /usr/lib/libpcp.so.3)
#	by 0x406CD47: __pmLogFetchInterp (in /usr/lib/libpcp.so.3)
#	by 0x4067687: __pmLogFetch (in /usr/lib/libpcp.so.3)
#	by 0x4049D95: pmFetch (in /usr/lib/libpcp.so.3)
#	by 0x80495CC: main (interp4.c:240)
{
   Valgrind 3.6.0.SVN-Debian botch
   Memcheck:Leak
   fun:malloc
   fun:__pmDecodeResult
   fun:__pmLogRead
   ...
   fun:__pmLogFetchInterp
   fun:__pmLogFetch
   fun:pmFetch
}

# also on vm11, similar to above
# Command: pmlogreduce -t 30sec src/20101004-trunc TMP
# 178,372 bytes in 2,347 blocks are possibly lost in loss record 77 of 77at 0x4023F50: malloc (vg_replace_malloc.c:236)
#	by 0x406C50A: __pmLogFetchInterp (in /usr/lib/libpcp.so.3)
#	by 0x4067447: __pmLogFetch (in /usr/lib/libpcp.so.3)
#	by 0x4049E35: pmFetch (in /usr/lib/libpcp.so.3)
#	by 0x804A04E: ??? (in /usr/lib/pcp/bin/pmlogreduce)
#	by 0x40C1C95: (below main) (libc-start.c:228)
{
   Valgrind 3.6.0.SVN-Debian botch
   Memcheck:Leak
   fun:malloc
   fun:__pmLogFetchInterp
   fun:__pmLogFetch
   fun:pmFetch
}

# dlopen issues seen with valgrind 3.6.0 on i586 Debian 6.0.x (vm11)
{
   dlopen -> local_strdup
   Memcheck:Leak
   fun:malloc
   fun:local_strdup
   fun:_dl_map_object
   fun:dl_open_worker
   fun:_dl_catch_error
   fun:_dl_open
}

{
   dlopen -> _dl_check_map_versions
   Memcheck:Leak
   fun:calloc
   fun:_dl_check_map_versions
   fun:dl_open_worker
   fun:_dl_catch_error
   fun:_dl_open
}

{
   dlopen -> _dl_map_object_deps
   Memcheck:Leak
   fun:malloc
   fun:_dl_map_object_deps
   fun:dl_open_worker
   fun:_dl_catch_error
   fun:_dl_open
}

{
   dlopen -> _dl_map_object
   Memcheck:Leak
   fun:malloc
   fun:local_strdup
   fun:_dl_map_object
   fun:openaux
   fun:_dl_catch_error
   fun:_dl_map_object_deps
   fun:dl_open_worker
   fun:_dl_catch_error
   fun:_dl_open
}

{
   dlopen -> _dl_new_object
   Memcheck:Leak
   fun:malloc
   fun:_dl_new_object
   fun:_dl_map_object_from_fd
   fun:_dl_map_object
   fun:openaux
   fun:_dl_catch_error
   fun:_dl_map_object_deps
   fun:dl_open_worker
   fun:_dl_catch_error
   fun:_dl_open
}

{
   dlopen -> _dl_new_object
   Memcheck:Leak
   fun:malloc
   fun:_dl_new_object
   fun:_dl_map_object_from_fd
   fun:_dl_map_object
   fun:dl_open_worker
   fun:_dl_catch_error
   fun:_dl_open
}

{
   dlopen -> _dl_new_object
   Memcheck:Leak
   fun:calloc
   fun:_dl_new_object
   fun:_dl_map_object_from_fd
   fun:_dl_map_object
   fun:openaux
   fun:_dl_catch_error
   fun:_dl_map_object_deps
   fun:dl_open_worker
   fun:_dl_catch_error
   fun:_dl_open
}
