Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 216362 - gnome-base/nautilus-2.22 uses huge amount of RAM while browsing some directory with videos inside
Summary: gnome-base/nautilus-2.22 uses huge amount of RAM while browsing some director...
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] GNOME (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Linux Gnome Desktop Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-04-05 17:14 UTC by Andrey Melentyev
Modified: 2008-04-07 07:45 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 Andrey Melentyev 2008-04-05 17:14:27 UTC
When some directory which contains video files is opened in file manager, nautilus process memory usage is constantly growing. After a few seconds nautilus uses around 50% of 1Gb RAM and that's not the end. 

AFAIK nautilus uses totem to generate thumbnails, but even when thumbnails are already generated and displayed fine, nautilus continues to use my RAM. Totem plays this video files fine, no memory leak.

The bug can be also reproduced when video files are in ~/Desktop, then I don't need to open any file manager windows, nautilus process RAM usage at the same high level.

If it makes any sense, CPU usage by nautilus is high too, when RAM usage keeps growing. It is about 15% in `top` output.

When I use nautilus to browse some directories with pdf files for example (with thumbnails too), RAM usage for nautilus is low. 

I'm very sorry for such incomplete description of the problem, but I don't really know what information will be useful. Maybe a valgrind output? If so, what command line keys should I use?

Reproducible: Always

Steps to Reproduce:
1. upgrade to nautilus 2.22
2. browse some directory with video files
3. see how nautilus uses memory

Actual Results:  
memory usage is abnormal

Expected Results:  
nautilus shouldn't use half of my 1Gb RAM

 $ emerge --info
Portage 2.1.5_rc1 (default-linux/x86/2007.0/desktop, gcc-4.2.3, glibc-2.7-r2, 2.6.24-gentoo-r3 i686)
=================================================================
System uname: 2.6.24-gentoo-r3 i686 Intel(R) Pentium(R) M processor 1500MHz
Timestamp of tree: Sat, 05 Apr 2008 07:03:01 +0000
app-shells/bash:     3.2_p33
dev-java/java-config: 1.3.7, 2.1.5
dev-lang/python:     2.5.1-r5
sys-apps/baselayout: 1.12.12
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.61-r1
sys-devel/automake:  1.4_p6, 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1
sys-devel/binutils:  2.18-r1
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.24
ACCEPT_KEYWORDS="x86 ~x86"
ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 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 mulaw multi null plug rate route share shm softvol"
ANT_HOME="/usr/share/ant-core"
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"
ARCH="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=pentium-m -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CLASSPATH="."
CLEAN_DELAY="5"
COLORTERM="gnome-terminal"
CONFIG_PROTECT="/etc /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/udev/rules.d"
CVS_RSH="ssh"
CXXFLAGS="-O2 -march=pentium-m -pipe -fomit-frame-pointer"
DBUS_SESSION_BUS_ADDRESS="unix:abstract=/tmp/dbus-hAFVAZfERX,guid=f5121870405044747647fc6947f7a5ae"
DESKTOP_STARTUP_ID=""
DISPLAY=":0.0"
DISTDIR="/home/portage/distfiles"
EDITOR="/usr/bin/vim"
ELIBC="glibc"
EMERGE_DEFAULT_OPTS="--verbose"
EMERGE_WARNING_DELAY="10"
FEATURES="collision-protect distlocks metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch"
FETCHCOMMAND="/usr/bin/wget -t 1 -T 10 --passive-ftp ${URI} -P ${DISTDIR}"
GCC_SPECS=""
GDK_USE_XFT="1"
GENTOO_MIRRORS="http://mirror.yandex.ru/gentoo-distfiles ftp://kos.local/gentoo http://distfiles.gentoo.org http://www.ibiblio.org/pub/Linux/distributions/gentoo"
GNOME_DESKTOP_SESSION_ID="openbox-session"
GNOME_KEYRING_SOCKET="/tmp/keyring-IXzb5B/socket"
GTK_MODULES="gnomebreakpad"
GTK_RC_FILES="/etc/gtk/gtkrc:/home/rikz/.gtkrc-1.2-gnome2"
HOME="/home/rikz"
HUSHLOGIN="FALSE"
INFOPATH="/usr/share/info:/usr/share/binutils-data/i686-pc-linux-gnu/2.18/info:/usr/share/gcc-data/i686-pc-linux-gnu/4.2.3/info"
INPUT_DEVICES="keyboard mouse evdev synaptics"
JAVAC="/etc/java-config-2/current-system-vm/bin/javac"
JAVA_HOME="/etc/java-config-2/current-system-vm"
JDK_HOME="/etc/java-config-2/current-system-vm"
KDEDIRS="/usr:/usr/local:/usr/kde/svn"
KERNEL="linux"
LANG="ru_RU.UTF-8"
LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text"
LC_ALL=""
LDFLAGS=""
LESS="-R -M --shift 5"
LESSOPEN="|lesspipe.sh %s"
LIBXCB_ALLOW_SLOPPY_LOCK="1"
LINGUAS="ru"
LOGNAME="rikz"
LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.svgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.pdf=00;32:*.ps=00;32:*.txt=00;32:*.patch=00;32:*.diff=00;32:*.log=00;32:*.tex=00;32:*.doc=00;32:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:"
MAIL="/var/mail/rikz"
MAKEOPTS="-j2"
MANPATH="/etc/java-config-2/current-system-vm/man:/usr/local/share/man:/usr/share/man:/usr/share/binutils-data/i686-pc-linux-gnu/2.18/man:/usr/share/gcc-data/i686-pc-linux-gnu/4.2.3/man:/etc/java-config/system-vm/man/:/usr/qt/3/doc/man"
OPENGL_PROFILE="xorg-x11"
PAGER="/usr/bin/less"
PATH="/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.2.3:/usr/qt/3/bin:/usr/games/bin"
PKGDIR="/home/portage/packages"
PKG_CONFIG_PATH="/usr/qt/3/lib/pkgconfig"
PORTAGE_ARCHLIST="ppc s390 amd64 x86 ppc64 x86-fbsd m68k arm sparc sh mips ia64 alpha hppa sparc-fbsd"
PORTAGE_BINHOST_CHUNKSIZE="3000"
PORTAGE_BIN_PATH="/usr/lib/portage/bin"
PORTAGE_CONFIGROOT="/"
PORTAGE_DEBUG="0"
PORTAGE_DEPCACHEDIR="/var/cache/edb/dep"
PORTAGE_ELOG_CLASSES="warn error log"
PORTAGE_ELOG_MAILFROM="portage@localhost"
PORTAGE_ELOG_MAILSUBJECT="[portage] ebuild log for ${PACKAGE} on ${HOST}"
PORTAGE_ELOG_MAILURI="root"
PORTAGE_ELOG_SYSTEM="save_summary echo"
PORTAGE_FETCH_CHECKSUM_TRY_MIRRORS="5"
PORTAGE_FETCH_RESUME_MIN_SIZE="350K"
PORTAGE_GID="250"
PORTAGE_INST_GID="0"
PORTAGE_INST_UID="0"
PORTAGE_NICENESS="19"
PORTAGE_PYM_PATH="/usr/lib/portage/pym"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_RSYNC_RETRIES="3"
PORTAGE_TMPDIR="/home/tmp"
PORTAGE_WORKDIR_MODE="0700"
PORTDIR="/home/portage"
PORTDIR_OVERLAY="/usr/portage/local/layman/sunrise /usr/portage/local/layman/openchrome /usr/portage/local/overlay"
PORT_LOGDIR="/home/portage/elog"
PWD="/home/rikz"
PYTHONPATH="/usr/lib/portage/pym"
QMAKESPEC="linux-g++"
QTDIR="/usr/qt/3"
RESUMECOMMAND="/usr/bin/wget -c -t 1 -T 10 --passive-ftp ${URI} -P ${DISTDIR}"
ROOT="/"
ROOTPATH="/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.2.3:/usr/qt/3/bin"
RPMDIR="/usr/portage/rpm"
SANE_CONFIG_DIR="/etc/sane.d"
SESSION_MANAGER="local/laptop:/tmp/.ICE-unix/24350"
SHELL="/bin/bash"
SHLVL="3"
SSH_AUTH_SOCK="/tmp/keyring-IXzb5B/ssh"
STAGE1_USE="nptl nptlonly unicode"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
TERM="xterm"
USB_DEVFS_PATH="/dev/bus/usb"
USE="X a52 acl acpi alsa bash-completion berkdb bluetooth bzip2 cairo cddb cdr chm cli cracklib crypt cscope cups dbus dga djvu dri dvd dvdr dvdread emboss encode evo exif fam ffmpeg firefox flac fontconfig fortran fuse galago gdbm gif glib gnome gps gstreamer gtk hal iconv inotify isdnlog jingle jpeg lcms libnotify logrotate mad midi mmx mmxext mp3 mpeg mudflap musicbrainz ncurses nls nptl nptlonly nsplugin ogg opengl openmp pam pcre pdf perl png pppd python qt3support qt4 quicktime readline reflection samba scanner sdl session spell spl sqlite sse sse2 ssl svg taglib theora tiff timidity tracker truetype unicode usb vim-syntax vnc vorbis wifi win32codecs x264 x86 xcb xcomposite xml xorg xv xvid xvmc zip zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 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 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 evdev synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="ru" USERLAND="GNU" VIDEO_CARDS="via openchrome"
USER="rikz"
USERLAND="GNU"
USE_EXPAND="ALSA_CARDS ALSA_PCM_PLUGINS APACHE2_MODULES APACHE2_MPMS CAMERAS CROSSCOMPILE_OPTS DVB_CARDS ELIBC FCDSL_CARDS FOO2ZJS_DEVICES FRITZCAPI_CARDS INPUT_DEVICES KERNEL LCD_DEVICES LINGUAS LIRC_DEVICES MISDN_CARDS USERLAND VIDEO_CARDS"
USE_EXPAND_HIDDEN="CROSSCOMPILE_OPTS ELIBC KERNEL USERLAND"
USE_ORDER="env:pkg:conf:defaults:pkginternal:env.d"
VIDEO_CARDS="via openchrome"
WINDOWID="50333418"
WINDOWPATH="7"
WINDOW_MANAGER="/usr/bin/openbox"
XAUTHORITY="/home/rikz/.Xauthority"
XDG_DATA_DIRS="/usr/share:/usr/kde/svn/share:/usr/local/share"
XDG_SESSION_COOKIE="f9d2288e4cfb1abe410fc44747cc0726-1207412141.190639-44133025"
_="/usr/bin/emerge"
Comment 1 Rémi Cardona (RETIRED) gentoo-dev 2008-04-07 06:01:32 UTC
I just browsed through half a gigabyte worth of pictures and through 3 seasons worth of AVI files (that nautilus had never thumbnailed before) and basically, I can't reproduce.

Indeed, totem-video-thumbnailer can grow quite big but the core nautilus process barely grew in virtual size from 99M to 101M (and that's virtual memory, so it's probably just the mmap'ed thumbnails). Resident memory and shared memory barely moved either.

Thumbnails are not generated by nautilus directly, the fd.o/xdg standard more or less mandates an external application, which is how nautilus handles them. So even if the totem-video-thumbnailer leaks memory like a 2 year old drools, the thumbnailer is really short lived process, so it really doesn't matter.

My advice, if you really want to debug this, you'll have to start with a clean user with an empty gconf and use memcheck and massif (both part of dev-util/valgrind) to figure out where the memory is going. Ping upstream about this, maybe they'll be able to help you out.

Thanks
Comment 2 Andrey Melentyev 2008-04-07 07:12:27 UTC
I'm not talking about virtual size, and the size is bigger than 100Mb. 

Anyway, it seems that some Ubuntu users have some similar troubles with nautilus-2.22, so I believe it will be fixed in future releases of GNOME.

https://bugs.launchpad.net/ubuntu/+source/nautilus/+bug/187547
https://bugs.launchpad.net/ubuntu/+source/nautilus/+bug/204413
Comment 3 Rémi Cardona (RETIRED) gentoo-dev 2008-04-07 07:45:53 UTC
(In reply to comment #2)
> I'm not talking about virtual size, and the size is bigger than 100Mb. 

I was just pointing out that in my case, none of the memory sizes reported by "top" grew. And if any of the lower level memory stats had grown, virtual memory would have grown too. But I digress :)

> Anyway, it seems that some Ubuntu users have some similar troubles with
> nautilus-2.22, so I believe it will be fixed in future releases of GNOME.

Seems that Ubuntu devs are having a hard time reproducing the issue too. If you can reproduce the issue easily, then I suggest you follow the Ubuntu Valgrind procedure with a few differences.

 1) add "splitdebug" to FEATURES in make.conf
 2) use "-O2 -g" in your CFLAGS
 3) rebuild nautilus and glib

That should give you a proper backtrace and symbols in valgrind. If you can, please open a bug in Gnome's bugzilla, referencing this bug and the Ubuntu ones. That should help everyone to fix the issue.

And for the record, don't expect Ubuntu to fix all Gnome bugs. They've closed their share of bugs because they couldn't reproduce ;)

Thanks