GNU bug report logs - #6618
24.0.50; stack overflow in equal

Previous Next

Package: emacs;

Reported by: john ffitch <jpff <at> codemist.co.uk>

Date: Mon, 12 Jul 2010 11:03:03 UTC

Severity: normal

Found in version 24.0.50

Done: Chong Yidong <cyd <at> stupidchicken.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 6618 in the body.
You can then email your comments to 6618 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#6618; Package emacs. (Mon, 12 Jul 2010 11:03:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to john ffitch <jpff <at> codemist.co.uk>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 12 Jul 2010 11:03:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: john ffitch <jpff <at> codemist.co.uk>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.0.50; stack overflow in equal
Date: Mon, 12 Jul 2010 12:01:44 +0100
If I start emacs with my usual command line I get a stack overflow

harvey:~/GNU_21/emacs/trunk> src/emacs -geometry 84x46+64+10 -fn "-etl-fixed-medium-r-normal--16-160-72-72-c-80-iso8859-1"
Stack overflow in equal
harvey:~/GNU_21/emacs/trunk> 

if I omit the font infprmation it starts.  I have been using this font
for a very long time.  This is with update from bzr this morning.  



In GNU Emacs 24.0.50.8 (x86_64-unknown-linux-gnu, GTK+ Version 2.18.6)
 of 2010-07-12 on harvey
Windowing system distributor `The X.Org Foundation', version 11.0.10605000
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: en_GB.UTF-8
  value of $XMODIFIERS: @im=local
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Mail

Minor modes in effect:
  auto-image-file-mode: t
  show-paren-mode: t
  display-time-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
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t
  abbrev-mode: t

Recent input:
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> C-x C-f ~ / d i a <tab> <return> 
C-v <down-mouse-1> <mouse-1> C-x C-f R M A <tab> <return> 
y M-R p r e m i e r <return> M-m C-x C-k <return> M-x 
n C-g M-x r e p o r <tab> <return>

Recent messages:
Parsing /home/jpff/.mailrc... done
Invalid face reference: my-trailing-space-face [10 times]
No keyboard macro defined.  Create one? (y or n) 
Invalid face reference: my-trailing-space-face [5 times]
Please answer y or n.  No keyboard macro defined.  Create one? (y or n) 
Invalid face reference: my-trailing-space-face [5 times]
QuitInvalid face reference: my-trailing-space-face
Invalid face reference: my-trailing-space-face [4 times]
QuitInvalid face reference: my-trailing-space-face
Invalid face reference: my-trailing-space-face [19 times]

Load-path shadows:
/home/jpff/GNU_21/local-lisp/autotest-mode hides /usr/local/share/emacs/site-lisp/autotest-mode
/home/jpff/GNU_21/local-lisp/autoconf-mode hides /usr/local/share/emacs/site-lisp/autoconf-mode
/home/jpff/GNU_21/local-lisp/scroll-lock hides /home/jpff/GNU_21/emacs/trunk/lisp/scroll-lock
/home/jpff/GNU_21/local-lisp/t-mouse hides /home/jpff/GNU_21/emacs/trunk/lisp/t-mouse
/home/jpff/GNU_21/local-lisp/ruler-mode hides /home/jpff/GNU_21/emacs/trunk/lisp/ruler-mode
/home/jpff/GNU_21/local-lisp/emerge hides /home/jpff/GNU_21/emacs/trunk/lisp/vc/emerge
/home/jpff/GNU_21/local-lisp/url-gw hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-gw
/home/jpff/GNU_21/local-lisp/url-file hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-file
/home/jpff/GNU_21/local-lisp/url-cid hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-cid
/home/jpff/GNU_21/local-lisp/url-parse hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-parse
/home/jpff/GNU_21/local-lisp/url-cache hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-cache
/home/jpff/GNU_21/local-lisp/url-http hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-http
/home/jpff/GNU_21/local-lisp/url-misc hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-misc
/home/jpff/GNU_21/local-lisp/url hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url
/home/jpff/GNU_21/local-lisp/url-auth hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-auth
/home/jpff/GNU_21/local-lisp/url-ldap hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-ldap
/home/jpff/GNU_21/local-lisp/url-news hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-news
/home/jpff/GNU_21/local-lisp/url-vars hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-vars
/home/jpff/GNU_21/local-lisp/url-cookie hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-cookie
/home/jpff/GNU_21/local-lisp/url-nfs hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-nfs
/home/jpff/GNU_21/local-lisp/url-ns hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-ns
/home/jpff/GNU_21/local-lisp/url-irc hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-irc
/home/jpff/GNU_21/local-lisp/remember hides /home/jpff/GNU_21/emacs/trunk/lisp/textmodes/remember
/home/jpff/GNU_21/local-lisp/socks hides /home/jpff/GNU_21/emacs/trunk/lisp/net/socks

Features:
(shadow emacsbug edmacro kmacro mailabbrev mailalias etach sendmail
mime-compose mail-alias-menu mailcrypt mail-extr comint ring rmail
mail-utils eldoc package image-file logger crypt crypt++ crypt+pgp-pub
paren cal-julian uniquify advice help-fns advice-preload view
cal-china cal-bahai cal-islam cal-hebrew lunar solar cal-dst appt
diary-lib diary-loaddefs holidays hol-loaddefs regexp-opt cal-menu
easymenu calendar cal-loaddefs time tooltip ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image fringe
lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar
mldrag mouse jit-lock font-lock syntax facemenu font-core frame cham
georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese hebrew greek romanian slovak czech european ethiopic
indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple
abbrev loaddefs button minibuffer faces cus-face files text-properties
overlay md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process
dynamic-setting font-render-setting gtk x-toolkit x multi-tty emacs)

==John ffitch




Information forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#6618; Package emacs. (Tue, 13 Jul 2010 14:20:03 GMT) Full text and rfc822 format available.

Message #8 received at 6618 <at> debbugs.gnu.org (full text, mbox):

From: Bernhard Herzog <bernhard.herzog <at> intevation.de>
To: 6618 <at> debbugs.gnu.org
Subject: Bug was probably introduced by revision 100788
Date: Tue, 13 Jul 2010 12:39:08 +0200
I'm running into the same problem and I've debugged it a little. AFAICT the 
problem was introduced with revision 100788.  The revision immediately before 
that works fine, but I can observer the problem with revision 100788.  The 
ChangeLog entry for this is

2010-07-12  Kenichi Handa  <handa <at> m17n.org>

       * font.h (enum font_property_index): New member FONT_ENTITY_INDEX.

       * font.c (font_open_entity): Record ENTITY in FONT_OBJECT's slot
       of FONT_ENTITY_INDEX.
       (Ffont_get): If KEY is :otf and the font-object doesn't have the
       property, get the property value dynamically.
       (Ffont_put): Accept font-entity and font-object too.
       (Ffont_get_glyhphs): Renamed from Fget_font_glyphs.  Arguments and
       return value changed.
       (syms_of_font): Adjusted for the above change.

It's most likely the first change in font.c: "Record ENTITY in FONT_OBJECT's 
slot of FONT_ENTITY_INDEX.":

--- src/font.c  2010-07-11 10:31:10 +0000
+++ src/font.c  2010-07-12 02:28:50 +0000
@@ -3005,7 +3005,7 @@
     return Qnil;
   ASET (entity, FONT_OBJLIST_INDEX,
        Fcons (font_object, AREF (entity, FONT_OBJLIST_INDEX)));
-  ASET (font_object, FONT_OBJLIST_INDEX, Qnil);
+  ASET (font_object, FONT_ENTITY_INDEX, entity);
   num_fonts++;
 
   font = XFONT_OBJECT (font_object);

This introduces circular references: font_object now refers to entity and 
entity refers back to font_object.  This probably leads to the stack overflow 
in equal later on.  A backtrace in gdb looks like this, after about 200 
recursive calls of internal_equal:

#200 0x081a2012 in internal_equal (o1=<value optimized out>, o2=149618949, 
    depth=<value optimized out>, props=0) at fns.c:2127
#201 0x081a2012 in internal_equal (o1=<value optimized out>, o2=149761965, 
    depth=<value optimized out>, props=0) at fns.c:2127
#202 0x081a21ba in Fequal (o1=141309301, o2=149761965) at fns.c:2015
#203 0x080ddd67 in Finternal_set_lisp_face_attribute (face=138409674, 
    attr=138389402, value=149761965, frame=150016069) at xfaces.c:3288


  Bernhard




Information forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#6618; Package emacs. (Wed, 14 Jul 2010 04:02:01 GMT) Full text and rfc822 format available.

Message #11 received at 6618 <at> debbugs.gnu.org (full text, mbox):

From: Kenichi Handa <handa <at> m17n.org>
To: Bernhard Herzog <bernhard.herzog <at> intevation.de>
Cc: 6618 <at> debbugs.gnu.org
Subject: Re: bug#6618: Bug was probably introduced by revision 100788
Date: Wed, 14 Jul 2010 13:01:51 +0900
In article <201007131239.08209.bernhard.herzog <at> intevation.de>, Bernhard Herzog <bernhard.herzog <at> intevation.de> writes:

> I'm running into the same problem and I've debugged it a little. AFAICT the 
> problem was introduced with revision 100788.  The revision immediately before 
> that works fine, but I can observer the problem with revision 100788.  The 
> ChangeLog entry for this is

> 2010-07-12  Kenichi Handa  <handa <at> m17n.org>

>        * font.h (enum font_property_index): New member FONT_ENTITY_INDEX.

>        * font.c (font_open_entity): Record ENTITY in FONT_OBJECT's slot
>        of FONT_ENTITY_INDEX.
>        (Ffont_get): If KEY is :otf and the font-object doesn't have the
>        property, get the property value dynamically.
>        (Ffont_put): Accept font-entity and font-object too.
>        (Ffont_get_glyhphs): Renamed from Fget_font_glyphs.  Arguments and
>        return value changed.
>        (syms_of_font): Adjusted for the above change.

> It's most likely the first change in font.c: "Record ENTITY in FONT_OBJECT's 
> slot of FONT_ENTITY_INDEX.":

Thank you for finding that problem.  The reason of recording
ENTITY in FONT-OBJECT is that we can get :otf property only
from FONT-OBJECT, but the property should be common to all
font-ojbects realized from the same ENTITY.  So, I wanted a
way to get ENTITY from FONT-OBJECT.  I've just committed a
change to cancel that recording.

As a result, we should re-caliculate :otf property of a font
whose sibling (i.e. a font-object realized from the same
entity but with different size) already know it.  But,
perhaps, that doesn't influence the redisplay speed that
match.

---
Kenichi Handa
handa <at> m17n.org




Information forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#6618; Package emacs. (Fri, 16 Jul 2010 08:39:01 GMT) Full text and rfc822 format available.

Message #14 received at submit <at> debbugs.gnu.org (full text, mbox):

From: john ffitch <jpff <at> codemist.co.uk>
To: bug-gnu-emacs <at> gnu.org
Subject: Re: 24.0.50; stack overflow in equal
Date: Fri, 16 Jul 2010 09:38:03 +0100
Sorry -- I seem to have lost the bug number, but this is now OK -- thanks
==John ffitch




bug closed, send any further explanations to john ffitch <jpff <at> codemist.co.uk> Request was from Chong Yidong <cyd <at> stupidchicken.com> to control <at> debbugs.gnu.org. (Fri, 16 Jul 2010 15:21:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 14 Aug 2010 11:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 15 years and 26 days ago.

Previous Next


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