Changeset 85 for trunk/pbs_drmaa/submit.c
- Timestamp:
- 01/17/13 18:44:15 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/pbs_drmaa/submit.c
r75 r85 136 136 pbsdrmaa_submit_submit( pbsdrmaa_submit_t *self ) 137 137 { 138 volatile bool conn_lock = false;139 138 struct attrl *volatile pbs_attr = NULL; 140 139 char *volatile job_id = NULL; … … 143 142 fsd_template_t *pbs_tmpl = self->pbs_job_attributes; 144 143 int i; 145 int tries_left = ((pbsdrmaa_session_t *)self->session)->max_retries_count;146 int sleep_time = 1;147 144 148 145 for( i = PBSDRMAA_N_PBS_ATTRIBUTES - 1; i >= 0; i-- ) /* down loop -> start with custom resources */ … … 208 205 pbs_attr = pbsdrmaa_submit_filter(pbs_attr); 209 206 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); 215 208 216 209 fsd_log_info(("pbs_submit(%s, %s) =%s", self->script_filename, self->destination_queue, job_id)); 217 210 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 else237 pbsdrmaa_exc_raise_pbs( "pbs_connect" );238 }239 else240 {241 if (tries_left--)242 goto retry;243 else244 pbsdrmaa_exc_raise_pbs( "pbs_submit" );245 }246 }247 else248 {249 pbsdrmaa_exc_raise_pbs( "pbs_submit" );250 }251 }252 conn_lock = fsd_mutex_unlock( &self->session->drm_connection_mutex );253 211 } 254 212 EXCEPT_DEFAULT … … 259 217 FINALLY 260 218 { 261 if( conn_lock )262 conn_lock = fsd_mutex_unlock( &self->session->drm_connection_mutex );263 219 if( pbs_attr ) 264 220 pbsdrmaa_free_attrl( pbs_attr ); … … 894 850 if (!attr_value) 895 851 { 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); 897 853 } 898 854 else
Note: See TracChangeset
for help on using the changeset viewer.