diff --git a/app/controllers/concerns/submission_scoring.rb b/app/controllers/concerns/submission_scoring.rb index 8dfa90b8..9cbb2c0f 100644 --- a/app/controllers/concerns/submission_scoring.rb +++ b/app/controllers/concerns/submission_scoring.rb @@ -57,7 +57,7 @@ module SubmissionScoring score += output[:score] * output[:weight] end - if output[:status] == :timeout + if output.present? && output[:status] == :timeout output[:stderr] += "\n\n#{t('exercises.editor.timeout', permitted_execution_time: submission.exercise.execution_environment.permitted_execution_time.to_s)}" end end diff --git a/lib/docker_client.rb b/lib/docker_client.rb index 3b06f877..cfd83fda 100644 --- a/lib/docker_client.rb +++ b/lib/docker_client.rb @@ -453,7 +453,7 @@ class DockerClient Timeout.timeout(@execution_environment.permitted_execution_time.to_i) do # TODO: check phusion doku again if we need -i -t options here # https://stackoverflow.com/questions/363223/how-do-i-get-both-stdout-and-stderr-to-go-to-the-terminal-and-a-log-file - output = container.exec(['bash', '-c', "#{command} 1> >(tee -a /tmp/stdout.log) 2> >(tee -a /tmp/stderr.log >&2); rm /tmp/std*.log"], tty: false) + output = container.exec(['bash', '-c', "#{command} 1> >(tee -a /tmp/stdout.log) 2> >(tee -a /tmp/stderr.log >&2); rm -f /tmp/std*.log"], tty: false) end Rails.logger.debug 'output from container.exec' Rails.logger.debug output