all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Pip Cet <pipcet@gmail.com>
To: 36312@debbugs.gnu.org
Subject: bug#36312: 27.0.50; (message) in display spec condition causes emacs_abort()
Date: Thu, 20 Jun 2019 16:06:25 +0000	[thread overview]
Message-ID: <CAOqdjBcdwWK2Xx_uAKqtX6E5x7r3ysakoOnW5RVAWEz7qRv-RQ@mail.gmail.com> (raw)

In emacs -Q, evaluate

(let ((o (make-overlay (point) (point))))
  (overlay-put o 'after-string (propertize " " 'display
                       '(when (message "a")
  . "b"))))

This causes a SIGABRT in the bidi stack code.

Backtrace:

#0  0x00007ffff4b4d5cb in raise (sig=sig@entry=6)
    at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x000055555559573b in terminate_due_to_signal
    (sig=sig@entry=6, backtrace_limit=backtrace_limit@entry=40) at emacs.c:406
#2  0x0000555555595b37 in emacs_abort () at sysdep.c:2453
#3  0x00005555555942e3 in bidi_pop_it (bidi_it=bidi_it@entry=0x7fffffff99b0)
    at bidi.c:947
#4  0x00005555555b2174 in pop_it (it=0x7fffffff8fc0) at xdisp.c:6356
#5  0x00005555555c3594 in next_overlay_string (it=it@entry=0x7fffffff8fc0)
    at xdisp.c:5754
#6  0x00005555555c8edc in set_iterator_to_next
    (it=0x7fffffff8fc0, reseat_p=<optimized out>) at xdisp.c:7871
#7  0x00005555555cf9ba in display_line
    (it=0x7fffffff8fc0, cursor_vpos=<optimized out>) at xdisp.c:22296
#8  0x00005555555d491b in try_window
    (window=window@entry=0x555555f99fa5, pos=..., flags=flags@entry=1)
    at xdisp.c:17863
#9  0x00005555555e80df in redisplay_window
    (window=0x555555f99fa5, just_this_one_p=<optimized out>) at xdisp.c:17311
#10 0x00005555555eae1e in redisplay_window_1
(window=window@entry=0x555555f99fa5)
    at xdisp.c:15044
#11 0x00005555556eb3ca in internal_condition_case_1
    (bfun=bfun@entry=0x5555555eadf0 <redisplay_window_1>,
arg=0x555555f99fa5, handlers=<optimized out>,
hfun=hfun@entry=0x5555555afd00 <redisplay_window_error>)
    at eval.c:1376
#12 0x00005555555d834f in redisplay_internal () at xdisp.c:14614
#13 0x000055555567b5d7 in read_char
    (commandflag=1, map=0x555556856f83, prev_event=0x0,
used_mouse_menu=0x7fffffffe4db, end_time=0x0) at keyboard.c:2474
#14 0x000055555567df1e in read_key_sequence
    (keybuf=0x7fffffffe5e0, prompt=0x0, dont_downcase_last=<optimized
out>, can_return_switch_frame=true, fix_current_buffer=true,
prevent_redisplay=<optimized out>)
    at keyboard.c:9111
#15 0x000055555567f6fc in command_loop_1 () at lisp.h:1045
#16 0x00005555556eb332 in internal_condition_case
    (bfun=bfun@entry=0x55555567f520 <command_loop_1>,
handlers=handlers@entry=0x55b0, hfun=hfun@entry=0x555555676d20
<cmd_error>) at eval.c:1352
#17 0x0000555555671d14 in command_loop_2 (ignore=ignore@entry=0x0) at
lisp.h:1045
#18 0x00005555556eb2b1 in internal_catch
    (tag=tag@entry=0xcc30, func=func@entry=0x555555671cf0
<command_loop_2>, arg=arg@entry=0x0) at eval.c:1113
#19 0x0000555555671cbb in command_loop () at lisp.h:1045
#20 0x0000555555676926 in recursive_edit_1 () at keyboard.c:714
#21 0x0000555555676c45 in Frecursive_edit () at keyboard.c:786
#22 0x000055555559b227 in main (argc=2, argv=0x7fffffffe978) at emacs.c:1962

It's reproducible here, so I can provide more debugging information if
required.

I'm aware that doing complicated stuff in a display spec condition is
a bad idea, but I think debug messages are such an important special
case that we ought, at least, not to abort completely for those.

Setting redisplay--bidi-inhibit to t works around the problem.





             reply	other threads:[~2019-06-20 16:06 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-20 16:06 Pip Cet [this message]
2019-06-20 18:11 ` bug#36312: 27.0.50; (message) in display spec condition causes emacs_abort() Eli Zaretskii
2019-06-20 19:32   ` Pip Cet
2019-06-21  7:34     ` Eli Zaretskii
2019-06-21  8:13       ` Pip Cet
2019-06-21  8:39       ` 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=CAOqdjBcdwWK2Xx_uAKqtX6E5x7r3ysakoOnW5RVAWEz7qRv-RQ@mail.gmail.com \
    --to=pipcet@gmail.com \
    --cc=36312@debbugs.gnu.org \
    /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.