Ignore:
Timestamp:
01/17/13 18:44:15 (11 years ago)
Author:
mmamonski
Message:

PBS DRMAA autoclose connection

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/pbs_drmaa/submit.c

    r75 r85  
    136136pbsdrmaa_submit_submit( pbsdrmaa_submit_t *self ) 
    137137{ 
    138         volatile bool conn_lock = false; 
    139138        struct attrl *volatile pbs_attr = NULL; 
    140139        char *volatile job_id = NULL; 
     
    143142                fsd_template_t *pbs_tmpl = self->pbs_job_attributes; 
    144143                int i; 
    145                 int tries_left = ((pbsdrmaa_session_t *)self->session)->max_retries_count; 
    146                 int sleep_time = 1; 
    147144 
    148145                for( i = PBSDRMAA_N_PBS_ATTRIBUTES - 1; i >= 0; i-- ) /* down loop -> start with custom resources */ 
     
    208205                pbs_attr = pbsdrmaa_submit_filter(pbs_attr); 
    209206 
    210                 conn_lock = fsd_mutex_lock( &self->session->drm_connection_mutex ); 
    211 retry: 
    212                 job_id = pbs_submit( ((pbsdrmaa_session_t*)self->session)->pbs_conn, 
    213                                 (struct attropl*)pbs_attr, self->script_filename, 
    214                                 self->destination_queue, NULL ); 
     207                job_id = ((pbsdrmaa_session_t *)self->session)->pbs_connection->submit( ((pbsdrmaa_session_t *)self->session)->pbs_connection, (struct attropl*)pbs_attr, self->script_filename, self->destination_queue); 
    215208 
    216209                fsd_log_info(("pbs_submit(%s, %s) =%s", self->script_filename, self->destination_queue, job_id)); 
    217210 
    218                 if( job_id == NULL ) 
    219                 { 
    220                         fsd_log_error(( "pbs_submit failed, pbs_errno = %d", pbs_errno )); 
    221                         if (pbs_errno == PBSE_PROTOCOL || pbs_errno == PBSE_EXPIRED || pbs_errno == PBSOLDE_PROTOCOL || pbs_errno == PBSOLDE_EXPIRED) 
    222                          { 
    223                                 pbsdrmaa_session_t *pbsself = (pbsdrmaa_session_t*)self->session; 
    224  
    225                                 fsd_log_error(( "Protocol error. Retrying..." )); 
    226  
    227                                 if (pbsself->pbs_conn >= 0 ) 
    228                                         pbs_disconnect( pbsself->pbs_conn ); 
    229 retry_connect: 
    230                                 sleep(sleep_time++); 
    231                                 pbsself->pbs_conn = pbs_connect( pbsself->super.contact ); 
    232                                 if( pbsself->pbs_conn < 0)  
    233                                  { 
    234                                         if (tries_left--) 
    235                                                 goto retry_connect; 
    236                                         else 
    237                                                 pbsdrmaa_exc_raise_pbs( "pbs_connect" ); 
    238                                  } 
    239                                 else 
    240                                  { 
    241                                         if (tries_left--) 
    242                                                 goto retry; 
    243                                         else 
    244                                                 pbsdrmaa_exc_raise_pbs( "pbs_submit" ); 
    245                                  } 
    246                          } 
    247                         else 
    248                          { 
    249                                 pbsdrmaa_exc_raise_pbs( "pbs_submit" ); 
    250                          } 
    251                 } 
    252                 conn_lock = fsd_mutex_unlock( &self->session->drm_connection_mutex ); 
    253211         } 
    254212        EXCEPT_DEFAULT 
     
    259217        FINALLY 
    260218         { 
    261                 if( conn_lock ) 
    262                         conn_lock = fsd_mutex_unlock( &self->session->drm_connection_mutex ); 
    263219                if( pbs_attr ) 
    264220                        pbsdrmaa_free_attrl( pbs_attr ); 
     
    894850                        if (!attr_value) 
    895851                          { 
    896                                 fsd_exc_raise_fmt(FSD_DRMAA_ERRNO_INVALID_ATTRIBUTE_FORMAT, "Invalid output line of submit filter:", output_line); 
     852                                fsd_exc_raise_fmt(FSD_DRMAA_ERRNO_INVALID_ATTRIBUTE_FORMAT, "Invalid output line of submit filter: %s", output_line); 
    897853                          } 
    898854                        else 
Note: See TracChangeset for help on using the changeset viewer.