media-sound/rezound-0.12.3_beta-r2 emerging freezes after applying rezound-0.12.3_beta-gcc44.patch Reproducible: Always Steps to Reproduce: 1. emerge -1 rezound Actual Results: Installation freezes. Expected Results: :) Such problem about one month. emerge -pv rezound: [ebuild R ] media-sound/rezound-0.12.3_beta-r2 USE="alsa flac nls vorbis -16bittmp -jack -oss -portaudio -soundtouch" 0 kB emerge --info: http://paste.pocoo.org/show/178413/ /var/tmp/portage/media-sound/rezound-0.12.3_beta-r2/temp/build.log: http://paste.pocoo.org/show/178359/
I can verify this, looks like sys-devel/m4 is to blame. (I can see m4's process taking 100% CPU at the hang.)
never post links to external URLs for more info. post everything in the bug. post logs as attachments.
Same problem here on latest world update: This is where it hangs with 100% cpu: emerge rezound -v1 * IMPORTANT: 1 news items need reading for repository 'gentoo'. * Use eselect news to read news items. These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] media-sound/rezound-0.12.3_beta-r2 USE="alsa flac jack nls oss vorbis -16bittmp -portaudio -soundtouch" 0 kB Total: 1 package (1 reinstall), Size of downloads: 0 kB >>> Verifying ebuild manifests >>> Emerging (1 of 1) media-sound/rezound-0.12.3_beta-r2 * rezound-0.12.3beta.tar.gz RMD160 SHA1 SHA256 size ;-) ... [ ok ] * rezound-0.12.3_beta-patches-5.tar.bz2 RMD160 SHA1 SHA256 size ;-) ... [ ok ] * checking ebuild checksums ;-) ... [ ok ] * checking auxfile checksums ;-) ... [ ok ] * checking miscfile checksums ;-) ... [ ok ] * CPV: media-sound/rezound-0.12.3_beta-r2 * REPO: gentoo * USE: alsa amd64 elibc_glibc flac jack kernel_linux multilib nls oss userland _GNU vorbis >>> Unpacking source... >>> Unpacking rezound-0.12.3beta.tar.gz to /var/tmp/portage/media-sound/rezound- 0.12.3_beta-r2/work >>> Unpacking rezound-0.12.3_beta-patches-5.tar.bz2 to /var/tmp/portage/media-so und/rezound-0.12.3_beta-r2/work >>> Source unpacked in /var/tmp/portage/media-sound/rezound-0.12.3_beta-r2/work >>> Preparing source in /var/tmp/portage/media-sound/rezound-0.12.3_beta-r2/work /rezound-0.12.3beta ... * Applying various patches (bugfixes/updates) ... * 010_all_flac-1.1.3.patch ... [ ok ] * 020_all_64bits.patch ... [ ok ] * 030_all_dont-ignore-cxxflags.patch ... [ ok ] * 040_all_automagic.patch ... [ ok ] * 050_all_portaudio19.patch ... [ ok ] * 060_all_raw_save.patch ... [ ok ] * 070_all_m4.patch ... [ ok ] * 080_all_endian_typo.patch ... [ ok ] * 090_all_gcc_4.3.patch ... [ ok ] * 100_all_reconf_warnings.patch ... [ ok ] * 110_all_libtool.patch ... [ ok ] * Done with patching * Applying rezound-0.12.3_beta-gcc44.patch ... [ ok ] Portage 2.2_rc63 (default/linux/amd64/10.0/desktop, gcc-4.4.3, glibc-2.10.1-r1, 2.6.32.2 x86_64) ================================================================= System uname: Linux-2.6.32.2-x86_64-AMD_Athlon-tm-_64_X2_Dual_Core_Processor_4800+-with-gentoo-2.0.1 Timestamp of tree: Tue, 02 Mar 2010 00:00:01 +0000 distcc 3.1 x86_64-pc-linux-gnu [enabled] ccache version 2.4 [enabled] app-shells/bash: 4.1_p2 dev-java/java-config: 2.1.10 dev-lang/python: 2.4.6, 2.5.4-r2, 2.6.4-r1, 3.1.1-r1 dev-python/pycrypto: 2.1.0 dev-util/ccache: 2.4-r7 dev-util/cmake: 2.8.0-r2 sys-apps/baselayout: 2.0.1 sys-apps/openrc: 0.6.0-r1 sys-apps/sandbox: 2.2 sys-devel/autoconf: 2.13, 2.65 sys-devel/automake: 1.4_p6, 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.3, 1.11.1 sys-devel/binutils: 2.20-r1 sys-devel/gcc: 4.1.2, 4.4.3 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.6b virtual/os-headers: 2.6.30-r1 ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="* -@EULA dlj-1.1" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=athlon64 -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/X11/xkb /usr/share/bufrtables /usr/share/config /var/lib/hsqldb" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /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/splash /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-march=athlon64 -O2 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="assume-digests buildpkg ccache distcc distlocks fixpackages multilib-strict news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch userpriv usersandbox" GENTOO_MIRRORS="http://local/gentoo/" LANG="en_US.UTF-8" LDFLAGS="-Wl,-O1" LINGUAS="en_US en" MAKEOPTS="-j5" 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/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnow 7zip X Xaw3d a52 aac aalib accessibility acl acpi ada alsa amd64 amrnb ansi ao artworkextra aspell avahi avi bitmap-fonts bluetooth bonobo branding browserplugin bzip2 cairo caps cddb cdparanoia cdr clamav cli consolekit cracklib crypt css cups curl cxx daap dbus dga directfb divx4linux djvu dri dts dv dvd dvdr dvdread dynagraph eds emacs emboss enchant encode evo exif faac faad fam fame fbcon ffmpeg firefox3 fits flac fontconfig fortran freetype freetype2 gb gd gdbm geos gif gimp glib gmp gnome gnutls gphoto2 gpm gps graphviz grass gs gstreamer gtk gtkhtml gtkspell guile hal howl iconv icq id3tag ieee1394 ifp imagemagick imap imlib inotify ipod ipv6 jabber jack jasper java jbig jikes jpeg jpeg2k jpg junit ladspa lame lapack lash latex lcms ldap libnotify libsamplerate lirc lm_sensors logrotate lzma mad midi mikmod mmx mng modules motif mp3 mp4 mpeg mplayer mtp mudflap multilib mysql mythtv nas nautilus ncurses netcdf nfs nls nolvmstatic nptlonly nsplugin numeric objc ogdi ogg oggvorbis opengl openmp oss pam pcre pda pdf perl phonon pkcs11 plotutils png policykit postgres ppds pppd pulseaudio python qt3support qt4 quicktime readline reflection rtc ruby samba sasl sdl seamonkey session slp smartcard sndfile snmp spamassassin spell spl sse sse2 ssl startup-notification subtitles svg sysfs taglib tcl tcpd theora threads thunar tiff timidity tk truetype truetype-fonts type1-fonts udev unicode usb v4l v4l2 vcd vorbis wav wavpack wifi x264 xanim xcb xext xine xml xorg xpm xulrunner xv xvid xvmc zeo zip zlib zvbi" ALSA_CARDS="emu10k1 hda-intel" 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_digest 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 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 proxy proxy_connect proxy_http rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CAMERAS="directory canon casio fuji kodak polaroid ptp2 samsung spca50x" ELIBC="glibc" INPUT_DEVICES="keyboard mouse joystick evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_US en" QEMU_SOFTMMU_TARGETS="arm i386 mipsel ppc ppc64 x86_64" QEMU_USER_TARGETS="arm i386 mipsel ppc ppc64 x86_64" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="fbdev radeon vesa v4l radeonhd" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
so strace/gdb the process and see what it's doing
17670 pts/1 R+ 17:30 /usr/bin/m4 --nesting-limit=1024 --gnu --include=/usr/share/autoconf --debug=aflq --fatal-warning --debugfile=autom4te.cache/traces.0t --trace=AC_CANONICAL_BUILD --trace=AC_CANONICAL_HOST --trace=AC_CANONICAL_SYSTEM --trace=AC_CANONICAL_TARGET --trace=AC_CONFIG_AUX_DIR --trace=AC_CONFIG_FILES --trace=AC_CONFIG_HEADERS --trace=AC_CONFIG_LIBOBJ_DIR --trace=AC_CONFIG_LINKS --trace=AC_CONFIG_SUBDIRS --trace=AC_DEFINE_TRACE_LITERAL --trace=AC_FC_FREEFORM --trace=AC_FC_SRCEXT --trace=AC_INIT --trace=AC_LIBSOURCE --trace=AC_PROG_LIBTOOL --trace=AC_REQUIRE_AUX_FILE --trace=AC_SUBST --trace=AC_SUBST_TRACE --trace=AH_OUTPUT --trace=AM_AUTOMAKE_VERSION --trace=AM_CONDITIONAL --trace=AM_ENABLE_MULTILIB --trace=AM_GNU_GETTEXT --trace=AM_GNU_GETTEXT_INTL_SUBDIR --trace=AM_INIT_AUTOMAKE --trace=AM_MAINTAINER_MODE --trace=AM_PROG_CC_C_O --trace=AM_PROG_CXX_C_O --trace=AM_PROG_F77_C_O --trace=AM_PROG_FC_C_O --trace=AM_SILENT_RULES --trace=LT_CONFIG_LTDL_DIR --trace=LT_INIT --trace=LT_SUPPORTED_TAG --trace=_AM_COND_ELSE --trace=_AM_COND_ENDIF --trace=_AM_COND_IF --trace=_AM_SUBST_NOTMAKE --trace=_LT_AC_TAGCONFIG --trace=_m4_warn --trace=include --trace=m4_include --trace=m4_pattern_allow --trace=m4_pattern_forbid --trace=m4_sinclude --trace=sinclude --reload-state=/usr/share/autoconf/autoconf/autoconf.m4f --undefine=__m4_version__ aclocal.m4 configure.ac tinderbox tinderbox # strace -p 17670 Process 17670 attached - interrupt to quit write(5, "}\nEOF\n\n\t$CXX ajv_cxx_flag.cc >/"..., 4096) = 4096 write(5, "_LETTERS='ABCDEFGHIJKLMNOPQRSTUV"..., 4096) = 4096 write(5, "&1 &&\n test \"X`expr 00001 : '."..., 4096) = 4096 write(5, "_basename=basename\nelse\n as_bas"..., 4096) = 4096 write(5, " ... \" >&6; } \n\n\tcat > ajv_cxx_"..., 4096) = 4096 write(5, "er Ranges.\nas_cr_letters='abcdef"..., 4096) = 4096 brk(0x260cf000) = 0x260cf000 write(5, "_cr_Letters$as_cr_digits\n\nif exp"..., 4096) = 4096 write(5, "null 2>&1 && test \"X`basename --"..., 4096) = 4096 write(5, "if $CXX accepts \" >&5\n$as_echo_"..., 4096) = 4096 write(5, " test x\"$?\" = x\"0\"; then\n\t\t{ # A"..., 4096) = 4096 write(5, "ers$as_cr_LETTERS\nas_cr_digits='"..., 4096) = 4096 write(5, "xpr=expr\nelse\n as_expr=false\nfi"..., 4096) = 4096 brk(0x260f0000) = 0x260f0000 write(5, "name -- \"{ $as_echo \"$as_me:${as"..., 4096) = 4096 write(5, "F\n\n\t$CXX ajv_cxx_flag.cc >/dev/"..., 4096) = 4096 write(5, "TERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ"..., 4096) = 4096 write(5, "&\n test \"X`expr 00001 : '.*\\(."..., 4096) = 4096 write(5, "ename=basename\nelse\n as_basenam"..., 4096) = 4096 write(5, ". \" >&6; } \n\n\tcat > ajv_cxx_flag"..., 4096) = 4096 brk(0x26111000) = 0x26111000 write(5, "anges.\nas_cr_letters='abcdefghij"..., 4096) = 4096 write(5, "Letters$as_cr_digits\n\nif expr a "..., 4096) = 4096 write(5, " 2>&1 && test \"X`basename -- / 2"..., 4096) = 4096 write(5, "CXX accepts \" >&5\n$as_echo_n \"c"..., 4096) = 4096 ^CProcess 17670 detached
m4trace:configure.ac:70: -1- _m4_warn([syntax], [AC_CACHE_VAL(lt_prog_compiler_pic_works_GCJ, ...): suspicious cache-id, must contain _cv_ to be cached], [../../lib/autoconf/general.m4:1998: AC_CACHE_VAL is expanded from... ../../lib/autoconf/general.m4:2019: AC_CACHE_CHECK is expanded from... aclocal.m4:1449: AC_LIBTOOL_COMPILER_OPTION is expanded from... aclocal.m4:5542: AC_LIBTOOL_PROG_COMPILER_PIC is expanded from... aclocal.m4:4741: _LT_AC_LANG_GCJ_CONFIG is expanded from... aclocal.m4:4740: AC_LIBTOOL_LANG_GCJ_CONFIG is expanded from... aclocal.m4:2580: _LT_AC_TAGCONFIG is expanded from... aclocal.m4:934: AC_LIBTOOL_SETUP is expanded from... aclocal.m4:914: _AC_PROG_LIBTOOL is expanded from... aclocal.m4:879: AC_PROG_LIBTOOL is expanded from... aclocal.m4:6962: AM_PROG_LIBTOOL is expanded from... configure.ac:70: the top level]) m4trace:configure.ac:70: -1- _m4_warn([obsolete], [The macro `AC_LANG_RESTORE' is obsolete. You should run autoupdate.], [../../lib/autoconf/lang.m4:135: AC_LANG_RESTORE is expanded from... aclocal.m4:4741: _LT_AC_LANG_GCJ_CONFIG is expanded from... aclocal.m4:4740: AC_LIBTOOL_LANG_GCJ_CONFIG is expanded from... aclocal.m4:2580: _LT_AC_TAGCONFIG is expanded from... aclocal.m4:934: AC_LIBTOOL_SETUP is expanded from... aclocal.m4:914: _AC_PROG_LIBTOOL is expanded from... aclocal.m4:879: AC_PROG_LIBTOOL is expanded from... aclocal.m4:6962: AM_PROG_LIBTOOL is expanded from... configure.ac:70: the top level]) m4trace:configure.ac:70: -1- _m4_warn([obsolete], [The macro `AC_LANG_SAVE'
The same here, I can reproduce that.
Whoa, that's scary. I just went to strace -p <foo>... nowhere ~ # ps a PID TTY STAT TIME COMMAND 1750 tty7 Ss+ 4:30 /usr/bin/X :0 -audit 0 -auth /var/gdm/:0.Xauth -nolis 1961 tty1 Ss+ 0:00 /sbin/agetty 38400 tty1 linux 1962 tty2 Ss+ 0:00 /sbin/agetty 38400 tty2 linux 1963 tty3 Ss+ 0:00 /sbin/agetty 38400 tty3 linux 1964 tty4 Ss+ 0:00 /sbin/agetty 38400 tty4 linux 1965 tty5 Ss+ 0:00 /sbin/agetty 38400 tty5 linux 1966 tty6 Ss+ 0:00 /sbin/agetty 38400 tty6 linux 2142 pts/0 Ss 0:00 bash 2199 pts/0 S 0:00 -bash 17220 pts/0 SN+ 0:07 /usr/bin/python2.6 /usr/bin/emerge rezound 17230 pts/1 Ss 0:00 bash 17234 pts/1 S 0:00 -bash 17417 pts/0 SN+ 0:00 [media-sound/rezound-0.12.3_beta-r2] sandbox "/usr/li 17418 pts/0 SN+ 0:00 /bin/bash /usr/lib/portage/bin/ebuild.sh prepare 17449 pts/0 SN+ 0:00 /bin/bash /usr/lib/portage/bin/ebuild.sh prepare 17633 pts/0 SN+ 0:00 /bin/bash /usr/lib/portage/bin/ebuild.sh prepare 17634 pts/0 SN+ 0:00 /bin/bash /usr/lib/portage/bin/ebuild.sh prepare 17635 pts/0 SN+ 0:00 /usr/bin/perl -w /usr/bin/autom4te-2.65 --language=au 17669 pts/0 SN+ 0:00 sh -c /usr/bin/m4 --nesting-limit=1024 --gnu --includ 17670 pts/0 RN+ 2:23 /usr/bin/m4 --nesting-limit=1024 --gnu --include=/usr 17673 pts/1 R+ 0:00 ps a mine was also pid 17670, like the lithium cell size. Synchronomaly! Anyway, same results as Diego. "brk(0x108b9000)" counts up continuously
what it's doing is repeatedly writing this block into ${PORTAGE_TMPDIR}/portage/media-sound/rezound-0.12.3_beta-r2/temp/m4-N1qtbE/m4-10000, so after an hour it's ~4.5 million lines and ~115MB. The only different bit is the first line of the file, { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX accepts -g " >&5 then this block repeats forever: $as_echo_n "checking if $CXX accepts -g ... " >&6; } cat > ajv_cxx_flag.cc << EOF int main(){} EOF $CXX -g ajv_cxx_flag.cc >/dev/null 2>ajv_cxx_flag.err if test x"$?" = x"0"; then { # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi as_me=`$as_basename -- "{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX accepts " >&5
This bug has possibly become a bit more annoying since the recent libpng stabilization, which means rezound needs to be rebuilt eventually. I tried running the m4 command manually as in comment#5 and, of course, it hangs. But I did manage to figure out that it runs if you remove the command-line argument `--reload-state=/usr/share/autoconf/autoconf/autoconf.m4f`. Now, I really don't know what that file means, but I hope that helps someone else figure it out.
the ajv_CXX_FLAG definition is crap. ignoring the broken autoconf handling and portability issues, move the closing bracket to the end and it fixes the m4 loop. better yet, stop using that macro altogether and use AX_CXX_CHECK_FLAG from the autoconf-archive: http://www.nongnu.org/autoconf-archive/ax_cxx_check_flag.html
Created attachment 237563 [details] aclocal.m4 reduced test to reproduce: mkdir foo cd foo <wget this aclocal.m4> cat << EOF > configure.ac AC_INIT ajv_CXX_FLAG(-g) AC_OUTPUT EOF autoconf
also, this doesnt seem to be a regression. stable m4-1.4.12 behaves the same way. more likely a changed autoconf macro triggered the underlying problem.
upstream m4 has confirmed that the current m4 code in rezound sucks. the quoting is certainly broken and one of my suggestions should be implemented. i'll pursue the infinite loop in parallel, but rezound needs to be fixed as well.
+ 20 Aug 2010; Samuli Suominen <ssuominen@gentoo.org> + rezound-0.12.3_beta-r2.ebuild, +files/rezound-0.12.3_beta-m4.patch: + Fix sys-devel/m4 loop wrt #305305, thanks to Mike Frysinger for his + extensive analysis.