From 1183f5cdcd7e602f701830d048c886c5070d56c0 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 15 Jul 2022 00:36:37 +0200 Subject: [PATCH] Ensure that the testrun[:status] is available in more cases --- app/controllers/submissions_controller.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/controllers/submissions_controller.rb b/app/controllers/submissions_controller.rb index 707275c2..836fa319 100644 --- a/app/controllers/submissions_controller.rb +++ b/app/controllers/submissions_controller.rb @@ -93,7 +93,7 @@ class SubmissionsController < ApplicationController client_socket.onclose do |_event| runner_socket&.close(:terminated_by_client) - # We do not update the @testrun[:status] by design, it would be missleading + @testrun[:status] ||= :terminated_by_client end client_socket.onmessage do |raw_event| @@ -187,11 +187,13 @@ class SubmissionsController < ApplicationController send_and_store client_socket, {cmd: :status, status: :timeout} close_client_connection(client_socket) Rails.logger.debug { "Running a submission timed out: #{e.message}" } + @testrun[:status] ||= :timeout @testrun[:output] = "timeout: #{@testrun[:output]}" extract_durations(e) rescue Runner::Error => e send_and_store client_socket, {cmd: :status, status: :container_depleted} close_client_connection(client_socket) + @testrun[:status] ||= :container_depleted Rails.logger.debug { "Runner error while running a submission: #{e.message}" } extract_durations(e) ensure