[OpenSIPS-Users] Parser memory Leak found.
Rodrigo Pimenta Carvalho
pimenta at inatel.br
Fri Jun 17 19:57:09 CEST 2016
Hi.
Thanks Daniel Fússia, a coworker in my office, now I'm sending more details about the memory leak we saw in OpenSIPS 2.2 (newest commit from today):
The following configuration doesn't causes memory leaks:
modparam("dialog", "db_mode", 1)
modparam("dialog", "db_url", "sqlite:///usr/local/opensips/db/sisc.sqlite")
But, when db_mode is 0, it causes memory leak. The problem is that when using db_mode = 0 we can't declare db_url. That is, if db_mode is zero, we have to comment the line that declares db_url.
See below the valgrind logs. One for the case without memory leak and another one with the issue.
-----------------------------------------------------------------------------------------------------------------------------
==1792==
==1792== HEAP SUMMARY:
==1792== in use at exit: 3,142,778 bytes in 2,894 blocks
==1792== total heap usage: 9,463 allocs, 6,569 frees, 4,960,116 bytes allocated
==1792==
==1792== LEAK SUMMARY:
==1792== definitely lost: 0 bytes in 0 blocks
==1792== indirectly lost: 0 bytes in 0 blocks
==1792== possibly lost: 0 bytes in 0 blocks
==1792== still reachable: 3,142,778 bytes in 2,894 blocks
==1792== suppressed: 0 bytes in 0 blocks
==1792== Reachable blocks (those to which a pointer was found) are not shown.
==1792== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==1792==
------------------------------------------------------------------------------------------------------------------------------------
Now with the isse:
---------------------------------------------------------------------------------------------------------------------------------------
Thank you for flying opensips
==1762==
==1762== HEAP SUMMARY:
==1762== in use at exit: 2,887,898 bytes in 2,193 blocks
==1762== total heap usage: 7,991 allocs, 5,798 frees, 4,382,036 bytes allocated
==1762==
==1762== 80 bytes in 1 blocks are definitely lost in loss record 31 of 100
==1762== at 0x4C2745D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==1762== by 0x52D50B9: strdup (strdup.c:42)
==1762== by 0x4DF87E: set_mod_param_regex (modparam.c:97)
==1762== by 0x5AD2FB: yyparse (cfg.y:1085)
==1762== by 0x4177DE: main (main.c:999)
==1762==
==1762== LEAK SUMMARY:
==1762== definitely lost: 80 bytes in 1 blocks
==1762== indirectly lost: 0 bytes in 0 blocks
==1762== possibly lost: 0 bytes in 0 blocks
==1762== still reachable: 2,887,818 bytes in 2,192 blocks
==1762== suppressed: 0 bytes in 0 blocks
==1762== Reachable blocks (those to which a pointer was found) are not shown.
==1762== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==1762==
-------------------------------------------------------------------------------------------------------------------------------------------------
The problem rises in the yyparser. The parser causes a memory leak whenever db_mode is zero and we still declare db_url, just in dialog module.
Regards.
RODRIGO PIMENTA CARVALHO
Inatel Competence Center
Software
Ph: +55 35 3471 9200 RAMAL 979
________________________________
De: Daniel Lopes Fússia
Enviado: sexta-feira, 17 de junho de 2016 14:41
Para: Rodrigo Pimenta Carvalho
Assunto: Leak no Parser
Pimenta,
Os logs e as configurações estão em anexo.
Qualquer dúvida me dá um tok.
Att,
Daniel Fussia
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20160617/64800bcf/attachment.htm>
More information about the Users
mailing list