From d76474733a294206ee332f7ae722004a20bd8fa3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Milo=C5=A1=20Mula=C4=8D?= Date: Wed, 4 Jun 2008 11:52:04 +0000 Subject: [PATCH] memory leaks fixed - possible to purge tens kilo jobs without problems --- org.glite.lb.server/src/get_events.c.T | 2 ++ org.glite.lb.server/src/srv_purge.c | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/org.glite.lb.server/src/get_events.c.T b/org.glite.lb.server/src/get_events.c.T index 8dc5f9f..03d0908 100644 --- a/org.glite.lb.server/src/get_events.c.T +++ b/org.glite.lb.server/src/get_events.c.T @@ -43,11 +43,13 @@ int edg_wll_get_event_flesh(edg_wll_Context ctx,int n,edg_wll_Event *e) //fprintf(stderr, "got ulm: '%s'\n", nameval[0]); // nasty ;-) edg_wll_ParseEvent(ctx,nameval[0],&f); + free(nameval[0]); memcpy(e, f, sizeof *e); free(f); ret=edg_wll_CheckEvent(ctx,e); } else ret = ENOENT; free(q); q = NULL; + glite_lbu_FreeStmt(&sh); // old way keeped for compatibility/slow migration if (ret != 0) { diff --git a/org.glite.lb.server/src/srv_purge.c b/org.glite.lb.server/src/srv_purge.c index 25c41bf..e3a7b5d 100644 --- a/org.glite.lb.server/src/srv_purge.c +++ b/org.glite.lb.server/src/srv_purge.c @@ -427,7 +427,6 @@ static int dump_events(edg_wll_Context ctx, glite_jobid_const_t job, int dump, c if (convert_event_head(ctx,res,&e) || edg_wll_get_event_flesh(ctx,event,&e)) { char *et,*ed, *dbjob; - int i; /* Most likely sort of internal inconsistency. @@ -438,7 +437,6 @@ static int dump_events(edg_wll_Context ctx, glite_jobid_const_t job, int dump, c fprintf(stderr,"%s event %d: %s (%s)\n",dbjob,event,et,ed); syslog(LOG_WARNING,"%s event %d: %s (%s)",dbjob,event,et,ed); free(et); free(ed); free(dbjob); - for (i=0; i= 0) { + int ret_dump, i; + assert(ret == 10); - if (dump_events( ctx, job, dump, (char **) &res)) goto rollback; + ret_dump = dump_events( ctx, job, dump, (char **) &res); + for (i=0; i