emerge compiles and installs openssl-0.9.7e without problems. When it then moves on to unmerge the old version (openssl-0.9.7d-r2) it fails with a stack trace. Unusually, the new version is still installed and etc-update works to update the config file for it. Later I re-ran emerge to complete the rest of the packages I want installed, and it tried to unmerge openssl-0.9.7d-r2 again at the end and failed with the same stack trace. Reproducible: Always Steps to Reproduce: 1. Have openssl-0.9.7d-r2 installed 2. Emerge openssl-0.9.7e Actual Results: You get a stack trace like the one below: >>> dev-libs/openssl-0.9.7e merged. dev-libs/openssl selected: 0.9.7d-r2 protected: 0.9.7e omitted: none >>> 'Selected' packages are slated for removal. >>> 'Protected' and 'omitted' packages will not be removed. >>> Waiting 5 seconds before starting... >>> (Control-C to abort)... >>> Unmerging in: 5 4 3 2 1 >>> Unmerging dev-libs/openssl-0.9.7d-r2... No package files given... Grabbing a set. QA Notice: ECLASS 'multilib' inherited illegally in dev-libs/openssl-0.9.7d-r2 --- !mtime obj /usr/share/man/man3/err.3.gz --- !mtime obj /usr/share/man/man3/engine.3.gz --- !mtime obj /usr/share/man/man3/dsa.3.gz . . . . --- !mtime obj /usr/share/man/man1/asn1parse.1.gz --- !mtime obj /usr/share/man/man1/CA.pl.1.gz Traceback (most recent call last): File "/usr/bin/emerge", line 2991, in ? mydepgraph.merge(mydepgraph.altlist()) File "/usr/bin/emerge", line 1893, in merge retval=unmerge("clean", [xsplit[0]]) File "/usr/bin/emerge", line 2167, in unmerge retval=portage.unmerge(mysplit[0],mysplit[1],portage.root,mysettings,unmerge_action not in ["clean","prune"]) File "/usr/lib/portage/pym/portage.py", line 2700, in unmerge mylink.unmerge(trimworld=mytrimworld,cleanup=1) File "/usr/lib/portage/pym/portage.py", line 5975, in unmerge if (pkgfiles[obj][0] not in ("dir","fif","dev","sym")) and (lmtime != pkgfiles[obj][1]): KeyError: '.' Expected Results: Unmerged the old version of openssl without failing and halting the emerge process. Happend while doing an "emerge -u portage"
`emerge --info` please. Does `emerge -C =openssl-0.9.7d-r2` work?
emerge --info ---- Portage 2.0.51-r15 (default-linux/x86/2004.0, gcc-3.3.5, glibc-2.3.4.20040808-r1, 2.6.10-ck5 i686) ================================================================= System uname: 2.6.10-ck5 i686 AMD Athlon(tm) Processor Gentoo Base System version 1.4.16 Python: dev-lang/python-2.3.4-r1 [2.3.4 (#1, Feb 8 2005, 20:33:32)] dev-lang/python: 2.3.4-r1 sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.4_p6, 1.8.5-r3, 1.5, 1.9.4, 1.6.3, 1.7.9-r1 sys-devel/binutils: 2.15.92.0.2-r1 sys-devel/libtool: 1.5.10-r4 virtual/os-headers: 2.4.21-r1 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-mcpu=athlon -march=i686 -O2 -fomit-frame-pointer -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdo /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/shartexmf/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="-mcpu=athlon -march=i686 -O2 -fomit-frame-pointer -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distlocks sandbox sfperms" GENTOO_MIRRORS="http://gentoo.chem.wisc.edu/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 3dnow X alsa apm avi berkdb bitmap-fonts bonobo cdr crypt cups dga dvd dvdr encode esd f77 fam flac font-server foomaticdb ftran gdbm gif gnome gphoto2 gpm gtk gtk2 gtkhtml imagemagick imlib ipv6 java jpeg junit ldap libg++ libwww mad mikmod mmx motif mpeg urses nls oggvorbis opengl oss pam pdflib perl png python qt quicktime readline sdl slang spell ssl svga tcltk tcpd tetex tiff truety truetype-fonts type1-fonts xml xml2 xmms xv zlib" Unset: ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS, PORTDIR_OVERLAY --- 'emerge -C =openssl-0.9.7d-r2' does not work. I still get the same stack trace error.
look like a dup of bug #42519
Sorry if I am posting duplicates, although with me this error only happens with the openssl package. All other packages get merged and unmerged successfuly.
post your /var/db/pkg/*/openssl*/CONTENTS file as an attachment please
Created attachment 50891 [details] CONTENTS file this is /var/db/pkg/dev-libs/openssl-0.9.7d-r2/CONTENTS
I get a very similar error, not quite the same but similar... Here's the traceback (happens on emerge clean or emerge -C =openssl-0.9.7e): >>> Unmerging dev-libs/openssl-0.9.7e... No package files given... Grabbing a set. Traceback (most recent call last): File "/usr/bin/emerge", line 2801, in ? if 1==unmerge(myaction, myfiles): File "/usr/bin/emerge", line 2168, in unmerge retval=portage.unmerge(mysplit[0],mysplit[1],portage.root,mysettings,unmerge_action not in ["clean","prune"]) File "/usr/lib/portage/pym/portage.py", line 2790, in unmerge mylink.unmerge(trimworld=mytrimworld,cleanup=1) File "/usr/lib/portage/pym/portage.py", line 6023, in unmerge spawn("bzip2 -d "+self.dbdir+"/environment.bz2",self.settings,free=1) File "/usr/lib/portage/pym/portage.py", line 1568, in spawn return portage_exec.spawn_bash(mystring,env=env,**keywords) File "/usr/lib/portage/pym/portage_exec.py", line 46, in spawn_bash return spawn(args,env=env,opt_name=opt_name,**keywords) File "/usr/lib/portage/pym/portage_exec.py", line 160, in spawn raise str(e)+":\n "+myc+" "+string.join(myargs) execve() arg 3 contains a non-string value: /bin/bash [openssl-0.9.7e] bash -c bzip2 -d /var/db/pkg/dev-libs/openssl-0.9.7e/environment.bz2 Traceback (most recent call last): File "/usr/bin/emerge", line 2801, in ? if 1==unmerge(myaction, myfiles): File "/usr/bin/emerge", line 2168, in unmerge retval=portage.unmerge(mysplit[0],mysplit[1],portage.root,mysettings,unmerge_action not in ["clean","prune"]) File "/usr/lib/portage/pym/portage.py", line 2790, in unmerge mylink.unmerge(trimworld=mytrimworld,cleanup=1) File "/usr/lib/portage/pym/portage.py", line 6034, in unmerge a=doebuild(myebuildpath,"prerm",self.myroot,self.settings,cleanup=cleanup,use_cache=0,tree="vartree") File "/usr/lib/portage/pym/portage.py", line 2543, in doebuild return spawn(EBUILD_SH_BINARY+" "+mydo,mysettings,debug=debug,free=1,logfile=logfile) File "/usr/lib/portage/pym/portage.py", line 1568, in spawn return portage_exec.spawn_bash(mystring,env=env,**keywords) File "/usr/lib/portage/pym/portage_exec.py", line 46, in spawn_bash return spawn(args,env=env,opt_name=opt_name,**keywords) File "/usr/lib/portage/pym/portage_exec.py", line 160, in spawn raise str(e)+":\n "+myc+" "+string.join(myargs) execve() arg 3 contains a non-string value: /bin/bash [openssl-0.9.7e] bash -c /usr/lib/portage/bin/ebuild.sh prerm !!! FAILED prerm: 1 -- emerge info Portage 2.0.51-r15 (default-linux/x86/2004.3, gcc-3.4.3, glibc-2.3.4.20041102-r0, 2.6.10-gentoo-r7 i686) ================================================================= System uname: 2.6.10-gentoo-r7 i686 Intel(R) Pentium(R) M processor 1600MHz Gentoo Base System version 1.6.9 Python: dev-lang/python-2.3.4-r1 [2.3.4 (#1, Feb 8 2005, 19:43:21)] ccache version 2.3 [enabled] dev-lang/python: 2.3.4-r1 sys-devel/autoconf: 2.59-r6, 2.13 sys-devel/automake: 1.7.9-r1, 1.8.5-r3, 1.5, 1.4_p6, 1.6.3, 1.9.4 sys-devel/binutils: 2.15.92.0.2-r2 sys-devel/libtool: 1.5.10-r4 virtual/os-headers: 2.6.8.1-r1, 2.6.8.1-r2 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-march=pentium-m" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/texmf/web2c /etc/env.d" CXXFLAGS="-march=pentium-m" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distlocks fixpackages sandbox sfperms userpriv usersandbox" GENTOO_MIRRORS="http://gentoo.inode.at/" LANG="en_IE@euro" MAKEOPTS="-j2" PKGDIR="/usr/local/pkgdir" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 X aalib acpi alsa apm arts avi berkdb bitmap-fonts cdr crypt cups curl divx4linux dvd dvdr dvdread esd f77 fam flac font-server foomaticdb fortran gdbm gif gnome gphoto2 gpm gstreamer gtk gtk2 i8x0 imlib ipv6 irmc java jpeg ldap libclamav libg++ libwww live mad mikmod mmx motif mozilla mp3 mpeg ncurses network nls nptl oggvorbis opengl oss pam pdflib perl png python quicktime readline real samba sdl spell sse sse2 ssl svga tcltk tcpd tetex theora tiff truetype truetype-fonts type1-fonts wifi xml2 xmms xprint xv xvid zlib" Unset: ASFLAGS, CBUILD, CTARGET, LC_ALL, LDFLAGS
doh.. just saw that I have a local prob... the CONTENTS file is missing. last week i had some harddisk crashes, I probably lost it there... sorry for spamming here...
As per previous comment...
"As per previous comment..." Which previous comment ? Has this issue been fixed? What causes this problem ? I am getting this stack trace error with several other emerges (ie. xlockmore). Is there a solution?
Apologies, I didn't realize there were two people commenting on this bug. Having said that, the cause is essentially the same. The difference is that your CONTENTS file is only partially corrupt. You can delete the last line of the file which should allow portage's record to be removed successfully. There will more than likely be files left over - however there is nothing you can do about it. You will likely find the same type of corruption for other packages that give the same error. I would strongly suggest fsck'ing your filesystem and/or ensuring you always shut down safely.