GNU bug report logs - #35429
27.0.50; Arbitrary xdisp.c related crashes when working with overlay-using packages

Previous Next

Package: emacs;

Reported by: Kaushal Modi <kaushal.modi <at> gmail.com>

Date: Thu, 25 Apr 2019 15:38:02 UTC

Severity: normal

Found in version 27.0.50

Done: Kaushal Modi <kaushal.modi <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Kaushal Modi <kaushal.modi <at> gmail.com>
Cc: 35429 <at> debbugs.gnu.org
Subject: Re: bug#35429: 27.0.50;
 Arbitrary xdisp.c related crashes when working with overlay-using
 packages
Date: Thu, 25 Apr 2019 23:25:39 +0300
> From: Kaushal Modi <kaushal.modi <at> gmail.com>
> Date: Thu, 25 Apr 2019 11:36:27 -0400
> 
> In the past one-two weeks

Any chance for a more accurate time frame?  Or maybe even bisection?

> I have been noticing arbitrary crashes when working in Org mode, with other
> packages like org-tree-slide and artist-mode. My guess is that this has to do with packages dealing with
> overlays.
> 
> I do not have a reproducible recipe, but this time, I got the full backtrace (attached as gdb.txt).

Thanks.  Unfortunately, the backtrace makes no sense to me.  The
buffer was pure ASCII, right?  At least for the first 2K characters it
seems the answer is yes, because:

> #4  0x0000000000584793 in line_number_display_width (w=w <at> entry=0x89da880, width=width <at> entry=0x7fffffff43dc, pixel_width=pixel_width <at> entry=0x7fffffff43e0) at indent.c:1981
>         startpos = {
>           charpos = 2874, 
>           bytepos = 2874
>         }

As you see, the character and the byte positions coincide, which is a
sign of a plain ASCII buffer text.

So it makes little sense that the assertion is violated, because it is
called to validate the same character position of 2874:

> #1  0x00000000005a1232 in die (msg=msg <at> entry=0x680450 "charpos == BYTE_TO_CHAR (bytepos)", file=file <at> entry=0x67dc6a "xdisp.c", line=line <at> entry=3047) at alloc.c:7221
> No locals.
> #2  0x0000000000456b44 in init_iterator (it=it <at> entry=0x7fffffff3040, w=w <at> entry=0x89da880, charpos=2874, bytepos=<optimized out>, row=<optimized out>, base_face_id=base_face_id <at> entry=DEFAULT_FACE_ID) at xdisp.c:3047

So something strange is at work here, and I cannot see what it could
be, especially with all those "optimized out" variables.

I would suggest to try an unoptimized build, and if the same crashes
happen there as well, perhaps the backtrace will tell something more
useful.  It would help to know the value of bytepos argument to
init_iterator, and if it indeed is equal to charpos, the next thing to
look at is the buffer's markers.

Thanks.




This bug report was last modified 6 years and 18 days ago.

Previous Next


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