projectatomic / atomic

Atomic Run Tool for installing/running/managing container images.
Other
524 stars 139 forks source link

[Errno 22] Invalid argument #1233

Closed grantcurell closed 6 years ago

grantcurell commented 6 years ago

I'm new to the project, but I'm trying to follow the instructions here.

When you run atomic install --system --system-package=no --name kube-apiserver registry.centos.org/centos/kubernetes-apiserver:latest it gives you:

Extracting to /var/lib/containers/atomic/kube-apiserver.0
[Errno 22] Invalid argument

I couldn't figure out how to get a regular stack trace because it properly exits, but the flow is: atomic line 185 Atomic.Install.install line 133 syscontainers line 170

Suggest the error message be updated since "Invalid argument" refers to internal code the user won't know about. Haven't figured out what the problem is yet.

Edit:

I've managed to backtrace to the exception here:

    except Exception as e: # pylint: disable=broad-except
        write_err("%s" % str(e))
        sys.exit(1)

This is just me personally, but I'd just get rid of this. I'd rather the whole thing puke on itself and give me a handy stack trace instead of catching the exception and handing out an error with no information.

grantcurell commented 6 years ago

It looks like it has already been patched, but is not available in the version of CentOS atomic that I have. In atomic version 1.22.1 line 241 of sysconatiners.py selinux.setfscreatecon_raw(None) doesn't have a guard in cases where SELinux is not active. In the newest version of the code it is:

        try:
            os.makedirs(rootfs)
        finally:
            if selinux.is_selinux_enabled():
                selinux.setfscreatecon_raw(None)

which effectively negates the error. After spending the time to run that down to discover it has already patched I am now so sad. So very sad.