Subject: bug#15719: closed (Re: bug#17168: 24.3.50; Segfault at mark_object)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 07 Apr 2014 18:41:06 +0000

Your bug report

#17168: 24.3.50; crash in GC (again)

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
17168: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17168
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#17168: 24.3.50; Segfault at mark_object
From: Stefan Monnier <[email-masked]>
To: Daniel Colascione <[email-masked]>
Cc: Dmitry Antipov <[email-masked]>, [email-masked]
Date: Mon, 07 Apr 2014 12:28:20 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

> 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

Subject: 24.3.50; crash in GC (again)
From: Richard Stallman <[email-masked]>
To: [email-masked]
Date: Fri, 25 Oct 2013 15:50:06 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

I got another crash in GC, and it was from the same symbol,
clear-temporary-overlay-map.

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 [email-masked]
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 messages:
Expunging deleted messages...done
Sending...
Wrote /home/rms/outgoing/out-52
Sending...done
Expunging deleted messages...done
Mark set [2 times]
Sending...
Wrote /home/rms/outgoing/out-53
Sending...done
Expunging deleted messages...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

-- 
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.