- Timestamp:
- 10/31/12 14:10:21 (12 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/configure.ac
r25 r29 1 AC_INIT([PSNC DRMAA for SLURM], [1.0. 5], [mamonski@man.poznan.pl], [slurm-drmaa])1 AC_INIT([PSNC DRMAA for SLURM], [1.0.6], [mamonski@man.poznan.pl], [slurm-drmaa]) 2 2 AC_PREREQ(2.59) 3 3 AC_REVISION([$Id$]) … … 23 23 SLURM_DRMAA_MAJOR=1 24 24 SLURM_DRMAA_MINOR=0 25 SLURM_DRMAA_MICRO= 526 SLURM_DRMAA_VERSION_INFO=1: 5:025 SLURM_DRMAA_MICRO=6 26 SLURM_DRMAA_VERSION_INFO=1:6:0 27 27 AC_SUBST([SLURM_DRMAA_MAJOR]) 28 28 AC_SUBST([SLURM_DRMAA_MINOR]) -
trunk/slurm_drmaa/job.c
r27 r29 121 121 self->on_missing(self); 122 122 } else { 123 fsd_exc_raise_fmt( FSD_ERRNO_INTERNAL_ERROR,"slurm_load_jobs error: %s,job_id: %s", slurm_strerror(slurm_get_errno()), self->job_id); 124 } 125 } 123 fsd_exc_raise_fmt(FSD_ERRNO_INTERNAL_ERROR,"slurm_load_jobs error: %s,job_id: %s", slurm_strerror(slurm_get_errno()), self->job_id); 124 } 125 } 126 if (job_info) { 127 fsd_log_debug(("state = %d, state_reason = %d", job_info->job_array[0].job_state, job_info->job_array[0].state_reason)); 128 129 switch(job_info->job_array[0].job_state & JOB_STATE_BASE) 130 { 131 132 case JOB_PENDING: 133 switch(job_info->job_array[0].state_reason) 134 { 135 #if SLURM_VERSION_NUMBER >= SLURM_VERSION_NUM(2,2,0) 136 case WAIT_HELD_USER: /* job is held by user */ 137 fsd_log_debug(("interpreting as DRMAA_PS_USER_ON_HOLD")); 138 self->state = DRMAA_PS_USER_ON_HOLD; 139 break; 140 #endif 141 case WAIT_HELD: /* job is held by administrator */ 142 fsd_log_debug(("interpreting as DRMAA_PS_SYSTEM_ON_HOLD")); 143 self->state = DRMAA_PS_SYSTEM_ON_HOLD; 144 break; 145 default: 146 fsd_log_debug(("interpreting as DRMAA_PS_QUEUED_ACTIVE")); 147 self->state = DRMAA_PS_QUEUED_ACTIVE; 148 } 149 break; 150 case JOB_RUNNING: 151 fsd_log_debug(("interpreting as DRMAA_PS_RUNNING")); 152 self->state = DRMAA_PS_RUNNING; 153 break; 154 case JOB_SUSPENDED: 155 if(slurm_self->user_suspended == true) { 156 fsd_log_debug(("interpreting as DRMAA_PS_USER_SUSPENDED")); 157 self->state = DRMAA_PS_USER_SUSPENDED; 158 } else { 159 fsd_log_debug(("interpreting as DRMAA_PS_SYSTEM_SUSPENDED")); 160 self->state = DRMAA_PS_SYSTEM_SUSPENDED; 161 } 162 break; 163 case JOB_COMPLETE: 164 fsd_log_debug(("interpreting as DRMAA_PS_DONE")); 165 self->state = DRMAA_PS_DONE; 166 self->exit_status = job_info->job_array[0].exit_code; 167 fsd_log_debug(("exit_status = %d -> %d",self->exit_status, WEXITSTATUS(self->exit_status))); 168 break; 169 case JOB_CANCELLED: 170 fsd_log_debug(("interpreting as DRMAA_PS_FAILED (aborted)")); 171 self->state = DRMAA_PS_FAILED; 172 self->exit_status = -1; 173 case JOB_FAILED: 174 case JOB_TIMEOUT: 175 case JOB_NODE_FAIL: 176 #if SLURM_VERSION_NUMBER >= SLURM_VERSION_NUM(2,3,0) 177 case JOB_PREEMPTED: 178 #endif 179 fsd_log_debug(("interpreting as DRMAA_PS_FAILED")); 180 self->state = DRMAA_PS_FAILED; 181 self->exit_status = job_info->job_array[0].exit_code; 182 fsd_log_debug(("exit_status = %d -> %d",self->exit_status, WEXITSTATUS(self->exit_status))); 183 break; 184 default: /*unknown state */ 185 fsd_log_error(("Unknown job state: %d. Please send bug report: http://apps.man.poznan.pl/trac/slurm-drmaa", job_info->job_array[0].job_state)); 186 } 187 188 if (job_info->job_array[0].job_state & JOB_STATE_FLAGS & JOB_COMPLETING) { 189 fsd_log_debug(("Epilog completing")); 190 } 191 192 if (job_info->job_array[0].job_state & JOB_STATE_FLAGS & JOB_CONFIGURING) { 193 fsd_log_debug(("Nodes booting")); 194 } 195 196 if (self->exit_status == -1) /* input,output,error path failure etc*/ 197 self->state = DRMAA_PS_FAILED; 198 199 self->last_update_time = time(NULL); 126 200 127 switch(job_info->job_array[0].job_state & JOB_STATE_BASE) 128 { 129 fsd_log_debug(("state = %d, state_reason = %d", job_info->job_array[0].job_state, job_info->job_array[0].state_reason)); 130 131 case JOB_PENDING: 132 switch(job_info->job_array[0].state_reason) 133 { 134 #if SLURM_VERSION_NUMBER >= SLURM_VERSION_NUM(2,2,0) 135 case WAIT_HELD_USER: /* job is held by user */ 136 fsd_log_debug(("interpreting as DRMAA_PS_USER_ON_HOLD")); 137 self->state = DRMAA_PS_USER_ON_HOLD; 138 break; 139 #endif 140 case WAIT_HELD: /* job is held by administrator */ 141 fsd_log_debug(("interpreting as DRMAA_PS_SYSTEM_ON_HOLD")); 142 self->state = DRMAA_PS_SYSTEM_ON_HOLD; 143 break; 144 default: 145 fsd_log_debug(("interpreting as DRMAA_PS_QUEUED_ACTIVE")); 146 self->state = DRMAA_PS_QUEUED_ACTIVE; 147 } 148 break; 149 case JOB_RUNNING: 150 fsd_log_debug(("interpreting as DRMAA_PS_RUNNING")); 151 self->state = DRMAA_PS_RUNNING; 152 break; 153 case JOB_SUSPENDED: 154 if(slurm_self->user_suspended == true) { 155 fsd_log_debug(("interpreting as DRMAA_PS_USER_SUSPENDED")); 156 self->state = DRMAA_PS_USER_SUSPENDED; 157 } else { 158 fsd_log_debug(("interpreting as DRMAA_PS_SYSTEM_SUSPENDED")); 159 self->state = DRMAA_PS_SYSTEM_SUSPENDED; 160 } 161 break; 162 case JOB_COMPLETE: 163 fsd_log_debug(("interpreting as DRMAA_PS_DONE")); 164 self->state = DRMAA_PS_DONE; 165 self->exit_status = job_info->job_array[0].exit_code; 166 fsd_log_debug(("exit_status = %d -> %d",self->exit_status, WEXITSTATUS(self->exit_status))); 167 break; 168 case JOB_CANCELLED: 169 fsd_log_debug(("interpreting as DRMAA_PS_FAILED (aborted)")); 170 self->state = DRMAA_PS_FAILED; 171 self->exit_status = -1; 172 case JOB_FAILED: 173 case JOB_TIMEOUT: 174 case JOB_NODE_FAIL: 175 #if SLURM_VERSION_NUMBER >= SLURM_VERSION_NUM(2,3,0) 176 case JOB_PREEMPTED: 177 #endif 178 fsd_log_debug(("interpreting as DRMAA_PS_FAILED")); 179 self->state = DRMAA_PS_FAILED; 180 self->exit_status = job_info->job_array[0].exit_code; 181 fsd_log_debug(("exit_status = %d -> %d",self->exit_status, WEXITSTATUS(self->exit_status))); 182 break; 183 default: /*unknown state */ 184 fsd_log_error(("Unknown job state: %d. Please send bug report: http://apps.man.poznan.pl/trac/slurm-drmaa", job_info->job_array[0].job_state)); 185 } 186 187 if (job_info->job_array[0].job_state & JOB_STATE_FLAGS & JOB_COMPLETING) { 188 fsd_log_debug(("Epilog completing")); 189 } 190 191 if (job_info->job_array[0].job_state & JOB_STATE_FLAGS & JOB_CONFIGURING) { 192 fsd_log_debug(("Nodes booting")); 193 } 194 195 if (self->exit_status == -1) /* input,output,error path failure etc*/ 196 self->state = DRMAA_PS_FAILED; 197 198 self->last_update_time = time(NULL); 199 200 if( self->state >= DRMAA_PS_DONE ) { 201 fsd_log_debug(("exit_status = %d, WEXITSTATUS(exit_status) = %d", self->exit_status, WEXITSTATUS(self->exit_status))); 202 fsd_cond_broadcast( &self->status_cond ); 201 if( self->state >= DRMAA_PS_DONE ) { 202 fsd_log_debug(("exit_status = %d, WEXITSTATUS(exit_status) = %d", self->exit_status, WEXITSTATUS(self->exit_status))); 203 fsd_cond_broadcast( &self->status_cond ); 204 } 203 205 } 204 206 } -
trunk/slurm_drmaa/util.c
r28 r29 94 94 else if (strcasecmp(mail_type_str, "FAIL") == 0) 95 95 rc = MAIL_JOB_FAIL; 96 #if SLURM_VERSION_NUMBER >= SLURM_VERSION_NUM(2,2,0) 96 97 else if (strcasecmp(mail_type_str, "REQUEUE") == 0) 97 98 rc = MAIL_JOB_REQUEUE; 99 #endif 98 100 else if (strcasecmp(mail_type_str, "ALL") == 0) 101 #if SLURM_VERSION_NUMBER >= SLURM_VERSION_NUM(2,2,0) 99 102 rc = MAIL_JOB_BEGIN | MAIL_JOB_END | MAIL_JOB_FAIL | MAIL_JOB_REQUEUE; 100 else 101 rc = 0; /* failure */ 103 #else 104 rc = MAIL_JOB_BEGIN | MAIL_JOB_END | MAIL_JOB_FAIL; 105 #endif 106 else { 107 fsd_log_error(("Unknown mail type: %s", mail_type_str)); 108 } 102 109 103 110 return rc; … … 163 170 fsd_free(job_desc->std_err); 164 171 fsd_free(job_desc->work_dir); 172 fsd_free(job_desc->exc_nodes); 173 #if SLURM_VERSION_NUMBER >= SLURM_VERSION_NUM(2,2,0) 165 174 fsd_free(job_desc->gres); 166 fsd_free(job_desc->exc_nodes); 167 175 #endif 168 176 169 177 fsd_log_return(( "" )); … … 309 317 break; 310 318 case SLURM_NATIVE_GRES: 319 #if SLURM_VERSION_NUMBER >= SLURM_VERSION_NUM(2,2,0) 311 320 fsd_log_debug(("# gres = %s",value)); 312 321 job_desc->gres = fsd_strdup(value); 322 #else 323 fsd_log_error(("GRES not supported in this version of SLURM.")); 324 #endif 313 325 break; 314 326 case SLURM_NATIVE_NO_KILL:
Note: See TracChangeset
for help on using the changeset viewer.