From 82b176453168d552134e1531fa217009dfe497ce Mon Sep 17 00:00:00 2001 From: Mahmood Ali Date: Thu, 8 Nov 2018 22:14:27 -0500 Subject: [PATCH] handle nil resources limits Config may not express resource constraints on the job! --- drivers/exec/driver.go | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/drivers/exec/driver.go b/drivers/exec/driver.go index eaf823a64..8c5cfbeab 100644 --- a/drivers/exec/driver.go +++ b/drivers/exec/driver.go @@ -303,14 +303,10 @@ func (d *Driver) StartTask(cfg *drivers.TaskConfig) (*drivers.TaskHandle, *cstru Env: cfg.EnvList(), User: cfg.User, ResourceLimits: true, - Resources: &executor.Resources{ - CPU: cfg.Resources.NomadResources.CPU, - MemoryMB: cfg.Resources.NomadResources.MemoryMB, - DiskMB: cfg.Resources.NomadResources.DiskMB, - }, - TaskDir: cfg.TaskDir().Dir, - StdoutPath: cfg.StdoutPath, - StderrPath: cfg.StderrPath, + Resources: toExecResources(cfg.Resources), + TaskDir: cfg.TaskDir().Dir, + StdoutPath: cfg.StdoutPath, + StderrPath: cfg.StderrPath, } ps, err := exec.Launch(execCmd) @@ -348,6 +344,19 @@ func (d *Driver) StartTask(cfg *drivers.TaskConfig) (*drivers.TaskHandle, *cstru return handle, nil, nil } +func toExecResources(resources *drivers.Resources) *executor.Resources { + if resources == nil || resources.NomadResources == nil { + return nil + } + + return &executor.Resources{ + CPU: resources.NomadResources.CPU, + MemoryMB: resources.NomadResources.MemoryMB, + DiskMB: resources.NomadResources.DiskMB, + } + +} + func (d *Driver) WaitTask(ctx context.Context, taskID string) (<-chan *drivers.ExitResult, error) { handle, ok := d.tasks.Get(taskID) if !ok {