Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 426512 - net-misc/spice-gtk-0.12 hangs in src_prepare(): eautoreconf
Summary: net-misc/spice-gtk-0.12 hangs in src_prepare(): eautoreconf
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard:
Keywords: InVCS
: 440150 (view as bug list)
Depends on:
Blocks:
 
Reported: 2012-07-14 04:25 UTC by Radu Benea
Modified: 2013-01-05 03:54 UTC (History)
11 users (show)

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


Attachments
Output of emerge spice-gtk-0.14, hanging after "Applying as-needed/2.2.6 patch ..." (net-misc:spice-gtk-0.14:20121006-110828.log,2.17 KB, text/plain)
2012-10-06 11:32 UTC, toon
Details
Output of "ebuild spice-gtk-0.14.build prepare --debug" (spice-gtk-0.14.out,247.82 KB, text/plain)
2012-11-26 05:04 UTC, Christopher Byrne
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Radu Benea 2012-07-14 04:25:35 UTC
Calculating dependencies... done!
[ebuild  N    ~] net-misc/spice-gtk-0.12  USE="gstreamer gtk3 introspection policykit python sasl -doc -pulseaudio -smartcard -static-libs -usbredir -vala" 0 kB

Total: 1 package (1 new), Size of downloads: 0 kB


>>> Verifying ebuild manifests

>>> Emerging (1 of 1) net-misc/spice-gtk-0.12
 * spice-gtk-0.12.tar.bz2 RMD160 SHA1 SHA256 size ;-) ...                                                                                                                                                                             [ ok ]
>>> Unpacking source...
>>> Unpacking spice-gtk-0.12.tar.bz2 to /media/clutter/tmp/portage/net-misc/spice-gtk-0.12/work
>>> Source unpacked in /media/clutter/tmp/portage/net-misc/spice-gtk-0.12/work
>>> Preparing source in /media/clutter/tmp/portage/net-misc/spice-gtk-0.12/work/spice-gtk-0.12 ...
 * Applying 0.12-parallel-install.patch ...                                                                                                                                                                                           [ ok ]
 * Running eautoreconf in '/media/clutter/tmp/portage/net-misc/spice-gtk-0.12/work/spice-gtk-0.12' ...
 * Running glib-gettextize --copy --force ...                                                                                                                                                                                         [ ok ]
 * Running intltoolize --automake --copy --force ...                                                                                                                                                                                  [ ok ]
 * Running gtkdocize --copy ...                                                                                                                                                                                                       [ ok ]
 * Running libtoolize --install --copy --force --automake ...                                                                                                                                                                         [ ok ]
 * Running aclocal -I m4 ...                                                                                                                                                                                                          [ ok ]
 * Running autoconf ...                                                                                                                                                                                                               [ ok ]
 * Running autoheader ...                                                                                                                                                                                                             [ ok ]
 * Running automake --add-missing --copy --foreign ...                                                                                                                                                                                [ ok ]
 * Running elibtoolize in: spice-gtk-0.12/build-aux/
 *   Applying portage/1.2.0 patch ...
 *   Applying sed/1.5.6 patch ...
 *   Applying as-needed/2.2.6 patch ...
 * Running elibtoolize in: spice-gtk-0.12/spice-common/build-aux/
 *   Applying portage/1.2.0 patch ...
 *   Applying sed/1.5.6 patch ...
---------------------------------------------------
process hangs here
---------------------------------------------------
^C

Exiting on signal 2
sandbox:stop  caught signal 2 in pid 16939

/usr/portage/net-misc/spice-gtk/spice-gtk-0.12.ebuild: src_prepare aborted; exiting.

sandbox:stop  signal already caught and busy still cleaning up!
---------------------------------------------------
it never finishes cleaning up though
---------------------------------------------------
tried with sys-apps/portage-2.2.0_alpha118 and 2.1.10.65, same thing happens, I should mention I was able to build it a while back(exact same version but with pulseaudio use flag as well), removed it and can't build it again

Portage 2.2.0_alpha118 (hardened/linux/amd64/desktop, gcc-4.6.3, glibc-2.14.1-r3, 3.4.4-gentoo x86_64)
=================================================================
System uname: Linux-3.4.4-gentoo-x86_64-AMD_Athlon-tm-_X2_Dual_Core_Processor_BE-2300-with-gentoo-2.1
Timestamp of tree: Sat, 14 Jul 2012 03:15:01 +0000
app-shells/bash:          4.2_p20
dev-lang/python:          2.7.3-r2, 3.2.3
dev-util/cmake:           2.8.7-r5
dev-util/pkgconfig:       0.26
sys-apps/baselayout:      2.1-r1
sys-apps/openrc:          0.9.8.4
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.13, 2.68
sys-devel/automake:       1.11.1
sys-devel/binutils:       2.22-r1
sys-devel/gcc:            4.6.3
sys-devel/gcc-config:     1.6
sys-devel/libtool:        2.4-r1
sys-devel/make:           3.82-r1
sys-kernel/linux-headers: 3.4-r1 (virtual/os-headers)
sys-libs/glibc:           2.14.1-r3
Repositories: gentoo local_overlay proaudio
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -mtune=native -O2 -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/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cli-php5.3/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=native -mtune=native -O2 -pipe"
DISTDIR="/media/clutter/distfiles"
EMERGE_DEFAULT_OPTS="--keep-going --with-bdeps=y"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs collision-protect config-protect-if-modified distlocks ebuild-locks fail-clean fixlafiles news noinfo parallel-fetch parse-eapi-ebuild-head preserve-libs protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS=" http://ftp.nren.ro/mirrors/gentoo.org/ http://mirrors.xservers.ro/gentoo/ http://ftp.romnet.org/gentoo/ http://mirrors.evolva.ro/gentoo/ "
LANG="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--as-needed -Wl,--hash-style=gnu,-O2"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/media/clutter/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage /var/lib/layman/pro-audio"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="3dnow 3dnowext X a52 aac acl acpi akonadi alsa amd64 apache2 apm attr autoipd avahi bash-completion bluetooth branding bzip2 c++0x c++11 cairo caps cdda cdr cjk cli clucene consolekit cracklib crypt cscope cups curl curlwrappers cxx d3d dbus disk-partition djvu dmx dri dts dv dvd dvdr emboss encode exif expat faac faad fam farsight ffmpeg firefox flac fontconfig fontforge fortran fuse g3dvl gd gdbm gif glib glibc-omitfp gmp gnome gnutls gpm graphite graphviz gs gstreamer gtk gtk3 hardened hash hdri iconv icq icu idn imagemagick imlib inotify ipv6 irc jabber jack jbig jpeg jpeg2k justify kde kdehiddenvisibility lcms ldap libnotify lm_sensors logitech-mouse lzma lzo mad mcrypt md5sum mhash mmap mmx mmxext mng modules mp3 mp4 mpeg mpi mtp mudflap multilib musicbrainz mysql ncurses nepomuk networkmanager nls nptl nss ogg openal openexr opengl openmp oss otr pam pango passwdqc pax_kernel pcre pdf phonon php pic pie plasma png policykit posix postgres postscript povray ppds ppp pppd pppoe python python3 q32 q64 q8 qt3support qt4 rar raw rdesktop readline replaygain rle rss rtc samba sasl scanner scim sdl semantic-desktop session sip sms spell spice sqlite sse sse2 sse3 ssh ssl startup-notification svg taglib tcpd theora threads thumbnail tidy tiff tls truetype type3 ucs ucs2 udev udisks unicode upower urandom usb utf utf8 utils v4l v4l2 vdpau vhosts vim-syntax vnc vorbis wavpack webkit webm webp wifi wimax wireless wxwidgets x264 xattr xcomposite xine xinerama xml xorg xpm xrandr xscreensaver xv xvid xvmc yahoo zip 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" APACHE2_MPMS="peruser" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" 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="evdev wacom" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" PHP_TARGETS="php5-3" PYTHON_TARGETS="python3_2 python2_7" QEMU_SOFTMMU_TARGETS="x86_64 i386" QEMU_USER_TARGETS="x86_64 i386" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="radeon r600" 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, INSTALL_MASK, LC_ALL, LINGUAS, MAKEOPTS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2012-07-18 15:16:11 UTC
Does something keep running in the background? Does dmesg tell you anything interesting?
Comment 2 Tiziano Müller (RETIRED) gentoo-dev 2012-07-20 05:48:49 UTC
Reassigning to autotools eclass maintainers.
fyi: spice-gtk contains two nested projects: spice-protocol and spice-common.
Comment 3 Radu Benea 2012-08-18 00:03:58 UTC
Jeroen the answers are no and no ... by the way ... the ebuild doesn't need to set python interpreter to version 2 should I post a bug for this as well?
Comment 4 toon 2012-10-06 11:26:02 UTC
Hi, I run into a problem that could very well be related.
In my case the emerge of spice-gtk-0.14 hangs after the message:

"Applying as-needed/2.2.6 patch ..."

I will add an attachment with the emerge output separately.
My emerge --info is:

Portage 2.1.11.9 (default/linux/amd64/10.0/desktop/gnome, gcc-4.5.4, glibc-2.15-r2, 3.4.9-gentoo x86_64)
=================================================================
System uname: Linux-3.4.9-gentoo-x86_64-AMD_Athlon-tm-_64_Processor_3200+-with-gentoo-2.1
Timestamp of tree: Thu, 04 Oct 2012 19:45:01 +0000
app-shells/bash:          4.2_p37
dev-java/java-config:     2.1.11-r3
dev-lang/python:          2.7.3-r2, 3.2.3
dev-util/cmake:           2.8.9
dev-util/pkgconfig:       0.27.1
sys-apps/baselayout:      2.1-r1
sys-apps/openrc:          0.9.8.4
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.13::<unknown repository>, 2.68
sys-devel/automake:       1.9.6-r3, 1.10.3, 1.11.6
sys-devel/binutils:       2.22-r1
sys-devel/gcc:            4.5.4
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4-r1
sys-devel/make:           3.82-r3
sys-kernel/linux-headers: 3.4-r2 (virtual/os-headers)
sys-libs/glibc:           2.15-r2
Repositories: gentoo x-portage-overlay
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA dlj-1.1 Oracle-BCLA-JavaSE googleearth AdobeFlash-10.1 AdobeFlash-10.3"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=k8 -O2 -pipe -fomit-frame-pointer"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/themes/oxygen-gtk/gtk-3.0"
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.3/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cli-php5.3/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=k8 -O2 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles news parallel-fetch parse-eapi-ebuild-head protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo http://darkstar.ist.utl.pt/gentoo/ ftp://ftp.tu-clausthal.de/pub/linux/gentoo/ http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/"
LANG="nl_NL.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="nl en"
MAKEOPTS="-j1"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/mnt/backups/portagetmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage-overlay"
SYNC="rsync://wwwood2.vanvergehaald.nl/gentoo-portage"
USE="3dnow 3dnowext 64bit X X509 a52 aac aalib acl acpi acpi4linux addressbook akode alsa amd64 amrnb apache2 apng archive audiofile bdf berkdb bidi bl bluetooth branding bzip2 bzlib cairo caps cdda cdio cdparanoia cdr chardet chroot clamdtop cli colord consolekit corba cracklib cron crypt css cups curl cxx dar64 dbus declarative device-mapper dga divx djvu doc dri dtaus dts dv dvb dvd dvdnav dvdr dvi ebook eds emboss enca encode evo evo2 exif extensions extras fam fax fbcon ffmpeg firefox flac fontconfig fortran freetype fts3 g3dvl gb gd gdbm gdu gif gimp gimpprint gmedia gnokii gnome gnome-keyring gnome-online-accounts gnome-print gnomedb gnuplot gphoto2 gpm gs gstreamer gtk h323 hbci iconv ieee1394 imap inkjar innodb insecure-drivers ipv6 irmc isag ithreads j2ee jabber jack java java6 javadoc javamail javascript jboss jce jdepend jmx jpeg kde kdepim kdrive keyring kipi kpathsea ladspa lame largeterminal lcms ldap leim libcaca libgda libnotify libsamplerate live lm_sensors lprng lvm lzo mad mailwrapper matroska mbox md5sum mdnsresponder-compat minizip mjpeg mmx mmxext mng mod modplug modules mono moonlight mozcalendar mozp3p mozplaintext mp2 mp3 mp4 mpeg mpeg2 mpeg4 mplayer mudflap mule multilib musepack nas nautilus ncurses nemesi network networkmanager nls nptl nsplugin oav odbc offensive ofx ogg oggvorbis ole on-the-fly-crypt openal opengl openmp pam pango parted passfile password pcap pcre pdf php pic plasma png pnm policykit ppds pppd procmail pulseaudio qt3support qt4 quicktime radio rar readline realmedia regex resolvconf rrdtool rss rtc rtsp samba sasl scanner sdl seamonkey server session slp smime smtp sndfile snmp soap socialweb socks5 sound sounds sox speex spell spice sqlite sqlite3 srt sse sse2 ssl startup-notification stream svg swat syslog t1lib tcpd tga theora threads threadsafe thumbnail tiff truetype type1 udev udisks unicode upower usb utf8 vcd vcdinfo vcdx vdpau vim-syntax virt-network vlm vnc vorbis wav wavelan wavpack webdav webm wma wma-fixed wmf wmp wxwidgets wxwindows x264 xanim xattr xcb xface xforms xine xinerama xml xmlrpc xosd xscreensaver xulrunner xv xvid xvmc zeo zlib zoran" ALSA_CARDS="ice1724 usb-audio" 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 auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2 directory canon samsung" 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="evdev keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="nl en" PHP_TARGETS="php5-3" PYTHON_TARGETS="python3_2 python2_7" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="nouveau" 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, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 5 toon 2012-10-06 11:32:08 UTC
Created attachment 325786 [details]
Output of emerge spice-gtk-0.14, hanging after "Applying as-needed/2.2.6 patch ..."

The emerge hangs dead after the message "Applying as-needed/2.2.6 patch ..."
Top shows no related activity.
Dmesg shows no related messages.
If you need more information, for instance from the work directory, please let me know.
Comment 6 Doug Goldstein (RETIRED) gentoo-dev 2012-11-21 20:35:46 UTC
*** Bug 440150 has been marked as a duplicate of this bug. ***
Comment 7 Dan Beavers 2012-11-25 23:26:15 UTC
I also see the same.
Comment 8 Christopher Byrne 2012-11-26 05:04:35 UTC
Created attachment 330590 [details]
Output of "ebuild spice-gtk-0.14.build prepare --debug"

Its happening to me as well. Even SIGINT won't stop it, i neeed SIGQUIT. 

I captured it as follows:
ebuild /usr/portage/net-misc/spice-gtk/spice-gtk-0.14.ebuild clean
ebuild /usr/portage/net-misc/spice-gtk/spice-gtk-0.14.ebuild prepare --debug | tee spice-gtk-0.14.out 2>&1

in multijob_child_init:
trap 'echo ${BASHPID} $? >&10' EXIT
then later in multijob_finish_one:
read -r -u 10 pid ret

So it appears it waiting for something to finish that never does.
Comment 9 Yuriy Taraday 2012-12-11 13:51:51 UTC
I experience the same hang at "as-needed" patch. I think, status can be changed to CONFIRMED.
Comment 10 Yuriy Taraday 2012-12-11 14:54:51 UTC
I did some digging and found out where the problem arises.
First eautoreconf for spice-gtk workdir runs and forks for spice-common subdir.
Then eautoreconf for spice-common subdir tries to fork for spice-common/spice-protocol subdir, but hits the max number of parallel jobs since it is 1 and we are in that only job. So it falls into deadlock waiting for itself to finish.

That number is taken from MAKEOPTS env var, so if you set it to at least "-j2", (or add it to make.conf) ebuild prepare finishes fine and spice-gtk is emerged fine.

My suggestions on how not to get deadlock here is to serialize new job if waiting for opportunity to run it will cause deadlock and run it when multijob_finish is called.
Comment 11 Dan Beavers 2012-12-11 18:34:51 UTC
MAKEOPTS="-j2" emerge -avt net-misc/spice-gtk
Worked fine for me!
Comment 12 Yuriy Taraday 2012-12-11 18:52:06 UTC
(In reply to comment #11)
> MAKEOPTS="-j2" emerge -avt net-misc/spice-gtk
> Worked fine for me!

Unfortunately it won't work for all cases and it'll break some software with ancient Makefile design.
Comment 13 toon 2012-12-11 20:21:08 UTC
(In reply to comment #12)
> (In reply to comment #11)
> > MAKEOPTS="-j2" emerge -avt net-misc/spice-gtk
> > Worked fine for me!
> 
> Unfortunately it won't work for all cases and it'll break some software with
> ancient Makefile design.

Yes, you are right.
But your suggestion solved the problem for me too.
While it should only be considered a work-around, it proves your theory.

Great job, thanks Yuriy!
Comment 14 Mike Auty (RETIRED) gentoo-dev 2013-01-04 16:05:49 UTC
So one question for this is, why doesn't the prepare phase source /etc/make.conf and take the MAKE_OPTS option from there?

I've also CCed in the portage team, because this feels like a portage problem and they should be aware of it.
Comment 15 Mike Auty (RETIRED) gentoo-dev 2013-01-04 17:20:33 UTC
Also note, this explicitly only accepts MAKEOPTS, not MAKE_OPTS, and I haven't found documentation on the difference yet...
Comment 16 Yuriy Taraday 2013-01-04 21:14:33 UTC
(In reply to comment #14)
> So one question for this is, why doesn't the prepare phase source
> /etc/make.conf and take the MAKE_OPTS option from there?

It worked fine for me, I set it in make.conf and emerge worked for this ebuild. The problem is that there is a classic deadlock in multiprocessing.eclass.
I gave it some thought, found no simple way to deal with it. It needs deep rework of this eclass' architecture.
Comment 17 Zac Medico gentoo-dev 2013-01-05 02:00:59 UTC
It looks like eautoreconf will deadlock whenever makeopts_jobs returns a value less than the depth of the AC_CONFIG_SUBDIRS nesting.
Comment 18 Zac Medico gentoo-dev 2013-01-05 02:14:21 UTC
I'm not sure if multiprocessing.eclass was designed for the kind of nesting that eautoreconf is doing here. It's very trick, because you'll have nested processes calling multijob_finish_one, using the value of mj_num_jobs that's local to their process. I suspect that multijob_finish_one is not safe in this context, because you can have multiple processes trying to read a line from ${mj_control_fd} simultaneously, and they might interfere with each other such that multiple process read different parts of the same line.
Comment 19 Zac Medico gentoo-dev 2013-01-05 02:32:29 UTC
I've committed this fix to eautoreconf in autotools.eclass:

	if [[ -z ${PAST_TOPLEVEL_EAUTORECONF} ]] ; then
		PAST_TOPLEVEL_EAUTORECONF="yes" AT_NOELIBTOOLIZE="yes" \
			multijob_child_init eautoreconf || die
	else
		# Avoid unsafe nested multijob_finish_one for bug #426512.
		AT_NOELIBTOOLIZE="yes" eautoreconf || die
	fi
Comment 20 Zac Medico gentoo-dev 2013-01-05 03:54:43 UTC
It may be possible to implement more aggressively nested multijob scheduling in eautoreconf, by having the main process do the recursive AC_CONFIG_SUBDIRS traversal. However, I think we can consider it beyond the scope of this bug. Therefore, marking as fixed.