Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 261852 - Improper error handling with --keep-going and disk full
Summary: Improper error handling with --keep-going and disk full
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords: InVCS
Depends on:
Blocks: 210077 261959
  Show dependency tree
 
Reported: 2009-03-09 12:55 UTC by Jeremy Olexa (darkside) (RETIRED)
Modified: 2009-03-13 20:48 UTC (History)
0 users

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 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2009-03-09 12:55:49 UTC
%% emerge --version
Portage 2.1.6.7 (default/linux/amd64/2008.0, gcc-4.1.2, glibc-2.8_p20080602-r1, 2.6.28.6 x86_64)

When the PORTAGE_TMPDIR fills up, --keep-going doesn't have expected output. portage fails and doesn't say which packages failed to merge. The output should be fixed here to say which packages failed because after all that output, the user gets the impression that it finished successfully.

>>> Emerging (35 of 40) app-office/openoffice-3.0.0
>>> Emerging (36 of 40) app-portage/genlop-0.30.8-r2
>>> Installing sys-apps/busybox-1.13.2
>>> Installing app-portage/genlop-0.30.8-r2
>>> Emerging (37 of 40) net-libs/xulrunner-1.9.0.6
>>> Jobs: 35 of 40 complete, 2 running              Load avg: 3.93, 3.79, 2.72
Traceback (most recent call last):
  File "/usr/bin/emerge", line 40, in <module>
    retval = _emerge.emerge_main()
  File "//usr/lib64/portage/pym/_emerge/__init__.py", line 14670, in emerge_main
    myopts, myaction, myfiles, spinner)
  File "//usr/lib64/portage/pym/_emerge/__init__.py", line 13766, in action_build
    retval = mergetask.merge()
  File "//usr/lib64/portage/pym/_emerge/__init__.py", line 10246, in merge
    rval = self._merge()
  File "//usr/lib64/portage/pym/_emerge/__init__.py", line 10488, in _merge
    self._main_loop()
  File "//usr/lib64/portage/pym/_emerge/__init__.py", line 10616, in _main_loop
    self._poll_loop()
  File "//usr/lib64/portage/pym/_emerge/__init__.py", line 9177, in _poll_loop
    handler(f, event)
  File "//usr/lib64/portage/pym/_emerge/__init__.py", line 2248, in _output_handler
    files.log.flush()
IOError: [Errno 28] No space left on device

 * Messages for package games-action/chromium-0.9.12-r6:

 * Remember, in order to play games, you have to
 * be in the 'games' group.
 * Just run 'gpasswd -a <USER> games', then have <USER> re-login.

 * Messages for package net-misc/wget-1.11.1:

 * The /etc/wget/wgetrc file has been relocated to /etc/wgetrc

 * Messages for package app-portage/layman-1.1.1:

 * Select an overlay and add it using
 * layman -a overlay-name
 * If this is the very first overlay you add with layman,
 * you need to append the following statement to your
 * /etc/make.conf file:
 * 
 * source /usr/portage/local/layman/make.conf
 * 
 * If you modify the 'storage' parameter in the layman
 * configuration file (/etc/layman/layman.cfg) you will
 * need to adapt the path given above to the new storage
 * directory.
 * Please add the 'source' statement to make.conf only AFTER 
 * you added your first overlay. Otherwise portage will fail.

 * Messages for package sys-apps/attr-2.4.43:

 * Sorry, but attr does not support the LINGUAS: en

 * Messages for package x11-misc/shared-mime-info-0.51:

 * 
 * The database format has changed between 0.30 and 0.40.
 * You may need to update all your local databases and caches.
 * To do so, please run the following commands:
 * (for each user) $ update-mime-database ~/.local/share/mime/
 * (as root)       # update-mime-database /usr/local/share/mime/
 * 

 * Messages for package media-gfx/imagemagick-6.4.8.3:

 * corefonts USE-flag requires the truetype USE-flag to be set.
 * disabling corefonts support for now
 * disabling openmp support

 * Messages for package app-text/poppler-bindings-0.10.4:

 * You need to rebuild everything depending on poppler, use revdep-rebuild

 * Messages for package dev-lang/ruby-1.8.6_p287-r5:

 * 
 * You can change the default ruby interpreter by /usr/sbin/ruby-config
 * 

 * Messages for package dev-util/git-1.6.0.6:

 * These additional scripts need some dependencies:
 *   git-quiltimport  : dev-util/quilt
 *   git-instaweb     : || ( www-servers/lighttpd www-servers/apache )

 * Messages for package sys-apps/busybox-1.13.2:

 * Could not locate user configfile, so we will save a default one
 * Your configuration for sys-apps/busybox-1.13.2 has been saved in 
 * /etc/portage/savedconfig/sys-apps/busybox-1.13.2 for your editing pleasure.
 * You can edit these files by hand and remerge this package with
 * USE=savedconfig to customise the configuration.
 * You can rename this file/directory to one of the following for
 * its configuration to apply to multiple versions:
 * ${PORTAGE_CONFIGROOT}/etc/portage/savedconfig/
 * [${CTARGET}|${CHOST}|""]/${CATEGORY}/[${PF}|${P}|${PN}]

 * Messages for package app-portage/genlop-0.30.8-r2:

 * To enable command-line completion for genlop, run:
 * 
 *   eselect bashcomp enable genlop
 * 
 * to install locally, or
 * 
 *   eselect bashcomp enable --global genlop
 * 
 * to install system-wide.
%% echo $?
1
Comment 1 Zac Medico gentoo-dev 2009-03-09 19:16:39 UTC
It will be a lot of work to wrap all of the places that can raise IOError like that. OTOH, it's pretty easy to ensure that the elog mod_echo module doesn't show it's stuff when an abnormal exception triggers exit with a traceback like this.
Comment 2 Zac Medico gentoo-dev 2009-03-10 02:13:14 UTC
It's fixed in svn r12814 to show the traceback after the mod_echo output.
Comment 3 Zac Medico gentoo-dev 2009-03-10 09:33:37 UTC
This is fixed in 2.2_rc24 which is in package.mask. I'll close this bug when it's also released in 2.1.6.8.
Comment 4 Zac Medico gentoo-dev 2009-03-13 20:48:29 UTC
This is released in 2.1.6.8.