all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Andreas Matthias <andreas.matthias@gmail.com>
Cc: Vitalie Spinu <spinuvit@gmail.com>, 19511-done@debbugs.gnu.org
Subject: bug#19511: 25.0.50; Failed assertions in redisplay() code. (dispnew.c:1405; xdisp.c:17524)
Date: Mon, 05 Jan 2015 17:58:05 +0200	[thread overview]
Message-ID: <83tx058bjm.fsf@gnu.org> (raw)
In-Reply-To: <878uhiji5m.fsf@winky.hogwarts>

> From: Andreas Matthias <andreas.matthias@gmail.com>
> Date: Sun, 04 Jan 2015 23:27:33 +0100
> 
> With the attached example code I can trigger two different assertions
> somewhere down the line of redisplay():
> 
> 1) dispnew.c:1405: Emacs fatal error: assertion failed: row >= 0 && row < matrix->nrows
> 
> 2) xdisp.c:17524: Emacs fatal error: assertion failed: row->enabled_p
> 
> 
> Unfortunately I could not further isolate the elisp code which eventually
> causes these assertions to fail. The following packages from MELPA are
> involved: lua-mode, polymode. (version numbers see example code)

The reason for this is that Polymode does something unthinkable: it
calls bury-buffer in the function it installs as
font-lock-fontify-region-function, which buries the buffer being
fontified, and as side effect switches the buffer displayed in the
window.  When this is called by redisplay, the effect is that the
information about the window end point gets invalidated right from
under the feet of the display engine, in the middle of the code that
tries to use that information for one of redisplay optimizations.

I have now disabled that optimization for packages which commit such
atrocities, so Polymode is now merely a performance killer, not a
crasher.

I hope Polymode will be changed to not call bury-buffer in that
situation (I always thought bury-buffer is strictly for interactive
use, FWIW).

> Note: With a recently checked out Emacs 25.0.50 I can trigger both assertions
> as described below. Concerning Emacs 24.3.1 I can trigger only the first
> assertion but not the second one.

Emacs 24.3 escapes the 2nd assertion by sheer luck, AFAICS, and 24.4
is affected by both.  So I installed the fix for this in the emacs-24
branch (commit d279e66).

Thanks.





  reply	other threads:[~2015-01-05 15:58 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-04 22:27 bug#19511: 25.0.50; Failed assertions in redisplay() code. (dispnew.c:1405; xdisp.c:17524) Andreas Matthias
2015-01-05 15:58 ` Eli Zaretskii [this message]
2015-01-05 16:59   ` Vitalie Spinu
2015-01-05 17:53     ` Stefan Monnier
2015-01-05 18:31       ` Eli Zaretskii
2015-01-05 18:24     ` Eli Zaretskii
2015-01-05 18:10   ` Andreas Matthias
2015-01-05 18:36     ` Eli Zaretskii
2015-01-05 18:41       ` Vitalie Spinu

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=83tx058bjm.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=19511-done@debbugs.gnu.org \
    --cc=andreas.matthias@gmail.com \
    --cc=spinuvit@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.