Merged changes on LB->JP mill from HEAD (new features and proper purging fix).
authorFrantišek Dvořák <valtri@civ.zcu.cz>
Thu, 2 Aug 2007 11:41:29 +0000 (11:41 +0000)
committerFrantišek Dvořák <valtri@civ.zcu.cz>
Thu, 2 Aug 2007 11:41:29 +0000 (11:41 +0000)
Fixed "wildcard race condition" when collecting and deleting dumps from purgedir.

org.glite.jp.client/examples/glite-jp-importer.sh
org.glite.jp.client/examples/mill_feed.c

index cfc5849..b92d14d 100644 (file)
@@ -32,7 +32,11 @@ fi
 # dump directory of bkserver
 if [ -z "$GLITE_LB_EXPORT_DUMPDIR" ]; then
   GLITE_LB_EXPORT_DUMPDIR=/tmp/dump
-  echo "GLITE_LB_EXPORT_DUMPDIR not specified (-D arguent of the bkserver), used $GLITE_LB_EXPORT_DUMPDIR"
+  echo "GLITE_LB_EXPORT_DUMPDIR not specified (-D argument of the bkserver), used $GLITE_LB_EXPORT_DUMPDIR"
+fi
+if [ -z "$GLITE_LB_EXPORT_PURGEDIR" ]; then
+  GLITE_LB_EXPORT_PURGEDIR=/tmp/purge
+  echo "GLITE_LB_EXPORT_PURGEDIR not specified (-S argument of the bkserver), used $GLITE_LB_EXPORT_PURGEDIR"
 fi
 # LB maildir for job registration
 if [ -z "$GLITE_LB_EXPORT_JPREG_MAILDIR" ]; then
@@ -74,8 +78,8 @@ trap "kill $JP_PID; exit 0" SIGINT
 
 while [ 1 ]; do
   $PREFIX/sbin/glite-lb-purge $GLITE_LB_EXPORT_PURGE_ARGS -l -m $GLITE_LB_EXPORT_BKSERVER -s
-
-  for file in $GLITE_LB_EXPORT_DUMPDIR/*; do
+  list=`ls $GLITE_LB_EXPORT_PURGEDIR/* 2>/dev/null`
+  for file in $list; do
     if [ -s $file ]; then
       $PREFIX/sbin/glite-lb-lb_dump_exporter -d $file -s $GLITE_LB_EXPORT_JOBSDIR -m $GLITE_LB_EXPORT_JPDUMP_MAILDIR
       if [ -n "$GLITE_LB_EXPORT_DUMPDIR_KEEP" ]; then
index bee31b8..8052299 100644 (file)
@@ -104,6 +104,7 @@ int main(int argc, char *argv[]) {
        }
        if (speed) printf("speed:     %d jobs/day (delay %lf)\n", speed, duration / 1000000.0);
        else printf("speed:     unlimited\n");
+       printf("dump:      %s\n", dumpfile ? dumpfile : "(none)");
        printf("reg-mdir:  %s\n", jpreg_dir);
        printf("dump-mdir: %s\n", dump_dir);
        printf("start:     %lf\n", ts);
@@ -260,9 +261,9 @@ static int dump_init(const char *start_jobid, const char *filename) {
        }
 //for (i = 0; i < dump_tokens; i++) printf("####%s\n", dump_index[i]);
 
-       // FIXME: is it OK? (probably different HEAD and branch)
        if (!dump_dir) {
-               env = getenv("GLITE_LB_EXPORT_DUMPDIR");
+               // wrong purging to GLITE_LB_EXPORT_DUMPDIR on older versions
+               env = getenv("GLITE_LB_EXPORT_PURGEDIR");
                if (env) dump_dir = strdup(env);
                else dump_dir = strdup(EDG_DUMP_STORAGE);
        }