Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 285936 - sys-apps/portage: emerge --keep-going / --resume failure triggered by unsatisfied dependencies of installed packages
Summary: sys-apps/portage: emerge --keep-going / --resume failure triggered by unsatis...
Status: CONFIRMED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Interface (emerge) (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
: 477260 (view as bug list)
Depends on: 263630
Blocks: 373807
  Show dependency tree
 
Reported: 2009-09-22 12:28 UTC by Martin von Gagern
Modified: 2021-04-22 12:32 UTC (History)
6 users (show)

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


Attachments
debug output (285936a.txt.lzma,297.95 KB, application/octet-stream)
2009-09-22 12:31 UTC, Martin von Gagern
Details
emerge --keep-going log for failure due to unsatisfied dependency of installed package (keep-going-unsatisfied-dep-of-installed-package.log,112.97 KB, text/x-log)
2021-04-20 16:50 UTC, Zac Medico
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Martin von Gagern 2009-09-22 12:28:14 UTC
portage 2.2 rc41 seems to have trouble resuming for me, as it dies for bad poppler dependencies.

I was updating from rc40 as part of a world update, so portage was the first package to be emerged, and when emerge restarted after that update, it died complaining about lots of stuff involving poppler. Don't have the exact error messages any more.

Then I restarted my world update, got no complaint, until one package failed to emerge. After that, portage restarted because I had used --keep-going, but it again exited complaining about poppler. The error message read thus:

*** Resuming merge...
Calculating dependencies... done!
 * One or more packages are either masked or have missing dependencies:
 *
 *   ~dev-libs/poppler-0.10.7[abiword] pulled in by:
 *     ('installed', '/', 'app-text/poppler-utils-0.10.7', 'nomerge')
 *
 *   ~dev-libs/poppler-glib-0.10.7[cairo] pulled in by:
 *     ('installed', '/', 'virtual/poppler-glib-0.10.7', 'nomerge')
 *
 *   ~dev-libs/poppler-0.10.7 pulled in by:
 *     ('installed', '/', 'virtual/poppler-0.10.7', 'nomerge')
 *
 * The resume list contains packages that are either masked or have
 * unsatisfied dependencies. Please restart/continue the operation
 * manually, or use --skipfirst to skip the first package in the list and
 * any other packages that may be masked or have missing dependencies.
 *
 * The following package has failed to build or install:

The executed command was: "emerge -uaND --keep-going --debug @system @world"
"emerge --version" says: Portage 2.2_rc41 (default/linux/x86/2008.0/desktop, gcc-4.3.4, glibc-2.10.1-r0, 2.6.30-gentoo-r5 i686)
Comment 1 Martin von Gagern 2009-09-22 12:31:28 UTC
Created attachment 204918 [details]
debug output

I reproduced the command above adding --debug to the command line, and redirecting stdout and stderr to a log file, which I'm attaching here.
The plain text is 13M in length, so I compressed it using lzma.
Comment 2 Martin von Gagern 2009-12-07 17:07:13 UTC
I recently upgraded from ~x86 to ~amd64 and did a completely fresh emerge of all world packages and deps for this, some 2000 packages or so. I had hoped to kick off emerge one evening and find a mostly running system the next morning, with maybe a few failed builds requiring some tweaking afterwards to make them compile as well. In reality I had to manually mask the offending package and restart emerge after every single failure, due to a variation of this bug here, only with some x driver instead of poppler. As I was more concerned with getting my system back in some usable state, I didn't copy the message, and it seems it wasn't logged either. This was sys-apps/portage-2.2_rc55.
Comment 3 Robert Larkin 2011-03-08 23:44:31 UTC
This is happening to me as well with portage 2.1.  I think it has to do with blockers that are worked around with a fresh emerge, but are not worked around with --resume.  Probably --resume is recalculating the deps but is not doing the 'work arounds' that a fresh emerge does for slotted packages.

This bug is old, has anyone ever looked at it?  It seems that --resume isn't merely resuming but starting over, and not with the same methods that a fresh emerge uses.

When I do an emerge -pv --resume, I get an "invalid resume list":

Calculating dependencies... done!
 * Invalid resume list:
 * 
 *   ('ebuild', u'/', u'sys-devel/gcc-4.4.5', 'merge')
 *   ('ebuild', u'/', u'kde-base/libkdegames-4.6.1', 'merge')
 *   ('ebuild', u'/', u'kde-base/kapman-4.6.1', 'merge')

The list doesn't contain any 'uninstalls'. Since I'm updating KDE that means the entire list has a needed uninstall, one per:

[ebuild  NS   ] kde-base/libkdegames-4.6.1 [4.5.4] USE="(-aqua) -debug (-kdeenablefinal) (-kdeprefix)" 0 kB
[uninstall    ] kde-base/libkdegames-4.5.4  USE="(-aqua) -debug (-kdeenablefinal) (-kdeprefix)" 
[blocks b     ] kde-base/libkdegames:4.5[-kdeprefix] ("kde-base/libkdegames:4.5[-kdeprefix]" is blocking kde-base/libkdegames-4.6.1)
[blocks b     ] kde-base/libkdegames:4.6[-kdeprefix] ("kde-base/libkdegames:4.6[-kdeprefix]" is blocking kde-base/libkdegames-4.5.4)



Portage 2.1.9.25 (default/linux/amd64/10.0/desktop, gcc-4.3.4, glibc-2.11.2-r3, 2.6.32-gentoo-r7 x86_64)
=================================================================
System uname: Linux-2.6.32-gentoo-r7-x86_64-AMD_Phenom-tm-_II_X4_965_Processor-with-gentoo-1.12.14
Timestamp of tree: Sun, 06 Mar 2011 20:00:01 +0000
app-shells/bash:     4.1_p9
dev-java/java-config: 1.3.7-r1, 2.1.11-r3
dev-lang/python:     2.4.6, 2.5.4-r3, 2.6.6-r2, 3.1.3-r1
dev-util/cmake:      2.8.1-r2
sys-apps/baselayout: 1.12.14-r1
sys-apps/sandbox:    2.4
sys-devel/autoconf:  2.13, 2.65-r1
sys-devel/automake:  1.7.9-r2, 1.8.5-r4, 1.9.6-r3, 1.10.3, 1.11.1
sys-devel/binutils:  2.20.1-r1
sys-devel/gcc:       4.1.2, 4.3.4, 4.4.3-r2
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.10
sys-devel/make:      3.81-r2
virtual/os-headers:  2.6.36.1 (sys-kernel/linux-headers)
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -march=k8 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/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="-O2 -march=k8 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests binpkg-logs distlocks fixlafiles fixpackages news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
GENTOO_MIRRORS="http://gentoo.osuosl.org/ ftp://distro.ibiblio.org/pub/linux/distributions/gentoo/ ftp://ftp.gtlib.gatech.edu/pub/gentoo ftp://ftp.ucsb.edu/pub/mirrors/linux/gentoo/ http://mirrors.cs.wmich.edu/gentoo "
LANG="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="en"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/portage/local/layman/sunrise /usr/portage/local/layman/catalystframework"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="3dnow X a52 aac aalib acl acpi alsa amd64 berkdb branding bzip2 cairo cdr cli consolekit cracklib crypt cups cxx dbus dri dts dvd dvdr emboss encode exif fam firefox flac fontconfig fortran gdbm gdu gif gphoto2 gpm gtk hal iconv imlib ipv6 java jpeg kde kdrive kerberos lcms ldap lensfun libcaca libnotify lirc lzma mad mikmod mmx mmxext mng modules mp3 mp3rtp mp4 mpeg mudflap multilib mysql ncurses network-cron nls nptl nptlonly ogg opengl openmp pam pango pcre pdf perl png policykit postgres ppds pppd python qt3support qt4 readline ruby samba sasl sdl session sndfile socks5 speex spell sqlite sqlite3 sse sse2 ssl startup-notification svg sysfs tcl tcpd threads tiff tk truetype udev unicode usb v4l2 vdpau vorbis x264 xcb xcomposite xinerama xml xorg xpm xprint xulrunner xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="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" 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 ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia" 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" 
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 4 Zac Medico gentoo-dev 2011-03-09 04:59:26 UTC
(In reply to comment #3)
> This is happening to me as well with portage 2.1.  I think it has to do with
> blockers that are worked around with a fresh emerge, but are not worked around
> with --resume.  Probably --resume is recalculating the deps but is not doing
> the 'work arounds' that a fresh emerge does for slotted packages.
> 
> This bug is old, has anyone ever looked at it?  It seems that --resume isn't
> merely resuming but starting over, and not with the same methods that a fresh
> emerge uses.

The way that it works is to take the saved merge list and try to calculate a dependency graph required to complete that list. This puts it in somewhat of a bind since it's not allowed to pull in any packages that aren't in the saved merge list, and the resulting dependency graph is not always valid. However, it could be made more robust if it would prune off unsolvable parts of the graph and just do the solvable parts (as suggested in bug 328343).

> When I do an emerge -pv --resume, I get an "invalid resume list":
> 
> Calculating dependencies... done!
>  * Invalid resume list:
>  * 
>  *   ('ebuild', u'/', u'sys-devel/gcc-4.4.5', 'merge')
>  *   ('ebuild', u'/', u'kde-base/libkdegames-4.6.1', 'merge')
>  *   ('ebuild', u'/', u'kde-base/kapman-4.6.1', 'merge')

It seems that you've omitted the tail of the error message, which would have given more info about your specific case.

> The list doesn't contain any 'uninstalls'. Since I'm updating KDE that means
> the entire list has a needed uninstall, one per:

The raw resume list shown above isn't supposed to contain uninstalls since those are scheduled as necessary to solve blockers when the dependency graph is calculated. However, in this case creation of the dependency graph failed, so it never reached the point where it would schedule the uninstalls. Again, you seem to have omitted the the tail of the error message which would have given more information about why creation of the dependency graph failed.
Comment 5 Zac Medico gentoo-dev 2013-07-19 16:12:17 UTC
*** Bug 477260 has been marked as a duplicate of this bug. ***
Comment 6 Zac Medico gentoo-dev 2021-04-20 16:50:15 UTC
Created attachment 701253 [details]
emerge --keep-going log for failure due to unsatisfied dependency of installed package


The _resume_depgraph "nomerge" case causes --keep-going to abort here, because it can't drop a "nomerge" task:

> 	# Exclude installed packages that have been removed from the graph due
> 	# to failure to build/install runtime dependencies after the dependent
> 	# package has already been installed.
> 	dropped_tasks.update((pkg, atoms) for pkg, atoms in \
> 		unsatisfied_parents.items() if pkg.operation != "nomerge")

 * One or more packages are either masked or have missing dependencies:
 * 
 *   dev-util/glade:3.10/12= pulled in by:
 *     (gui-libs/libhandy-0.0.13:0.0/0::gentoo, installed)