Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 278773 - dev-util/colorsvn: installs an alias and causes an infinite loop by calling itself if a soft link was used
Summary: dev-util/colorsvn: installs an alias and causes an infinite loop by calling i...
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Christian Ruppert (idl0r)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-07-22 22:40 UTC by Some stupid real name
Modified: 2009-07-27 16:33 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 Some stupid real name 2009-07-22 22:40:25 UTC
This is a continuation of my adventures with GCC 4.4.0, but it's really hard to tell what is happening. The whole system was compiled with GCC 4.4.0 via emerge -e system && emerge -e system && emerge -e world. All packages were in their newest versions available in portage tree and the CFLAGS were

-O3 -pipe -march=barcelona -fomit-frame-pointer -floop-strip-mine -floop-block -floop-interchange -ftree-loop-distribution -ftree-loop-im -ftree-loop-linear -ftree-loop-ivcanon -fivopts -fweb -frename-registers

and the compilation went mostly cleanly, some packages required certain flags to be dropped. 

Now, SVN when run via 'svn' doesn't print anything and just hangs, and when you call 'top' you see perl using 100% of the CPU. Reemerging perl, libperl and subversion with GCC 4.4.0-r1 and no optimizations or even with previous GCC 4.3.3 doesn't help at all. Reemerging glibc, perl and svn with GCC 4.3.3 doesn't help either. Currently I am undergoing a downgrade to GCC 4.3.3 and we will see if everything goes back to normal.

I was hoping to get some useful output by compiling SVN with USE=debug and FEATURES=nostrip, but I could only get useable backtraces under root but not under a regular user. Also, it actually worked under root, but not under a regular user (weird). I would apprecieate a suggestion how to get meaningful backtraces under a regular user..

Please let me know what other info would be useful.

Reproducible: Always

Steps to Reproduce:
1. Emerge system with GCC 4.4.0-r1 and the above CFLAGS
2. Run 'svn'

Actual Results:  
SVN hangs with 'top' reporting 100% CPU usage by perl

Expected Results:  
SVN exiting cleanly.

This is the current emerge --info, after rebuild with GCC 4.3.3. The one that caused the problem had GCC 4.4.0-r1 and different CFLAGS (mentioned above), but everything else was necessarily the same.

Portage 2.1.6.13 (default/linux/amd64/2008.0, gcc-4.3.3, glibc-2.10.1-r0, 2.6.30 x86_64)
=================================================================
System uname: Linux-2.6.30-x86_64-Quad-Core_AMD_Opteron-tm-_Processor_2382-with-gentoo-2.0.1
Timestamp of tree: Wed, 22 Jul 2009 20:30:01 +0000
app-shells/bash:     4.0_p24
dev-java/java-config: 2.1.8-r1
dev-lang/python:     2.5.4-r2, 2.6.2-r1
dev-util/cmake:      2.6.4-r1
sys-apps/baselayout: 2.0.1
sys-apps/openrc:     0.4.3-r3
sys-apps/sandbox:    2.0
sys-devel/autoconf:  2.13, 2.63-r1
sys-devel/automake:  1.5, 1.8.5-r3, 1.9.6-r2, 1.10.2, 1.11
sys-devel/binutils:  2.19.1-r1
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.6a
virtual/os-headers:  2.6.30
ACCEPT_KEYWORDS="amd64 ~amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O3 -pipe -march=barcelona -fomit-frame-pointer"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /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/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d"
CPPFLAGS="-O3 -pipe -march=barcelona -fomit-frame-pointer"
CXXFLAGS="-O3 -pipe -march=barcelona -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch"
FFLAGS="-O3 -pipe -march=barcelona -fomit-frame-pointer"
GENTOO_MIRRORS="ftp://gentoo.llarian.net/pub/gentoo"
LDFLAGS="-Wl,-O1"
LINGUAS="en pl"
MAKEOPTS="-j10"
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/layman/science /usr/local/portage/odra"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="3dnow 3dnowext X aac aalib acl acml acpi acpiu alsa amd64 amrnb amrwb apm aspell async audacious bash-completion berkdb blas boost bzip2 cairo cdparanoia cleartype cli corefonts cracklib crypt cups curl cxx dbus dga divx djvu dri dts dvd dvdread enca encode encoder equalizer expat ffmpeg fftw fontconfig fortran fpx gcj gd gdbm gfortran ggi gif git glib gmp gnutls gpm gpu graphite graphviz gs gsl gtk hdri heterogeneous iconv icu imagemagick imlib isdnlog java jpeg jpg lapack latex lcms ldap libcaca libssh2 live lm_sensors lua lzo mad metis midi mmx mmxext mng mp3 mpeg2 mpfr mpi mplayer mudflap multilib mysql nas ncurses network nforce2 nls nptl nptlonly nsplugin numpy nut nvidia objc objc++ ogg openexr opengl openmp openssl pam parmetis patented pch pcre pdf perl php plotutils pmu png pnm povray ppds pppd python qhull qt3 qt3support qt4 quicktime radio rar readline reflection rtc samba schroedinger sensord server session shaders slp smp sms sparse speex spell spl sqlite sse sse2 sse3 ssh ssl ssse3 subversion svg svn swat sysfs syslog tcl tcpd tga threads tiff tk tls truetype umfpack unicode vdpau vim-syntax vmd voice vorbis vtk webkit wma wmf wxwidgets wxwindows x264 xcomposite xemacs xml xorg xulrunner xvid zeroconf zlib" ALSA_CARDS="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_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 rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en pl" USERLAND="GNU" VIDEO_CARDS="nvidia"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Some stupid real name 2009-07-23 10:10:02 UTC
After a system rebuild using -O3 -march=barcelona -pipe with GCC 4.3.3-r2 I can confirm that this problem persists. I did my rebuild by using

emerge -e system && emerge -e system && emerge -e world && revdep-rebuild

Something is seriously wrong. I tried emerge -C subversion perl libperl and then reemerge them back but nothing helps. Has anyone ever seen a similar problem?
Comment 2 Some stupid real name 2009-07-24 23:25:36 UTC
OK, I have compiled the source used by Gentoo by and it turns out that it works (doesn't hang), while the one compiled by Gentoo does hang. The output of equery uses is this:

# equery uses subversion
 * Searching for subversion ...
[ Legend : U - flag is set in make.conf       ]
[        : I - package is installed with flag ]
[ Colors : set, unset                         ]
 * Found these USE flags for dev-util/subversion-1.6.3-r10:
 U I
 - - apache2         : Add Apache2 support
 + + bash-completion : Enable bash-completion support
 + + berkdb          : Adds support for sys-libs/db (Berkeley DB for MySQL)
 - - ctypes-python   : Build and install ctypes python bindings
 - - debug           : Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see
                       http://www.gentoo.org/proj/en/qa/backtraces.xml
 - - doc             : Adds extra documentation (API, Javadoc, etc)
 - - dso             : Enable runtime module search
 - - elibc_FreeBSD   : ELIBC setting for systems that use the FreeBSD C library
 - - emacs           : Adds support for GNU Emacs
 - - extras          : Install extras scripts (examples, tools, hooks)
 - - gnome-keyring   : Enable support for storing passwords via gnome-keyring
 - - java            : Adds support for Java
 - - kde             : Adds support for kde-base/kde (K Desktop Enviroment)
 + + nls             : Adds Native Language Support (using gettext - GNU locale utilities)
 - - perl            : Adds support/bindings for the Perl language
 - - python          : Adds support/bindings for the Python language
 - - ruby            : Adds support/bindings for the Ruby language
 - - sasl            : Adds support for the Simple Authentication and Security Layer
 - - test            : Workaround to pull in packages needed to run with FEATURES=test. Portage-2.1.2 handles this internally, so don't set it in
                       make.conf/package.use anymore
 + + vim-syntax      : Pulls in related vim syntax scripts
 - + webdav-neon     : Enable WebDAV support using net-misc/neon
 - - webdav-serf     : Enable WebDAV support using net-libs/serf


Comment 3 Some stupid real name 2009-07-25 06:17:14 UTC
I found the error. Apparently, colorsvn is to blame. It AUTOMATICALLY adds an alias 'svn' pointing to the colorsvn script. However, in the install notes they still say that you can make a link called svn that would point to colorsvn.. which is what I had on the system previously. Thus, colorsvn being a perl script would call itself and loop without the usual signs of that..

Could the ebuild be changed so that the alias is NOT added by default? Thanks.
Comment 4 Christian Ruppert (idl0r) gentoo-dev 2009-07-26 13:50:13 UTC
(In reply to comment #3)
> However, in the install notes they
> still say that you can make a link called svn that would point to colorsvn..
> which is what I had on the system previously. Thus, colorsvn being a perl
> script would call itself and loop without the usual signs of that..
> 
> Could the ebuild be changed so that the alias is NOT added by default? Thanks.
>

Hm, from which install notes are you talking about?
I'm sure you'll run into the same problem even if i remove the default alias.
You have to set the correct path to the svn binary in your colorsvnrc in this case.


Comment 5 Some stupid real name 2009-07-26 14:26:21 UTC
I guess the presence of a soft link could be detected somehow, could it not? The notes I am talking about are in the file itself. If you open the colorsvn script you will notice that at the beginning they tell you how you can use it conveniently (either alias or soft link) -- I had the latter until the decision to make alias adding being automatic.
Comment 6 Christian Ruppert (idl0r) gentoo-dev 2009-07-27 16:33:49 UTC
Hey,

WONTFIX because IMHO the alias didn't produce the issue.
colorfoo calls foo, if you create a link 'ln -s /usr/bin/colorfoo /usr/bin/foo' it will always be in a loop until you change foopath to the right binary path, regardless of the alias.
Thats the case for color-gcc/cvs/svn etc.
Sorry.