Changeset 21 for trunk/pbs_drmaa/job.c
- Timestamp:
- 07/27/11 23:41:14 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/pbs_drmaa/job.c
r17 r21 64 64 static void 65 65 pbsdrmaa_job_update( fsd_job_t *self, struct batch_status* ); 66 67 bool 68 pbsdrmaa_job_update_status_accounting( fsd_job_t *self ); 66 69 67 70 … … 189 192 190 193 fsd_log_enter(( "({job_id=%s})", self->job_id )); 194 191 195 TRY 192 196 { … … 203 207 if( status == NULL ) 204 208 { 205 #ifndef PBS_PROFESSIONAL 206 fsd_log_error(("pbs_statjob error: %d, %s, %s", pbs_errno, pbse_to_txt(pbs_errno), pbs_strerror(pbs_errno))); 207 #else 208 # ifndef PBS_PROFESSIONAL_NO_LOG 209 fsd_log_error(("pbs_statjob error: %d, %s", pbs_errno, pbse_to_txt(pbs_errno))); 210 # else 211 fsd_log_error(("pbs_statjob error: %d", pbs_errno)); 212 # endif 213 #endif 214 switch( pbs_errno ) 215 { 216 case PBSE_UNKJOBID: 217 break; 218 case PBSE_PROTOCOL: 219 case PBSE_EXPIRED: 220 if ( session->pbs_conn >= 0 ) 221 pbs_disconnect( session->pbs_conn ); 222 sleep(1); 223 session->pbs_conn = pbs_connect( session->super.contact ); 224 if( session->pbs_conn < 0 ) 225 pbsdrmaa_exc_raise_pbs( "pbs_connect" ); 226 else 227 { 228 fsd_log_error(("retry:")); 229 goto retry; 230 } 231 default: 232 pbsdrmaa_exc_raise_pbs( "pbs_statjob" ); 233 break; 234 case 0: /* ? */ 235 fsd_exc_raise_code( FSD_ERRNO_INTERNAL_ERROR ); 236 break; 209 if(pbsdrmaa_job_update_status_accounting(self) == false) 210 { 211 #ifndef PBS_PROFESSIONAL 212 fsd_log_error(("pbs_statjob error: %d, %s, %s", pbs_errno, pbse_to_txt(pbs_errno), pbs_strerror(pbs_errno))); 213 #else 214 # ifndef PBS_PROFESSIONAL_NO_LOG 215 fsd_log_error(("pbs_statjob error: %d, %s", pbs_errno, pbse_to_txt(pbs_errno))); 216 # else 217 fsd_log_error(("pbs_statjob error: %d", pbs_errno)); 218 # endif 219 #endif 220 221 /**/ 222 223 switch( pbs_errno ) 224 { 225 case PBSE_UNKJOBID: 226 break; 227 case PBSE_PROTOCOL: 228 case PBSE_EXPIRED: 229 if ( session->pbs_conn >= 0 ) 230 pbs_disconnect( session->pbs_conn ); 231 sleep(1); 232 session->pbs_conn = pbs_connect( session->super.contact ); 233 if( session->pbs_conn < 0 ) 234 pbsdrmaa_exc_raise_pbs( "pbs_connect" ); 235 else 236 { 237 fsd_log_error(("retry:")); 238 goto retry; 239 } 240 default: 241 pbsdrmaa_exc_raise_pbs( "pbs_statjob" ); 242 break; 243 case 0: /* ? */ 244 fsd_exc_raise_code( FSD_ERRNO_INTERNAL_ERROR ); 245 break; 246 } 237 247 } 238 248 } … … 497 507 drmaa_job_ps_to_str(self->state), self->exit_status )); 498 508 } 509 510 bool 511 pbsdrmaa_job_update_status_accounting( fsd_job_t *self ) 512 { 513 fsd_drmaa_session_t *session = self->session; 514 pbsdrmaa_log_reader_t *log_reader = NULL; 515 bool res = false; 516 517 fsd_log_enter(( "({job_id=%s})", self->job_id )); 518 fsd_log_info(( "Reading job %s info from accounting file", self->job_id )); 519 520 TRY 521 { 522 log_reader = pbsdrmaa_log_reader_accounting_new( session, self); 523 bool res = log_reader->read_log( log_reader ); 524 } 525 FINALLY 526 { 527 pbsdrmaa_log_reader_destroy( log_reader ); 528 } 529 END_TRY 530 531 fsd_log_return(("")); 532 return res; 533 }
Note: See TracChangeset
for help on using the changeset viewer.