Configuring execution timeout

This commit is contained in:
Charles Care
2019-12-11 20:57:15 +00:00
parent dcd88e250a
commit 9e3f7587b5
3 changed files with 8 additions and 2 deletions

View File

@@ -65,6 +65,7 @@ module Pipeline::Rpc::Worker
track_dir = environment.track_dir(track_slug, container_version)
begin
@analysis_run = setup_container_run(track_dir, @exercise_slug, @job_slug)
@analysis_run.execution_timeout = request["execution_timeout"] if request["execution_timeout"]
rescue => e
msg = "Failure setting up job"
log msg

View File

@@ -28,6 +28,10 @@ module Pipeline::Runtime
yield iteration_folder
end
def execution_timeout=(timeout)
runc.execution_timeout = timeout
end
def analyze!
puts "Starting container invocation"
begin

View File

@@ -1,11 +1,12 @@
module Pipeline::Util
class RuncWrapper
attr_accessor :binary_path, :suppress_output, :memory_limit
attr_accessor :binary_path, :suppress_output, :memory_limit, :execution_timeout
def initialize(logs)
@binary_path = "/opt/container_tools/runc"
@suppress_output = false
@memory_limit = 3000000
@execution_timeout = 5
@logs = logs || Pipeline::Util::LogCollector.new
end
@@ -14,7 +15,7 @@ module Pipeline::Util
actual_command = "#{binary_path} --root root-state run #{container_id}"
run_cmd = ExternalCommand.new("bash -x -c 'ulimit -v #{memory_limit}; #{actual_command}'")
run_cmd.timeout = 5
run_cmd.timeout = execution_timeout
run_cmd.stdout_limit = 1024*1024
run_cmd.stderr_limit = 1024*1024