Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 71787 - Portage fails during merging when a symlink to a directory is blocked by a file.
Summary: Portage fails during merging when a symlink to a directory is blocked by a file.
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords: InVCS
Depends on:
Blocks:
 
Reported: 2004-11-19 13:27 UTC by baso
Modified: 2005-07-14 06:58 UTC (History)
2 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 baso 2004-11-19 13:27:53 UTC
>>> /etc/X11/xdm/TakeConsole
>>> /etc/X11/xdm/Xwilling
--- /etc/X11/xdm/pixmaps/
>>> /etc/X11/xdm/pixmaps/xorg.xpm
>>> /etc/X11/xdm/pixmaps/xorg-bw.xpm
Traceback (most recent call last):
  File "/usr/bin/emerge", line 2991, in ?
    mydepgraph.merge(mydepgraph.altlist())
  File "/usr/bin/emerge", line 1839, in merge
    retval=portage.doebuild(y,"merge",myroot,self.pkgsettings,edebug)
  File "/usr/lib/portage/pym/portage.py", line 2562, in doebuild
    return merge(mysettings["CATEGORY"],mysettings["PF"],mysettings["D"],mysettings["BUILDDIR"]+"/build-info",myroot,mysettings,myebuild=mysettings["EBUILD"])
  File "/usr/lib/portage/pym/portage.py", line 2695, in merge
    return mylink.merge(pkgloc,infloc,myroot,myebuild)
  File "/usr/lib/portage/pym/portage.py", line 6670, in merge
    return self.treewalk(mergeroot,myroot,inforoot,myebuild,cleanup=cleanup)
  File "/usr/lib/portage/pym/portage.py", line 6297, in treewalk
    if self.mergeme(srcroot,destroot,outfile,secondhand,"",cfgfiledict,mymtime):
  File "/usr/lib/portage/pym/portage.py", line 6536, in mergeme
    if self.mergeme(srcroot,destroot,outfile,secondhand,offset+x+"/",cfgfiledict,thismtime):
  File "/usr/lib/portage/pym/portage.py", line 6536, in mergeme
    if self.mergeme(srcroot,destroot,outfile,secondhand,offset+x+"/",cfgfiledict,thismtime):
  File "/usr/lib/portage/pym/portage.py", line 6536, in mergeme
    if self.mergeme(srcroot,destroot,outfile,secondhand,offset+x+"/",cfgfiledict,thismtime):
  File "/usr/lib/portage/pym/portage.py", line 6474, in mergeme
    mydest = new_protect_filename(myrealdest, newmd5=portage_checksum.perform_md5(srcroot+myabsto))
  File "/usr/lib/portage/pym/portage_checksum.py", line 24, in perform_md5
    return perform_checksum(x, md5hash, calc_prelink)[0]
  File "/usr/lib/portage/pym/portage_checksum.py", line 127, in perform_checksum
    myhash, mysize = hash_function(myfilename)
  File "/usr/lib/portage/pym/portage_checksum.py", line 74, in md5hash
    return fchksum.fmd5t(filename)
IOError: [Errno 21] Is a directory: '/var/tmp/portage/xorg-x11-6.8.0-r3/image//var/lib/xdm'


Reproducible: Always
Steps to Reproduce:
1.
2.
3.

Actual Results:  
error during emerge
Comment 1 Olivier Crete (RETIRED) gentoo-dev 2004-11-19 15:31:24 UTC
seems like a portage bug to me... Which portage version?
Comment 2 baso 2004-11-20 04:05:45 UTC
My portage version is 2.0.51_rc7
Comment 3 Olivier Crete (RETIRED) gentoo-dev 2004-11-20 07:30:19 UTC
definetely seems like a portage bug to me
Comment 4 baso 2004-11-20 07:31:57 UTC
So, what I should be?
Comment 5 Jason Stubbs (RETIRED) gentoo-dev 2004-11-20 17:25:05 UTC
There have been 20 revisions of portage since 2.0.51_pre7. Please try and reproduce this with 2.0.51-r3 first.
Comment 6 baso 2004-11-21 00:09:37 UTC
I tried with portage-2.0.51-r3 and also with portage-2.0.51-r2 but I still have the same problem. I think that is the same problem also for other packages; for example:

/usr/lib/gcc/i686-pc-linux-gnu/3.4.3/../../../libgimpui-2.0.so: undefined reference to `g_return_if_fail_warning'
collect2: ld returned 1 exit status
make[2]: *** [freetype] Error 1
make[2]: Leaving directory `/var/tmp/portage/gimp-freetype-0.5/work/gimp-freetype-0.5/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/gimp-freetype-0.5/work/gimp-freetype-0.5'
make: *** [all] Error 2

!!! ERROR: media-gfx/gimp-freetype-0.5 failed.
!!! Function src_compile, Line 24, Exitcode 2
!!! (no error message)


I continue having this error with the 3 portages I tried. 
Comment 7 Jason Stubbs (RETIRED) gentoo-dev 2004-11-21 01:22:14 UTC
That's a completely different error.. something to do with the individual package.

What we need to see is the traceback that happened the first time with a more recent portage for two reasons. The original bug may be just a transient thing that was broken and fixed during the _pre stage, and all the line numbers no longer match the code.
Comment 8 Nicholas Jones (RETIRED) gentoo-dev 2005-02-28 09:07:50 UTC
Old. No updates.
Comment 9 MickKi 2005-04-24 07:37:39 UTC
Very similar problem is described here: 

http://forums.gentoo.org/viewtopic-t-328423-highlight-xorg+fails.html

but it ends with xkb as opposed to xdm:
===================================
IOError: [Errno 21] Is a directory: '/var/tmp/portage/xorg-x11-6.8.2-r1/image//var/lib/xkb'
===================================
Comment 10 Jason Stubbs (RETIRED) gentoo-dev 2005-04-25 07:36:33 UTC
Searching for the info on the forums.. Still unable to reproduce this. :(
Comment 11 MickKi 2005-04-26 05:29:30 UTC
OK, I've added the info you asked for in the forum thread,  but I am thinking if /var/lib/xkb is not a  symlink does this mean that there is something wrong with my fs?  (I had to move /var/tmp and /usr/lib to a new partition recently and there is always the possibility that tar/untar might have corrupted it?)
Comment 12 MickKi 2005-04-27 23:14:58 UTC
Jason, there's some more info in the forums, but I am not sure if it is relevant?
Comment 13 Jason Stubbs (RETIRED) gentoo-dev 2005-04-29 04:57:51 UTC
I've put some debugging stuff in portage-2.0.51.20-r5 that will trigger when this bug hits. Please have a go with that version.
Comment 14 MickKi 2005-04-29 16:31:47 UTC
Thanks Jason,

I tried your portage-2.0.51.20-r5, which also pulled in sys-apps/sandbox-1.2.2 (I couldn't find the sanbox-1.2.3 at the mirrors).

Anyway, this is what I get now at the end of the installation:
========================================
gzipping man page: X.Org.7x
making executable: /usr/lib/libFS.so.6.0
making executable: /usr/lib/libGLU.so.1.3
making executable: /usr/lib/libGLw.so.1.0
making executable: /usr/lib/libI810XvMC.so.1.0
making executable: /usr/lib/libICE.so.6.3
making executable: /usr/lib/libOSMesa.so.4.0
making executable: /usr/lib/libSM.so.6.0
making executable: /usr/lib/libX11.so.6.2
making executable: /usr/lib/libXRes.so.1.0
making executable: /usr/lib/libXTrap.so.6.4
making executable: /usr/lib/libXau.so.6.0
making executable: /usr/lib/libXaw.so.6.1
making executable: /usr/lib/libXaw.so.7.0
making executable: /usr/lib/libXaw.so.8.0
making executable: /usr/lib/libXcomposite.so.1.0
making executable: /usr/lib/libXcursor.so.1.0.2
making executable: /usr/lib/libXdamage.so.1.0
making executable: /usr/lib/libXevie.so.1.0
making executable: /usr/lib/libXext.so.6.4
making executable: /usr/lib/libXfixes.so.3.0
making executable: /usr/lib/libXfont.so.1.5
making executable: /usr/lib/libXft.so.1.1
making executable: /usr/lib/libXft.so.2.1.2
making executable: /usr/lib/libXi.so.6.0
making executable: /usr/lib/libXinerama.so.1.0
making executable: /usr/lib/libXmu.so.6.2
making executable: /usr/lib/libXmuu.so.1.0
making executable: /usr/lib/libXp.so.6.2
making executable: /usr/lib/libXpm.so.4.11
making executable: /usr/lib/libXrandr.so.2.0
making executable: /usr/lib/libXrender.so.1.2.2
making executable: /usr/lib/libXss.so.1.0
making executable: /usr/lib/libXt.so.6.0
making executable: /usr/lib/libXtst.so.6.1
making executable: /usr/lib/libXv.so.1.0
making executable: /usr/lib/libXvMC.so.1.0
making executable: /usr/lib/libXxf86dga.so.1.0
making executable: /usr/lib/libXxf86misc.so.1.1
making executable: /usr/lib/libXxf86rush.so.1.0
making executable: /usr/lib/libXxf86vm.so.1.0
making executable: /usr/lib/libdps.so.1.0
making executable: /usr/lib/libdpstk.so.1.0
making executable: /usr/lib/libfontenc.so.1.0
making executable: /usr/lib/libpsres.so.1.0
making executable: /usr/lib/libxkbfile.so.1.0
making executable: /usr/lib/libxkbui.so.1.0
making executable: /usr/lib/libxrx.so.6.8
making executable: /usr/lib/libxrxnest.so.6.8
QA Notice: /usr/bin/Xorg is setXid, dynamically linked and using lazy bindings.
This combination is generally discouraged. Try: CFLAGS='-Wl,-z,now' emerge xorg-x11
>>> Completed installing xorg-x11-6.8.2-r1 into /var/tmp/portage/xorg-x11-6.8.2-r1/image/
                       
>>> Merging x11-base/xorg-x11-6.8.2-r1 to /
 * Preparing any installed configuration files for font move...
 * //usr/X11R6/lib/X11/fonts/* not a symlink, moving to /usr/share/fonts
 * //usr/X11R6/lib/X11/fonts/* does not exist.
 * >>> SetUID: [chmod go-r] /var/tmp/portage/xorg-x11-6.8.2-r1/image//usr/bin/Xorg ...                              [ ok ]
--- /etc/              
--- /etc/X11/          
>>> /etc/X11/X -> ../../usr/X11R6/bin/Xorg
--- /etc/X11/twm/      
>>> /etc/X11/twm/system.twmrc
--- /etc/X11/xdm/      
>>> /etc/X11/xdm/Xresources
>>> /etc/X11/xdm/Xaccess
>>> /etc/X11/xdm/Xservers
>>> /etc/X11/xdm/Xsession
>>> /etc/X11/xdm/Xsetup_0
>>> /etc/X11/xdm/GiveConsole
>>> /etc/X11/xdm/xdm-config
>>> /etc/X11/xdm/TakeConsole
>>> /etc/X11/xdm/authdir -> ../../../var/lib/xdm
--- /etc/X11/xdm/pixmaps/
>>> /etc/X11/xdm/pixmaps/xorg-bw.xpm
>>> /etc/X11/xdm/pixmaps/xorg.xpm
>>> /etc/X11/xdm/Xwilling
>>> /etc/X11/xdm/chooser
>>> /etc/X11/xkb -> ../../usr/lib/X11/xkb
--- /etc/X11/xsm/      
>>> /etc/X11/xsm/system.xsm
--- /etc/X11/lbxproxy/ 
>>> /etc/X11/lbxproxy/AtomControl
--- /etc/X11/xserver/  
>>> /etc/X11/xserver/SecurityPolicy
--- /etc/X11/xinit/    
>>> /etc/X11/xinit/xinitrc
>>> /etc/X11/xorg.conf.example
--- /etc/X11/Sessions/ 
>>> /etc/X11/Sessions/Xsession
>>> /etc/X11/chooser.sh
>>> /etc/X11/startDM.sh
--- /etc/X11/rstart/   
>>> /etc/X11/rstart/rstartd.real
>>> /etc/X11/rstart/config
--- /etc/X11/rstart/commands/
>>> /etc/X11/rstart/commands/x -> x11r6
>>> /etc/X11/rstart/commands/x11 -> x11r6
>>> /etc/X11/rstart/commands/@List
--- /etc/X11/rstart/commands/x11r6/
>>> /etc/X11/rstart/commands/x11r6/Terminal
>>> /etc/X11/rstart/commands/x11r6/@List
>>> /etc/X11/rstart/commands/x11r6/LoadMonitor
>>> /etc/X11/rstart/commands/ListGenericCommands
>>> /etc/X11/rstart/commands/ListContexts
--- /etc/X11/rstart/contexts/
>>> /etc/X11/rstart/contexts/x -> x11r6
>>> /etc/X11/rstart/contexts/x11 -> x11r6
>>> /etc/X11/rstart/contexts/default
>>> /etc/X11/rstart/contexts/@List
>>> /etc/X11/rstart/contexts/x11r6
>>> /etc/X11/xorg.conf 
--- /etc/X11/app-defaults/
>>> /etc/X11/app-defaults/XSm
>>> /etc/X11/app-defaults/Xfd
>>> /etc/X11/app-defaults/Xgc
>>> /etc/X11/app-defaults/Xmh
>>> /etc/X11/app-defaults/Xmag
>>> /etc/X11/app-defaults/Xman
>>> /etc/X11/app-defaults/Bitmap
>>> /etc/X11/app-defaults/XOrgCfg
>>> /etc/X11/app-defaults/Viewres
>>> /etc/X11/app-defaults/XLogo-color
>>> /etc/X11/app-defaults/XClock-color
>>> /etc/X11/app-defaults/XCalc
>>> /etc/X11/app-defaults/XLoad
>>> /etc/X11/app-defaults/XLogo
>>> /etc/X11/app-defaults/XMore
>>> /etc/X11/app-defaults/Xedit
>>> /etc/X11/app-defaults/XCalc-color
>>> /etc/X11/app-defaults/Xedit-color
>>> /etc/X11/app-defaults/Xmessage-color
>>> /etc/X11/app-defaults/Xditview
>>> /etc/X11/app-defaults/Beforelight
>>> /etc/X11/app-defaults/XClock
>>> /etc/X11/app-defaults/Chooser
>>> /etc/X11/app-defaults/Bitmap-color
>>> /etc/X11/app-defaults/Xmessage
>>> /etc/X11/app-defaults/XConsole
>>> /etc/X11/app-defaults/Editres
>>> /etc/X11/app-defaults/Editres-color
>>> /etc/X11/app-defaults/XClipboard
>>> /etc/X11/app-defaults/Xvidtune
>>> /etc/X11/app-defaults/Xditview-chrtr

[...snip]

>>> /usr/lib/X11/xkb/types/mousekeys
>>> /usr/lib/X11/xkb/types/basic
>>> /usr/lib/X11/xkb/types/extra
>>> /usr/lib/X11/xkb/types/README
>>> /usr/lib/X11/xkb/types/complete
>>> /usr/lib/X11/xkb/types/numpad
>>> /usr/lib/X11/xkb/types/iso9995
>>> /usr/lib/X11/xkb/README
>>> /usr/lib/X11/xkb/compat.dir
--- /usr/lib/X11/xkb/semantics/
>>> /usr/lib/X11/xkb/semantics/default
>>> /usr/lib/X11/xkb/semantics/basic
>>> /usr/lib/X11/xkb/semantics/xtest
>>> /usr/lib/X11/xkb/semantics/complete
>>> /usr/lib/X11/xkb/keymap.dir
>>> /usr/lib/X11/xkb/types.dir
--- /usr/lib/X11/xkb/geometry/
>>> /usr/lib/X11/xkb/geometry/hp
>>> /usr/lib/X11/xkb/geometry/pc
--- /usr/lib/X11/xkb/geometry/ibm/
>>> /usr/lib/X11/xkb/geometry/ibm/thinkpad
>>> /usr/lib/X11/xkb/geometry/nec
--- /usr/lib/X11/xkb/geometry/sgi/
>>> /usr/lib/X11/xkb/geometry/sgi/O2
>>> /usr/lib/X11/xkb/geometry/sgi/indy
>>> /usr/lib/X11/xkb/geometry/sgi/indigo
>>> /usr/lib/X11/xkb/geometry/sun
>>> /usr/lib/X11/xkb/geometry/dell
>>> /usr/lib/X11/xkb/geometry/sony
--- /usr/lib/X11/xkb/geometry/digital/
>>> /usr/lib/X11/xkb/geometry/digital/lk
>>> /usr/lib/X11/xkb/geometry/digital/pc
>>> /usr/lib/X11/xkb/geometry/digital/unix
>>> /usr/lib/X11/xkb/geometry/kinesis
>>> /usr/lib/X11/xkb/geometry/amiga
>>> /usr/lib/X11/xkb/geometry/README
>>> /usr/lib/X11/xkb/geometry/northgate
>>> /usr/lib/X11/xkb/geometry/everex
>>> /usr/lib/X11/xkb/geometry/fujitsu
>>> /usr/lib/X11/xkb/geometry/keytronic
>>> /usr/lib/X11/xkb/geometry/ataritt
>>> /usr/lib/X11/xkb/geometry/winbook
>>> /usr/lib/X11/xkb/geometry/microsoft
>>> /usr/lib/X11/xkb/geometry/chicony
>>> /usr/lib/X11/xkb/geometry/macintosh
--- /usr/lib/X11/xkb/compat/
>>> /usr/lib/X11/xkb/compat/pc
>>> /usr/lib/X11/xkb/compat/leds
>>> /usr/lib/X11/xkb/compat/misc
>>> /usr/lib/X11/xkb/compat/pc98
>>> /usr/lib/X11/xkb/compat/default
>>> /usr/lib/X11/xkb/compat/mousekeys
>>> /usr/lib/X11/xkb/compat/norepeat
>>> /usr/lib/X11/xkb/compat/basic
>>> /usr/lib/X11/xkb/compat/japan
>>> /usr/lib/X11/xkb/compat/xtest
>>> /usr/lib/X11/xkb/compat/README
>>> /usr/lib/X11/xkb/compat/complete
>>> /usr/lib/X11/xkb/compat/keypad
>>> /usr/lib/X11/xkb/compat/accessx
>>> /usr/lib/X11/xkb/compat/group_led
>>> /usr/lib/X11/xkb/compat/iso9995
>>> /usr/lib/X11/xkb/compat/xfree86
========================================
mysrc /var/tmp/portage/xorg-x11-6.8.2-r1/image/usr/lib/X11/xkb/compiled
mymode 41471
myabsto /var/lib/xkb
myto ../../../../var/lib/xkb
myrealto /var/lib/xkb
mydest /usr/lib/X11/xkb/compiled
mydmode 32768
========================================
Please file the above in bug #71787

========================================
Please let me know if you want more info.
-- 
Regards,
Mick
Comment 15 Jason Stubbs (RETIRED) gentoo-dev 2005-04-29 20:52:19 UTC
Ok. It appears that in the install image, /usr/lib/xkb/compiled is a symlink to /var/lib/xkb and that on the file system /usr/lib/xkb/compiled is a regular file. Can you confirm that please?
Comment 16 MickKi 2005-04-30 01:20:14 UTC
OK, this is what I have here:

==================================
# ls -la /var/tmp/portage/xorg-x11-6.8.2-r1/image/usr/lib/X11/xkb/compiled
lrwxrwxrwx  1 root root 23 Apr 29 20:34 /var/tmp/portage/xorg-x11-6.8.2-r1/image/usr/lib/X11/xkb/compiled -> ../../../../var/lib/xkb
# ls -la /usr/lib/X11/xkb/compiled
----------  1 root root 0 Apr 17 20:08 /usr/lib/X11/xkb/compiled
==================================

Me thinks that /usr/lib/X11/xkb/compiled should have *some* access rights . . .   What's going on here?!
-- 
Regards,
Mick
Comment 17 Jason Stubbs (RETIRED) gentoo-dev 2005-04-30 01:38:17 UTC
How that file got there? I don't know. It's what is triggering the portage bug though. Specifically, the bug is when a symlink to a directory is blocked by a file. Removing that file should allow xorg-x11 to merge correctly.

The question is, what should portage do about it? Remove the file?
Comment 18 MickKi 2005-04-30 03:55:56 UTC
I suspect that this is a corrupt file with incorrect access rights.  It shouldn't be there and should have been removed as part of the emerge process.  Emerging xorg probably fell apart when it found this corrupt file which did not have any access rights to allow portage to remove it.

I am not sure that this is strictly speaking a bug, as we are not really talking about a 100% healthy fs.  Now, if portage is meant to automatically 'heal' every sick boxen out there, I guess it would eventually get rather bloaty :P  IMHO this would not be to the benefit of the greater gentoo good.

For now, I am going to remove /usr/lib/X11/xkb/compiled and try to remerge xorg.  Another thing I noticed with the last emerge is that file libGL.so.1 had not been installed by the time the emerge fell over.  Any idea why not?

Finally, is there a way of finding out all other corrupt files that might exist in my box - how do I grep them out?

Thank you very much for your help! :D
-- 
Regards,
Mick
Comment 19 MickKi 2005-04-30 08:15:03 UTC
Thanks again Jason!  It seems indeed that the culprit was a corrupt /usr/lib/X11/xkb/compiled file which had *no* access rights and therefore could not be removed by portage as part of the xorg-x11 emerge process.

After I deleted it manually, xorg emerged without further problems.  Assuming that the original report on xdm causing the xorg emerge to fail is also caused by the same reason (corrupt access rights on files of the existing fs) this bug could be closed?
-- 
Regards,
Mick
Comment 20 Jason Stubbs (RETIRED) gentoo-dev 2005-04-30 08:24:56 UTC
Portage runs as root and will happily remove a file that has 0000 permissions. The issue occurs specifically when a a file is blocking the installation of a symlink that points to a directory. Until portage is smarter about how it installs things, the plan is to remove the blocking file when this situation occurs and continue installation.
Comment 21 Jason Stubbs (RETIRED) gentoo-dev 2005-04-30 10:09:18 UTC
Confirmed and fixed.
Comment 22 Jason Stubbs (RETIRED) gentoo-dev 2005-07-14 05:47:48 UTC
Fixed on or before 2.0.51.22-r1 
Comment 23 Jason Stubbs (RETIRED) gentoo-dev 2005-07-14 06:58:33 UTC
Looking through the batch of bugs, I'm not sure that some of these are 
actually fixed in stable. Others, the requirements have possibly changed after 
the initial fix was committed. 
 
If you think this bug has been closed incorrectly, please reopen or ask that 
it be reopened.