executor: Keep 0.8.6 exit code for wait() failures

0.8.6 uses exit code 1 when `proc.Wait()` fails: https://github.com/hashicorp/nomad/blob/v0.8.6/client/driver/executor/executor.go#L442
This commit is contained in:
Mahmood Ali 2018-12-04 18:57:14 -05:00
parent 2516cb16b9
commit 428d35a5a9
1 changed files with 5 additions and 1 deletions

View File

@ -247,7 +247,7 @@ func (l *LibcontainerExecutor) wait() {
ps = exitErr.ProcessState
} else {
l.logger.Error("failed to call wait on user process", "error", err)
l.exitState = &ProcessState{Pid: 0, ExitCode: -2, Time: time.Now()}
l.exitState = &ProcessState{Pid: 0, ExitCode: 1, Time: time.Now()}
return
}
}
@ -310,6 +310,8 @@ func (l *LibcontainerExecutor) Shutdown(signal string, grace time.Duration) erro
return fmt.Errorf("error unknown signal given for shutdown: %s", signal)
}
// Signal initial container processes only during graceful
// shutdown; hence `false` arg.
err = l.container.Signal(sig, false)
if err != nil {
return err
@ -319,6 +321,8 @@ func (l *LibcontainerExecutor) Shutdown(signal string, grace time.Duration) erro
case <-l.userProcExited:
return nil
case <-time.After(grace):
// Force kill all container processes after grace period,
// hence `true` argument.
return l.container.Signal(os.Kill, true)
}
} else {