Subject: bug#27668: 26.0.50; Crash with display-line-numbers t

From: Robert Pluim <[email-masked]>
Date: Thu, 13 Jul 2017 18:42:49 +0200

Eli Zaretskii <[email-masked]> writes:

>> From: Robert Pluim <[email-masked]>
>> Date: Thu, 13 Jul 2017 10:28:42 +0200
>> 
>> It's always approximately twice the correct one. In the two cases I
>> have so far it's 67:138 and 47:98. That's a ratio of n:(2n + 4) in
>> both cases.
>
> A few more questions about your Emacs use patterns:
>
>   . do you use modes that put stuff in the display margins? if so,
>     could it be that these crashes happen shortly after you switch
>     away from a window with margins to one without margins, or delete
>     a window with margins?

Apart from display-line-numbers, I don't think so. Of course I don't
have that switched on in all my buffers.

>   . do you use truncate-lines or split windows with "C-x 3", and if
>     so, do these crashes happen shortly after you use those
>     features?

I do use C-x 3, but that doesn't seem correlated.

>   . do you have any optional display-related features turned on in
>     your sessions, like show-trailing-whitespace etc.?

In buffers with line-numbers I tend to have whitespace-mode enabled,
but I don't use show-trailing-whitespace directly. However, your
second gdb suggestion just got me:

(gdb) break xdisp.c:21010 if it->glyph_row != 0 && it->glyph_row->used[1] > 0
Breakpoint 4 at 0x45baaf: file xdisp.c, line 21010.
(gdb) run
Starting program: /home/rpluim/repos/emacs-master/src/emacs 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffe4de5700 (LWP 19567)]
[New Thread 0x7fffdffff700 (LWP 19568)]
[New Thread 0x7fffdf5f1700 (LWP 19569)]

Thread 1 "emacs" hit Breakpoint 4, maybe_produce_line_number (it=it@entry=0x7fffffff8130) at xdisp.c:21010
21010	  short *u = it->glyph_row ? &it->glyph_row->used[TEXT_AREA] : NULL;

I was in the process of switching from a non-line-number to a
line-number buffer when that hit.

Regards

Robert