From: Miloš Mulač Date: Thu, 15 May 2008 09:28:45 +0000 (+0000) Subject: do not stop erasing if job already among zombies (rare error) X-Git-Tag: glite-yaim-lb_R_4_0_2_1~41 X-Git-Url: http://scientific.zcu.cz/git/?a=commitdiff_plain;h=b3074d0e422974902c4063749f99bbd22b186741;p=jra1mw.git do not stop erasing if job already among zombies (rare error) --- diff --git a/org.glite.lb.server/src/srv_purge.c b/org.glite.lb.server/src/srv_purge.c index ebf3da5..566f639 100644 --- a/org.glite.lb.server/src/srv_purge.c +++ b/org.glite.lb.server/src/srv_purge.c @@ -260,6 +260,21 @@ int edg_wll_PurgeServer(edg_wll_Context ctx,const edg_wll_PurgeRequest *request, case ENOENT: /* job does not exist, consider purged and ignore */ edg_wll_ResetError(ctx); break; + case EEXIST: + /* job already among zombies */ + /* do not delete it, print error but */ + /* continue erasing other jobs */ + { + char *et, *ed, *msg; + edg_wll_Error(ctx, &et, &ed); + + asprintf(&msg,"Error during erasing job %s (%s: %s) skippig this job, but continue erasing rest of the jobs.",request->jobs[i],et,ed), + fprintf(stderr,"[%d] %s\n", getpid(), msg); + syslog(LOG_INFO,msg); + free(et); free(ed); free(msg); + edg_wll_ResetError(ctx); + } + break; default: goto abort; } @@ -325,6 +340,20 @@ int edg_wll_PurgeServer(edg_wll_Context ctx,const edg_wll_PurgeRequest *request, edg_wll_ResetError(ctx); continue; } + if (edg_wll_Error(ctx, NULL, NULL) == EEXIST) { + /* job already among zombies */ + /* do not delete it, print error but */ + /* continue erasing other jobs */ + char *et, *ed, *msg; + edg_wll_Error(ctx, &et, &ed); + + asprintf(&msg,"Error during erasing job %s (%s: %s) skippig this job, but continue erasing rest of the jobs.",job_s,et,ed), + fprintf(stderr,"[%d] %s\n", getpid(), msg); + syslog(LOG_INFO,msg); + free(et); free(ed); free(msg); + edg_wll_ResetError(ctx); + continue; + } goto abort; }