Bug 1386321

Summary: 'docker run IMAGE nonexistingcmd' error message is hard to get
Product: Red Hat Enterprise Linux 7 Reporter: Lokesh Mandvekar <lsm5>
Component: oci-register-machineAssignee: Lokesh Mandvekar <lsm5>
Status: CLOSED DUPLICATE QA Contact: Martin Jenner <mjenner>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.3CC: adimania, admiller, amurdaca, dwalsh, extras-qa, ichavero, imcleod, jcajka, jchaloup, jfilak, lsm5, marianne, miminar, mpatel, nalin, riek, vbatts
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1380685 Environment:
Last Closed: 2016-10-18 16:11:15 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1380685    
Bug Blocks: 1386320    

Description Lokesh Mandvekar 2016-10-18 16:09:47 UTC
+++ This bug was initially created as a clone of Bug #1380685 +++

Description of problem:
I got back to docker after a long while and when I was going to run an image, I issued "docker run" command with swapped "IMAGE" and "-it" arguments, so I got command like the following:
# docker run fedora -it /usr/bin/bash

The command failed and I was sure there is a bug in docker because it printed out:
/usr/bin/docker-current: Error response from daemon: oci runtime error: exit status 1:.

There was no sign that docker tried to interpret "-it" as COMMAND


Version-Release number of selected component (if applicable):
docker-1.12.1-28.git9a3752d.fc26.x86_64

How reproducible:
Always

Steps to Reproduce:
1. # docker run fedora fdjalsjlhglajsfd
2.
3.

Actual results:
/usr/bin/docker-current: Error response from daemon: oci runtime error: exit status 1:.

Expected results:
'fdjalsjlhglajsfd' command not found

--- Additional comment from Antonio Murdaca on 2016-09-30 05:58:05 CDT ---

I'll take a look at this shortly but this seems similar to https://bugzilla.redhat.com/show_bug.cgi?id=1379706 which should have been fixed in build 28.

--- Additional comment from Antonio Murdaca on 2016-09-30 05:59:43 CDT ---

Can you disable selinux and try again please?

--- Additional comment from Jakub Filak on 2016-09-30 06:33 CDT ---

[root@photon ~]# setenforce 0
[root@photon ~]# getenforce 
Permissive
[root@photon ~]# MARK=$(date +"%F %H:%M:%S")
[root@photon ~]# docker run fedora -ti /usr/bin/bash
/usr/bin/docker-current: Error response from daemon: oci runtime error: exit status 1:.
[root@photon ~]# journalctl --since="$MARK" > /tmp/journald.txt

--- Additional comment from Antonio Murdaca on 2016-09-30 06:44:44 CDT ---

Thanks, I'll spin up a Rawhide vm and test this out.

--- Additional comment from Antonio Murdaca on 2016-10-17 06:45:02 CDT ---

This is an issue with "oci-register-machine" hook rather than a docker issue:

$ docker run busybox -ti sh
docker: Error response from daemon: oci runtime error: exit status 1:.

$ sudo mv /usr/libexec/oci/hooks.d/oci-register-machine /tmp/oci-register-machine 

The command above will prevent docker from running that hook, try re-running the original command now:

$ docker run busybox -ti sh                              
docker: Error response from daemon: oci runtime error: exec: "-ti": executable file not found in $PATH.

Now you can see the useful "executable file not found in $PATH" error.

--- Additional comment from Daniel Walsh on 2016-10-17 10:56:24 CDT ---

This looks like an old problem we had where the pid did not exist when oci-register-machine is called.  Which is not supposed to happen when using runc?

--- Additional comment from Daniel Walsh on 2016-10-17 10:58:09 CDT ---

Actually it looks like the problem is on Terminate.

Oct 17 11:56:44 dhcp-10-19-62-196.boston.devel.redhat.com oci-register-machine[31825]: 2016/10/17 11:56:44 Register machine: prestart b80799775658cf7cf95c75634a3a6f2f9f0a7196d346d94e3b075468f0919547 31807 /var/lib/docker/overlay2/3725ea6691c2a35bd0be05db96084424fa0cb77c3d9505c9f505d522eedeae61/merged
Oct 17 11:56:44 dhcp-10-19-62-196.boston.devel.redhat.com oci-register-machine[31840]: 2016/10/17 11:56:44 Register machine: poststop b80799775658cf7cf95c75634a3a6f2f9f0a7196d346d94e3b075468f0919547 0 /var/lib/docker/overlay2/3725ea6691c2a35bd0be05db96084424fa0cb77c3d9505c9f505d522eedeae61/merged
Oct 17 11:56:44 dhcp-10-19-62-196.boston.devel.redhat.com oci-register-machine[31840]: 2016/10/17 11:56:44 TerminateMachine failed: No machine 'b80799775658cf7cf95c75634a3a6f2f9f0a7196d346d94e3b075468f0919547' known

I think we need to check if the return from systemd is the UUID does not exist, just exit without a message.

--- Additional comment from Daniel Walsh on 2016-10-17 12:39:43 CDT ---

https://github.com/projectatomic/oci-register-machine/pull/28 should fix this bug.

--- Additional comment from Daniel Walsh on 2016-10-18 10:43:10 CDT ---

Fixed in oci-register-machine-0-2.7.gitbb20b00.fc26

Comment 1 Lokesh Mandvekar 2016-10-18 16:11:15 UTC

*** This bug has been marked as a duplicate of bug 1386320 ***