[syslog-ng] Parser-DB Memory Leak

ILLES, Marton illes.marton at balabit.hu
Fri Apr 24 19:29:34 CEST 2009


On Fri, 2009-04-24 at 18:28 +0200, ILLES, Marton wrote:
> On Fri, 2009-04-24 at 10:29 -0500, Martin Holste wrote:
> > I'm running tests with the db-parser() parser module and finding that
> > the memory grows exponentially until the program finally dies with:
> > 
> > ***MEMORY-ERROR***: syslog-ng[2769]: GSlice: failed to allocate 248
> > bytes (alignment: 256): Cannot allocate memory
> > 
> 
> snip
> 
> > Should I recompile with memtrace on?
> > 
> 
> Running it in valgrind would be even more useful also enabling core
> might help as well.
> 
> M

I think I have got it:

commit 778cb9b27366425153a6141d4966a1a464e97e79
Author: Marton Illes <marci at balabit.hu>
Date:   Fri Apr 24 19:24:40 2009 +0200

    fixed a memory leak in db-parser() dynamic value handling
    
    Reported by: Martin Holste

diff --git a/src/logpatterns.c b/src/logpatterns.c
index f1012eb..fda9088 100644
--- a/src/logpatterns.c
+++ b/src/logpatterns.c
@@ -312,6 +312,7 @@ log_pattern_database_lookup(LogPatternDatabase
*self, LogMessage *msg)
                */
 
               g_ptr_array_free(match_names, TRUE);
+              g_array_free(matches, FALSE);
               return ((LogDBResult *) msg_node->value);
             }
           g_ptr_array_free(match_names, TRUE);

Also in my git tree, please give it a try.
http://git.balabit.hu/?p=marci/syslog-ng-3.0.git;a=commit;h=778cb9b27366425153a6141d4966a1a464e97e79


best,

Marton
-- 
Key fingerprint = F78C 25CA 5F88 6FAF EA21 779D 3279 9F9E 1155 670D




More information about the syslog-ng mailing list