[Ask for help] How to resolve these two memory leak problem? thanks!
Hello all, I still met below two memory leaks problem when using remote udp connection: ==11004== 20 bytes in 2 blocks are definitely lost in loss record 18 of 596 ==11004== at 0x4A05F58: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==11004== by 0x305927C6B1: strdup (strdup.c:43) ==11004== by 0x305E6529F2: _cfg_lexer_lex (cfg-lex.l:199) ==11004== by 0x305E6284C1: cfg_lexer_lex (cfg-lexer.c:759) ==11004== by 0x305E65BF76: rewrite_expr_parse (rewrite-expr-grammar.c:2959) ==11004== by 0x305E654732: T.99 (cfg-parser.h:83) ==11004== by 0x305E655294: main_parse (cfg-grammar.y:584) ==11004== by 0x305E625EE2: cfg_run_parser (cfg-parser.h:83) ==11004== by 0x305E625FF5: cfg_read_config (cfg.c:384) ==11004== by 0x305E642A6E: main_loop_init (mainloop.c:680) ==11004== by 0x401774: main (main.c:246) _cfg_lexer_lex (cfg-lex.l:199) is: yylval->cptr = strdup(yyextra->string_buffer->str); ==11004== 40,960 bytes in 40 blocks are definitely lost in loss record 596 of 596 ==11004== at 0x4A05F58: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==11004== by 0x305DA478F4: g_malloc (in /lib64/libglib-2.0.so.0.2600.0) ==11004== by 0x305E641778: log_writer_flush (logwriter.c:950) ==11004== by 0x305E64185C: log_writer_work_perform (logwriter.c:130) ==11004== by 0x305E6418C7: log_writer_io_flush_output (logwriter.c:210) ==11004== by 0x305E6605E6: iv_fd_poll_and_run (iv_fd.c:167) ==11004== by 0x305E660D93: iv_main (iv_main_posix.c:117) ==11004== by 0x305E641D86: main_loop_run (mainloop.c:737) ==11004== by 0x4017A0: main (main.c:267) log_writer_flush (logwriter.c:950) is: self->line_buffer->str = g_malloc(self->line_buffer->allocated_len); These were found in syslog-ng-3.4.2, and I don't think syslog-ng upstream has already fixed these problem, Does anybody know how to fix it? Thanks in advance! Xufeng
On 04/14/2014 02:35 PM, Xufeng Zhang wrote:
Hello all,
I still met below two memory leaks problem when using remote udp connection:
==11004== 20 bytes in 2 blocks are definitely lost in loss record 18 of 596 ==11004== at 0x4A05F58: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==11004== by 0x305927C6B1: strdup (strdup.c:43) ==11004== by 0x305E6529F2: _cfg_lexer_lex (cfg-lex.l:199) ==11004== by 0x305E6284C1: cfg_lexer_lex (cfg-lexer.c:759) ==11004== by 0x305E65BF76: rewrite_expr_parse (rewrite-expr-grammar.c:2959) ==11004== by 0x305E654732: T.99 (cfg-parser.h:83) ==11004== by 0x305E655294: main_parse (cfg-grammar.y:584) ==11004== by 0x305E625EE2: cfg_run_parser (cfg-parser.h:83) ==11004== by 0x305E625FF5: cfg_read_config (cfg.c:384) ==11004== by 0x305E642A6E: main_loop_init (mainloop.c:680) ==11004== by 0x401774: main (main.c:246)
_cfg_lexer_lex (cfg-lex.l:199) is: yylval->cptr = strdup(yyextra->string_buffer->str);
Could anybody take a look at the above memory leak? it also happens on syslog-ng_3.5.4.1. Please ignore the below memory, I have resolved it. Thanks, Xufeng
==11004== 40,960 bytes in 40 blocks are definitely lost in loss record 596 of 596 ==11004== at 0x4A05F58: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==11004== by 0x305DA478F4: g_malloc (in /lib64/libglib-2.0.so.0.2600.0) ==11004== by 0x305E641778: log_writer_flush (logwriter.c:950) ==11004== by 0x305E64185C: log_writer_work_perform (logwriter.c:130) ==11004== by 0x305E6418C7: log_writer_io_flush_output (logwriter.c:210) ==11004== by 0x305E6605E6: iv_fd_poll_and_run (iv_fd.c:167) ==11004== by 0x305E660D93: iv_main (iv_main_posix.c:117) ==11004== by 0x305E641D86: main_loop_run (mainloop.c:737) ==11004== by 0x4017A0: main (main.c:267)
log_writer_flush (logwriter.c:950) is: self->line_buffer->str = g_malloc(self->line_buffer->allocated_len);
These were found in syslog-ng-3.4.2, and I don't think syslog-ng upstream has already fixed these problem, Does anybody know how to fix it?
Thanks in advance! Xufeng
participants (1)
-
Xufeng Zhang