Subject: bug#1053: 23.0.60; 600 MB memory not freed after keyboard-quit

From: "Peter Tury" <[email-masked]>
Date: Mon, 29 Sep 2008 21:20:00 +0200

Hi,

I am not sure if this is a real bug...

I run this function for ~1.5 hours without stopping:

(defun yyy (n k &optional tup)
  (if (< 0 k)
      (mapcar (lambda (x)
              (when (or (null tup)
                        (> x (car (last tup))))
                (yyy n (1- k) (append tup (list x)))))
            (number-sequence 1 n))
    ;(message "%S" tup) <- yes, this was commented out
    ))

;; I started yyy this way:
(progn
  (message "start: %s" (current-time-string))
  (yyy 90 5)
  (message "end: %s" (current-time-string)))

((I know mapc should be used above instead of mapcar; but think this
is a test program. It caused Emacs22 to give a "Warning! Memory limit
exceeded" on Windows2000 with 4GB memory, after running for ~20
minutes... -- now I tried to reproduce this on Linux with Emacs23 with
1 GB memory. The warning didn't come, but the following happened: ))

Emacs eat up all of the memory + a big chunk of the swap: Emacs itself
used ~620MB memory after 1.5 hours (not really increasing after some
time). Then I decided to stop it. Went to Emacs and typed C-g. Nothing
happened for a while, but after that buffer content was redrawn and I
could move the point (with the arroy keys): I thought yyy-process is
stopped and I can use Emacs again. But after a while Emacs again
stopped responding. Even the buffer content was not redrawn. I tried
C-g again and again, but nothing happened. I hoped just memory freeing
takes a long time, so left my PC for some minutes. This didn't helped
either. But after a while I could again use Emacs: killed the buffer
(containing yyy) and moved around the point just to see it works. But
memory still was occupied: Emacs used ~600MB. Later I killed Emacs
(with C-x C-c) and got back the memory.

I think Emacs should free the memory if I stop the process (with C-g)
what filled up the memory...at least after some minutes garbage
collection should work? Or is this behaviour described above a feature
of (keyboard-)quit?

Thanks,
P

----------

In GNU Emacs 23.0.60.1 (i686-pc-linux-gnu, GTK+ Version 2.12.9)
 of 2008-09-03 on ubuntu-tury
Windowing system distributor `The X.Org Foundation', version 11.0.10400090
configured using `configure  '--with-xft=no''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: hu_HU.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default-enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:
  savehist-mode: t
  which-function-mode: t
  show-paren-mode: t
  recentf-mode: t
  iswitchb-mode: t
  icomplete-mode: t
  display-time-mode: t
  desktop-save-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
<help-echo> <help-echo> <help-echo> <help-echo> <menu-bar>
<file> <Open Recent> <emacs-lisp (5)> </home/xxx/emacs/trials/lotto2.el>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <help-echo>
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
<help-echo> <help-echo> <help-echo> <menu-bar> <help-menu>
<send-emacs-bug-report>

Recent messages:
Loading info...done
uncompressing parted.info.gz...done
uncompressing parted.info.gz...done
uncompressing parted.info.gz...done
Loading vc-cvs...done
Loading cc-mode...done
hellow.java has auto save data; consider M-x recover-this-file
Wrote /home/xxx/.emacs.desktop.lock
Desktop: 6 buffers restored.
For information about GNU Emacs and the GNU system, type C-h C-a.