Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 413763 - media-libs/cogl-1.10.2 - KeyError: '<portage.util._dyn_libs.LinkageMapELF._ObjectKey object at 0x9a409b8> (/usr/lib64/ not in object list'
Summary: media-libs/cogl-1.10.2 - KeyError: '<portage.util._dyn_libs.LinkageMapELF._Ob...
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Portage team
Keywords: PMASKED
Depends on:
Blocks: preserve-libs
  Show dependency tree
Reported: 2012-04-27 17:55 UTC by tman
Modified: 2017-03-02 08:16 UTC (History)
2 users (show)

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


Note You need to log in before you can comment on or make changes to this bug.
Description tman 2012-04-27 17:55:12 UTC
removed ‘/var/tmp/portage/media-libs/cogl-1.10.2/image//usr/share/cogl/examples-data/crate.jpg’
removed directory: ‘/var/tmp/portage/media-libs/cogl-1.10.2/image//usr/share/cogl/examples-data’
 * This package will overwrite one or more files that may belong to other
 * packages (see list below).
 * Detected file collision(s):
 * 	/usr/lib64/
 * 	/usr/share/doc/cogl-1.10.2/README.bz2
 * 	/usr/share/doc/cogl-1.10.2/NEWS.bz2
 * Searching all installed packages for file collisions...
 * Press Ctrl-C to Stop
 * None of the installed packages claim the file(s).
 * Package 'media-libs/cogl-1.10.2' merged despite file collisions. If
 * necessary, refer to your elog messages for the whole content of the
 * above message.
Traceback (most recent call last):
  File "/usr/lib64/portage/pym/portage/dbapi/", line 209, in _spawn
    prev_mtimes=self.prev_mtimes, counter=counter)
  File "/usr/lib64/portage/pym/portage/dbapi/", line 4554, in merge
  File "/usr/lib64/portage/pym/portage/dbapi/", line 3935, in treewalk
  File "/usr/lib64/portage/pym/portage/dbapi/", line 1817, in unmerge
  File "/usr/lib64/portage/pym/portage/dbapi/", line 1691, in _prune_plib_registry
  File "/usr/lib64/portage/pym/portage/dbapi/", line 2949, in _find_unused_preserved_libs
    for c in self.vartree.dbapi._linkmap.findConsumers(f):
  File "/usr/lib64/portage/pym/portage/util/_dyn_libs/", line 739, in findConsumers
    raise KeyError("%s (%s) not in object list" % (obj_key, obj))
KeyError: '<portage.util._dyn_libs.LinkageMapELF._ObjectKey object at 0x9a409b8> (/usr/lib64/ not in object list'

romoving this files, cause the same and it happens a error too

Reproducible: Always

ortage 2.2.0_alpha101_p2 (default/linux/amd64/10.0/desktop, gcc-4.5.3, glibc-2.15-r1, 3.3.3-gentoo x86_64)
System uname: Linux-3.3.3-gentoo-x86_64-Intel-R-_Core-TM-2_Duo_CPU_P9700_@_2.80GHz-with-gentoo-2.1
Timestamp of tree: Fri, 27 Apr 2012 17:30:01 +0000
app-shells/bash:          4.2_p24-r1
dev-java/java-config:     2.1.11-r3
dev-lang/python:          2.7.3-r1, 3.1.4-r4, 3.2.3
dev-util/cmake:           2.8.8_pre::poly-c
dev-util/pkgconfig:       0.26
sys-apps/baselayout:      2.1
sys-apps/openrc:          9999
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.9.6-r3, 1.10.3, 1.11.5
sys-devel/binutils:       2.22-r1
sys-devel/gcc:            4.5.3-r2
sys-devel/gcc-config:     1.7
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r3
sys-kernel/linux-headers: 3.3 (virtual/os-headers)
sys-libs/glibc:           2.15-r1
Repositories: gentoo mpd science scarabeus luman nikai emacs java-overlay Techwolf mgorny wirelay qt gnome poly-c lokal
Installed sets: 
ACCEPT_KEYWORDS="amd64 ~amd64"
CFLAGS="-march=core2 -O2 -pipe"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt /usr/share/openvpn/easy-rsa /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.4/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=core2 -O2 -pipe"
FEATURES="assume-digests binpkg-logs distlocks ebuild-locks fixlafiles news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch xattr"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="de en vi"
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2012-05-01 22:10:04 UTC
I don't see where that file collision would be coming from - that indicates a problem with the vdb, not the ebuild. Another issue is how emerge itself fails after that.
Comment 2 Zac Medico gentoo-dev 2012-05-01 22:43:04 UTC
Does the file /usr/lib64/ exist on your system?

I've tried the upgrade, and it was successful, resulting in the following preserved libraries:

>>> package: media-libs/cogl-1.10.2
 *  - /usr/lib/
 *  - /usr/lib/
 *      used by /usr/bin/quadrapassel (gnome-extra/gnome-games-3.2.1-r1)
 *      used by /usr/lib/gnome-shell/ (gnome-base/gnome-shell-
 *      used by /usr/lib/ (media-libs/libchamplain-0.12.2)
 *      used by 8 other files
Comment 3 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2012-11-06 00:46:46 UTC
I just got this as well:

>>> /usr/share/info/
>>> Safely unmerging already-installed instance...
Traceback (most recent call last):
  File "/usr/lib64/portage/pym/portage/dbapi/", line 209, in _spawn
    prev_mtimes=self.prev_mtimes, counter=counter)
  File "/usr/lib64/portage/pym/portage/dbapi/", line 4650, in merge
  File "/usr/lib64/portage/pym/portage/dbapi/", line 4021, in treewalk
  File "/usr/lib64/portage/pym/portage/dbapi/", line 1879, in unmerge
  File "/usr/lib64/portage/pym/portage/dbapi/", line 1724, in _prune_plib_registry
  File "/usr/lib64/portage/pym/portage/dbapi/", line 3010, in _find_unused_preserved_libs
    for c in self.vartree.dbapi._linkmap.findConsumers(f):
  File "/usr/lib64/portage/pym/portage/util/_dyn_libs/", line 739, in findConsumers
    raise KeyError("%s (%s) not in object list" % (obj_key, obj))
KeyError: '<portage.util._dyn_libs.LinkageMapELF._ObjectKey object at 0x3ef6558> (/usr/lib64/mysql/ not in object list'

>>> Failed to install dev-db/mysql-5.5.28, Log file:

>>>  '/var/log/portage/dev-db:mysql-5.5.28:20121105-190929.log'

$ ls -la /usr/lib64/mysql/
-rwxr-xr-x 1 root root 1582224 Oct 10 00:24 /usr/lib64/mysql/

And it is not owned by anything.

emerge --info in
due to bug 441964
Comment 4 Zac Medico gentoo-dev 2012-11-06 01:34:44 UTC
(In reply to comment #3)
> $ ls -la /usr/lib64/mysql/
> -rwxr-xr-x 1 root root 1582224 Oct 10 00:24
> /usr/lib64/mysql/
> And it is not owned by anything.

Did the owner get automatically unmerged due to a blocker or something? Or did you unmerge it yourself?

> emerge --info in

You have 2.2.0_alpha136, which has all of the latest code wrt preserve-libs afaik.
Comment 5 Maurice van der Pot 2014-04-06 10:36:08 UTC
I've just run into this same problem, but with

KeyError: u'<portage.util._dyn_libs.LinkageMapELF._ObjectKey object at 0x9bc9fd8> (/usr/lib64/ not in object list'

Please let me know what info I can provide to help debug this. I have emerge output since the last successful merge before this one as well as emerge.log going back to the previous merge of libpng-1.6.6 to which libpng15 belonged according to the "existing preserved libs" output.

Portage 2.2.10 (default/linux/amd64/13.0/developer, gcc-4.7.3, glibc-2.17, 3.11.3 x86_64)
System uname: Linux-3.11.3-x86_64-Intel-R-_Core-TM-_i7-3770_CPU_@_3.40GHz-with-gentoo-2.2
KiB Mem:    32947388 total,  15391916 free
KiB Swap:          0 total,         0 free
Timestamp of tree: Sun, 06 Apr 2014 01:15:01 +0000
ld GNU ld (GNU Binutils) 2.23.2
app-shells/bash:          4.2_p45
dev-java/java-config:     2.2.0
dev-lang/python:          2.7.5-r2, 3.2.5-r2, 3.3.2-r2
dev-util/pkgconfig:       0.28
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.1
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.8.5-r4, 1.9.6-r3, 1.10.3, 1.11.6, 1.12.6, 1.13.4, 1.14
sys-devel/binutils:       2.23.2
sys-devel/gcc:            4.5.3-r2, 4.6.3, 4.7.3-r1
sys-devel/gcc-config:     1.8
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.14 (virtual/os-headers)
sys-libs/glibc:           2.17
Repositories: gentoo godin portage_overlay
ACCEPT_KEYWORDS="amd64 ~amd64"
CFLAGS="-march=native -O2 -pipe -g"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/polkit-1/actions"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=native -O2 -pipe -g"
FCFLAGS="-O2 -pipe"
FEATURES="binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sfperms sign splitdebug strict test-fail-continue unknown-features-warn unmerge-logs unmerge-orphans userfetch usersandbox usersync"
FFLAGS="-O2 -pipe"
LDFLAGS="-Wl,--hash-style=gnu -Wl,-O1 -Wl,--as-needed"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTDIR_OVERLAY="/var/lib/layman/godin /usr/portage_overlay"
USE="64bit X a52 aac acpi alsa amd64 amr apng avx bash-completion branding bzip2 cairo cdda cdr cli cracklib crypt cscope cups cxx dbus dri dts dvd dvdr emboss encode exif fam fbcon ffmpeg flac fontconfig freetype gbm gif glamor glib gnutls gtk iconv icu jack jpeg lame lcms libkms libnotify mad matroska mmx mmxext mng modules mp3 mp4 mpeg multilib ncurses nptl nptlonly nsplugin ogg opengl openssl pam pango pcre pdf png policykit ppds pulseaudio python qt3support qt4 readline session sid snmp spell sse sse2 ssl ssse3 startup-notification subversion svg tcpd theora tiff truetype twolame udev udisks unicode upnp upower usb v4l2 vim-syntax vorbis vpx wxwidgets x264 xcb xml xrandr xulrunner xv xvid zlib" ABI_X86="64" ALSA_CARDS="hda-intel" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en en_US" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby19 ruby20" USERLAND="GNU" VIDEO_CARDS="radeon radeonsi" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Comment 6 Maurice van der Pot 2014-04-06 12:20:07 UTC
I've done some debugging and found the following.

I'm merging libpng-1.6.9 and is a preserved lib belonging to libpng-1.6.6.

/usr/lib64/portage/pym/portage/dbapi/ does a rebuild of the linkmap excluding libpng (because a new version is going to be installed).

Afterwards it calls self._find_unused_preserved_libs(), which is first going to call _plib_registry.getPreservedLibs() to get all preserved libs and then loop over them calling _linkmap.findConsumers() for each one.

Because the last rebuild of linkmap excluded libpng, the findConsumers call is going to fail with a KeyError.

This is as far as I can get with my limited knowledge of how portage is supposed to work.