Changeset 31 for trunk/pbs_drmaa


Ignore:
Timestamp:
10/17/11 09:04:20 (12 years ago)
Author:
mmamonski
Message:

on site fixies

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/pbs_drmaa/log_reader.c

    r30 r31  
    217217                                                fsd_log_debug(("WT - Date changed. Closing log file")); 
    218218                                                self->date_changed = true; 
    219                                                 fsd_free(line); 
    220                                                 break; 
     219                                                goto cleanup; 
    221220                                         } 
    222221 
     
    235234                                                        else 
    236235                                                         { 
    237                                                                 fsd_free(line); 
    238                                                                 break; /*we are interested only in the above log messages */ 
     236                                                                goto cleanup; /*we are interested only in the above log messages */ 
    239237                                                         } 
    240238                                                 } 
     
    247245                                                        if (strncmp(field_token, "Job", 3) != 0) 
    248246                                                         { 
    249                                                                 fsd_free(line); 
    250                                                                 break; /* we are interested only in job events */ 
     247                                                                goto cleanup; /* we are interested only in job events */ 
    251248                                                         } 
    252249                                                 } 
     
    254251                                                 { 
    255252                                                        const char *event_jobid = field_token; 
    256  
    257                                                         TRY 
    258                                                          { 
    259                                                                 job = self->session->get_job( self->session, event_jobid ); 
    260  
    261                                                                 if( job ) 
    262                                                                  { 
    263                                                                         fsd_log_debug(("WT - Found job event: %s", event_jobid)); 
    264                                                                  } 
    265                                                                 else 
    266                                                                  { 
    267                                                                         fsd_log_debug(("WT - Unknown job: %s", event_jobid)); /* Not a DRMAA job */ 
    268                                                                         fsd_free(line); 
    269                                                                         break; 
    270                                                                  } 
    271                                                          } 
    272                                                         END_TRY 
    273                                                  } 
     253                                                         
     254                                                        if (!isdigit(event_jobid[0])) 
     255                                                         { 
     256                                                                fsd_log_debug(("WT - Invalid job: %s", event_jobid));  
     257                                                                goto cleanup; 
     258                                                         } 
     259 
     260                                                        job = self->session->get_job( self->session, event_jobid ); 
     261 
     262                                                        if( job ) 
     263                                                         { 
     264                                                                fsd_log_debug(("WT - Found job event: %s", event_jobid)); 
     265                                                         } 
     266                                                        else 
     267                                                         { 
     268                                                                fsd_log_debug(("WT - Unknown job: %s", event_jobid)); /* Not a DRMAA job */ 
     269                                                                goto cleanup; 
     270                                                         } 
     271                                                 } 
    274272                                                else if (field_id == PBSDRMAA_FLD_ID_MSG) 
    275273                                                 { 
     
    287285                                                                char *p_queue = NULL; 
    288286 
    289                                                                 fsd_log_info(("WT - Detected queued of job %s", job->job_id)); 
     287                                                                fsd_log_info(("WT - Detected queuing of job %s", job->job_id)); 
    290288 
    291289                                                                if ((p_queue = strstr(msg,"queue =")) == NULL) 
     
    351349                                                                else 
    352350                                                                 { 
    353                                                                         job->release( job ); 
    354                                                                         fsd_free(line); 
    355                                                                         break; /* job was started, ignore, wait for Exit_status message */ 
     351                                                                        goto cleanup; /* job was started, ignore, wait for Exit_status message */ 
    356352                                                                 } 
    357353                                                         } 
    358                                                         else if (event_type == pbsdrmaa_event_0010 && strncmp(msg, "Exit_status=", 12)) 
     354                                                        else if (event_type == pbsdrmaa_event_0010 && (strncmp(msg, "Exit_status=", 12) == 0)) 
    359355                                                         { 
    360356                                                        /* Completed: 
     
    375371                                                                        if (strncmp(token, "Exit_status=", 12) == 0) 
    376372                                                                         { 
    377                                                                                 token[12] = '\0'; 
     373                                                                                token[11] = '\0'; 
    378374                                                                                attribs = pbsdrmaa_add_attr(attribs, token, token + 12); 
    379375                                                                                fsd_log_info(("WT - Completion of job %s (Exit_status=%s) detected after %d seconds", job->job_id, token+12, (int)(time(NULL) - timestamp_time_t) )); 
     
    381377                                                                        else if (strncmp(token, "resources_used.cput=", 20) == 0) 
    382378                                                                         { 
    383                                                                                 token[20] = '\0'; 
     379                                                                                token[19] = '\0'; 
    384380                                                                                attribs = pbsdrmaa_add_attr(attribs, token, token + 20); 
    385381                                                                         } 
    386382                                                                        else if (strncmp(token, "resources_used.mem=", 19) == 0) 
    387383                                                                         { 
    388                                                                                 token[19] = '\0'; 
     384                                                                                token[18] = '\0'; 
    389385                                                                                attribs = pbsdrmaa_add_attr(attribs, token, token + 19); 
    390386                                                                         } 
    391387                                                                        else if (strncmp(token, "resources_used.vmem=", 20) == 0) 
    392388                                                                         { 
    393                                                                                 token[20] = '\0'; 
     389                                                                                token[19] = '\0'; 
    394390                                                                                attribs = pbsdrmaa_add_attr(attribs, token, token + 20); 
    395391                                                                         } 
    396392                                                                        else if (strncmp(token, "resources_used.walltime=", 24) == 0) 
    397393                                                                         { 
    398                                                                                 token[24] = '\0'; 
     394                                                                                token[23] = '\0'; 
    399395                                                                                attribs = pbsdrmaa_add_attr(attribs, token, token + 24); 
    400396                                                                         } 
     
    412408                                                        else 
    413409                                                        { 
    414                                                                 job->release( job ); 
    415                                                                 fsd_free(line); 
    416                                                                 break; /* ignore other job events*/ 
     410                                                                goto cleanup; /* ignore other job events*/ 
    417411                                                        } 
    418412 
     
    445439                                                        fsd_cond_broadcast( &self->session->wait_condition ); 
    446440 
    447                                                         if ( job ) 
    448                                                                 job->release( job ); 
    449  
    450                                                         fsd_free(line); /* TODO free on exception */ 
    451441                                                 } 
    452442                                                else 
     
    455445                                                 } 
    456446                                         } 
     447                                cleanup: 
     448                                        fsd_free(line); /* TODO what about exceptions */                 
     449                                        if ( job ) 
     450                                                job->release( job ); 
     451 
     452 
    457453 
    458454                                 } /* end of while getline loop */ 
     
    470466                                        timeout_tv.tv_sec = 1; 
    471467                                        timeout_tv.tv_usec = 0; 
    472  
     468                                        fsd_log_debug(("Polling log file for %d seconds", timeout_tv.tv_sec)); 
    473469                                        /* ignore return value - the next get line call will handle IO errors */ 
    474470                                        (void)select(1, &log_fds, NULL, NULL, &timeout_tv); 
     
    534530                                 
    535531        retry: 
    536                 if ((self->fhandle = fopen(log_path,"")) == NULL && (num_tries > DRMAA_WAIT_THREAD_MAX_TRIES || self->first_open)) 
     532                if ((self->fhandle = fopen(log_path,"r")) == NULL && (num_tries > DRMAA_WAIT_THREAD_MAX_TRIES || self->first_open)) 
    537533                 { 
    538534                        fsd_log_error(("Can't open log file. Verify pbs_home. Running standard wait_thread.")); 
Note: See TracChangeset for help on using the changeset viewer.