Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 107083

Summary: emerge sync is extremely slow
Product: Gentoo Linux Reporter: Alexander Veit <gentoo>
Component: New packagesAssignee: Gentoo Linux bug wranglers <bug-wranglers>
Status: VERIFIED CANTFIX    
Severity: normal    
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Alexander Veit 2005-09-24 05:51:09 UTC
'emerge sync' takes 40 minutes to complete on a 600 MHz VIA Samuel 2 with 1GB 
RAM.

Reproducible: Always
Steps to Reproduce:
1. emerge sync
2. wait


Actual Results:  
40 minutes

Expected Results:  
about 10 minutes

Portage 2.0.51.22-r2 (default-linux/x86/2005.1, gcc-3.3.6, glibc-2.3.5-r1, 
2.6.12-gentoo-r6 i686)
=================================================================
System uname: 2.6.12-gentoo-r6 i686 VIA Samuel 2
Gentoo Base System version 1.6.13
ccache version 2.3 [enabled]
dev-lang/python:     2.3.5-r2
sys-apps/sandbox:    1.2.10
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6
sys-devel/binutils:  2.15.92.0.2-r10
sys-devel/libtool:   1.5.18-r1
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i586-pc-linux-gnu"
CFLAGS="-march=i586 -m3dnow -O3 -pipe -fomit-frame-pointer -mmmx"
CHOST="i586-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/
config /var/bind /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=i586 -m3dnow -O3 -pipe -fomit-frame-pointer -mmmx"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig ccache distlocks sandbox sfperms strict"
GENTOO_MIRRORS="ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo 
http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ 
ftp://mirrors.sec.informatik.tu-darmstadt.de/gentoo/"
LANG="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
MAKEOPTS="-j1"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 alsa apm arts avi berkdb bitmap-fonts crypt cups eds emboss encode 
foomaticdb fortran gdbm gif gpm gstreamer imlib ipv6 jpeg ldap libg++ libwww 
mad mikmod mp3 mpeg ncurses nls nptl nptlonly ogg oggvorbis oss pam pdflib perl 
png postgres python readline samba slang spell ssl svga tcpd tiff unicode 
vorbis xml xml2 xmms xv zlib userland_GNU kernel_linux elibc_glibc"
Unset:  ASFLAGS, CTARGET, LDFLAGS, LINGUAS, PORTDIR_OVERLAY
Comment 1 Jakub Moc (RETIRED) gentoo-dev 2005-09-24 05:56:43 UTC
Most pointless bug contest will be eventually announced; putting this one on my
private list of hot candidates. :=)

Meanwhile closing CANTFIX - get a faster line/disk/machine/whatever. 
Comment 2 Alexander Veit 2005-09-25 05:35:55 UTC
> Meanwhile closing CANTFIX - get a faster line/disk/machine/whatever.

1. It is not a problem of slow hardware.
2. It is not a bandwidth problem.

Most time emerge spent in 'updating portage cache'. No other CPU intensive 
processes were running. It is worth noting that a subsequent 'emerge sysnc' 
took only five minutes.
Comment 3 Matthew Gates 2005-10-20 10:00:19 UTC
I have a similar problem. The "updating portage cache" bit gets to about 50% 
fairly quickly, and then grinds to a crawl.  When I look at the files that are 
being used using lsof, I see something weird... the .cpickle files are getting 
written over and over with differing sizes.  From my perspective (i.e. not 
knowing how they're generated), this seems very very wrong.  Look at the size 
column in this output (the column after 3,7): 
 
#while true; do lsof |grep portage; done 
emerge    23530    root    0w      REG        3,7   176128     
180065 /var/cache/edb/dep/usr/portage/kde-base-eclass.cpickle 
emerge    23530    root    0w      REG        3,7   311296     
180065 /var/cache/edb/dep/usr/portage/kde-base-eclass.cpickle 
emerge    23530    root    0w      REG        3,7   577536     
180065 /var/cache/edb/dep/usr/portage/kde-base-eclass.cpickle 
emerge    23530    root    0w      REG        3,7   552960     
180065 /var/cache/edb/dep/usr/portage/kde-base-eclass.cpickle 
emerge    23530    root    0w      REG        3,7   716800     
180065 /var/cache/edb/dep/usr/portage/kde-base-eclass.cpickle 
emerge    23530    root    0w      REG        3,7   716800     
180065 /var/cache/edb/dep/usr/portage/kde-base-eclass.cpickle 
emerge    23530    root    0w      REG        3,7   135168     
180065 /var/cache/edb/dep/usr/portage/kde-base-eclass.cpickle 
emerge    23530    root    0w      REG        3,7   278528     
180065 /var/cache/edb/dep/usr/portage/kde-base-eclass.cpickle 
emerge    23530    root    0w      REG        3,7   278528     
180065 /var/cache/edb/dep/usr/portage/kde-base-eclass.cpickle 
emerge    23530    root    0w      REG        3,7   278528     
180065 /var/cache/edb/dep/usr/portage/kde-base-eclass.cpickle 
 
I'm thinking some better buffering is needed in whatever process creates these 
cpickle files - puking on I/O like this seems crazy. 
 
(In reply to comment #0) 
> 'emerge sync' takes 40 minutes to complete on a 600 MHz VIA Samuel 2 with 1GB  
> RAM. 
>  
> Reproducible: Always 
> Steps to Reproduce: 
> 1. emerge sync 
> 2. wait 
>  
>  
> Actual Results:   
> 40 minutes 
>  
> Expected Results:   
> about 10 minutes 
>  
> Portage 2.0.51.22-r2 (default-linux/x86/2005.1, gcc-3.3.6, glibc-2.3.5-r1,  
> 2.6.12-gentoo-r6 i686) 
> ================================================================= 
> System uname: 2.6.12-gentoo-r6 i686 VIA Samuel 2 
> Gentoo Base System version 1.6.13 
> ccache version 2.3 [enabled] 
> dev-lang/python:     2.3.5-r2 
> sys-apps/sandbox:    1.2.10 
> sys-devel/autoconf:  2.13, 2.59-r6 
> sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6 
> sys-devel/binutils:  2.15.92.0.2-r10 
> sys-devel/libtool:   1.5.18-r1 
> virtual/os-headers:  2.6.11-r2 
> ACCEPT_KEYWORDS="x86" 
> AUTOCLEAN="yes" 
> CBUILD="i586-pc-linux-gnu" 
> CFLAGS="-march=i586 -m3dnow -O3 -pipe -fomit-frame-pointer -mmmx" 
> CHOST="i586-pc-linux-gnu" 
> 
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/ 
> config /var/bind /var/qmail/control" 
> CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" 
> CXXFLAGS="-march=i586 -m3dnow -O3 -pipe -fomit-frame-pointer -mmmx" 
> DISTDIR="/usr/portage/distfiles" 
> FEATURES="autoconfig ccache distlocks sandbox sfperms strict" 
> GENTOO_MIRRORS="ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo  
> http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/  
> ftp://mirrors.sec.informatik.tu-darmstadt.de/gentoo/" 
> LANG="en_US.UTF-8" 
> LC_ALL="en_US.UTF-8" 
> MAKEOPTS="-j1" 
> PKGDIR="/usr/portage/packages" 
> PORTAGE_TMPDIR="/var/tmp" 
> PORTDIR="/usr/portage" 
> SYNC="rsync://rsync.gentoo.org/gentoo-portage" 
> USE="x86 alsa apm arts avi berkdb bitmap-fonts crypt cups eds emboss encode  
> foomaticdb fortran gdbm gif gpm gstreamer imlib ipv6 jpeg ldap libg++ libwww  
> mad mikmod mp3 mpeg ncurses nls nptl nptlonly ogg oggvorbis oss pam pdflib 
perl  
> png postgres python readline samba slang spell ssl svga tcpd tiff unicode  
> vorbis xml xml2 xmms xv zlib userland_GNU kernel_linux elibc_glibc" 
> Unset:  ASFLAGS, CTARGET, LDFLAGS, LINGUAS, PORTDIR_OVERLAY 
 
 
Comment 4 Alexander Veit 2006-08-03 14:28:04 UTC
emerge --sync runs ten to twenty times faster now. Maybe the decrement operator did the trick.