GNU bug report logs - #17168
24.3.50; Segfault at mark_object

Previous Next

Package: emacs;

Reported by: Nicolas Richard <theonewiththeevillook <at> yahoo.fr>

Date: Wed, 2 Apr 2014 07:45:05 UTC

Severity: important

Tags: moreinfo

Merged with 15583, 15688, 15719, 15972, 16278, 16521, 17167, 17184

Found in version 24.3.50

Done: Stefan Monnier <monnier <at> IRO.UMontreal.CA>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#15688: closed (24.3.50; clear-temporary-overlay-map)
Date: Mon, 07 Apr 2014 18:41:05 +0000
[Message part 1 (text/plain, inline)]
Your message dated Mon, 07 Apr 2014 12:28:20 -0400
with message-id <jwv4n25qfyx.fsf-monnier+emacsbugs <at> gnu.org>
and subject line Re: bug#17168: 24.3.50; Segfault at mark_object
has caused the debbugs.gnu.org bug report #17168,
regarding 24.3.50; clear-temporary-overlay-map
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
17168: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17168
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Richard Stallman <rms <at> gnu.org>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.3.50; clear-temporary-overlay-map
Date: Tue, 22 Oct 2013 20:09:13 -0400
I found that the crashes in GC result from trying to mark
clear-temporary-overlay-map.  Its function cell is
a vectorlike which pr reports as #<invalid-lisp-object ADDR>.

The presence of such an object in the function cell is a bug,
and it seems to me that for GC to try to mark the contents
of a vectorlike with such a type is a second bug.




In GNU Emacs 24.3.50.11 (mips64el-unknown-linux-gnu, GTK+ Version 2.20.1)
 of 2013-10-03 on chiefs-gnewsense
Bzr revision: 114502 monnier <at> iro.umontreal.ca-20131002233348-j245zww7t0dfmeng
System Description:	gNewSense GNU/Linux 3.0 (parkes)

Configured using:
 `configure 'CFLAGS=-g -O0''

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: RMAIL

Minor modes in effect:
  shell-dirtrack-mode: t
  gpm-mouse-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t
  abbrev-mode: t

Recent input:
r a . x TAB RET d d d u x 1 r C-u C-p C-u C-p C-p C-p 
C-p ESC f C-f C-f C-k C-x o C-u C-n C-n ESC f C-f C-f 
C-@ C-e ESC w C-x o C-y C-a C-u C-n C-u C-n C-n C-n 
C-n C-o W h a t SPC f o r m a t SPC d o SPC t h e y 
SPC ESC DEL ESC DEL w i l l SPC b e SPC u s e d SPC 
f o r SPC t h e SPC s t r e a m i n g ? C-c C-c d d 
d d x SPC C-s [ 2 3 ] C-s C-a C-n W C-c C-c ESC v d 
d d x T C-c C-c d d d d d d d d d d x C-x b i n o u 
t RET ESC x g r e p RET C-g C-x b TAB RET i x m a i 
l / l a p t o p TAB RET C-l ESC - ESC s b u n n i e 
RET ESC - ESC s RET C-@ C-e ESC w C-x b R TAB 1 RET 
C-x k RET C-x b 1 r DEL DEL C-g 1 r L a SPC d i r e 
c c C-\ i o ' n SPC q u e SPC t e n g o SPC e s SPC 
C-y . RET C-c C-c C-x k RET RET y e s RET r C-_ C-@ 
C-p ESC w C-x o r C-y C-c C-c d d d ESC x r e p o r 
t SPC e m a s SPC DEL DEL c DEL a c s SPC b u g RE
T

Recent messages:
Mark set
Sending...
Wrote /home/rms/outgoing/out-92
Sending...done
Please answer yes or no.
Undo!
Mark set [2 times]
Sending...
Wrote /home/rms/outgoing/out-93
Sending...done

Load-path shadows:
/home/rms/emacs-bzr/trunk/lisp/net/shr-color hides /home/rms/emacs-bzr/trunk/lisp/gnus/shr-color
/home/rms/emacs-bzr/trunk/lisp/net/shr hides /home/rms/emacs-bzr/trunk/lisp/gnus/shr

Features:

-- 
Dr Richard Stallman
President, Free Software Foundation
51 Franklin St
Boston MA 02110
USA
www.fsf.org  www.gnu.org
Skype: No way! That's nonfree (freedom-denying) software.
  Use Ekiga or an ordinary phone call.



[Message part 3 (message/rfc822, inline)]
From: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
To: Daniel Colascione <dancol <at> dancol.org>
Cc: Dmitry Antipov <dmantipov <at> yandex.ru>, 17168-done <at> debbugs.gnu.org
Subject: Re: bug#17168: 24.3.50; Segfault at mark_object
Date: Mon, 07 Apr 2014 12:28:20 -0400
> Anyway, I'd like to get a fix into emacs-24 soon so we can make sure
> we've fixed the GC bug.

I installed a fix into emacs-24, which lets all symbols be uninterned.

> Are you vetoing the general approach used in this patch?

No: I think disallowing unintern is a good idea, but not for emacs-24.

Indeed, as it turns out, the only non-pure objects referenced from pure
space are symbols and distinguishing uninterned from interned reduces
the number of such "pinned" objects from about 10K to about 250.

Rather than scan all symbols to find the pinned ones, the code
I installed into emacs-24 keeps a pointer to the first symbol_block
that contains a pinned symbol.  This way we only scan about 15K symbols
at the beginning of every GC cycle to mark those 10K pinned symbols.
Compared to keeping a vector of 10K object, this seems like
a good tradeoff.

For trunk, we could disallow uninterning pinned symbols, at which point
it's worth the trouble to build a vector of those 250 remaining
pinned symbols.


        Stefan


This bug report was last modified 11 years and 47 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.