os.rename throws exception when renaming directories on lower overlayfs layers #25409

Open
rovner opened this Issue Aug 4, 2016 · 19 comments

Comments

Projects
None yet

rovner commented Aug 4, 2016

Output of docker version:

Client:
 Version:      1.12.0
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   8eab29e
 Built:        Thu Jul 28 22:11:10 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.0
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   8eab29e
 Built:        Thu Jul 28 22:11:10 2016
 OS/Arch:      linux/amd64

Output of docker info:

Containers: 2
 Running: 0
 Paused: 0
 Stopped: 2
Images: 29
Server Version: 1.12.0
Storage Driver: overlay2
 Backing Filesystem: extfs
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: host bridge null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 4.4.7-1.ng
Operating System: Ubuntu 16.04 LTS
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 15.67 GiB
Name: rovner-qtesting-7
ID: M7UX:OR2K:WJQI:KGPM:XFIJ:UF72:AQ6J:OYUZ:UIBO:6RJZ:LVGN:TT4I
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
WARNING: No kernel memory limit support
Insecure Registries:
 127.0.0.0/8

Additional environment details (AWS, VirtualBox, physical, etc.):

root@my-host:/# uname -a
Linux my-host 4.4.7-1.ng #1 SMP Fri Apr 15 17:59:44 MSK 2016 x86_64 x86_64 x86_64 GNU/Linux

Steps to reproduce the issue:

  • Build image with Dockerfile
FROM ubuntu:14.04
RUN mkdir /foo && touch /foo/bar
Sending build context to Docker daemon 2.048 kB
Step 1 : FROM ubuntu:14.04
 ---> 0ccb13bf1954
Step 2 : RUN mkdir /foo && touch /foo/bar
 ---> Running in dc97258d4d23
 ---> c6216cc93147
Removing intermediate container dc97258d4d23
Successfully built c6216cc93147
  • Rename foo to foo2 with python os.rename
root@c18071cd5033:/# python3
Python 3.4.3 (default, Oct 14 2015, 20:28:29)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.rename('/foo', '/foo2')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 18] Invalid cross-device link: '/foo' -> '/foo2'

Describe the results you received:
Rename failed with error OSError: [Errno 18] Invalid cross-device link: '/foo' -> '/foo2'

Describe the results you expected:
Rename finished successfully

Member

thaJeztah commented Aug 4, 2016

Could this be a related to docker#12327 (which should be fixed in kernel 4.5)?

Contributor

justincormack commented Aug 4, 2016

This is running 4.4.7 though...

On 4 Aug 2016 4:55 p.m., "Sebastiaan van Stijn" notifications@github.com
wrote:

Could this be a related to #12327
docker#12327 (which should be fixed in
kernel 4.5)?


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
docker#25409 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAdcPHJhXQTYrW0JxZDSmj9IRdxKER8Aks5qcf1ZgaJpZM4Jcv9_
.

rovner commented Aug 5, 2016

Same error on kernel 4.6

# docker info
Containers: 6
 Running: 0
 Paused: 0
 Stopped: 6
Images: 8
Server Version: 1.12.0
Storage Driver: overlay2
 Backing Filesystem: extfs
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: null host bridge overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 4.6.0-040600-generic
Operating System: Ubuntu 16.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 15.67 GiB
Name: rovner-qtesting-9
ID: DCYS:CV47:K2AH:XNJR:B6TU:R442:OFFN:ZDP3:JG6T:A2KL:PDIH:JRLP
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Insecure Registries:
 127.0.0.0/8

# docker version
Client:
 Version:      1.12.0
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   8eab29e
 Built:        Thu Jul 28 22:11:10 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.0
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   8eab29e
 Built:        Thu Jul 28 22:11:10 2016
 OS/Arch:      linux/amd64
Member

thaJeztah commented Aug 5, 2016

ping @dmcgowan ptal

xrow commented Aug 9, 2016

Hi,

this is a quite dangerous and serve bug. It seems that we have a similar issue with a PHP application.

Warning: rename(var/log/error.log,var/log/error.log.1): Das Argument ist ungültig in /var/www/sites/.../ezpublish_legacy/lib/ezfile/classes/ezfile.php on line 164

We will try provide a reproduceable case on centos 7.

I prepared a testcase:

[root@centos ~]# docker pull dennisxrow/overlay-rename-issue
Using default tag: latest
Trying to pull repository docker.io/dennisxrow/overlay-rename-issue ... 
latest: Pulling from docker.io/dennisxrow/overlay-rename-issue
3d8673bd162a: Already exists 
57a1e873f6f0: Pull complete 
15c108896ad4: Pull complete 
44820bae32f9: Pull complete 
909d97b1749b: Pull complete 
Digest: sha256:65d8617754cf2eca1363f9c711e730243579e57339d54a5bc19c05a3c291e1c6
Status: Downloaded newer image for docker.io/dennisxrow/overlay-rename-issue:latest
[root@centos ~]# docker run -it dennisxrow/overlay-rename-issue bash
[root@8558556a56bb /]# php -r "rename('/imAlreadyHereBeforeYouStartTheContainer.txt','foo.txt');"
PHP Warning:  rename(/imAlreadyHereBeforeYouStartTheContainer.txt,foo.txt): Invalid argument in Command line code on line 1
[root@45ef08d20639 /]# mv /imAlreadyHereBeforeYouStartTheContainer.txt /test.txt
mv: cannot move '/imAlreadyHereBeforeYouStartTheContainer.txt' to a subdirectory of itself, '/test.txt'
[root@45ef08d20639 /]# touch test.txt
[root@45ef08d20639 /]# php -r "rename('/test.txt','foo.txt');"                                           
[root@45ef08d20639 /]# 

System specs:

[root@centos ~]# docker info
Containers: 5
 Running: 0
 Paused: 0
 Stopped: 5
Images: 10
Server Version: 1.10.3
Storage Driver: overlay
 Backing Filesystem: extfs
Execution Driver: native-0.2
Logging Driver: json-file
Plugins: 
 Volume: local
 Network: bridge null host
Kernel Version: 3.10.0-327.28.2.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
Number of Docker Hooks: 2
CPUs: 2
Total Memory: 3.703 GiB
Name: centos
ID: B5OJ:O32U:AZHU:AEGB:LR5L:W2UE:V3ZH:NE42:WCCB:3Z26:IC6A:AOWP
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Registries: docker.io (secure)
[root@centos ~]# uname -r
3.10.0-327.28.2.el7.x86_64
[root@centos ~]# modinfo overlay
filename:       /lib/modules/3.10.0-327.28.2.el7.x86_64/kernel/fs/overlayfs/overlay.ko
alias:          fs-overlay
license:        GPL
description:    Overlay filesystem
author:         Miklos Szeredi <miklos@szeredi.hu>
rhelversion:    7.2
srcversion:     CF1F8088ABE570587EEDD54
depends:        
intree:         Y
vermagic:       3.10.0-327.28.2.el7.x86_64 SMP mod_unload modversions 
signer:         CentOS Linux kernel signing key
sig_key:        2A:89:29:DC:86:82:6D:5A:C5:F6:BF:37:B0:BF:FE:FE:31:1C:4D:4D
sig_hashalgo:   sha256
parm:           check_copy_up:uint
parm:           ovl_check_copy_up:Warn on copy-up when causing process also has a R/O fd open

It works on Centos 7 wit Kernel 4.7, however with a weird sideeffect:

[root@vmbuilder ~]# docker run -it dennisxrow/overlay-rename-issue bash
[root@4ddcd123c344 /]# ls -lisa
total 32
  1433544  0 drwxr-xr-x   1 root root    92 Aug  9 09:58 .
  1433544  0 drwxr-xr-x   1 root root    92 Aug  9 09:58 ..
232155112  0 -rwxr-xr-x   1 root root     0 Aug  9 09:58 .dockerenv
232155113  0 -rwxr-xr-x   1 root root     0 Aug  9 09:58 .dockerinit
228400012 20 -rw-r--r--   8 root root 18307 Jul 29 14:05 anaconda-post.log
 96745269  0 lrwxrwxrwx   1 root root     7 Jul 29 14:03 bin -> usr/bin
  1435059  0 drwxr-xr-x   3 root root    17 Aug  9 09:44 boot
  1433582  0 drwxr-xr-x   5 root root   380 Aug  9 09:58 dev
  1437703  0 drwxr-xr-x   1 root root    62 Aug  9 09:58 etc
  1435060  0 drwxr-xr-x   2 root root     6 Aug 12  2015 home
153137224  4 -rw-r--r--   2 root root    10 Aug  9 09:42 imAlreadyHereBeforeYouStartTheContainer.txt
 96745479  0 lrwxrwxrwx   1 root root     7 Jul 29 14:03 lib -> usr/lib
 96745480  0 lrwxrwxrwx   1 root root     9 Jul 29 14:03 lib64 -> usr/lib64
  1435064  0 drwx------   2 root root     6 Jul 29 14:03 lost+found
  1435065  0 drwxr-xr-x   2 root root     6 Aug 12  2015 media
  1435066  0 drwxr-xr-x   2 root root     6 Aug 12  2015 mnt
  1435067  0 drwxr-xr-x   2 root root     6 Aug 12  2015 opt
        1  0 dr-xr-xr-x 200 root root     0 Aug  9 09:58 proc
  1435008  0 dr-xr-x---   2 root root   108 Aug  9 09:44 root
  1437700  0 drwxr-xr-x   1 root root    20 Aug  9 09:58 run
 96745494  0 lrwxrwxrwx   1 root root     8 Jul 29 14:03 sbin -> usr/sbin
  1435069  0 drwxr-xr-x   2 root root     6 Aug 12  2015 srv
        1  0 dr-xr-xr-x  13 root root     0 Aug  9 09:46 sys
 96748374  4 -rw-r--r--   1 root root    75 Aug  9 09:41 test.php
  1435070  0 drwxrwxrwt   7 root root   111 Aug  9 09:44 tmp
  1434983  0 drwxr-xr-x  13 root root   143 Aug  9 09:44 usr
  1434998  4 drwxr-xr-x  19 root root  4096 Aug  9 09:44 var
[root@4ddcd123c344 /]# php -r "rename('/imAlreadyHereBeforeYouStartTheContainer.txt','foo.txt');"
[root@4ddcd123c344 /]# ls -lisa
ls: cannot access imAlreadyHereBeforeYouStartTheContainer.txt: No such file or directory
total 32
  1433544  0 drwxr-xr-x   1 root root   156 Aug  9 09:58 .
  1433544  0 drwxr-xr-x   1 root root   156 Aug  9 09:58 ..
232155112  0 -rwxr-xr-x   1 root root     0 Aug  9 09:58 .dockerenv
232155113  0 -rwxr-xr-x   1 root root     0 Aug  9 09:58 .dockerinit
228400012 20 -rw-r--r--   8 root root 18307 Jul 29 14:05 anaconda-post.log
 96745269  0 lrwxrwxrwx   1 root root     7 Jul 29 14:03 bin -> usr/bin
  1435059  0 drwxr-xr-x   3 root root    17 Aug  9 09:44 boot
  1433582  0 drwxr-xr-x   5 root root   380 Aug  9 09:58 dev
  1437703  0 drwxr-xr-x   1 root root    62 Aug  9 09:58 etc
232155118  4 -rw-r--r--   1 root root    10 Aug  9 09:42 foo.txt
  1435060  0 drwxr-xr-x   2 root root     6 Aug 12  2015 home
        ?  ? ??????????   ? ?    ?        ?            ? imAlreadyHereBeforeYouStartTheContainer.txt
 96745479  0 lrwxrwxrwx   1 root root     7 Jul 29 14:03 lib -> usr/lib
 96745480  0 lrwxrwxrwx   1 root root     9 Jul 29 14:03 lib64 -> usr/lib64
  1435064  0 drwx------   2 root root     6 Jul 29 14:03 lost+found
  1435065  0 drwxr-xr-x   2 root root     6 Aug 12  2015 media
  1435066  0 drwxr-xr-x   2 root root     6 Aug 12  2015 mnt
  1435067  0 drwxr-xr-x   2 root root     6 Aug 12  2015 opt
        1  0 dr-xr-xr-x 200 root root     0 Aug  9 09:58 proc
  1435008  0 dr-xr-x---   2 root root   108 Aug  9 09:44 root
  1437700  0 drwxr-xr-x   1 root root    20 Aug  9 09:58 run
 96745494  0 lrwxrwxrwx   1 root root     8 Jul 29 14:03 sbin -> usr/sbin
  1435069  0 drwxr-xr-x   2 root root     6 Aug 12  2015 srv
        1  0 dr-xr-xr-x  13 root root     0 Aug  9 09:46 sys
 96748374  4 -rw-r--r--   1 root root    75 Aug  9 09:41 test.php
  1435070  0 drwxrwxrwt   7 root root   111 Aug  9 09:44 tmp
  1434983  0 drwxr-xr-x  13 root root   143 Aug  9 09:44 usr
  1434998  4 drwxr-xr-x  19 root root  4096 Aug  9 09:44 var
[root@4ddcd123c344 /]# cat /imAlreadyHereBeforeYouStartTheContainer.txt 
cat: /imAlreadyHereBeforeYouStartTheContainer.txt: No such file or directory
[root@4ddcd123c344 /]# cat foo.txt 
some text
[root@4ddcd123c344 /]# 

ls -lisa shows ?????? for /imAlreadyHereBeforeYouStartTheContainer.txt after renaming it to /foo.txt

@thaJeztah pointed out it should be fixed in Kernel 4.5, wich does not seems to be the case.
https://bugzilla.kernel.org/show_bug.cgi?id=109611

System 2 (Kernel 4.7 running with XFS ) specs:

[root@vmbuilder ~]# docker info
Containers: 8
 Running: 0
 Paused: 0
 Stopped: 8
Images: 10
Server Version: 1.10.3
Storage Driver: overlay
 Backing Filesystem: xfs
Execution Driver: native-0.2
Logging Driver: journald
Plugins: 
 Volume: local
 Network: host bridge null
Kernel Version: 4.7.0-1.el7.elrepo.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
Number of Docker Hooks: 2
CPUs: 4
Total Memory: 3.858 GiB
Name: vmbuilder
ID: HAMR:UBDP:ZHPA:DJ4I:JFJS:PFFM:IQKE:U6T5:2MI5:ZUFC:GMRM:4C45
WARNING: bridge-nf-call-ip6tables is disabled
Registries: docker.io (secure)
[root@vmbuilder ~]# uname -r
4.7.0-1.el7.elrepo.x86_64
[root@vmbuilder ~]# modinfo overlay
filename:       /lib/modules/4.7.0-1.el7.elrepo.x86_64/kernel/fs/overlayfs/overlay.ko
alias:          fs-overlay
license:        GPL
description:    Overlay filesystem
author:         Miklos Szeredi <miklos@szeredi.hu>
srcversion:     44DEC056720D2A53139A5AA
depends:        
intree:         Y
vermagic:       4.7.0-1.el7.elrepo.x86_64 SMP mod_unload modversions 
parm:           check_copy_up:bool
parm:           ovl_check_copy_up:Warn on copy-up when causing process also has a R/O fd open

koct9i commented Aug 9, 2016

Rename failed with error OSError: [Errno 18] Invalid cross-device link: '/foo' -> '/foo2'

That's how overlayfs works. Rename and link doesn't work across layers. You must copy all files and remove source. Maybe shutil.move could do that

System 2 (Kernel 4.7 running with XFS ) specs:

AFAIR XFS dooesn't support d_type in readdir by default. Probably our instance was created without required features. In newer kernels overlayfs complains about that in dmesg.

@dmcgowan dmcgowan added the area/kernel label Aug 9, 2016

@koct9i Everything works fine with Kernel 4.7 and ext4.

Member

thaJeztah commented Aug 10, 2016

ping @AkihiroSuda you may be interested in this as well (for your overview) ^^

@AkihiroSuda AkihiroSuda referenced this issue in AkihiroSuda/issues-docker Aug 15, 2016

Closed

memo #2

Member

AkihiroSuda commented Aug 15, 2016

https://github.com/torvalds/linux/blob/v4.8-rc2/fs/overlayfs/copy_up.c#L318-L322

 * Directory renames only allowed on "pure upper" (already created on
 * upper filesystem, never copied up).  Directories which are on lower or
 * are merged may not be renamed.  For these -EXDEV is returned and
 * userspace has to deal with it.  This means, when copying up a
 * directory we can rely on it and ancestors being stable.

I think returning EXDEV is reasonable, and don't expect the upstream kernel to fix the issue.
As mentioned in the above comment, "userspace" should deal with it (e.g. npm/npm#13257)

I'll open a PR to add a note about the issue into the documentation

edit: opened docker#25705

Member

AkihiroSuda commented Aug 15, 2016

just for information, linking some real-world issues to here (Note that AUFS has this kind of issue as well)

NPM: npm/npm#9863
Apache Kudu: https://issues.apache.org/jira/browse/KUDU-1419
Samba: https://bugzilla.samba.org/show_bug.cgi?id=9966
CernVM-FS: https://sft.its.cern.ch/jira/browse/CVM-651

AkihiroSuda added a commit to AkihiroSuda/docker that referenced this issue Aug 15, 2016

AkihiroSuda added a commit to AkihiroSuda/docker that referenced this issue Aug 15, 2016

Add a note about the rename(2) system call on AUFS and OverlayFS
Close #25409

Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>

AkihiroSuda added a commit to AkihiroSuda/issues-docker that referenced this issue Aug 15, 2016

AkihiroSuda added a commit to AkihiroSuda/docker that referenced this issue Aug 16, 2016

Add a note about the open(2) and rename(2) on AUFS and OverlayFS
Close #25409
Update #10180

Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>

AkihiroSuda added a commit to AkihiroSuda/docker that referenced this issue Aug 16, 2016

Add a note about the open(2) and rename(2) on AUFS and OverlayFS
Close #25409
Update #10180

Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>

@vdemeester vdemeester closed this in #25705 Aug 16, 2016

thaJeztah added a commit to thaJeztah/docker that referenced this issue Aug 16, 2016

Add a note about the open(2) and rename(2) on AUFS and OverlayFS
Close #25409
Update #10180

Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
(cherry picked from commit aab101a)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>

thaJeztah added a commit to thaJeztah/docker that referenced this issue Aug 17, 2016

Add a note about the open(2) and rename(2) on AUFS and OverlayFS
Close #25409
Update #10180

Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
(cherry picked from commit aab101a)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Member

dmcgowan commented Aug 18, 2016

I am going to keep this issue open since it is unique to overlay. Only overlay does not allow any renaming of directories on lower layers even if they are on the same device.

This test fails in overlay and overlay2 while passing in aufs and devicemapper.

@dmcgowan dmcgowan reopened this Aug 18, 2016

xrow commented Aug 18, 2016

If you see in our test case, the issue is not limited to directories. It affects files as well.

dekkagaijin added a commit to dekkagaijin/docker that referenced this issue Aug 18, 2016

Add a note about the open(2) and rename(2) on AUFS and OverlayFS
Close #25409
Update #10180

Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
Contributor

justincormack commented Sep 19, 2016

Yes I think EXDEV should not cause problems with most software, as it should already be prepared to deal with cross device rename, although may not be expecting it in the same directory. If there are real world cases, best to report upstream.

juhazi added a commit to AppGyver/depot_tools that referenced this issue Mar 9, 2017

borntorock commented Apr 4, 2017

Hey, Did we get the solution from the upstream AUFS community on this Invalid cross-device link error.

I'm facing this issue while simply executing yum update -y inside the centos docker container.

@thaJeztah @dmcgowan

I'm also getting OSError: [Errno 18] Invalid cross-device link: - it comes from a script that runs inside a container that calls os.link(pathToFile1, pathToFile2). Both files (the original and the link that I'm trying to create) are in the same VOLUME (as specified in the Dockerfile).

olix0r added a commit to linkerd/rustup-nightly-docker that referenced this issue May 3, 2017

Don't actually install rustup
Due to moby/moby#25409, we are unable to update rust if it is already installed.

This image is simplified to support /install-rust.sh which installs rustup and
defaults to nightly.

@olix0r olix0r referenced this issue in linkerd/rustup-nightly-docker May 3, 2017

Merged

Provide an install-rust.sh script #3

olix0r added a commit to linkerd/rustup-nightly-docker that referenced this issue May 3, 2017

Provide an install-rust.sh script (#3)
Due to moby/moby#25409, we are unable to update rust if it is already installed.

This image is simplified to support /install-rust.sh which installs rustup and
defaults to nightly.

antoinetran commented Aug 30, 2017

I have the same issue with latest docker-17.06.1-ce, and CentOS Linux release 7.2.1511 (Core) , and latest kernel-3.10.0-514.26.2.el7

The command '/bin/sh -c yum install -y dos2unix' returned a non-zero code: 1
sh-4.2# vim Dockerfile
sh-4.2# vim Dockerfile
sh-4.2# docker -H l2pf-jenkins:2375 build -t trana/todelete .
Sending build context to Docker daemon 93.85 MB
Step 1/10 : FROM proto-pi-cm.ts-l2pf.cloud-omc.org:5000/thales/java
 ---> 3e0b58e80823
Step 2/10 : RUN groupadd appgrp && useradd appusr -g appgrp
 ---> Using cache
 ---> f7b048ed9e37
Step 3/10 : COPY ./AppHome /var/ApeSubmitter
 ---> Using cache
 ---> 9e10154e7747
Step 4/10 : RUN yum install -y dos2unix && echo okkk
 ---> Running in dc967ff49dbd
Loaded plugins: fastestmirror, ovl
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Traceback (most recent call last):
  File "/usr/bin/yum", line 29, in <module>
    yummain.user_main(sys.argv[1:], exit_code=True)
  File "/usr/share/yum-cli/yummain.py", line 370, in user_main
    errcode = main(args)
  File "/usr/share/yum-cli/yummain.py", line 179, in main
    result, resultmsgs = base.doCommands()
  File "/usr/share/yum-cli/cli.py", line 573, in doCommands
    return self.yum_cli_commands[self.basecmd].doCommand(self, self.basecmd, self.extcmds)
  File "/usr/share/yum-cli/yumcommands.py", line 445, in doCommand
    return base.installPkgs(extcmds, basecmd=basecmd)
  File "/usr/share/yum-cli/cli.py", line 973, in installPkgs
    txmbrs = self.install(pattern=arg)
  File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 4819, in install
    mypkgs = self.pkgSack.returnPackages(patterns=pats,
  File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 1074, in <lambda>
    pkgSack = property(fget=lambda self: self._getSacks(),
  File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 778, in _getSacks
    self.repos.populateSack(which=repos)
  File "/usr/lib/python2.7/site-packages/yum/repos.py", line 347, in populateSack
    self.doSetup()
  File "/usr/lib/python2.7/site-packages/yum/repos.py", line 157, in doSetup
    self.retrieveAllMD()
  File "/usr/lib/python2.7/site-packages/yum/repos.py", line 96, in retrieveAllMD
    downloading = repo._commonRetrieveDataMD_list(mdtypes)
  File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 1609, in _commonRetrieveDataMD_list
    os.rename(local, local + '.old.tmp')
OSError: [Errno 22] Invalid argument
The command '/bin/sh -c yum install -y dos2unix && echo okkk' returned a non-zero code: 1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment