all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Alex <agrambot@gmail.com>
Cc: 28710@debbugs.gnu.org
Subject: bug#28710: 27.0.50; eassert failure in maybe_produce_line_number
Date: Fri, 06 Oct 2017 11:38:48 +0300	[thread overview]
Message-ID: <83wp48vffr.fsf@gnu.org> (raw)
In-Reply-To: <87bmllxieq.fsf@gmail.com> (message from Alex on Thu, 05 Oct 2017 17:51:41 -0600)

merge 28710 27668
thanks

> From: Alex <agrambot@gmail.com>
> Cc: 28710@debbugs.gnu.org
> Date: Thu, 05 Oct 2017 17:51:41 -0600
> 
> > It doesn't crash for me here.  But since it's hardly repeatable for
> > you, I'm not surprised.
> 
> What about using the below recipe?

Thanks, but still no cigar.

> > If you go to frame #3, in maybe_produce_line_number, and type
> >
> >   (gdb) pgrowx it->glyph_row
> >
> > what does that produce?  (You will need to source src/.gdbinit for the
> > pgrowx command to work.)
> 
> TEXT: 34 glyphs
>   0    0: CHAR[ ] pos=-1 blev=2,btyp=EN w=9 a+d=14+4 face=35 MB AVOID
>   1    9: CHAR[3] pos=-1 blev=2,btyp=EN w=9 a+d=14+4 face=35 MB AVOID
>   2   18: CHAR[1] pos=-1 blev=2,btyp=EN w=9 a+d=14+4 face=35 MB AVOID
>   3   27: CHAR[3] pos=-1 blev=2,btyp=EN w=9 a+d=14+4 face=35 MB AVOID
>   4   36: CHAR[0] pos=-1 blev=2,btyp=EN w=9 a+d=14+4 face=35 MB AVOID
>   5   45: CHAR[ ] pos=-1 blev=2,btyp=EN w=9 a+d=14+4 face=35 MB AVOID
>   6   54: CHAR[@] pos=123808 blev=0,btyp=L w=9 a+d=14+4 MB

It sounds like you've rediscovered bug#27668.  Robert Pluim lost the
ability to reproduce it when we were close to catching the offending
code, but maybe you will be able to pick up where he left off?  In a
nutshell, the glyph rows where display_line produces glyphs are not
cleared, so they still hold the glyphs produced by some previous code
in the display engine.  The question is where should we add a call to
clear_glyph_matrix to force the glyph rows to be cleared at the
beginning of display_line.

I wrote instructions for a debugging session to find that out, see

  https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27668#89

Instead of "r -Q", type just "run" to run Emacs as usual, or even
attach to an already running Emacs with "gdb -p", set the breakpoint,
and type "continue.  The "Inside Emacs" part will have to be replaced
with your recipe, up to and including step 5, and you should invoke
redraw-display just before hitting the final RET in step 6, the one
that triggers the assertion.  After performing the GDB commands and
continuing Emacs, hit RET, and post the backtraces from every time the
watchpoint set by those GDB commands is hit.  I hope we will then see
the offending code that needs to be fixed.

Let me know if you need me to rewrite the instructions to fit your
case exactly.

> > Btw, your recipe didn't quite work for me: the first step failed when
> > I pressed RET "on the first line" of the buffer presented by "M-x
> > magit-status" in the current release branch tip.  It said there was
> > nothing to show about that line.  I needed to find a suitable line
> > further down in the buffer.  Am I missing something here?  Can you
> > specify precise steps, assuming I know nothing about using Magit?
> 
> That's odd, since I believe unless there was a git error the first line
> should start with "Head:" and pressing RET on it shows the commit at
> HEAD. Maybe there's another situation where that's not the case.

What if HEAD is a merge-commit?  I think this is what I got when I
tried.  Anyway, this is just a tangential issue.

> Just to specify a commit, try M-x magit-show-commit RET 92045f45 RET in
> an Emacs repo and press RET on the following line:
> +@code{file-symlink-p}, @code{file-system-info}

You mean "C-u M-x magit-show-commit", right?  Tried this as well,
still no assertion violation.

Thanks.

P.S. Btw, I'm debugging this in the emacs-26 branch, so perhaps so
should you, to avoid any irrelevant differences between what you and I
see.  I tried reproducing the assertion violation in both branches,
and failed in both.





  reply	other threads:[~2017-10-06  8:38 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-04 22:31 bug#28710: 27.0.50; eassert failure in maybe_produce_line_number Alex
2017-10-05  8:30 ` Eli Zaretskii
2017-10-05 23:51   ` Alex
2017-10-06  8:38     ` Eli Zaretskii [this message]
2017-10-07 23:05       ` Alex
2017-10-08  6:29         ` Eli Zaretskii
2017-10-08  7:11           ` Alex
2017-10-08  9:35             ` Eli Zaretskii
2017-10-08 10:09               ` Eli Zaretskii
2017-10-09 13:03                 ` Eli Zaretskii
2017-10-08 19:05               ` Alex
2017-10-08 19:50                 ` Eli Zaretskii
2017-10-08 21:19                   ` Alex
2017-10-09 12:40                     ` Eli Zaretskii
2017-10-09 17:56                       ` Alex
2017-10-09 18:51                         ` Eli Zaretskii
2017-10-09 19:36                           ` Alex
2017-10-10  6:21                             ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83wp48vffr.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=28710@debbugs.gnu.org \
    --cc=agrambot@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.