Subject: bug#34256: 27.0.50; Crash on draw_glyphs()

From: Eli Zaretskii <[email-masked]>
Date: Thu, 31 Jan 2019 16:02:52 +0200

> From: Kaushal Modi <[email-masked]>
> Date: Wed, 30 Jan 2019 15:54:06 -0500
> Cc: [email-masked]
> 
> > This says Emacs was trying to display an image, but what image is
> > that?  Where did it come from?
> 
> 
> It's the inline image display in the Org mode buffer.

OK.

> >   And could it be that the new native
> > image scaling is the reason for this (i.e., was the image supposed to
> > be resized)?  Hmm, but you built with ImageMagick, which AFAIU means
> > the native  resizing code should not be invoked...
> >
> 
> Imagemagick is probably not getting invoked.
> 
> Org is using this part of the code to create image overlays:
> https://code.orgmode.org/bzg/org-mode/src/8ba23b9ce18d947a0241017ff33015a7807f615d/lisp/org.el#L18630-L18631
> .
> 
> (create-image file
>                         (and width 'imagemagick)
>                         nil
>                         :width width)
> 
> That `width' variable is nil, so effectively this is happening:
> 
> (create-image file nil nil :width nil)

OK, so image resizing is still a suspect.  Do you have HAVE_XRENDER
defined in src/config.h?

> >   (gdb) frame 2
> >   (gdb) p *s->first_glyph
> >
> 
> Here it is:
> 
> (gdb) frame 2
> #2  0x00000000004378fe in fill_image_glyph_string (s=s@entry=0x7fffffff7aa0)
> at xdisp.c:26154
> 26154     eassert (s->img);
> (gdb) p *s->first_glyph
> $1 = {
>   charpos = 50512,
>   object = XIL(0x47ba435),
>   pixel_width = 404,
>   ascent = 80,
>   descent = 81,
>   voffset = 0,
>   type = 3,
>   [...]
>   u = {
>     ch = 0,
>     cmp = {
>       automatic = false,
>       id = 0
>     },
>     img_id = 0,

img_id = 0 is unusual for an image in a buffer.  Are you running with
the tool bar disabled, perhaps?

And what do these show in the same call-stack frame #2:

  (gdb) p FRAME_IMAGE_CACHE (s->f)->used
  (gdb) p FRAME_IMAGE_CACHE (s->f)->images[0]

Thanks.