diff options
author | Daniel J Walsh <dwalsh@redhat.com> | 2020-10-28 10:27:31 -0400 |
---|---|---|
committer | Daniel J Walsh <dwalsh@redhat.com> | 2020-10-29 06:19:21 -0400 |
commit | 0f191ad72c406cfe8223946c069f6ec70f559664 (patch) | |
tree | 3ada37ecc5b6b666492303eeaf4f3d67f0b9c97f | |
parent | cce6c6cd40137c460f173300b36c5868383870c5 (diff) | |
download | podman-0f191ad72c406cfe8223946c069f6ec70f559664.tar.gz podman-0f191ad72c406cfe8223946c069f6ec70f559664.tar.bz2 podman-0f191ad72c406cfe8223946c069f6ec70f559664.zip |
Podman often reports OCI Runtime does not exist, even if it does
When the OCI Runtime tries to set certain settings in cgroups
it can get the error "no such file or directory", the wrapper
ends up reporting a bogus error like:
```
Request Failed(Internal Server Error): open io.max: No such file or directory: OCI runtime command not found error
{"cause":"OCI runtime command not found error","message":"open io.max: No such file or directory: OCI runtime command not found error","response":500}
```
On first reading of this, you would think the OCI Runtime (crun or runc) were not found. But the error is actually reporting
message":"open io.max: No such file or directory
Which is what we want the user to concentrate on.
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
-rw-r--r-- | libpod/define/errors.go | 6 | ||||
-rw-r--r-- | test/system/030-run.bats | 4 | ||||
-rw-r--r-- | test/system/160-volumes.bats | 2 |
3 files changed, 6 insertions, 6 deletions
diff --git a/libpod/define/errors.go b/libpod/define/errors.go index 627928ef7..5567d1838 100644 --- a/libpod/define/errors.go +++ b/libpod/define/errors.go @@ -138,15 +138,15 @@ var ( // ErrOCIRuntimePermissionDenied indicates the OCI runtime attempted to invoke a command that returned // a permission denied error - ErrOCIRuntimePermissionDenied = errors.New("OCI runtime permission denied error") + ErrOCIRuntimePermissionDenied = errors.New("OCI permission denied") // ErrOCIRuntimeNotFound indicates the OCI runtime attempted to invoke a command // that was not found - ErrOCIRuntimeNotFound = errors.New("OCI runtime command not found error") + ErrOCIRuntimeNotFound = errors.New("OCI not found") // ErrOCIRuntimeUnavailable indicates that the OCI runtime associated to a container // could not be found in the configuration - ErrOCIRuntimeUnavailable = errors.New("OCI runtime not available in the current configuration") + ErrOCIRuntimeUnavailable = errors.New("OCI unavailable") // ErrConmonOutdated indicates the version of conmon found (whether via the configuration or $PATH) // is out of date for the current podman version diff --git a/test/system/030-run.bats b/test/system/030-run.bats index 6b6964c63..b0c855d81 100644 --- a/test/system/030-run.bats +++ b/test/system/030-run.bats @@ -14,8 +14,8 @@ load helpers # ...but check the configured runtime engine, and switch to crun as needed run_podman info --format '{{ .Host.OCIRuntime.Path }}' if expr "$output" : ".*/crun"; then - err_no_such_cmd="Error: executable file.* not found in \$PATH: No such file or directory: OCI runtime command not found error" - err_no_exec_dir="Error: open executable: Operation not permitted: OCI runtime permission denied error" + err_no_such_cmd="Error: executable file.* not found in \$PATH: No such file or directory: OCI not found" + err_no_exec_dir="Error: open executable: Operation not permitted: OCI permission denied" fi tests=" diff --git a/test/system/160-volumes.bats b/test/system/160-volumes.bats index 9f4bb76a2..c19e61669 100644 --- a/test/system/160-volumes.bats +++ b/test/system/160-volumes.bats @@ -119,7 +119,7 @@ EOF # noexec option. This should fail. # ARGH. Unfortunately, runc (used for cgroups v1) produces a different error local expect_rc=126 - local expect_msg='.* OCI runtime permission denied.*' + local expect_msg='.* OCI permission denied.*' run_podman info --format '{{ .Host.OCIRuntime.Path }}' if expr "$output" : ".*/runc"; then expect_rc=1 |