[Jackit-devel] [linux-audio-dev] What valgrind says

james at dis-dot-dat.net james at dis-dot-dat.net
Mon Jun 26 23:05:43 UTC 2006


On Mon, 26 Jun, 2006 at 10:16AM -0500, Jack O'Quin spake thus:
> On 6/25/06, Dave Robillard <drobilla at connect.carleton.ca> wrote:
> >On Sun, 2006-06-25 at 16:49 -0400, Lee Revell wrote:
> >> On Sun, 2006-06-25 at 16:34 -0400, Dave Robillard wrote:
> >> > On Sun, 2006-06-25 at 10:29 +1000, Erik de Castro Lopo wrote:
> >> > > Regardless of whether this is a bug or not it would be really
> >> > > nice if this could be fixed. Fixing it means that other people
> >> > > valgrinding their apps which use the Jack libs don't see warnings
> >> > > about Jack.
> >> >
> >> > ++
> >> >
> >> > The last thing we need is MORE valgrind warnings..
> >>
> >> I have not looked closely at the code, but could it be considered an
> >> information leak if you're using a byte of unitialized data?
> >
> >If you ask me using a byte of uninitialized data is an error, period
> >(even if technically the value of that byte isn't relevant, as in this
> >case).
> >
> >Uninitialized /anything/ is just asking for trouble...
> 
> libjack seems OK already, but there was an unitialied char
> written by jackd.  I fixed that and committed it as [0.102.18].
> 
> I don't have valgrind set up correctly on my new laptop.  Could
> one of you please update to the latest SVN version and verify
> whether this fixes that warning message?

OK, since I brought it up I thought I'd better test it out.  Sorry,
but I still get the same problem.

Compiling from the raw SVN-delivered source instead of emerging it
might have given a bit of a hint, though.  Valgrind is now able to
give the location inside jack that the error occurs: client.c, line
240

I've attached a log from valgrind (includes my own debugging output,
easily ignored).

Hope that helps!

James
-------------- next part --------------
==514== Memcheck, a memory error detector.
==514== Copyright (C) 2002-2006, and GNU GPL'd, by Julian Seward et al.
==514== Using LibVEX rev 1606, a library for dynamic binary translation.
==514== Copyright (C) 2004-2006, and GNU GPL'd, by OpenWorks LLP.
==514== Using valgrind-3.2.0, a dynamic binary instrumentation framework.
==514== Copyright (C) 2000-2006, and GNU GPL'd, by Julian Seward et al.
==514== 
--514-- Command line
--514--    ./sampleplayer
--514-- Startup, with flags:
--514--    --leak-check=full
--514--    -v
--514--    --show-reachable=yes
--514-- Contents of /proc/version:
--514--   Linux version 2.6.17-rc1-mm2 (root at fitz) (gcc version 3.4.6 (Gentoo 3.4.6, ssp-3.4.5-1.0, pie-8.7.9)) #3 SMP PREEMPT Sat Apr 15 23:37:59 BST 2006
--514-- Arch and hwcaps: AMD64, amd64-sse2
--514-- Valgrind library directory: /usr/lib64/valgrind
--514-- Reading syms from /home/james/code/sampleplayer/src/sampleplayer/sampleplayer (0x400000)
--514-- Reading syms from /lib64/ld-2.4.so (0x4000000)
--514-- Reading syms from /usr/lib64/valgrind/amd64-linux/memcheck (0x38000000)
--514--    object doesn't have a symbol table
--514--    object doesn't have a dynamic symbol table
--514-- Reading suppressions file: /usr/lib64/valgrind/default.supp
--514-- Reading syms from /usr/lib64/valgrind/amd64-linux/vgpreload_core.so (0x491C000)
--514--    object doesn't have a symbol table
--514-- Reading syms from /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so (0x4A1D000)
--514--    object doesn't have a symbol table
--514-- REDIR: 0x4012EB0 (index) redirected to 0x4A209D0 (index)
--514-- REDIR: 0x4013060 (strcmp) redirected to 0x4A20EE0 (strcmp)
--514-- REDIR: 0x4013370 (strlen) redirected to 0x4A20C40 (strlen)
--514-- Reading syms from /usr/local/lib64/libjack.so.0.0.23 (0x4B23000)
--514-- Reading syms from /usr/lib64/liblo.so.0.6.0 (0x4C3D000)
--514--    object doesn't have a symbol table
--514-- Reading syms from /lib64/libpthread-2.4.so (0x4D47000)
--514-- Reading syms from /usr/lib64/libsndfile.so.1.0.16 (0x4E5D000)
--514--    object doesn't have a symbol table
--514-- Reading syms from /usr/lib64/libsamplerate.so.0.1.1 (0x4FB2000)
--514--    object doesn't have a symbol table
--514-- Reading syms from /usr/lib64/gcc/x86_64-pc-linux-gnu/3.4.6/libstdc++.so.6.0.3 (0x50CE000)
--514--    object doesn't have a symbol table
--514-- Reading syms from /lib64/libm-2.4.so (0x52BE000)
--514--    object doesn't have a symbol table
--514-- Reading syms from /lib64/libgcc_s.so.1 (0x5416000)
--514--    object doesn't have a symbol table
--514-- Reading syms from /lib64/libc-2.4.so (0x5521000)
--514--    object doesn't have a symbol table
==514== Warning: zero-sized CIE/FDE but not at section end in DWARF2 CFI reading
--514-- Reading syms from /lib64/libdl-2.4.so (0x574D000)
--514--    object doesn't have a symbol table
--514-- Reading syms from /usr/lib64/libFLAC.so.7.0.0 (0x5851000)
--514--    object doesn't have a symbol table
--514-- REDIR: 0x55931A0 (memset) redirected to 0x4A21420 (memset)
--514-- REDIR: 0x5594CC0 (memcpy) redirected to 0x4A20F70 (memcpy)
--514-- REDIR: 0x55924E0 (rindex) redirected to 0x4A208D0 (rindex)
--514-- REDIR: 0x5591480 (strlen) redirected to 0x4A20C00 (strlen)
--514-- REDIR: 0x5590960 (strcpy) redirected to 0x4A20C60 (strcpy)
--514-- REDIR: 0x517D360 (operator new(unsigned long)) redirected to 0x4A1EEF0 (operator new(unsigned long))
Made mixer
--514-- REDIR: 0x558CB70 (malloc) redirected to 0x4A1EA60 (malloc)
connecting with liblo
--514-- REDIR: 0x558C820 (calloc) redirected to 0x4A202D0 (calloc)
--514-- REDIR: 0x5592B40 (memchr) redirected to 0x4A20F40 (memchr)
--514-- REDIR: 0x5595980 (strchrnul) redirected to 0x4A214A0 (strchrnul)
--514-- REDIR: 0x558B2E0 (free) redirected to 0x4A1F880 (free)
--514-- REDIR: 0x5590640 (strcmp) redirected to 0x4A20EB0 (strcmp)
--514-- REDIR: 0x5593BF0 (stpcpy) redirected to 0x4A21180 (stpcpy)
--514-- Reading syms from /lib64/libnss_files-2.4.so (0x5A84000)
--514--    object doesn't have a symbol table
--514-- REDIR: 0xFFFFFFFFFF600000 (???) redirected to 0x38027BD3 (???)
--514-- REDIR: 0x55918B0 (strncmp) redirected to 0x4A20E60 (strncmp)
--514-- REDIR: 0x5591C60 (strncpy) redirected to 0x4A20D40 (strncpy)
--514-- REDIR: 0x5590490 (index) redirected to 0x4A20990 (index)
--514-- REDIR: 0x5595890 (rawmemchr) redirected to 0x4A214C0 (rawmemchr)
--514-- Reading syms from /lib64/libnss_dns-2.4.so (0x5B8F000)
--514--    object doesn't have a symbol table
--514-- Reading syms from /lib64/libresolv-2.4.so (0x5C94000)
--514--    object doesn't have a symbol table
opening jackpart
--514-- REDIR: 0x55902D0 (strcat) redirected to 0x4A209F0 (strcat)
==514== Syscall param write(buf) points to uninitialised byte(s)
==514==    at 0x4D52BDB: (within /lib64/libpthread-2.4.so)
==514==    by 0x4B2846D: oop_client_deliver_request (client.c:240)
==514==    by 0x4B2B9DF: jack_port_register (port.c:425)
==514==    by 0x404774: jackpart_open(char const*, bool) (jackPart.cc:112)
==514==    by 0x4023C4: mainLoop() (sampleplayer.cpp:454)
==514==    by 0x40250B: main (sampleplayer.cpp:497)
==514==  Address 0x7FEFFE914 is on thread 1's stack
==514== 
==514== Syscall param write(buf) points to uninitialised byte(s)
==514==    at 0x4D52BDB: (within /lib64/libpthread-2.4.so)
==514==    by 0x4B2846D: oop_client_deliver_request (client.c:240)
==514==    by 0x4B299B5: jack_activate (client.c:1820)
==514==    by 0x404787: jackpart_open(char const*, bool) (jackPart.cc:113)
==514==    by 0x4023C4: mainLoop() (sampleplayer.cpp:454)
==514==    by 0x40250B: main (sampleplayer.cpp:497)
==514==  Address 0x7FEFFE934 is on thread 1's stack
==514== 
==514== Syscall param write(buf) points to uninitialised byte(s)
==514==    at 0x4D52BDB: (within /lib64/libpthread-2.4.so)
==514==    by 0x4B2846D: oop_client_deliver_request (client.c:240)
==514==    by 0x4B2A416: jack_connect (client.c:1966)
==514==    by 0x40484A: jackpart_open(char const*, bool) (jackPart.cc:130)
==514==    by 0x4023C4: mainLoop() (sampleplayer.cpp:454)
==514==    by 0x40250B: main (sampleplayer.cpp:497)
==514==  Address 0x7FEFFE934 is on thread 1's stack
setting audio callback
entering idle loop
Asked to load: /home/james/code/sampleplayer/sounds/kick1.wav
	into slot 0
--514-- REDIR: 0x517D490 (operator new[](unsigned long)) redirected to 0x4A1F450 (operator new[](unsigned long))
	converting from SR: 44100
	 to: 48000
	1.08844
	New length: 16671

--514-- REDIR: 0x517C130 (operator delete(void*)) redirected to 0x4A1FBF0 (operator delete(void*))
deleting tmpdata
--514-- REDIR: 0x517C170 (operator delete[](void*)) redirected to 0x4A20010 (operator delete[](void*))
deleting srcdata
deleting sfinfo
	Done.
Asked to load: /home/james/code/sampleplayer/sounds/snare1.wav
	into slot 1
	converting from SR: 44100
	 to: 48000
	1.08844
	New length: 46712

deleting tmpdata
deleting srcdata
deleting sfinfo
	Done.
Asked to load: /home/james/code/sampleplayer/sounds/hat.wav
	into slot 2
	converting from SR: 44100
	 to: 48000
	1.08844
	New length: 1359

deleting tmpdata
deleting srcdata
deleting sfinfo
	Done.
Asked to load: /home/james/code/sampleplayer/sounds/pad1.wav
	with explicit envelope
	into slot 3
	converting from SR: 44100
	 to: 48000
	1.08844
	New length: 271058
--514-- REDIR: 0x5593040 (memmove) redirected to 0x4A21450 (memmove)

deleting tmpdata
deleting srcdata
deleting sfinfo
	Done.
Asked to play slot 3 at vol: 1
Asked to play slot 0 at vol: 0.9
Asked to play slot 2 at vol: 0.9
Asked to play slot 2 at vol: 0.9
Asked to play slot 1 at vol: 0.9
Asked to play slot 2 at vol: 0.9
Asked to play slot 2 at vol: 0.9
Asked to play slot 3 at vol: 1
Asked to play slot 2 at vol: 0.9
Asked to play slot 2 at vol: 0.9
Asked to play slot 0 at vol: 0.9
Asked to play slot 1 at vol: 0.9
Asked to play slot 2 at vol: 0.9
Asked to play slot 2 at vol: 0.9
Asked to play slot 3 at vol: 1
Asked to play slot 0 at vol: 0.9
Asked to play slot 2 at vol: 0.9
Asked to play slot 2 at vol: 0.9
Asked to play slot 1 at vol: 0.9
Asked to play slot 2 at vol: 0.9
Asked to play slot 2 at vol: 0.9
Asked to play slot 3 at vol: 1
Asked to play slot 2 at vol: 0.9
Got OSC quit
==514== 
==514== Syscall param write(buf) points to uninitialised byte(s)
==514==    at 0x4D52BDB: (within /lib64/libpthread-2.4.so)
==514==    by 0x4B2846D: oop_client_deliver_request (client.c:240)
==514==    by 0x4B29B24: jack_deactivate (client.c:1834)
==514==    by 0x4B29B4F: jack_client_close (client.c:1847)
==514==    by 0x404683: jackpart_close() (jackPart.cc:88)
==514==    by 0x402425: mainLoop() (sampleplayer.cpp:477)
==514==    by 0x40250B: main (sampleplayer.cpp:497)
==514==  Address 0x7FEFFE934 is on thread 1's stack
--514-- Discarding syms at 0x5A84000-0x5B8F000 in /lib64/libnss_files-2.4.so due to munmap()
--514-- Discarding syms at 0x5B8F000-0x5C94000 in /lib64/libnss_dns-2.4.so due to munmap()
--514-- Discarding syms at 0x5C94000-0x5DA7000 in /lib64/libresolv-2.4.so due to munmap()
==514== 
==514== ERROR SUMMARY: 9 errors from 4 contexts (suppressed: 4 from 1)
==514== 
==514== 1 errors in context 1 of 4:
==514== Syscall param write(buf) points to uninitialised byte(s)
==514==    at 0x4D52BDB: (within /lib64/libpthread-2.4.so)
==514==    by 0x4B2846D: oop_client_deliver_request (client.c:240)
==514==    by 0x4B29B24: jack_deactivate (client.c:1834)
==514==    by 0x4B29B4F: jack_client_close (client.c:1847)
==514==    by 0x404683: jackpart_close() (jackPart.cc:88)
==514==    by 0x402425: mainLoop() (sampleplayer.cpp:477)
==514==    by 0x40250B: main (sampleplayer.cpp:497)
==514==  Address 0x7FEFFE934 is on thread 1's stack
==514== 
==514== 1 errors in context 2 of 4:
==514== Syscall param write(buf) points to uninitialised byte(s)
==514==    at 0x4D52BDB: (within /lib64/libpthread-2.4.so)
==514==    by 0x4B2846D: oop_client_deliver_request (client.c:240)
==514==    by 0x4B299B5: jack_activate (client.c:1820)
==514==    by 0x404787: jackpart_open(char const*, bool) (jackPart.cc:113)
==514==    by 0x4023C4: mainLoop() (sampleplayer.cpp:454)
==514==    by 0x40250B: main (sampleplayer.cpp:497)
==514==  Address 0x7FEFFE934 is on thread 1's stack
==514== 
==514== 1 errors in context 3 of 4:
==514== Syscall param write(buf) points to uninitialised byte(s)
==514==    at 0x4D52BDB: (within /lib64/libpthread-2.4.so)
==514==    by 0x4B2846D: oop_client_deliver_request (client.c:240)
==514==    by 0x4B2B9DF: jack_port_register (port.c:425)
==514==    by 0x404774: jackpart_open(char const*, bool) (jackPart.cc:112)
==514==    by 0x4023C4: mainLoop() (sampleplayer.cpp:454)
==514==    by 0x40250B: main (sampleplayer.cpp:497)
==514==  Address 0x7FEFFE914 is on thread 1's stack
==514== 
==514== 6 errors in context 4 of 4:
==514== Syscall param write(buf) points to uninitialised byte(s)
==514==    at 0x4D52BDB: (within /lib64/libpthread-2.4.so)
==514==    by 0x4B2846D: oop_client_deliver_request (client.c:240)
==514==    by 0x4B2A416: jack_connect (client.c:1966)
==514==    by 0x40484A: jackpart_open(char const*, bool) (jackPart.cc:130)
==514==    by 0x4023C4: mainLoop() (sampleplayer.cpp:454)
==514==    by 0x40250B: main (sampleplayer.cpp:497)
==514==  Address 0x7FEFFE934 is on thread 1's stack
--514-- 
--514-- supp:    4 Fedora-Core-5-hack3-ld24
==514== 
==514== IN SUMMARY: 9 errors from 4 contexts (suppressed: 4 from 1)
==514== 
==514== malloc/free: in use at exit: 616 bytes in 4 blocks.
==514== malloc/free: 624 allocs, 620 frees, 8,930,770 bytes allocated.
==514== 
==514== searching for pointers to 4 not-freed blocks.
==514== checked 9,203,136 bytes.
==514== 
==514== 
==514== 16 bytes in 1 blocks are still reachable in loss record 1 of 3
==514==    at 0x4A1EAC7: malloc (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==514==    by 0x517C6A3: __cxa_get_globals (in /usr/lib64/gcc/x86_64-pc-linux-gnu/3.4.6/libstdc++.so.6.0.3)
==514==    by 0x517C4A8: std::uncaught_exception() (in /usr/lib64/gcc/x86_64-pc-linux-gnu/3.4.6/libstdc++.so.6.0.3)
==514==    by 0x51534F4: std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*) (in /usr/lib64/gcc/x86_64-pc-linux-gnu/3.4.6/libstdc++.so.6.0.3)
==514==    by 0x40374C: SP_Mixer::SP_Mixer() (sampleplayer.cpp:297)
==514==    by 0x40256F: __static_initialization_and_destruction_0(int, int) (sampleplayer.cpp:351)
==514==    by 0x4025CC: _GLOBAL__I_DEBUG (sampleplayer.cpp:561)
==514==    by 0x4049E5: (within /home/james/code/sampleplayer/src/sampleplayer/sampleplayer)
==514==    by 0x4017F2: (within /home/james/code/sampleplayer/src/sampleplayer/sampleplayer)
==514== 
==514== 
==514== 56 bytes in 1 blocks are still reachable in loss record 2 of 3
==514==    at 0x4A1EAC7: malloc (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==514==    by 0x400AD45: _dl_map_object_deps (in /lib64/ld-2.4.so)
==514==    by 0x400FBD6: dl_open_worker (in /lib64/ld-2.4.so)
==514==    by 0x400C274: _dl_catch_error (in /lib64/ld-2.4.so)
==514==    by 0x401036E: _dl_open (in /lib64/ld-2.4.so)
==514==    by 0x560D45F: (within /lib64/libc-2.4.so)
==514==    by 0x400C274: _dl_catch_error (in /lib64/ld-2.4.so)
==514==    by 0x560D3F1: (within /lib64/libc-2.4.so)
==514==    by 0x560D507: __libc_dlopen_mode (in /lib64/libc-2.4.so)
==514==    by 0x4D545EB: pthread_cancel_init (in /lib64/libpthread-2.4.so)
==514==    by 0x4D51297: pthread_cancel (in /lib64/libpthread-2.4.so)
==514==    by 0x4B29CC7: jack_client_close (client.c:1869)
==514== 
==514== 
==514== 544 bytes in 2 blocks are possibly lost in loss record 3 of 3
==514==    at 0x4A2033A: calloc (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==514==    by 0x400EB39: allocate_dtv (in /lib64/ld-2.4.so)
==514==    by 0x400EE2D: _dl_allocate_tls (in /lib64/ld-2.4.so)
==514==    by 0x4D4DADA: pthread_create@@GLIBC_2.2.5 (in /lib64/libpthread-2.4.so)
==514==    by 0x4C44525: lo_server_thread_start (in /usr/lib64/liblo.so.0.6.0)
==514==    by 0x4023A6: mainLoop() (sampleplayer.cpp:452)
==514==    by 0x40250B: main (sampleplayer.cpp:497)
==514== 
==514== LEAK SUMMARY:
==514==    definitely lost: 0 bytes in 0 blocks.
==514==      possibly lost: 544 bytes in 2 blocks.
==514==    still reachable: 72 bytes in 2 blocks.
==514==         suppressed: 0 bytes in 0 blocks.
--514--  memcheck: sanity checks: 1976 cheap, 80 expensive
--514--  memcheck: auxmaps: 0 auxmap entries (0k, 0M) in use
--514--  memcheck: auxmaps: 0 searches, 0 comparisons
--514--  memcheck: SMs: n_issued      = 180 (2880k, 2M)
--514--  memcheck: SMs: n_deissued    = 117 (1872k, 1M)
--514--  memcheck: SMs: max_noaccess  = 524287 (8388592k, 8191M)
--514--  memcheck: SMs: max_undefined = 43 (688k, 0M)
--514--  memcheck: SMs: max_defined   = 439 (7024k, 6M)
--514--  memcheck: SMs: max_non_DSM   = 127 (2032k, 1M)
--514--  memcheck: max sec V bit nodes:    5 (0k, 0M)
--514--  memcheck: set_sec_vbits8 calls: 9 (new: 5, updates: 4)
--514--  memcheck: max shadow mem size:   6176k, 6M
--514-- translate:            fast SP updates identified: 5,861 ( 86.5%)
--514-- translate:   generic_known SP updates identified: 667 (  9.8%)
--514-- translate: generic_unknown SP updates identified: 245 (  3.6%)
--514--     tt/tc: 15,452 tt lookups requiring 16,393 probes
--514--     tt/tc: 15,452 fast-cache updates, 8 flushes
--514--  transtab: new        6,884 (162,845 -> 2,894,077; ratio 177:10) [0 scs]
--514--  transtab: dumped     0 (0 -> ??)
--514--  transtab: discarded  423 (9,277 -> ??)
--514-- scheduler: 104,912,667 jumps (bb entries).
--514-- scheduler: 1,976/26,349 major/minor sched events.
--514--    sanity: 1977 cheap, 80 expensive checks.
--514--    exectx: 30,011 lists, 193 contexts (avg 0 per list)
--514--    exectx: 1,257 searches, 1,381 full compares (1,098 per 1000)
--514--    exectx: 2 cmp2, 17 cmp4, 0 cmpAll


More information about the Linux-audio-dev mailing list