[Asterisk-Dev] more valgrind fun with discriptors and app_voicemail

Matthew Boehm mboehm at cytelcom.com
Wed May 11 15:49:55 MST 2005


Using USE_ODBC_STORAGE with app_voicemail. CVS-HEAD-05/07/05-22:25:13

<snip the loading stuff>
Asterisk Malloc Debugger Started (see /var/log/asterisk/mmlog)
Urgent handler
*CLI> ==19059==
==19059== Thread 6:
==19059== Syscall param write(buf) points to uninitialised byte(s)
==19059==    at 0x1B920F3B: write (in /lib/libpthread-0.10.so)
==19059==    by 0x80D28FC: ast_pthread_create_stack (utils.c:410)
==19059==    by 0x1BAF7926: clone (in /lib/libc-2.3.2.so)
==19059==  Address 0x51DFD188 is on thread 6's stack
    -- Executing VoiceMail("SIP/3044-32a9", "u3044 at cytel") in new stack
Urgent handler
==19066==
==19066== Thread 12:
==19066== Conditional jump or move depends on uninitialised value(s)
==19066==    at 0x1C668163: ??? (private.h:117)
==19066==    by 0x6B: ???
==19066==
==19066== Conditional jump or move depends on uninitialised value(s)
==19066==    at 0x1C666043: ??? (private.h:117)
==19066==    by 0x6B: ???
==19066==
==19066== Conditional jump or move depends on uninitialised value(s)
==19066==    at 0x1C66899E: ??? (short_term.c:306)
==19066==    by 0x6B: ???
==19066==
==19066== Conditional jump or move depends on uninitialised value(s)
==19066==    at 0x1C6689F4: ??? (short_term.c:315)
==19066==    by 0x6B: ???
==19066==
==19066== Conditional jump or move depends on uninitialised value(s)
==19066==    at 0x1C665474: ??? (private.h:117)
==19066==    by 0x6B: ???
==19066==
==19066== Use of uninitialised value of size 4
==19066==    at 0x1C6822AA: ??? (codec_ulaw.c:223)
==19066==    by 0x6B: ???
    -- Playing '/var/spool/asterisk/voicemail/cytel/3044/unavail' (language
'en')
Urgent handler
==19066==
==19066== Conditional jump or move depends on uninitialised value(s)
==19066==    at 0x8063AB7: ast_waitfor_nandfds (channel.c:1149)
==19066==    by 0x8063D10: ast_waitfor_n (channel.c:1190)
==19066==    by 0x6B: ???
    -- Playing 'vm-intro' (language 'en')
Urgent handler
    -- Playing 'beep' (language 'en')
Urgent handler
    -- Recording the message
Urgent handler
    -- x=0, open writing:
/var/spool/asterisk/voicemail/cytel/3044/INBOX/msg0000 format: wav49,
0x1bd68290
Urgent handler
    -- User hung up
Urgent handler
==19066==
==19066== Syscall param write(buf) points to uninitialised byte(s)
==19066==    at 0x1B920F3B: write (in /lib/libpthread-0.10.so)
==19066==    by 0x80D28FC: ast_pthread_create_stack (utils.c:410)
==19066==    by 0x1C53E4F9: ??? (app_voicemail.c:2903)
==19066==    by 0x1C54556D: ??? (app_voicemail.c:2225)
==19066==    by 0x6B: ???
==19066==  Address 0x511F6628 is on thread 12's stack
==19070== Warning: invalid file descriptor 1014 in syscall close()
==19070== Warning: invalid file descriptor 1015 in syscall close()
==19070== Warning: invalid file descriptor 1016 in syscall close()
==19070== Warning: invalid file descriptor 1017 in syscall close()

<repeat until 4095; then repeat AGAIN from 1014 to 4095>

Over 8000 lines of that invalid descriptor stuff. Any idea what that is? I
don't get that if I use filesystem storage.

Valgrind's summary of that run:

==19015== ERROR SUMMARY: 974507 errors from 109 contexts (suppressed: 436
from 5)
==19015== malloc/free: in use at exit: 417780 bytes in 2580 blocks.
==19015== malloc/free: 5659 allocs, 3081 frees, 2608454 bytes allocated.
==19015== For counts of detected errors, rerun with: -v
==19015== searching for pointers to 2580 not-freed blocks.
==19015== checked 6183928 bytes.

<snip; description of all the reachable memory>

==19015== LEAK SUMMARY:
==19015==    definitely lost: 0 bytes in 0 blocks.
==19015==      possibly lost: 0 bytes in 0 blocks.
==19015==    still reachable: 417780 bytes in 2580 blocks.
==19015==         suppressed: 0 bytes in 0 blocks.

A good majority of the still reachable memory references ODBC in some
fashion.

-Matthew




More information about the asterisk-dev mailing list