[Freeswitch-users] Memory leak in mod_nibblebill or in ODBC core?

Anthony Minessale anthony.minessale at gmail.com
Mon Apr 19 11:46:22 PDT 2010


stream.data must be freed, in that case i think its being converted to char
by assigning sql to point at it but it is still freed in the end, that type
of mistake would be all over the place in valgrind.

look for a pool that is being reused over and over and never destroyed.



On Mon, Apr 19, 2010 at 1:25 PM, Sergey Okhapkin
<sos at sokhapkin.dyndns.org>wrote:

>  Yes, I agree that these strdups can be ignored. I believe I found where
> the memory problem comes from, the beginning of bill_event function in
> mod_nubblebill has
>
> SWITCH_STANDARD_STREAM(sql_stream);
>
> But SWITCH_STANDARD_STREAM macro does malloc! I do not see a place in the
> function where the memory is freed. Am I right?
>
> #define SWITCH_STANDARD_STREAM(s) memset(&s, 0, sizeof(s)); s.data =
> malloc(SWITCH_CMD_CHUNK_LEN); \
>
> switch_assert(s.data); \
>
> memset(s.data, 0, SWITCH_CMD_CHUNK_LEN); \
>
> s.end = s.data; \
>
> s.data_size = SWITCH_CMD_CHUNK_LEN; \
>
> s.write_function = switch_console_stream_write; \
>
> s.raw_write_function = switch_console_stream_raw_write; \
>
> s.alloc_len = SWITCH_CMD_CHUNK_LEN; \
>
> s.alloc_chunk = SWITCH_CMD_CHUNK_LEN
>
>  On Monday 19 April 2010, Rupa Schomaker wrote:
>
> > Those strdups are probably easily fixed. But... THey are just in the
>
> > module load, not as part of the module runtime. So it is a one-time leak
>
> > not a per-call or per-nibble leak.
>
> >
>
> > On Mon, Apr 19, 2010 at 12:48 PM, Sergey Okhapkin
>
> >
>
> > <sos at sokhapkin.dyndns.org>wrote:
>
> > > Few unimportant records only:
>
> > >
>
> > > ==12476== 7 bytes in 1 blocks are still reachable in loss record 21 of
>
> > > 141 ==12476== at 0x4026378: malloc (in /usr/lib/valgrind/x86-
>
> > > linux/vgpreload_memcheck.so)
>
> > > ==12476== by 0x457B6CF: strdup (in /lib/libc-2.10.1.so)
>
> > > ==12476== by 0x7BECC00: mod_nibblebill_load (mod_nibblebill.c:132)
>
> > >
>
> > > ==12476== 7 bytes in 1 blocks are still reachable in loss record 22 of
>
> > > 141 ==12476== at 0x4026378: malloc (in /usr/lib/valgrind/x86-
>
> > > linux/vgpreload_memcheck.so)
>
> > > ==12476== by 0x457B6CF: strdup (in /lib/libc-2.10.1.so)
>
> > > ==12476== by 0x7BECD14: mod_nibblebill_load (mod_nibblebill.c:134)
>
> > >
>
> > > ==12476== 7 bytes in 1 blocks are still reachable in loss record 23 of
>
> > > 141 ==12476== at 0x4026378: malloc (in /usr/lib/valgrind/x86-
>
> > > linux/vgpreload_memcheck.so)
>
> > > ==12476== by 0x457B6CF: strdup (in /lib/libc-2.10.1.so)
>
> > > ==12476== by 0x7BECACC: mod_nibblebill_load (mod_nibblebill.c:128)
>
> > >
>
> > > ==12476== 8 bytes in 1 blocks are still reachable in loss record 28 of
>
> > > 141 ==12476== at 0x4026378: malloc (in /usr/lib/valgrind/x86-
>
> > > linux/vgpreload_memcheck.so)
>
> > > ==12476== by 0x457B6CF: strdup (in /lib/libc-2.10.1.so)
>
> > > ==12476== by 0x7BEC9FB: mod_nibblebill_load (mod_nibblebill.c:127)
>
> > >
>
> > > ==12476== 9 bytes in 1 blocks are still reachable in loss record 30 of
>
> > > 141 ==12476== at 0x4026378: malloc (in /usr/lib/valgrind/x86-
>
> > > linux/vgpreload_memcheck.so)
>
> > > ==12476== by 0x457B6CF: strdup (in /lib/libc-2.10.1.so)
>
> > > ==12476== by 0x7BECB19: mod_nibblebill_load (mod_nibblebill.c:129)
>
> > >
>
> > > ==12476== 10 bytes in 1 blocks are still reachable in loss record 34 of
>
> > > 141 ==12476== at 0x4026378: malloc (in /usr/lib/valgrind/x86-
>
> > > linux/vgpreload_memcheck.so)
>
> > > ==12476== by 0x457B6CF: strdup (in /lib/libc-2.10.1.so)
>
> > > ==12476== by 0x7BECC8A: mod_nibblebill_load (mod_nibblebill.c:133)
>
> > > ==12476==
>
> > > ==12476==
>
> > > ==12476== 10 bytes in 1 blocks are still reachable in loss record 35 of
>
> > > 141 ==12476== at 0x4026378: malloc (in /usr/lib/valgrind/x86-
>
> > > linux/vgpreload_memcheck.so)
>
> > > ==12476== by 0x457B6CF: strdup (in /lib/libc-2.10.1.so)
>
> > > ==12476== by 0x7BEC5D6: mod_nibblebill_load (mod_nibblebill.c:125)
>
> > >
>
> > > ==12476== 14 bytes in 1 blocks are still reachable in loss record 45 of
>
> > > 141 ==12476== at 0x4026378: malloc (in /usr/lib/valgrind/x86-
>
> > > linux/vgpreload_memcheck.so)
>
> > > ==12476== by 0x457B6CF: strdup (in /lib/libc-2.10.1.so)
>
> > > ==12476== by 0x7BEC54D: mod_nibblebill_load (mod_nibblebill.c:124)
>
> > >
>
> > > On Monday 19 April 2010, Anthony Minessale wrote:
>
> > > > and did anything in the valgrind report even mention nibblebill?
>
> > > > you only sent the tiny excerpt.
>
> > > >
>
> > > >
>
> > > > On Mon, Apr 19, 2010 at 12:27 PM, Sergey Okhapkin
>
> > > >
>
> > > > <sos at sokhapkin.dyndns.org>wrote:
>
> > > > > Anyway it's offtopic already:-) The thread was about unbounded
> memory
>
> > > > > grows with enabled mod_nibblebill. On relatively busy server memory
>
> > >
>
> > > stays
>
> > >
>
> > > > > at about
>
> > > > > 100M RSS for weeks if mod_nibblebill is not used, but grows to 800M
>
> > > > > in one day
>
> > > > > if nibbling is enabled.
>
> > > > >
>
> > > > > On Monday 19 April 2010, Brian West wrote:
>
> > > > > > That still doesn't mean the dialogs were properly cleared by the
>
> > > > > > sip
>
> > > > >
>
> > > > > stack
>
> > > > >
>
> > > > > > before shutdown. That is what anthony is getting at. Valgrind
>
> > > > > > does
>
> > > > >
>
> > > > > make
>
> > > > >
>
> > > > > > mistakes at times about what is leaking in cases like this.
>
> > > > > >
>
> > > > > > /b
>
> > > > > >
>
> > > > > > On Apr 19, 2010, at 12:06 PM, Sergey Okhapkin wrote:
>
> > > > > > > Yes, I stopped the traffic to the server and issued hupall CLI
>
> > > > > > > command before shutting down FS.
>
> > > > > >
>
> > > > > > _______________________________________________
>
> > > > > > FreeSWITCH-users mailing list
>
> > > > > > FreeSWITCH-users at lists.freeswitch.org
>
> > > > > > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>
> > > > > > UNSUBSCRIBE:
>
> > >
>
> > > http://lists.freeswitch.org/mailman/options/freeswitch-user
>
> > >
>
> > > > > >s http://www.freeswitch.org
>
> > > > >
>
> > > > > _______________________________________________
>
> > > > > FreeSWITCH-users mailing list
>
> > > > > FreeSWITCH-users at lists.freeswitch.org
>
> > > > > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>
> > > > > UNSUBSCRIBE:
>
> > >
>
> > > http://lists.freeswitch.org/mailman/options/freeswitch-users
>
> > >
>
> > > > > http://www.freeswitch.org
>
> > >
>
> > > _______________________________________________
>
> > > FreeSWITCH-users mailing list
>
> > > FreeSWITCH-users at lists.freeswitch.org
>
> > > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>
> > > UNSUBSCRIBE:
> http://lists.freeswitch.org/mailman/options/freeswitch-users
>
> > > http://www.freeswitch.org
>
> >
>
>
> _______________________________________________
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>
>


-- 
Anthony Minessale II

FreeSWITCH http://www.freeswitch.org/
ClueCon http://www.cluecon.com/
Twitter: http://twitter.com/FreeSWITCH_wire

AIM: anthm
MSN:anthony_minessale at hotmail.com <MSN%3Aanthony_minessale at hotmail.com>
GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com<PAYPAL%3Aanthony.minessale at gmail.com>
IRC: irc.freenode.net #freeswitch

FreeSWITCH Developer Conference
sip:888 at conference.freeswitch.org <sip%3A888 at conference.freeswitch.org>
googletalk:conf+888 at conference.freeswitch.org<googletalk%3Aconf%2B888 at conference.freeswitch.org>
pstn:+19193869900
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20100419/dd041c6e/attachment.html 


More information about the FreeSWITCH-users mailing list