Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 9192 - portage fails to move file
Summary: portage fails to move file
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Unclassified (show other bugs)
Hardware: x86 Linux
: High major (vote)
Assignee: Nicholas Jones (RETIRED)
URL:
Whiteboard:
Keywords:
: 9924 12237 (view as bug list)
Depends on:
Blocks:
 
Reported: 2002-10-16 06:30 UTC by Vadim Berezniker
Modified: 2011-10-30 22:21 UTC (History)
7 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vadim Berezniker 2002-10-16 06:30:12 UTC
After asking and asking and asking on #gentoo for help nobody knew anything, so I 
had  sat down to track down the problem . 
 
The problem was that often during an emerge (towards the end; when the files 
actually get merged) I would often get '!!!' next to a filename and the file would not 
get merged.  
 
Here's the basic code flow in portage.py 
 
check if source and destination is on the same physical device (yes) 
call os.rename() which fails 
the python manual says that os.rename() might fail on cross-filesystem operations 
(which I presume it means it's hard-linking). 
 
The problem is that my /var/tmp partition is actually mounted from another 
directory (using the 'bind' method present in 2.4 kernels) and that apparently causes 
os.rename() to fail internally.
Comment 1 Vadim Berezniker 2002-10-16 06:33:12 UTC
I *could* specify the real location of the temp directory in make.globs, but then 
every time portage is updated, I would get a message saying that make.globals 
needs to be updated, etc, etc which is why I turned to using 'bind' in the first place. 
Comment 2 SpanKY gentoo-dev 2002-10-16 06:52:02 UTC
could you show some examples ? 
i have /var/tmp/portage mounted via bind to another fs and i never have any 
problems ... 
Comment 3 Nicholas Jones (RETIRED) gentoo-dev 2002-10-16 07:37:41 UTC
Assuming you're using a post-2.0.20(ish) portage, it should not
prompt you to update your configs unless there are changes to
it. You're changes are not considered, only changes between
default configs.
Comment 4 Vadim Berezniker 2002-10-16 11:10:31 UTC
Fake Example that's representative of my setup 
 
/drivex/share is mounted on /usr/share 
/drivex/tmp is mounted on /tmp 
 
/drivex/share and /drivex/tmp are on the same physical device. 
 
If portage tries to move from tmp -> /bin, /lib, /usr/bin, etc everything is OK (which 
is on another physical device) 
if portage tries to move from tmp -> /usr/share (the 'bound' dir), it fails. 
 
I guess for the error to occur both the temp directory and the target directory must 
be mountet using 'bind' and must be physically on the same drive. 
 
I am using portage 2.0.38 
 
As for config, I'm not entirely sure what you mean. 
If I change the tmp dir to something rather than default and then install a newer 
version of portage that changes something in the config file, I then have to manually 
merge the new version and the change to the tmp path. 
 
(My goal of using bind was to avoid that) 
Comment 5 Vadim Berezniker 2002-10-16 11:11:26 UTC
Oi. I didn't mean /tmp, I meant /var/tmp. (when's bugzilla getting edit caps already .. 
) 
Comment 6 SpanKY gentoo-dev 2002-10-30 01:29:25 UTC
*** Bug 9924 has been marked as a duplicate of this bug. ***
Comment 7 SpanKY gentoo-dev 2003-01-08 15:14:17 UTC
*** Bug 12237 has been marked as a duplicate of this bug. ***
Comment 8 SpanKY gentoo-dev 2003-01-08 15:14:34 UTC
from 9192 ... add info to Portage Users Guide maybe
Comment 9 Nicholas Jones (RETIRED) gentoo-dev 2003-02-03 07:07:19 UTC
This should be remedied in 2.0.46-r10