From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "T.V. Raman" Newsgroups: gmane.emacs.devel Subject: Memory Leak was: Re: Update on the Emacs release schedule? 8 messages Date: Tue, 17 Jan 2012 16:39:15 -0800 Message-ID: References: <20233.3395.93384.91217@gargle.gargle.HOWL> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 X-Trace: dough.gmane.org 1326847169 13507 80.91.229.12 (18 Jan 2012 00:39:29 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 18 Jan 2012 00:39:29 +0000 (UTC) To: Stefan Monnier , emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Jan 18 01:39:25 2012 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RnJYh-0000Yx-1W for ged-emacs-devel@m.gmane.org; Wed, 18 Jan 2012 01:39:23 +0100 Original-Received: from localhost ([::1]:34017 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RnJYg-00064s-Eq for ged-emacs-devel@m.gmane.org; Tue, 17 Jan 2012 19:39:22 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:42478) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RnJYd-00064m-78 for emacs-devel@gnu.org; Tue, 17 Jan 2012 19:39:20 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RnJYb-0000bg-80 for emacs-devel@gnu.org; Tue, 17 Jan 2012 19:39:19 -0500 Original-Received: from mail-iy0-f169.google.com ([209.85.210.169]:56656) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RnJYb-0000bc-3H for emacs-devel@gnu.org; Tue, 17 Jan 2012 19:39:17 -0500 Original-Received: by iadj38 with SMTP id j38so4295086iad.0 for ; Tue, 17 Jan 2012 16:39:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=gV9IiAKb2fbjExr8dWzeeLd4IgU8iZLdO8kRhtMRTC8=; b=iNWihbSeFUlNykKn1eZDuLdzjzALIm8GpWerNJ1RZ16QZInte9vskH/+NZtqer1lTW yeuQgZfV0Ep9863d1kAxOzgBOef7kJi7FUxAj+XZqqtnUlIPODxkj0CfDCiFbdqcsBUT l5bT759rfjQpFe4IpOxweoaWblpQ74LEq9qZ4= Original-Received: by 10.50.182.130 with SMTP id ee2mr19700804igc.30.1326847155905; Tue, 17 Jan 2012 16:39:15 -0800 (PST) Original-Received: by 10.231.35.138 with HTTP; Tue, 17 Jan 2012 16:39:15 -0800 (PST) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 209.85.210.169 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:147704 Archived-At: Stephane, Unfortunately, Emacspeak is what talks to me, so it's well-nigh impossible for me to debug emacs with GDB. But here are a few additional bits of info that might help: RSS etc that I reported were from proced in emacs --- also, it's hard to get any useful info out snce the workstation crashes or becomes unusable fairly rapidly. I'm attaching two other bits of information that may be useful: The binary src/emacs is approx 13mb big on my laptop and home machines where I dont see the leak -- 7mb after stripping. Constrast this with the numbers I see on the machine where I do see the leak -- 19mb before stripping, 12mb+ after stripping. I'll also attach the output of ldd on the offending machine in case that sheds any light. ls -l src/emacs -rwxr-x--- 3 raman eng 19612869 2012-01-06 15:37 src/emacs* 16:34:49 retriever emacs $ strip src/emacs 16:34:56 retriever emacs $ !ls ls -l src/emacs -rwxr-x--- 3 raman eng 12707840 2012-01-17 16:34 src/emacs* 16:35:01 retriever emacs $ ldd src/emacs linux-vdso.so.1 => (0x00007fff4bf8b000) libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0x00007f2ef3ae6000) libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0x00007f2ef3839000) libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0x00007f2ef3617000) libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0x00007f2ef3363000) libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0x00007f2ef3139000) libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0x00007f2ef2f1c000) libm.so.6 => /lib/libm.so.6 (0x00007f2ef2c99000) libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0x00007f2ef2a8c000) libcairo.so.2 => /usr/lib/libcairo.so.2 (0x00007f2ef2808000) libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0x00007f2ef25be000) libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007f2ef2338000) libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00007f2ef2102000) libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00007f2ef1eba000) libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x00007f2ef1cb6000) libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x00007f2ef1ab0000) librt.so.1 => /lib/librt.so.1 (0x00007f2ef18a8000) libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x00007f2ef15ca000) libSM.so.6 => /usr/lib/libSM.so.6 (0x00007f2ef13c0000) libICE.so.6 => /usr/lib/libICE.so.6 (0x00007f2ef11a5000) libtiff.so.4 => /usr/lib/libtiff.so.4 (0x00007f2ef0f43000) libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x00007f2ef0d1e000) libpng12.so.0 => /lib/libpng12.so.0 (0x00007f2ef0af7000) libz.so.1 => /lib/libz.so.1 (0x00007f2ef08e0000) libgif.so.4 => /usr/lib/libgif.so.4 (0x00007f2ef06d6000) libXpm.so.4 => /usr/lib/libXpm.so.4 (0x00007f2ef04c5000) libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f2ef018f000) libXrender.so.1 => /usr/lib/libXrender.so.1 (0x00007f2eeff84000) libXft.so.2 => /usr/lib/libXft.so.2 (0x00007f2eefd6f000) libasound.so.2 => /usr/lib/libasound.so.2 (0x00007f2eefa8e000) librsvg-2.so.2 => /usr/lib/librsvg-2.so.2 (0x00007f2eef856000) libdbus-1.so.3 => /lib/libdbus-1.so.3 (0x00007f2eef617000) libpthread.so.0 => /lib/libpthread.so.0 (0x00007f2eef3fa000) libxml2.so.2 => /usr/lib/libxml2.so.2 (0x00007f2eef0a9000) libgpm.so.2 => /usr/lib/libgpm.so.2 (0x00007f2eeeea2000) libncurses.so.5 => /lib/libncurses.so.5 (0x00007f2eeec5f000) libgconf-2.so.4 => /usr/lib/libgconf-2.so.4 (0x00007f2eeea21000) libselinux.so.1 => /lib/libselinux.so.1 (0x00007f2eee803000) libotf.so.0 => /usr/lib/libotf.so.0 (0x00007f2eee5ef000) libm17n-flt.so.0 => /usr/lib/libm17n-flt.so.0 (0x00007f2eee3e4000) libm17n-core.so.0 => /usr/lib/libm17n-core.so.0 (0x00007f2eee1b7000) libgnutls.so.26 => /usr/local/lib/libgnutls.so.26 (0x00007f2eedf0b000) libc.so.6 => /lib/libc.so.6 (0x00007f2eedb87000) libXext.so.6 => /usr/lib/libXext.so.6 (0x00007f2eed975000) libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x00007f2eed772000) libXi.so.6 => /usr/lib/libXi.so.6 (0x00007f2eed561000) libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0x00007f2eed358000) libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x00007f2eed14e000) libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0x00007f2eecf4a000) libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0x00007f2eecd47000) libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x00007f2eecb41000) libdl.so.2 => /lib/libdl.so.2 (0x00007f2eec93c000) libpcre.so.3 => /lib/libpcre.so.3 (0x00007f2eec70e000) libresolv.so.2 => /lib/libresolv.so.2 (0x00007f2eec4f4000) libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0x00007f2eec29b000) libdirectfb-1.2.so.0 => /usr/lib/libdirectfb-1.2.so.0 (0x00007f2eec017000) libfusion-1.2.so.0 => /usr/lib/libfusion-1.2.so.0 (0x00007f2eebe0d000) libdirect-1.2.so.0 => /usr/lib/libdirect-1.2.so.0 (0x00007f2eebbf4000) libxcb-render-util.so.0 => /usr/lib/libxcb-render-util.so.0 (0x00007f2eeb9ef000) libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0x00007f2eeb7e6000) libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f2eeb5ca000) libexpat.so.1 => /lib/libexpat.so.1 (0x00007f2eeb3a0000) /lib64/ld-linux-x86-64.so.2 (0x00007f2ef412a000) libuuid.so.1 => /lib/libuuid.so.1 (0x00007f2eeb19b000) libgsf-1.so.114 => /usr/lib/libgsf-1.so.114 (0x00007f2eeaf5b000) libcroco-0.6.so.3 => /usr/lib/libcroco-0.6.so.3 (0x00007f2eead22000) libORBit-2.so.0 => /usr/lib/libORBit-2.so.0 (0x00007f2eeaab3000) libdbus-glib-1.so.2 => /usr/lib/libdbus-glib-1.so.2 (0x00007f2eea891000) libthai.so.0 => /usr/lib/libthai.so.0 (0x00007f2eea688000) libtasn1.so.3 => /usr/lib/libtasn1.so.3 (0x00007f2eea476000) libgcrypt.so.11 => /lib/libgcrypt.so.11 (0x00007f2eea1fe000) libgpg-error.so.0 => /lib/libgpg-error.so.0 (0x00007f2ee9ffa000) libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f2ee9df5000) libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f2ee9bef000) libbz2.so.1.0 => /lib/libbz2.so.1.0 (0x00007f2ee99dd000) libdatrie.so.1 => /usr/lib/libdatrie.so.1 (0x00007f2ee97d7000) 16:35:09 retriever emacs $ On 1/8/12, Stefan Monnier wrote: >> Before starting Emacs: `free' shows 2gb in use. > > FWIW, "free" is not a very good tool to track the memory use of > a specific process. Better check the VSZ and RSS of the process itself > (and note that RSS can stay stable even in the presence of a leak, > so VSZ is important). > >> Start Emacs 24 -- with just emacspeak loaded -- no immediate >> signs of a leak -- `free' shows abut 6gb in use -- which does >> seem a lot. > > What is Emacs's RSS and/or VSZ at startup? > >> M-x shell in that emacs >> and wait for a couple of minutes. > >> Running `free' on a separate terminal shows that all 12GB of >> memory in use -- emacs RSS is at 10GB. > >> If you dont kill the runnning emacs-24 at that point, it brings >> the workstation to its knees and the machine stops responding and >> needs to be rebooted. > > So you're saying that "emacs -Q" plus emacspeak plus "M-x shell" results > on this machine in a process hat keeps growing even if you leave > it alone? > Could you run it under GDB (from the `emacs/src' directory) and > interrupt the process (with C-z) every once in a while to try and see > what it's doing? > > > Stefan >