diff --git a/app/models/execution_environment.rb b/app/models/execution_environment.rb index 615f9ceb..247accc8 100644 --- a/app/models/execution_environment.rb +++ b/app/models/execution_environment.rb @@ -81,6 +81,8 @@ class ExecutionEnvironment < ApplicationRecord runner = Runner.for(author, self) output = runner.execute_command(VALIDATION_COMMAND) errors.add(:docker_image, "error: #{output[:stderr]}") if output[:stderr].present? + rescue Runner::Error::NotAvailable => e + Rails.logger.info("The Docker image could not be verified: #{e}") rescue Runner::Error => e errors.add(:docker_image, "error: #{e}") end diff --git a/lib/runner/strategy/docker_container_pool.rb b/lib/runner/strategy/docker_container_pool.rb index d4e6e422..5654b5c6 100644 --- a/lib/runner/strategy/docker_container_pool.rb +++ b/lib/runner/strategy/docker_container_pool.rb @@ -14,9 +14,17 @@ class Runner::Strategy::DockerContainerPool < Runner::Strategy FileUtils.mkdir_p(File.expand_path(config[:workspace_root])) end - def self.sync_environment(_environment) - # There is no dedicated sync mechanism yet - true + def self.sync_environment(environment) + # There is no dedicated sync mechanism yet. However, we need to emit a warning when the pool was previously + # empty for this execution environment. In this case the validation command probably was not executed. + return true unless environment.pool_size_previously_changed? + + case environment.pool_size_previously_was + when nil, 0 + false + else + true + end end def self.request_from_management(environment)