@@ -564,12 +564,17 @@ static vine_result_code_t get_completion_result(struct vine_manager *q, struct v
564564 t -> time_workers_execute_last = observed_execution_time > execution_time ? execution_time : observed_execution_time ;
565565 t -> time_workers_execute_last_start = start_time ;
566566 t -> time_workers_execute_last_end = end_time ;
567- t -> resources_measured -> wall_time = t -> time_workers_execute_last_end - t -> time_workers_execute_last_start ;
568567 t -> time_workers_execute_all += t -> time_workers_execute_last ;
569568 t -> output_length = output_length ;
570569 t -> result = task_status ;
571570 t -> exit_code = exit_status ;
572571
572+ /* fill resources measured with whatever vine reported/committed, as a fallback when task ran without monitoring enabled */
573+ t -> resources_measured -> start = ((double )start_time ) / ONE_SECOND ;
574+ t -> resources_measured -> end = ((double )end_time ) / ONE_SECOND ;
575+ t -> resources_measured -> wall_time = ((double )t -> time_workers_execute_last ) / ONE_SECOND ;
576+ rmsummary_merge_override_basic (t -> resources_measured , t -> resources_allocated );
577+
573578 /* If output is less than 1KB stdout is sent along with completion msg. retrieve it from the link. */
574579 if (bytes_sent ) {
575580 get_stdout (q , w , t , bytes_sent );
@@ -1156,12 +1161,14 @@ static void read_measured_resources(struct vine_manager *q, struct vine_task *t)
11561161{
11571162 char * summary = monitor_file_name (q , t , ".summary" , 0 );
11581163
1159- if (t -> resources_measured ) {
1160- rmsummary_delete (t -> resources_measured );
1161- }
1162-
1164+ struct rmsummary * tmp = t -> resources_measured ;
11631165 t -> resources_measured = rmsummary_parse_file_single (summary );
11641166
1167+ /* read the fallback values set by get_completion_result, if any */
1168+ /* if tmp is null that's ok, both delete and merge_default check for it */
1169+ rmsummary_merge_default (t -> resources_measured , tmp );
1170+ rmsummary_delete (tmp );
1171+
11651172 if (t -> resources_measured ) {
11661173 t -> exit_code = t -> resources_measured -> exit_status ;
11671174
0 commit comments