Ignore:
Timestamp:
10/12/11 14:21:23 (8 years ago)
Author:
mmamonski
Message:

try pbs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/pbs_drmaa/log_reader.c

    r25 r26  
    260260pbsdrmaa_read_log( pbsdrmaa_log_reader_t * self ) 
    261261{ 
    262         pbsdrmaa_job_t *pbsjob = (pbsdrmaa_job_t*) self->job;    
     262        pbsdrmaa_job_t *pbsjob = (pbsdrmaa_job_t*) self->job; 
    263263        fsd_job_t *volatile temp_job = NULL; 
    264264                 
     
    279279                        self->select_file(self); 
    280280 
    281                         while ((self->read_line(self, line,buffer, sizeof(line), &idx,&end_idx,&line_idx)) > 0)                          
     281                        while ((self->read_line(self, line,buffer, sizeof(line), &idx,&end_idx,&line_idx)) > 0) 
    282282                        { 
    283283                                const char *volatile ptr = line; 
     
    349349                                                                        self->run_flag = false; 
    350350                                                                        job_id_match = true;  
    351                                                                         status.name = fsd_strdup(self->job->job_id);                                                                     
     351                                                                        status.name = fsd_strdup(self->job->job_id); 
    352352                                                                } 
    353353                                                                else if ( !job_found && diff >= 1) 
     
    379379                                                        struct_mtime, 
    380380                                                        struct_queue, 
    381                                                         struct_account_name; 
     381                                                        struct_account_name, 
     382                                                        struct_exec_vnode; 
     383                                                struct attrl *last_attr = NULL; 
    382384                                                 
    383385                                                bool state_running = false; 
     
    393395                                                memset(&struct_queue,0,sizeof(struct attrl)); 
    394396                                                memset(&struct_account_name,0,sizeof(struct attrl)); 
     397                                                memset(&struct_exec_vnode,0,sizeof(struct attrl)); 
    395398                                                                 
    396399                                                if (strcmp(event,FLD_MSG_STATE) == 0)  
     
    401404                                                        struct_state.next = NULL; 
    402405                                                        struct_state.name = "job_state"; 
     406                                                        last_attr = &struct_state; 
     407 
    403408                                                        if(field[0] == 'J') /* Job Queued, Job Modified, Job Run*/ 
    404409                                                         { 
     
    424429                                                                         { 
    425430                                                                                time_t temp_time = mktime(&temp_time_tm); 
    426                                                                                 status.attribs = &struct_mtime; 
     431                                                                                last_attr->next = &struct_mtime; 
     432                                                                                last_attr = &struct_mtime; 
    427433                                                                                struct_mtime.name = "mtime"; 
    428434                                                                                struct_mtime.next = NULL; 
     
    434440                                                        /* != Job deleted and Job to be deleted*/ 
    435441#ifdef PBS_PROFESSIONAL 
    436                                                         else if (field[4] != 't' && field[10] != 'd') { 
     442                                                        else if (field[4] != 't' && field[10] != 'd') 
     443                                                         { 
    437444#else 
    438                                                         else if(field[4] != 'd') { 
     445                                                        else if (field[4] != 'd') 
     446                                                         { 
    439447#endif 
    440  
    441                                                                 if ((struct_state.value = fsd_asprintf("%c",field[n]) ) == NULL ) { /* 4 first letter of state */ 
    442                                                                         fsd_exc_raise_fmt(FSD_ERRNO_INTERNAL_ERROR,"%s - Memory allocation wasn't possible",self->name); 
    443                                                                 } 
    444                                                                 if(struct_state.value[0] == 'R'){ 
     448                                                                struct_state.value = fsd_asprintf("%c",field[n]); 
     449 
     450                                                                if(struct_state.value[0] == 'R') 
     451                                                                 { 
    445452                                                                        state_running = true; 
    446                                                                 } 
    447                                                         } 
    448                                                         else { /* job terminated - pbs drmaa detects failed as completed with exit_status !=0, aborted with status -1*/ 
     453#ifdef PBS_PROFESSIONAL 
     454                                                                        { 
     455                                                                                char *p_vnode = NULL; 
     456                                                                                if (p_vnode = strstr(field, "exec_vnode")) 
     457                                                                                 { 
     458                                                                                        last_attr->next = &struct_exec_vnode; 
     459                                                                                        last_attr =  &struct_exec_vnode; 
     460                                                                                        struct_exec_vnode.name = "exec_vnode"; 
     461                                                                                        struct_exec_vnode.next = NULL; 
     462                                                                                        struct_exec_vnode.value = fsd_strdup(p + 11); 
     463                                                                                 } 
     464                                                                        } 
     465#endif 
     466                                                                 } 
     467                                                         } 
     468                                                        else 
     469                                                         { /* job terminated - pbs drmaa detects failed as completed with exit_status !=0, aborted with status -1*/ 
    449470                                                                struct_status.name = "exit_status"; 
    450471                                                                struct_status.value = fsd_strdup("-1"); 
     
    452473                                                                struct_state.next = &struct_status; 
    453474                                                                struct_state.value = fsd_strdup("C"); 
    454                                                         } 
     475                                                         } 
    455476                                                } 
    456477                                                else /*if (strcmp(event,FLD_MSG_STATUS) == 0 )*/ 
     
    534555                                                        else 
    535556                                                        { 
    536                                                                 fsd_log_debug(("%s - updating job: %s",self->name, temp_job->job_id ));                                                  
     557                                                                fsd_log_debug(("%s - updating job: %s",self->name, temp_job->job_id )); 
    537558                                                                pbsjob->update( temp_job, &status ); 
    538559                                                        } 
     
    540561                                                else if( job_found ) /* job_on_missing */ 
    541562                                                { 
    542                                                         fsd_log_debug(("Job_on_missing - updating job: %s", self->job->job_id ));                                                        
     563                                                        fsd_log_debug(("Job_on_missing - updating job: %s", self->job->job_id )); 
    543564                                                        pbsjob->update( self->job, &status ); 
    544565                                                } 
     
    575596                                                log_event = false; 
    576597                                        } 
    577                                         else if( self->job == NULL && log_match && field_n == FLD_MSG && strncmp(field,"Log closed",10) == 0)  
     598                                        else if( self->job == NULL && log_match && field_n == FLD_MSG && strncmp(field,"Log closed",10) == 0) 
    578599                                        { 
    579600                                                fsd_log_debug(("%s - Date changed. Closing log file",self->name)); 
     
    591612                                }                
    592613 
    593                                 fsd_free(temp_date);                     
    594                         } /* end of while getline loop */                        
     614                                fsd_free(temp_date); 
     615                        } /* end of while getline loop */ 
    595616                         
    596617                        if(self->job == NULL) 
     
    599620                                fd_set log_fds; 
    600621         
    601                                 fsd_mutex_unlock( &self->session->mutex );                       
     622                                fsd_mutex_unlock( &self->session->mutex ); 
    602623                                 
    603624                                FD_ZERO(&log_fds); 
     
    874895                close(self->fd); 
    875896 
    876         fsd_log_debug(("Accounting Log file: %s",log_path));                             
     897        fsd_log_debug(("Accounting Log file: %s",log_path)); 
    877898 
    878899        if((self->fd = open(log_path,O_RDONLY) ) == -1 ) 
     
    926947                         
    927948                        if(self->fd != -1)                                       
    928                         while ((self->read_line(self, line,buffer, sizeof(line), &idx,&end_idx,&line_idx)) > 0)                          
     949                        while ((self->read_line(self, line,buffer, sizeof(line), &idx,&end_idx,&line_idx)) > 0) 
    929950                        { 
    930951                                const char *volatile ptr = line; 
     
    965986                                                                        job_found = true; 
    966987                                                                        job_id_match = true;  
    967                                                                         status.name = fsd_strdup(self->job->job_id);                                                                     
     988                                                                        status.name = fsd_strdup(self->job->job_id); 
    968989                                                                }        
    969990                                                } 
     
    973994                                        {                                        
    974995                                                struct attrl * struct_attrl = calloc(10,sizeof(struct attrl)); 
    975                                                                                               
     996                                                int i; 
     997 
    976998                                                if(field[0] == 'q') 
    977999                                                { 
     
    9871009                                                        char  msg[ 256 ] = ""; 
    9881010                                                        int n2 = 0; 
    989                                                         int msg_field_n = 0;     
     1011                                                        int msg_field_n = 0; 
    9901012                                 
    9911013                                                        status.attribs = &struct_attrl[0]; 
     
    9961018                                                                { 
    9971019                                                                        case FLD_MSG_ACC_USER: 
    998                                                                                 struct_attrl[msg_field_n].name = ATTR_euser;                                                                     
     1020                                                                                struct_attrl[msg_field_n].name = ATTR_euser; 
    9991021                                                                                break; 
    10001022 
     
    10611083                                                if( job_found && status.attribs != NULL) 
    10621084                                                { 
    1063                                                         fsd_log_debug(("Accounting file - updating job: %s", self->job->job_id ));                                       
     1085                                                        fsd_log_debug(("Accounting file - updating job: %s", self->job->job_id )); 
    10641086                                                        pbsjob->update( self->job, &status ); 
    10651087                                                        res = true; 
     
    10741096                                                        temp_job->release( temp_job ); 
    10751097         
    1076                                                 int i = 0; 
    10771098                                                for(i = 0; i < 10; i++) 
    10781099                                                { 
Note: See TracChangeset for help on using the changeset viewer.