Hi,

now too often got this python traceback:

Traceback (most recent call last):
  File "/net/toolsjunk/haubi/gentoo/sauxy3/usr/bin/emerge", line 5107, in ?
    retval = emerge_main()
  File "/net/toolsjunk/haubi/gentoo/sauxy3/usr/bin/emerge", line 5102, in 
emerge_main
    myopts, myaction, myfiles, spinner)
  File "/net/toolsjunk/haubi/gentoo/sauxy3/usr/bin/emerge", line 4568, in 
action_build
    retval = mergetask.merge(pkglist, favorites, mtimedb)
  File "/net/toolsjunk/haubi/gentoo/sauxy3/usr/bin/emerge", line 2837, in merge
    os.rmdir(catdir)
OSError: [Errno 17] File exists: 
'/net/toolsjunk/haubi/gentoo/sauxy3/var/tmp/portage/sys-libs'

As you can see, os.rmdir() returns errno 17 (EEXIST) instead of
ENOTEMPTY (92), which is already ignored.

Don't know if this is a prefix-only bug, but attached patch also ignores
EEXIST here.

/haubi/
--- bin/emerge.orig	2007-01-03 11:17:08.041471000 +0100
+++ bin/emerge	2007-01-03 11:17:10.501469000 +0100
@@ -2836,7 +2836,7 @@
 							try:
 								os.rmdir(catdir)
 							except OSError, e:
-								if e.errno != errno.ENOTEMPTY:
+								if e.errno != errno.ENOTEMPTY and e.errno != errno.EEXIST:
 									raise
 								del e
 							portage_locks.unlockdir(catdir_lock)

Reply via email to