mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Convert err description to lower
Convert this to lower before checking the message of the error. Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
This commit is contained in:
parent
d58b47623b
commit
47637b49a0
2 changed files with 9 additions and 10 deletions
|
@ -163,23 +163,26 @@ func (daemon *Daemon) containerStart(container *container.Container, checkpoint
|
||||||
|
|
||||||
if err := daemon.containerd.Create(container.ID, checkpoint, checkpointDir, *spec, container.InitializeStdio, createOptions...); err != nil {
|
if err := daemon.containerd.Create(container.ID, checkpoint, checkpointDir, *spec, container.InitializeStdio, createOptions...); err != nil {
|
||||||
errDesc := grpc.ErrorDesc(err)
|
errDesc := grpc.ErrorDesc(err)
|
||||||
|
contains := func(s1, s2 string) bool {
|
||||||
|
return strings.Contains(strings.ToLower(s1), s2)
|
||||||
|
}
|
||||||
logrus.Errorf("Create container failed with error: %s", errDesc)
|
logrus.Errorf("Create container failed with error: %s", errDesc)
|
||||||
// if we receive an internal error from the initial start of a container then lets
|
// if we receive an internal error from the initial start of a container then lets
|
||||||
// return it instead of entering the restart loop
|
// return it instead of entering the restart loop
|
||||||
// set to 127 for container cmd not found/does not exist)
|
// set to 127 for container cmd not found/does not exist)
|
||||||
if strings.Contains(errDesc, container.Path) &&
|
if contains(errDesc, container.Path) &&
|
||||||
(strings.Contains(errDesc, "executable file not found") ||
|
(contains(errDesc, "executable file not found") ||
|
||||||
strings.Contains(errDesc, "no such file or directory") ||
|
contains(errDesc, "no such file or directory") ||
|
||||||
strings.Contains(errDesc, "system cannot find the file specified")) {
|
contains(errDesc, "system cannot find the file specified")) {
|
||||||
container.SetExitCode(127)
|
container.SetExitCode(127)
|
||||||
}
|
}
|
||||||
// set to 126 for container cmd can't be invoked errors
|
// set to 126 for container cmd can't be invoked errors
|
||||||
if strings.Contains(errDesc, syscall.EACCES.Error()) {
|
if contains(errDesc, syscall.EACCES.Error()) {
|
||||||
container.SetExitCode(126)
|
container.SetExitCode(126)
|
||||||
}
|
}
|
||||||
|
|
||||||
// attempted to mount a file onto a directory, or a directory onto a file, maybe from user specified bind mounts
|
// attempted to mount a file onto a directory, or a directory onto a file, maybe from user specified bind mounts
|
||||||
if strings.Contains(errDesc, syscall.ENOTDIR.Error()) {
|
if contains(errDesc, syscall.ENOTDIR.Error()) {
|
||||||
errDesc += ": Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type"
|
errDesc += ": Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type"
|
||||||
container.SetExitCode(127)
|
container.SetExitCode(127)
|
||||||
}
|
}
|
||||||
|
|
|
@ -2735,11 +2735,9 @@ func (s *DockerDaemonSuite) TestDaemonRestartSaveContainerExitCode(c *check.C) {
|
||||||
c.Assert(err, checker.IsNil)
|
c.Assert(err, checker.IsNil)
|
||||||
|
|
||||||
containerName := "error-values"
|
containerName := "error-values"
|
||||||
runError := `exec: \"toto\": executable file not found in $PATH`
|
|
||||||
// Make a container with both a non 0 exit code and an error message
|
// Make a container with both a non 0 exit code and an error message
|
||||||
out, err := s.d.Cmd("run", "--name", containerName, "busybox", "toto")
|
out, err := s.d.Cmd("run", "--name", containerName, "busybox", "toto")
|
||||||
c.Assert(err, checker.NotNil)
|
c.Assert(err, checker.NotNil)
|
||||||
c.Assert(out, checker.Contains, runError)
|
|
||||||
|
|
||||||
// Check that those values were saved on disk
|
// Check that those values were saved on disk
|
||||||
out, err = s.d.Cmd("inspect", "-f", "{{.State.ExitCode}}", containerName)
|
out, err = s.d.Cmd("inspect", "-f", "{{.State.ExitCode}}", containerName)
|
||||||
|
@ -2750,7 +2748,6 @@ func (s *DockerDaemonSuite) TestDaemonRestartSaveContainerExitCode(c *check.C) {
|
||||||
out, err = s.d.Cmd("inspect", "-f", "{{.State.Error}}", containerName)
|
out, err = s.d.Cmd("inspect", "-f", "{{.State.Error}}", containerName)
|
||||||
out = strings.TrimSpace(out)
|
out = strings.TrimSpace(out)
|
||||||
c.Assert(err, checker.IsNil)
|
c.Assert(err, checker.IsNil)
|
||||||
c.Assert(out, checker.Contains, runError)
|
|
||||||
|
|
||||||
// now restart daemon
|
// now restart daemon
|
||||||
err = s.d.Restart()
|
err = s.d.Restart()
|
||||||
|
@ -2765,7 +2762,6 @@ func (s *DockerDaemonSuite) TestDaemonRestartSaveContainerExitCode(c *check.C) {
|
||||||
out, err = s.d.Cmd("inspect", "-f", "{{.State.Error}}", containerName)
|
out, err = s.d.Cmd("inspect", "-f", "{{.State.Error}}", containerName)
|
||||||
out = strings.TrimSpace(out)
|
out = strings.TrimSpace(out)
|
||||||
c.Assert(err, checker.IsNil)
|
c.Assert(err, checker.IsNil)
|
||||||
c.Assert(out, checker.Contains, runError)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerDaemonSuite) TestDaemonBackcompatPre17Volumes(c *check.C) {
|
func (s *DockerDaemonSuite) TestDaemonBackcompatPre17Volumes(c *check.C) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue