[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

emacs aborts in relinquish() during gc

From: Doug Maxey
Subject: emacs aborts in relinquish() during gc
Date: Tue, 05 Mar 2002 11:21:20 -0600
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.4) Gecko/20011128 Netscape6/6.2.1

--text follows this line--
This bug report will be sent to the Free Software Foundation,
not to your local site managers!
Please write in English, because the Emacs maintainers do not have
translators to read other languages for them.

Your bug report will be posted to the address@hidden mailing list,
and to the gnu.emacs.bug news group.

In GNU Emacs 21.1.1 (powerpc-ibm-aix4.3.2.0, Motif Version 2.1.0)
of 2001-11-16 on falcon10.austin.ibm.com
configured using `configure --without-gcc --x-includes=/usr/lpp/X11/include --x-libraries=/usr/lpp/X11/lib/R6 --with-x-toolkit=motif --with-x'
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: C
 locale-coding-system: iso-latin-1
 default-enable-multibyte-characters: nil

Please describe exactly what actions triggered the bug
and the precise symptoms of the bug:

It appears that something is going wrong during garbage collection,
causing relinquish() to abort.

Attached is a stack dump from dbx, along with a little more info on
some variables.  This is a regular occurrence, especially with
multiple windows(frames) open on several different files.

It usually occurs when emacs is sitting idle, and there does not
appear to be a significant event that triggers this.

One other point, this is occurring on a 32 bit machine with 12 gig of
memory, although I have seen similar occurrences on a 32 bit machine
with 756 meg.

Script started on Wed Feb 27 14:16:26 2002sh-2.04
$ dbx emacs core-2002-02-27-sitting-idle
Type 'help' for help.
reading symbolic information ...
[using memory image in core-2002-02-27-sitting-idle]

IOT/Abort trap in fatal_error_signal at line 354 in file "emacs.c" ($t1)
 354     kill (getpid (), fatal_error_code);
(dbx) t
fatal_error_signal(sig = 6), line 354 in "emacs.c"
emacs.abort(), line 387 in "emacs.c"
relinquish(), line 353 in "ralloc.c"
r_alloc_sbrk(0xffeb2000), line 932 in "ralloc.c"
unnamed block $b2664, line 1134 in "gmalloc.c"
unnamed block $b2662, line 1134 in "gmalloc.c"
_free_internal(0x21952000), line 1134 in "gmalloc.c"
free(0x21952000), line 1229 in "gmalloc.c"
_free_internal(0x21952c00), line 1182 in "gmalloc.c"
free(0x21952c00), line 1229 in "gmalloc.c"
emacs_blocked_free(0x21952c00), line 688 in "alloc.c"
free(0x21952c00), line 1227 in "gmalloc.c"
lisp_free(0x21952c00), line 630 in "alloc.c"
unnamed block $b1929, line 5016 in "alloc.c"
unnamed block $b1928, line 5016 in "alloc.c"
gc_sweep(), line 5016 in "alloc.c"
Fgarbage_collect(), line 4189 in "alloc.c"
unnamed block $b1260, line 2505 in "keyboard.c"
unnamed block $b1259, line 2505 in "keyboard.c"
read_char(0x1, 0x3, 0x2ff209f0, 0x101a4c04, 0x2ff20a9c), line 2505 in "keyboard.c"
unnamed block $b1167, line 8180 in "keyboard.c"
unnamed block $b1166, line 8180 in "keyboard.c"
read_key_sequence(0x2ff20cf0, 0x1e, 0x101a4c04, 0x0, 0x1, 0x1), line 8180 in "keyboard.c"
command_loop_1(), line 1440 in "keyboard.c"
internal_condition_case(0x200d2320, 0x101c28c4, 0x200d2314), line 1267 in "eval.c"
command_loop_2(), line 1245 in "keyboard.c"
internal_catch(0x101b6ea4, 0x200d232c, 0x101a4c04), line 1030 in "eval.c"
command_loop(), line 1224 in "keyboard.c"
recursive_edit_1(), line 950 in "keyboard.c"
Frecursive_edit(), line 1006 in "keyboard.c"
main(argc = 1, argv = 0x2ff213e4, envp = 0x2ff213ec), line 1547 in "emacs.c"
(dbx) up 2
relinquish(), line 353 in "ralloc.c"
(dbx) dump
relinquish(), line 353 in "ralloc.c"
h = (nil)
excess = 1316552
(dbx) list relinquish
 327   static void
 328   relinquish ()
 329   {
 330     register heap_ptr h;
 331     int excess = 0;
 333     /* Add the amount of space beyond break_value
 334        in all heaps which have extend beyond break_value at all.  */
 336     for (h = last_heap; h && break_value < h->end; h = h->prev)
(dbx) p last_heap
(dbx) l
 337       {
338 excess += (char *) h->end - (char *) ((break_value < h->bloc_start)
 339                           ? h->bloc_start : break_value);
 340       }
342 if (excess > extra_bytes * 2 && (*real_morecore) (0) == last_heap->end)
 343       {
 344         /* Keep extra_bytes worth of empty space.
345 And don't free anything unless we can free at least extra_bytes. */
 346         excess -= extra_bytes;
(dbx) l
348 if ((char *)last_heap->end - (char *)last_heap->bloc_start <= excess)
 349       {
 350         /* This heap should have no blocs in it.  */
 351         if (last_heap->first_bloc != NIL_BLOC
 352             || last_heap->last_bloc != NIL_BLOC)
 353           abort ();
 355         /* Return the last heap, with its header, to the system.  */
 356         excess = (char *)last_heap->end - (char *)last_heap->start;
(dbx) p *last)\)/_heap
(next = (nil), prev = 0x2018f620, start = 0x21a4d090, end = 0x21ad4000, bloc_start = 0x21a4d0b0, free = 0x21ac76b8, first_bloc = 0x2065f2a0, last_bloc = 0x212d3680)
(dbx) p extra_bytes
(dbx) q
sh-2.04$ exit

script done on Wed Feb 27 14:58:17 2002---------

Recent input:
<mouse-1> <mouse-1> <mouse-1> <down-mouse-1> <mouse-movement>
<mouse-1> C-s C-w C-s C-s C-s C-s C-s C-s C-s C-s C-s
C-s C-s C-s C-s <switch-frame> C-x b <return> M-x d
e s k t o p <tab> s a <tab> <return> <M-backspace>
<M-backspace> <M-backspace> <M-backspace> <M-backspace>
<M-backspace> <M-backspace> <M-backspace> <M-backspace>
<M-backspace> <M-backspace> <M-backspace> <M-backspace>
<M-backspace> <M-backspace> C-g C-g M-x M-p <return>
<M-backspace> <M-backspace> <M-backspace> <M-backspace>
<M-backspace> <M-backspace> <return> <switch-frame>
<help-echo> <switch-frame> <down-mouse-1> <mouse-movement>
<mouse-1> <help-echo> <switch-frame> <switch-frame>
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
<down-mouse-1> <mouse-1> M-x b u g - <tab> <backspace>
<backspace> <backspace> <backspace> r e p o r t <tab>
<tab> <return>

Recent messages:
Mark saved where search started
Mark set [2 times]
Mark saved where search started
byte-code: Text is read-only: #<buffer  *Minibuf-1*>
execute-extended-command: Quit
keyboard-quit: Quit
Loading emacsbug...done

reply via email to

[Prev in Thread] Current Thread [Next in Thread]