--- source-trees/gt2-cvs/gram/jobmanager/setup/condor/condor.in Wed Aug 22 17:27:50 2007 +++ source-trees/gt2-cvs/gram/jobmanager/setup/condor/condor.in Tue Mar 25 16:09:29 2008 @@ -552,11 +552,8 @@ if($num_abort > 0) { - if ( ${self}->{individual_condor_log} ) { - $self->log_to_gratia(); - unlink($self->{condor_logfile}); - } - $state = Globus::GRAM::JobState::FAILED; + # Don't delete the condor log when not reporting DONE + return Globus::GRAM::Error::SYSTEM_CANCELLED(); } elsif($num_done == $description->count()) { @@ -664,5 +661,20 @@ } return 1; # Should return a proper Globus success code } + +sub cache_cleanup +{ + my $self = shift; + my $description = $self->{JobDescription}; + + if ( ${self}->{individual_condor_log} ) { + $self->log("Deleting Condor user log"); + $self->log_to_gratia(); + unlink($self->{condor_logfile}); + } + + return $self->SUPER::cache_cleanup($self); +} + 1; --- source-trees/gt2-cvs/gram/jobmanager/source/globus_gram_job_manager_script.c Tue Mar 25 15:12:38 2008 +++ source-trees/gt2-cvs/gram/jobmanager/source/globus_gram_job_manager_script.c Tue Mar 25 15:21:08 2008 @@ -740,6 +740,7 @@ { size_t len = 0; char * line_bit = line; + int new_status = 0; if( ! fgets(line, sizeof(line), grid_monitor_file) ) { globus_gram_job_manager_request_log(request, @@ -811,7 +812,18 @@ goto FAST_POLL_EXIT_FAILURE; } - local_globus_set_status(request, atoi(line_bit)); + new_status = atoi(line_bit); + if ( new_status == GLOBUS_GRAM_PROTOCOL_JOB_STATE_FAILED ) { + /* Condor's grid monitor doesn't report the GRAM failure code + * that usually accompanies a FAILED status. Let's call the + * poll function ourselves to get that status. + */ + globus_gram_job_manager_request_log(request, + "JMI: poll_fast: Monitoring file reports FAILED, " + "Reverting to normal polling to get failure code.\n"); + goto FAST_POLL_EXIT_FAILURE; + } + local_globus_set_status(request, new_status); if(DEBUG_FAST_POLL) { --- source-trees/gt2-cvs/gram/jobmanager/source/globus_gram_job_manager_state_file.c Mon Mar 12 09:03:17 2007 +++ source-trees/gt2-cvs/gram/jobmanager/source/globus_gram_job_manager_state_file.c Tue Mar 25 15:20:30 2008 @@ -296,8 +296,11 @@ { goto error_exit; } + /* We don't know when the job status in the state file was obtained. + * Set the time to 0 so that any new status will be used. + */ globus_gram_job_manager_request_set_status_time(request, - atoi( buffer ), statbuf.st_mtime); + atoi( buffer ), 0); if (fgets( buffer, sizeof(buffer), fp ) == NULL) { goto error_exit;