GNOME Bugzilla – Bug 523547
Big memory leak in gpm
Last modified: 2008-08-03 23:06:49 UTC
Please describe the problem: After a day or two gpm start consuming memory exponentially until it reach 1.5 GiB of memory (when it slowes down computer so much it is unusable and I kill it). Steps to reproduce: ??? Actual results: It consumes 1.5 GiB Expected results: It consumes around 11 MiB of resident memory (100 MiB virtual) Does this happen every time? Yes Other information: (Please note that in listing the new enviroment. The enviroment where the bug occured was gcc 4.2.3 with CFLAGS="-O2 -ftree-loop-optimize -ftree-vectorize -ggdb -march=pentium-m -mfpmath=sse -momit-leaf-frame-pointer -pipe -w" and LDFLAGS="-Wl,-O1 -Wl,--add-needed -Wl,--as-needed"): Last login: Thu Mar 20 14:24:53 CET 2008 from notebook on pts/3 Portage 2.1.4.4 (default-linux/x86/2007.0/desktop, gcc-4.3.0, glibc-2.7-r1, 2.6.24-zen4 i686) ================================================================= System uname: 2.6.24-zen4 i686 Intel(R) Celeron(R) M processor 1.50GHz Timestamp of tree: Thu, 20 Mar 2008 03:00:01 +0000 ccache version 2.4 [enabled] app-shells/bash: 3.2_p33 dev-java/java-config: 1.3.7, 2.1.5 dev-lang/python: 2.5.1-r5 dev-util/ccache: 2.4-r7 sys-apps/baselayout: 1.12.11.1 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" CBUILD="i686-pc-linux-gnu" CFLAGS="-Os -march=pentium-m -mfpmath=sse -pipe -momit-leaf-frame-pointer -ggdb -w -ftree-vectorize -ftree-loop-optimize -freorder-blocks-and-partition -fgcse-sm -fgcse-las -fgcse-after-reload -combine -ftracer -maccumulate-outgoing-args" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-Os -march=pentium-m -mfpmath=sse -pipe -momit-leaf-frame-pointer -ggdb -w -ftree-vectorize -ftree-loop-optimize -freorder-blocks-and-partition -fgcse-sm -fgcse-las -fgcse-after-reload -combine -ftracer -maccumulate-outgoing-args -fvisibility-inlines-hidden" DISTDIR="/usr/portage/distfiles" FEATURES="ccache distlocks metadata-transfer parallel-fetch sandbox sfperms splitdebug unmerge-orphans userfetch userpriv" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" LANG="en_GB.UTF-8" LC_ALL="en_GB.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--add-needed -Wl,--as-needed -Wl,--hash-style=both -Wl,--sort-common" LINGUAS="en_GB en_US pl" PKGDIR="/usr/portage/packages" 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/portage/local/layman/java-overlay /usr/portage/local/layman/custom-kernels /usr/portage/local/layman/gnome /usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X aac acl acpi alsa applet attr avahi avalon bash-completion berkdb bittorrent boo browseplugin bzip2 cairo calendar caps cddb cdparanoia cdr cli clisp context cracklib crypt cups curl curlwrappers d daap dbus deskbar devhelp disk-partition djvu dri dvd dvdnav dvdr dvdread eclipse eds emacs emboss encode epiphany esd evo evolution exif expat extra fam ffmpeg flac flash fortran fuse galago gcj gconf gd gdbm gdl gedit gif gimp glut gmail gmp gnome gnutls gpm gsf gstreamer gtk guile hal iconv idle imap inherit-graph inotify ipod iproute2 ipv6 isdnlog jabber java java5 jpeg jpeg2k jython kerberos keyring laptop latex libburn libffi libgda libnotify libsexy logrotate lucene mad madwifi maildir mhash midi mikmod mmap mmx mono mozilla mp3 mpeg mudflap mule musicbrainz nautilus ncurses network networkmanager nls nntp no-old-linux nptl nptlonly nsplugin ntpl ogg oggvorbis openal opengl openmp pam pango pbm pccts pcre pda pdf perl png policykit pop postgres pppd pulseaudio python qt3support quicktime readline reflection regex reiserfs resolvconf rhino ruby samba scanner science sdl session soap sourceview spell spl sqlite sqlite3 sse sse2 ssh ssl subversion svg symlink syslog tcpd tetex theora threads threadsafe tiff timidity totem tracker trayicon truetype unicode usb valgrind vim vorbis vte wifi wxwindows x86 xattr xcb xforms xhtml xml xml2 xorg xsl xulrunner xv zeroconf zlib" ALSA_CARDS="atiixp" ALSA_PCM_PLUGINS="null empty dmix dshare" 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" CAMERAS="panasonic" ELIBC="glibc" INPUT_DEVICES="evdev mouse keyboard" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_GB en_US pl" USERLAND="GNU" VIDEO_CARDS="fglrx radeon" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
This may be the same bug as <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=472637>. I've rebuilt g-p-m with debug symbols and started it in --verbose mode; when the memory leak happens again, I'll try to capture strace/gdb bt and the tail of the --verbose log.
Created attachment 108056 [details] tail of --verbose log Verbose log. The leak seems to have occurred when I killed and restarted the pulseaudio process (I'm using the pulse source and sink for GStreamer), so possibly g-p-m isn't handling that right, or something. Another random gstreamer process (Quod Libet) seems to hang rather than leaking under the same circumstance.
Created attachment 108057 [details] backtrace when in leaky state (1 of 3)
Created attachment 108058 [details] backtrace when in leaky state (2 of 3)
Created attachment 108059 [details] backtrace when in leaky state (3 of 3)
Killing and restarting pulseaudio again has not reproduced the bug, so that may have been a red herring.
No, I think you are on the money with pulseaudio. Does this look familiar to http://bugzilla.gnome.org/show_bug.cgi?id=522336?
Yes, I can reproduce #522336, and the failure mode is qualitatively similar. This bug is probably a duplicate, then.
I have pulseaudio so it may be connected. However I hardly ever need to restart it (this bug occure too often to be caused by this restart). In backtrace also thay seems to be a lot of 'gst' prefixes (indicating gstreamer) - especially next to *mem* functions.
Seems to be fixed before 2.22.1. Please reopen if not.