Bug 551338

Summary: "Invalid cross-device link" exception generated by /var/cache/yum/preupgrade*/packages/* management
Product: [Fedora] Fedora Reporter: Jason Vas Dias <jason.vas.dias>
Component: preupgradeAssignee: Richard Hughes <richard>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 12CC: jason.vas.dias, wwoods
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-12-04 01:05:05 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jason Vas Dias 2009-12-30 06:14:59 UTC
Description of problem:

During preupgrade from FC-10 to FC-12, preupgrade fails because
of an "invalid cross-device link" error (errno==18) that is caused
by its management of its own files under /var/cache/yum/preupgrade/* .

A python traceback results ( see bug #539302 ) ; running :

$ ( strace -f preupgrade ) 2>&1 | tee /tmp/prup.strace.log
...
[pid 10695] link("/var/cache/yum/preupgrade-fedora/packages/openoffice.org-core-3.1.1-19.14.fc12.x86_64.rpm", "/var/cache/yum/preupgrade/openoffice.org-core-3.1.1-19.14.fc12.x86_64.rpm") = 0
[pid 10695] open("/var/cache/yum/preupgrade-updates/packages", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 16
[pid 10695] fstat(16, {st_mode=S_IFDIR|0755, st_size=36864, ...}) = 0
[pid 10695] getdents(16, /* 69 entries */, 4096) = 4072
[pid 10695] getdents(16, /* 66 entries */, 4096) = 4072
[pid 10695] getdents(16, /* 64 entries */, 4096) = 4080
[pid 10695] getdents(16, /* 68 entries */, 4096) = 4088
[pid 10695] getdents(16, /* 66 entries */, 4096) = 4080
[pid 10695] getdents(16, /* 66 entries */, 4096) = 4048
[pid 10695] getdents(16, /* 46 entries */, 4096) = 2792
[pid 10695] getdents(16, /* 0 entries */, 4096) = 0
[pid 10695] close(16)                   = 0
[pid 10695] unlink("/var/cache/yum/preupgrade/fuse-libs-2.8.1-3.fc12.x86_64.rpm") = -1 ENOENT (No such file or directory)
[pid 10695] link("/var/cache/yum/preupgrade-updates/packages/fuse-libs-2.8.1-3.fc12.x86_64.rpm", "/var/cache/yum/preupgrade/fuse-libs-2.8.1-3.fc12.x86_64.rpm") = -1 EXDEV (Invalid cross-device link)
[pid 10695] gettimeofday({1262152891, 768168}, NULL) = 0
...



Version-Release number of selected component (if applicable):
1.1.3-1.fc10.noarch

How reproducible:
100%

Steps to Reproduce:
$ preupgrade
  
Actual results:

As above and in Bug #539302

Expected results:

Upgrade to FC-12 ?

Comment 1 Jason Vas Dias 2009-12-30 06:48:09 UTC
Hmm, I guess I could try moving /var/cache/yum/preupgrade-{main,updates} to 
/mnt/X as well
as /var/cache/preupgrade{,-fedora} , which are links to a directory on a 
different disk . 

Why is this disallowed ? Why can't preupdate use symlinks ?

$ ls -l /var/cache/yum/
total 220
drwxr-xr-x 3 root root   4096 2009-12-30 05:10 fedora
drwxr-xr-x 3 root root   4096 2009-04-05 15:28 fedora-debuginfo
-rw-r--r-- 1 root root 196608 2009-04-05 11:57 packagekit-groups.sqlite
lrwxrwxrwx 1 root root     32 2009-12-30 01:12 preupgrade -> /mnt/gentoo/usr/x/yum/preupgrade
lrwxrwxrwx 1 root root     39 2009-12-30 01:12 preupgrade-fedora -> /mnt/gentoo/usr/x/yum/preupgrade-fedora
drwxr-xr-x 3 root root   4096 2009-12-30 01:08 preupgrade-main
drwxr-xr-x 3 root root   4096 2009-12-30 05:54 preupgrade-updates
drwxr-xr-x 3 root root   4096 2009-12-30 05:10 updates
drwxr-xr-x 3 root root   4096 2009-04-05 15:28 updates-debuginfo

Must users maintain 1.4GB free disk on their root disk in order to run 
preupgrade ? that seems unecessary to me.

Comment 2 Fedora Admin XMLRPC Client 2010-04-16 14:35:09 UTC
This package has changed ownership in the Fedora Package Database.  Reassigning to the new owner of this component.

Comment 3 Bug Zapper 2010-11-04 02:15:36 UTC
This message is a reminder that Fedora 12 is nearing its end of life.
Approximately 30 (thirty) days from now Fedora will stop maintaining
and issuing updates for Fedora 12.  It is Fedora's policy to close all
bug reports from releases that are no longer maintained.  At that time
this bug will be closed as WONTFIX if it remains open with a Fedora 
'version' of '12'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version prior to Fedora 12's end of life.

Bug Reporter: Thank you for reporting this issue and we are sorry that 
we may not be able to fix it before Fedora 12 is end of life.  If you 
would still like to see this bug fixed and are able to reproduce it 
against a later version of Fedora please change the 'version' of this 
bug to the applicable version.  If you are unable to change the version, 
please add a comment here and someone will do it for you.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events.  Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

The process we are following is described here: 
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 4 Bug Zapper 2010-12-04 01:05:05 UTC
Fedora 12 changed to end-of-life (EOL) status on 2010-12-02. Fedora 12 is 
no longer maintained, which means that it will not receive any further 
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of 
Fedora please feel free to reopen this bug against that version.

Thank you for reporting this bug and we are sorry it could not be fixed.