- fixed bug in load dumps
authorFrantišek Dvořák <valtri@civ.zcu.cz>
Thu, 4 May 2006 14:19:55 +0000 (14:19 +0000)
committerFrantišek Dvořák <valtri@civ.zcu.cz>
Thu, 4 May 2006 14:19:55 +0000 (14:19 +0000)
 - improved startup script (default behaviour not changed)
 - print summarize time in SQL profile report (w/o protecting by lock)

org.glite.lb.server/config/startup
org.glite.lb.server/src/lbs_db.c
org.glite.lb.server/src/load.c

index d712223..fc3b0a5 100755 (executable)
@@ -36,26 +36,30 @@ start()
 
        [ -z "$GLITE_LB_EXPORT_DUMPDIR" ] && GLITE_LB_EXPORT_DUMPDIR=/tmp/dump
        purgedir="--dump-prefix $GLITE_LB_EXPORT_DUMPDIR"
-       [ -d "$GLITE_LB_EXPORT_DUMPDIR" ] || mkdir "$GLITE_LB_EXPORT_DUMPDIR" && chown $GLITE_USER:$GLITE_GROUP "$GLITE_LB_EXPORT_DUMPDIR"
+       [ -d "$GLITE_LB_EXPORT_DUMPDIR" ] || mkdir -p "$GLITE_LB_EXPORT_DUMPDIR" && chown $GLITE_USER:$GLITE_GROUP -R "$GLITE_LB_EXPORT_DUMPDIR"
 
        [ -z "$GLITE_LB_EXPORT_JPREG_MAILDIR" ] && GLITE_LB_EXPORT_JPREG_MAILDIR=/tmp/jpreg
        maildir="--jpreg-dir $GLITE_LB_EXPORT_JPREG_MAILDIR"
-       [ -d "$GLITE_LB_EXPORT_JPREG_MAILDIR" ] || mkdir "$GLITE_LB_EXPORT_JPREG_MAILDIR" && chown $GLITE_USER:$GLITE_GROUP "$GLITE_LB_EXPORT_JPREG_MAILDIR"
+       [ -d "$GLITE_LB_EXPORT_JPREG_MAILDIR" ] || mkdir -p "$GLITE_LB_EXPORT_JPREG_MAILDIR" && chown $GLITE_USER:$GLITE_GROUP -R "$GLITE_LB_EXPORT_JPREG_MAILDIR"
 
        [ -z "$creds" ] && echo $0: WARNING: No credentials specified. Using default lookup which is dangerous. >&2
 
        [ -n "$GLITE_LB_SERVER_PORT" ] && port="-p $GLITE_LB_SERVER_PORT"
+       [ -n "$GLITE_LB_SERVER_WPORT" ] && wport="-w $GLITE_LB_SERVER_WPORT"
+
+       [ -z "$GLITE_LB_NOTIF_SOCK" ] && GLITE_LB_NOTIF_SOCK="/tmp/glite-lb-notif.sock"
+       [ -z "$GLITE_LB_NOTIF_FPREFIX" ] && GLITE_LB_NOTIF_FPREFIX="/var/tmp/glite-lb-notif"
 
        echo -n Starting glite-lb-bkserver ...
        su - $GLITE_USER -c "$GLITE_LOCATION/bin/glite-lb-bkserverd \
-               --notif-il-sock=/tmp/glite-lb-notif.sock \
-               --notif-il-fprefix=/var/tmp/glite-lb-notif \
-               $creds -i $pidfile $port $purgedir $maildir" \
+               --notif-il-sock=$GLITE_LB_NOTIF_SOCK \
+               --notif-il-fprefix=$GLITE_LB_NOTIF_FPREFIX \
+               $creds -i $pidfile $port $wport $purgedir $maildir" \
        && echo " done" || echo " FAILED"
 
        echo -n Starting glite-lb-notif-interlogd ...
        su - $GLITE_USER -c "$GLITE_LOCATION/bin/glite-lb-notif-interlogd \
-               -f /var/tmp/glite-lb-notif -s /tmp/glite-lb-notif.sock \
+               -f $GLITE_LB_NOTIF_FPREFIX -s $GLITE_LB_NOTIF_SOCK \
                $creds" && echo " done" || echo " FAILED"
 }
 
@@ -89,7 +93,7 @@ status()
 {
        retval=0
 
-       if netstat -an --unix | grep "^unix .* LISTEN.* /tmp/glite-lb-notif.sock$" >/dev/null 2>&1 ;then
+       if netstat -an --unix | grep "^unix .* LISTEN.* ${GLITE_LB_NOTIF_SOCK}$" >/dev/null 2>&1 ;then
                echo glite-lb-notif-interlogd running
        else
                echo glite-lb-notif-interlogd not running
index 76fa57c..04e5111 100644 (file)
@@ -80,6 +80,12 @@ int edg_wll_ExecStmt(edg_wll_Context ctx,char *txt,edg_wll_Stmt *stmt)
        int     do_reconnect = 0;
        struct timeval  start,end;
        int     pid;
+#ifdef LBS_DB_PROFILE
+       static struct timeval sum = {
+               tv_sec: 0,
+               tv_usec: 0
+       };
+#endif
 
        edg_wll_ResetError(ctx);
 
@@ -139,13 +145,16 @@ putc(10,stderr);
                mysql_free_result(r);
        }
 #ifdef LBS_DB_PROFILE
+       pid = getpid();
        gettimeofday(&end,NULL);
        end.tv_usec -= start.tv_usec;
        end.tv_sec -= start.tv_sec;
        if (end.tv_usec < 0) { end.tv_sec--; end.tv_usec += 1000000; }
 
-       pid = getpid();
-       fprintf(stderr,"[%d] %s\n[%d] %3ld.%06ld\n",pid,txt,pid,end.tv_sec,end.tv_usec);
+       sum.tv_usec += end.tv_usec;
+       sum.tv_sec += end.tv_sec + sum.tv_usec / 1000000;
+       sum.tv_usec -= 1000000 * (sum.tv_usec / 1000000);
+       fprintf(stderr,"[%d] %s\n[%d] %3ld.%06ld (sum: %3ld.%06ld)\n",pid,txt,pid,end.tv_sec,end.tv_usec,sum.tv_sec,sum.tv_usec);
 #endif
        
        return mysql_affected_rows((MYSQL *) ctx->mysql);
index 0f08964..7c6f266 100644 (file)
 #include "get_events.h"
 #include "server_state.h"
 
-
-static int read_line(char **buff, int fd);
+static int read_line(char **buff, size_t *maxsize, int fd);
 
 int edg_wll_LoadEvents(edg_wll_Context ctx,const edg_wll_LoadRequest *req,edg_wll_LoadResult *result)
 {
        int                                     fd,
                                                reject_fd = -1,
                                                readret, i;
+       size_t                                  maxsize;
        char                       *line = NULL,
                                                buff[30];
        edg_wll_Event      *event;
@@ -57,7 +57,7 @@ int edg_wll_LoadEvents(edg_wll_Context ctx,const edg_wll_LoadRequest *req,edg_wl
        {
                /*      Read one line
                 */
-               if ( (readret = read_line(&line, fd)) == -1 )
+               if ( (readret = read_line(&line, &maxsize, fd)) == -1 )
                        return edg_wll_SetError(ctx, errno, "reading dump file");
 
                if ( readret == 0 )
@@ -169,21 +169,28 @@ cycle_clean:
 
 #define BUFFSZ                 1024
 
-static int read_line(char **buff, int fd)
+static int read_line(char **buff, size_t *maxsize, int fd)
 {
        int             ct, i;
+       void            *tmp;
 
 
        if ( *buff == NULL )
        {
-               *buff = malloc(BUFFSZ); 
+               *buff = malloc(BUFFSZ);
                if ( *buff == NULL )
                        return -1;
+               *maxsize = BUFFSZ;
        }
 
        i = 0;
        while ( 1 )
        {
+               if (i >= *maxsize) {
+                       (*maxsize) *= 2;
+                       if ((tmp = realloc(*buff, *maxsize)) == NULL) return -1;
+                       *buff = (char *)tmp;
+               }
                if ( (ct = read(fd, (*buff)+i, 1)) == -1 )
                        return -1;