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

From: Robert Pluim <[email-masked]>
Date: Wed, 12 Jul 2017 20:26:50 +0200

Eli Zaretskii <[email-masked]> writes:

> Well, I cannot know what kind of display features you have there; what
> is just 63 characters in the file could have all kind of stuff
> appended to it on display...
>
> Anyway, what do these 2 show:
>
>   (gdb) p it->glyph_row->enabled_p

$1 = true

>   (gdb) p it->glyph_row->displays_text_p

$2 = true

>
> Also, is the previous screen line OK?  This will show:
>
>   (gdb) pgrowx (it->glyph_row-1)

(gdb) pgrowx (it->glyph_row-1)
TEXT: 134 glyphs
  0    0: CHAR[ ] pos=-1 blev=2,btyp=EN w=16 a+d=25+6 face=23 MB AVOID
  1   16: CHAR[2] pos=-1 blev=2,btyp=EN w=16 a+d=25+6 face=23 MB AVOID
  2   32: CHAR[3] pos=-1 blev=2,btyp=EN w=16 a+d=25+6 face=23 MB AVOID
  3   48: CHAR[6] pos=-1 blev=2,btyp=EN w=16 a+d=25+6 face=23 MB AVOID
  4   64: CHAR[ ] pos=-1 blev=2,btyp=EN w=16 a+d=25+6 face=23 MB AVOID
  5   80: CHAR[w] pos=9489 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
  6   96: CHAR[i] pos=9490 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
  7  112: CHAR[l] pos=9491 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
  8  128: CHAR[l] pos=9492 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
  9  144: CHAR[ ] pos=9493 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 11  176: CHAR[e] pos=9495 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 12  192: CHAR[ ] pos=9496 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 13  208: CHAR[r] pos=9497 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 14  224: CHAR[a] pos=9498 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 15  240: CHAR[i] pos=9499 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 16  256: CHAR[s] pos=9500 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 17  272: CHAR[e] pos=9501 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 18  288: CHAR[d] pos=9502 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 19  304: CHAR[ ] pos=9503 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 20  320: CHAR[w] pos=9504 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 21  336: CHAR[h] pos=9505 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 22  352: CHAR[e] pos=9506 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 23  368: CHAR[n] pos=9507 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 24  384: CHAR[ ] pos=9508 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 25  400: CHAR[t] pos=9509 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 26  416: CHAR[h] pos=9510 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 27  432: CHAR[e] pos=9511 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 28  448: CHAR[ ] pos=9512 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 29  464: CHAR[h] pos=9513 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 30  480: CHAR[o] pos=9514 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 31  496: CHAR[s] pos=9515 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 32  512: CHAR[t] pos=9516 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 33  528: CHAR[n] pos=9517 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 34  544: CHAR[a] pos=9518 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 35  560: CHAR[m] pos=9519 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 36  576: CHAR[e] pos=9520 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 37  592: CHAR[ ] pos=9521 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 38  608: CHAR[d] pos=9522 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 39  624: CHAR[o] pos=9523 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 40  640: CHAR[e] pos=9524 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 41  656: CHAR[s] pos=9525 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 42  672: CHAR[ ] pos=9526 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 43  688: CHAR[n] pos=9527 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 44  704: CHAR[o] pos=9528 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 45  720: CHAR[t] pos=9529 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 46  736: CHAR[ ] pos=9530 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 47  752: CHAR[m] pos=9531 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 48  768: CHAR[a] pos=9532 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 49  784: CHAR[t] pos=9533 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 50  800: CHAR[c] pos=9534 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 51  816: CHAR[h] pos=9535 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 52  832: CHAR[ ] pos=9536 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 53  848: CHAR[t] pos=9537 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 54  864: CHAR[h] pos=9538 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 55  880: CHAR[e] pos=9539 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 56  896: CHAR[ ] pos=9540 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 57  912: CHAR[p] pos=9541 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 58  928: CHAR[r] pos=9542 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 59  944: CHAR[e] pos=9543 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 60  960: CHAR[s] pos=9544 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 61  976: CHAR[e] pos=9545 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
---Type <return> to continue, or q <return> to quit---
 62  992: CHAR[n] pos=9546 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 63 1008: CHAR[t] pos=9547 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 64 1024: CHAR[e] pos=9548 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 65 1040: CHAR[d] pos=9549 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 66 1056: CHAR[ ] pos=0 blev=0,btyp=B w=16 a+d=25+6 face=28 MB
 67 1072: CHAR[ ] pos=-1 blev=0,btyp=B w=16 a+d=25+6 face=5
 68 1088: CHAR[ ] pos=-1 blev=0,btyp=B w=16 a+d=25+6 face=5
 69 1104: CHAR[ ] pos=-1 blev=0,btyp=B w=16 a+d=25+6 face=5
 70 1120: CHAR[ ] pos=-1 blev=0,btyp=B w=16 a+d=25+6 face=5
 71 1136: CHAR[ ] pos=-1 blev=0,btyp=B w=16 a+d=25+6 face=5
 72 1152: CHAR[w] pos=9489 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 73 1168: CHAR[i] pos=9490 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 74 1184: CHAR[l] pos=9491 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 75 1200: CHAR[l] pos=9492 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 76 1216: CHAR[ ] pos=9493 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 77 1232: CHAR[b] pos=9494 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 78 1248: CHAR[e] pos=9495 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 79 1264: CHAR[ ] pos=9496 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 80 1280: CHAR[r] pos=9497 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 81 1296: CHAR[a] pos=9498 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 82 1312: CHAR[i] pos=9499 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 83 1328: CHAR[s] pos=9500 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 84 1344: CHAR[e] pos=9501 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 85 1360: CHAR[d] pos=9502 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 86 1376: CHAR[ ] pos=9503 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 87 1392: CHAR[w] pos=9504 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 88 1408: CHAR[h] pos=9505 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 89 1424: CHAR[e] pos=9506 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 90 1440: CHAR[n] pos=9507 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 91 1456: CHAR[ ] pos=9508 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 92 1472: CHAR[t] pos=9509 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 93 1488: CHAR[h] pos=9510 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 94 1504: CHAR[e] pos=9511 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 95 1520: CHAR[ ] pos=9512 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 96 1536: CHAR[h] pos=9513 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 97 1552: CHAR[o] pos=9514 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 98 1568: CHAR[s] pos=9515 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
 99 1584: CHAR[t] pos=9516 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
100 1600: CHAR[n] pos=9517 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
101 1616: CHAR[a] pos=9518 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
102 1632: CHAR[m] pos=9519 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
103 1648: CHAR[e] pos=9520 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
104 1664: CHAR[ ] pos=9521 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
105 1680: CHAR[d] pos=9522 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
106 1696: CHAR[o] pos=9523 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
107 1712: CHAR[e] pos=9524 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
108 1728: CHAR[s] pos=9525 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
109 1744: CHAR[ ] pos=9526 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
110 1760: CHAR[n] pos=9527 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
111 1776: CHAR[o] pos=9528 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
112 1792: CHAR[t] pos=9529 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
113 1808: CHAR[ ] pos=9530 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
114 1824: CHAR[m] pos=9531 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
115 1840: CHAR[a] pos=9532 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
116 1856: CHAR[t] pos=9533 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
117 1872: CHAR[c] pos=9534 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
118 1888: CHAR[h] pos=9535 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
119 1904: CHAR[ ] pos=9536 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
120 1920: CHAR[t] pos=9537 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
121 1936: CHAR[h] pos=9538 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
122 1952: CHAR[e] pos=9539 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
123 1968: CHAR[ ] pos=9540 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
124 1984: CHAR[p] pos=9541 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
---Type <return> to continue, or q <return> to quit---
125 2000: CHAR[r] pos=9542 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
126 2016: CHAR[e] pos=9543 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
127 2032: CHAR[s] pos=9544 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
128 2048: CHAR[e] pos=9545 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
129 2064: CHAR[n] pos=9546 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
130 2080: CHAR[t] pos=9547 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
131 2096: CHAR[e] pos=9548 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
132 2112: CHAR[d] pos=9549 blev=0,btyp=L w=16 a+d=25+6 face=28 MB
133 2128: CHAR[ ] pos=0 blev=0,btyp=B w=16 a+d=25+6 face=28 MB

Hmm. Is it normal for the text on that line to be shown twice here?
The actual line is only 61 glyphs:

will be raised when the hostname does not match the presented

>
> Eventually, if nothing else gives a clue, please continue running
> Emacs under GDB, and if the crashes are always in
> compute_line_metrics, show the offending glyph_row each time it
> crashes.  Perhaps the data will give some hint about what could be
> wrong.  (Currently, the only idea I have is that somehow
> glyph_row->used[1] is set to a value larger than it should, which
> might mean some problem in maybe_produce_line_number, where it
> increments the used count, but I'd like first to see if all the
> problems manifest themselves with such a large used count.)

The crash is always in compute_line_metrics. I'll continue to run
under gdb, and see if I can find a recipe.

Regards

Robert