Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 360447 - emerge/portage does not handle resumes effectively in recent versions
Summary: emerge/portage does not handle resumes effectively in recent versions
Status: CONFIRMED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Configuration (show other bugs)
Hardware: All Linux
: Normal minor (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-03-25 17:23 UTC by Ian Delaney (RETIRED)
Modified: 2022-10-20 02:43 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 Ian Delaney (RETIRED) gentoo-dev 2011-03-25 17:23:12 UTC
In recent weeks have updated my two gentoos and could not help notice a failure in --resume that has not been in past versions.  Updating infrequently, I use have --jobs=some and --load-average set in make.conf in DEFAULT_OPTS.
Often trying concurrent emerges, the merges were always being interrupted mostly by the graphics driver crashing X, or the system (probably being overtaxed) just freezing with no way out but to hard re-set.

If the emerge was interrupted by some other event where the system was still active and functioning, emerge --resume would simply not be effective.
This has been a major inconvenience since changing some make.conf content included the need for emerge -e @world.  Each time the emerge was disrupted was very costly in time and effort to set it straight.


Reproducible: Always

Steps to Reproduce:
1. Emerge a recent portage version 
2. Invoke an emerge of a long list of packages
3. Intentionally or unintentionally interrupt the emerge.
4. Invoke emerge --resume
Actual Results:  
There are two forms of presentation of the deficit. normal emerge of a single package with all output to screen, and --jobs=some.

For the first, the emerge simply hangs at the starting point ;e.g.

idella@genny /mnt/karmic/boot/grub $ sudo emerge -1 info --jobs=1
Password: 

 * IMPORTANT: 8 news items need reading for repository 'gentoo'.
 * Use eselect news to read news items.

Calculating dependencies   * waiting for lock on /var/db/.pkg.portage_lockfile
 ...                          [ ok ]
>>> Verifying ebuild manifests

>>> Emerging (1 of 1) app-vim/info-1.7-r1

and there it stops.  Alternately the second form,

>>> Verifying ebuild manifests
>>> Emerging (1 of 1) app-vim/info-1.7-r1
>>> Jobs: 0 of 1 complete, 1 running                Load avg: 3.63, 3.19, 3.21

and there it will hang.  Over a few weeks I deciphered that a reboot would sometimes clear it, otherwise the only fix I had was to 
rm -rf $PORTAGE_TMPDIR/*.
Over days it became more likely it was blocked by its own lockfile.  The above total clearing made me suspect the was a lockfile.




Expected Results:  
To invoke emerge --resume effectively without issue.

Well as yet a gentoo user, never expected to find a bug in emerge itself, don't have the dev like patch, but I do have the flaw nailed down.  It is pretty simple.

app-emulation  app-vim  kde-base  media-video  sys-apps
idella@genny /mnt/karmic/boot/grub $ ls -al $PORTAGE_TMPDIR//portage
total 4
drwxrwxr-x 1 portage portage 222 Mar 26 01:14 .
dr-xr-xr-x 1 root    root     14 Mar 25 19:37 ..
drwxrwxr-x 1 portage portage   0 Mar 26 01:14 ._unmerge_
-rw-rw---- 1 root    portage   0 Mar 26 01:08 .app-vim.portage_lockfile
-rw-rw---- 1 root    portage   0 Mar 25 20:40 .media-video.portage_lockfile
drwxrwxr-x 1 portage portage  48 Mar 25 20:48 app-emulation
drwxrwxr-x 1 portage portage  80 Mar 26 01:07 app-vim
drwxrwxr-x 1 portage portage 100 Mar 26 00:55 kde-base
drwxrwxr-x 1 portage portage 104 Mar 25 20:11 media-video

Two leftover lockfiles, normally hidden starting with a dot.
Why they are not being cleaned up effectively in recent versions I don't know. I'm not a dev.  Don't see any benefit from emerge info for this.
This one is easy
Comment 1 Zac Medico gentoo-dev 2011-03-25 17:30:29 UTC
What version of portage do you have? Please post emerge --info.
Comment 2 Ian Delaney (RETIRED) gentoo-dev 2011-03-25 18:22:46 UTC
Portage 2.1.9.44 (hardened/linux/x86, gcc-4.5.2-hardenednopiessp, glibc-2.13-r2, 2.6.38-g$
=================================================================
System uname: Linux-2.6.38-gentoo-i686-Intel-R-_Core-TM-2_Duo_CPU_E6550_@_2.33GHz-with-ge$
Timestamp of tree: Tue, 22 Mar 2011 15:45:01 +0000
ccache version 3.1.4 [disabled]
app-shells/bash:     4.2_p8
dev-java/java-config: 2.1.11-r3
dev-lang/python:     2.6.6-r2, 2.7.1-r1, 3.1.3-r1
dev-util/ccache:     3.1.4
dev-util/cmake:      2.8.4
sys-apps/baselayout: 2.0.2
sys-apps/openrc:     0.8.0
sys-apps/sandbox:    2.5
sys-devel/autoconf:  2.13, 2.68
sys-devel/automake:  1.10.3, 1.11.1
sys-devel/binutils:  2.21
sys-devel/gcc:       4.5.2
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.4-r1
sys-devel/make:      3.82
virtual/os-headers:  2.6.38 (sys-kernel/linux-headers)
ACCEPT_KEYWORDS="x86 ~x86"
ACCEPT_LICENSE="* -@EULA dlj-1.1 AdobeFlash-10.1 Attica skype-eula"
CBUILD="i686-pc-linux"
CFLAGS="-march=core2 -fomit-frame-pointer -pipe -O2 -mno-tls-direct-seg-refs"
CHOST="i686-pc-linux"
CONFIG_PROTECT="/etc /etc/conf.d/network /etc/conf.d/xdm /etc/libvirt/libvirtd.conf /etc/$
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fon$
CXXFLAGS="-march=core2 -fomit-frame-pointer -pipe -O2 -mno-tls-direct-seg-refs"
DISTDIR="/mnt/gentoo/distfiles"
 EMERGE_DEFAULT_OPTS="--jobs=5 --load-average=3.4 --keep-going"
FEATURES="assume-digests binpkg-logs distlocks fixlafiles fixpackages news parallel-fetch$
FFLAGS=""
GENTOO_MIRRORS="ftp://ftp.swin.edu.au/gentoo/ ftp://mirror.pacific.net.au/linux/Gentoo ft$
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="en"
MAKEOPTS="-j4"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force -$
PORTAGE_TMPDIR="/var/tmp/portage-btrfs"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.au.gentoo.org/gentoo-portage"
USE="(-altivec) (-aqua) (-cman) (-corefonts) (-cups) (-debug) (-doc) (-faad) (-fixed-poin$
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LANG, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_C$

current version is 2.1.9.44, has occurred in about 3 different versions that have come in the portage tree, all in last couple of weeks, 9.41 -