Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 60171 - Portage causes traceback if PORTAGE_TMPDIR is a symlink
Summary: Portage causes traceback if PORTAGE_TMPDIR is a symlink
Status: RESOLVED NEEDINFO
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Unclassified (show other bugs)
Hardware: All All
: High minor (vote)
Assignee: Brian Harring (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-08-12 13:31 UTC by solar (RETIRED)
Modified: 2004-09-09 00:10 UTC (History)
1 user (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 solar (RETIRED) gentoo-dev 2004-08-12 13:31:12 UTC
lrwxrwxrwx  1 solar solar 18 Aug 12 16:15 /var/tmp/portage -> /space/portage-tmp
--------------------------------------------------------------------------------
emerge gcc-3.4.1-r2.ebuild 
Calculating dependencies ...done!
>>> emerge (1 of 2) sys-devel/gcc-3.4.1-r2 to /
Traceback (most recent call last):
  File "/usr/bin/emerge", line 2735, in ?
    mydepgraph.merge(mydepgraph.altlist())
  File "/usr/bin/emerge", line 1633, in merge
    retval=portage.doebuild(y,"clean",myroot,self.pkgsettings,edebug,cleanup=1)
  File "/usr/lib/portage/pym/portage.py", line 2587, in doebuild
    os.makedirs(mysettings["T"])
  File "/usr/lib/python2.3/os.py", line 153, in makedirs
    makedirs(head, mode)
  File "/usr/lib/python2.3/os.py", line 153, in makedirs
    makedirs(head, mode)
  File "/usr/lib/python2.3/os.py", line 154, in makedirs
    mkdir(name, mode)
OSError: [Errno 17] File exists: '/var/tmp/portage'
--------------------------------------------------------------------------------

Yes I know I can redefine the $variable, but I think this behavior is somewhat undesired.
So if there is an easy fix please add it :)
Comment 1 solar (RETIRED) gentoo-dev 2004-09-08 22:51:24 UTC
10:43PM <carpaski> Do you know how many people I 'corrected' about that bug?
10:43PM <carpaski> Don't use symlinks...

------------------------------------------------------------------------------

Guess that settles this one.
Comment 2 Jason Stubbs (RETIRED) gentoo-dev 2004-09-08 23:04:33 UTC
Yes, but it CAN be fixed.. Brian, why haven't you fixed it yet? :P
Comment 3 solar (RETIRED) gentoo-dev 2004-09-08 23:07:32 UTC
Jstubbs are you sure of this? In some of our testing it seemed as if the python implementation of mkdirs() would fail if symlinks were involved. Thus why I closed it as cantfix.
Comment 4 Jason Stubbs (RETIRED) gentoo-dev 2004-09-08 23:16:33 UTC
So why not check if the path already exists instead of blindly attempting to create it (even if the creating function *should* not fail)?
Comment 5 solar (RETIRED) gentoo-dev 2004-09-08 23:17:18 UTC
Show me the CODE!
Comment 6 Jason Stubbs (RETIRED) gentoo-dev 2004-09-08 23:31:29 UTC
Something's not working right somewhere.. NEEDINFO!!!

bash-2.05b$ mkdir test2
bash-2.05b$ ln -s test2 test1
bash-2.05b$ python -c 'import os; os.makedirs("/home/jason/test1/make/dirs/test")'
bash-2.05b$ find test1
test1
bash-2.05b$ find test2
test2
test2/make
test2/make/dirs
test2/make/dirs/test
Comment 7 solar (RETIRED) gentoo-dev 2004-09-09 00:10:20 UTC
Portage 20040626 (hardened/x86, gcc-3.4.1, glibc-2.3.4.20040808-r0, 2.4.27-grsec-2.0.1 i686)
=================================================================
System uname: 2.4.27-grsec-2.0.1 i686 Intel(R) Pentium(R) 4 CPU 1400MHz
Gentoo Base System version 1.4.16
ccache version 2.3 [enabled]
Autoconf: sys-devel/autoconf-2.59-r3
Automake: sys-devel/automake-1.8.5
Binutils: sys-devel/binutils-2.15.90.0.1.1-r3
Headers:  sys-kernel/linux-headers-2.4.21
Libtools: sys-devel/libtool-1.5.2-r5
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CFLAGS="-march=i686 -Os -pipe -fforce-addr -fomit-frame-pointer -Wformat=2 "
CHOST="i686-pc-linux-gnu"
COMPILER=""
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=i686 -Os -pipe -fforce-addr -fomit-frame-pointer -Wformat=2 "
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig buildpkg ccache clean cvs noauto noautoaddcvs nodoc noinfo sandbox sfperms strict strip usersandbox"
GENTOO_MIRRORS="http://open-systems.ufl.edu/mirrors/gentoo ftp://ftp.gtlib.cc.gatech.edu/pub/gentoo http://mirror.tucdemonic.org/gentoo/"
MAKEOPTS="-j2"
PKGDIR="/usr/portage//packages/x86/"
PORTAGE_TMPDIR="/space/portage-tmp/"
PORTDIR="/var/cvsroot/gentoo-x86/"
PORTDIR_OVERLAY=""
SYNC="rsync://192.168.1.1/gentoo-portage"
USE="3dfx X aalib avi berkdb bonobo cdr crypt esd evo gd gdbm gnome gnomedb gpm gtkhtml guile hardened imlib justify libwww motif mozilla moznocompose moznoirc moznomail mozxmlterm mpeg multitarget mysql nogcj oggvorbis opengl pam perl pic pie png python readline sdl slang snmp spell ssl svga tcpd tetex tiff ungif voodoo3 x86 xinerama zlib"
-------------------------------------------------------------------------------
ls -l /var/tmp/portage -d
lrwxrwxrwx  1 root root 18 Aug 12 16:15 /var/tmp/portage -> /space/portage-tmp
-------------------------------------------------------------------------------

So I comment out the PORTAGE_TMPDIR in my make.conf and attempt to emerge a really fast compile. (chpax/paxctl/beep|| whatever)

new and interesting behavior..

ACCESS DENIED  mkdir:     /space/portage-tmp/chpax-0.7/work
install: cannot create directory `/var/tmp/portage/chpax-0.7/work': Permission denied

!!! ERROR: sys-apps/chpax-0.7 failed.
!!! Function dyn_unpack, Line 627, Exitcode 1
!!! Failed to create dir '/var/tmp/portage/chpax-0.7/work'
!!! If you need support, post the topmost build error, NOT this status message.

--------------------------- ACCESS VIOLATION SUMMARY ---------------------------
LOG FILE = "/tmp/sandbox-sys-apps_-_chpax-0.7-26116.log"

mkdir:     /space/portage-tmp/chpax-0.7/work
--------------------------------------------------------------------------------
redefine the PORTAGE_TMPDIR and it goes away.. 

What's odd now is I can't reproduce the orig bug only rhe above.. (And no I'm not crazy I'm just using portage-cvs!)