From: martin rudalics <rudalics@gmx.at>
To: 47207@debbugs.gnu.org
Cc: Alan Mackenzie <acm@muc.de>
Subject: bug#47207: 28.0.50; decode_next_window_args crash
Date: Wed, 17 Mar 2021 09:45:21 +0100 [thread overview]
Message-ID: <c8442033-ac9b-f9e0-d5f5-3d649a874c3f@gmx.at> (raw)
[-- Attachment #1: Type: text/plain, Size: 12301 bytes --]
The following bug has hit me out of the blue a couple of times. Trying
to ediff two buffers gets me the crash below:
#0 0x00000000005a5f85 in terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at ../../src/emacs.c:379
#1 0x0000000000651df0 in die (msg=0x788ee1 "WINDOWP (a)", file=0x788ece "../../src/window.h", line=543) at ../../src/alloc.c:7420
#2 0x00000000004bdca6 in XWINDOW (a=XIL(0)) at ../../src/window.h:543
#3 0x00000000004c6a4d in decode_next_window_args (window=0x7fffffffa808, minibuf=0x7fffffffa800, all_frames=0x7fffffffa7f8) at ../../src/window.c:2891
#4 0x00000000004c6bff in next_window (window=XIL(0x2b04405), minibuf=XIL(0), all_frames=XIL(0x30), next_p=true) at ../../src/window.c:2927
#5 0x00000000004c7086 in Fnext_window (window=XIL(0x2b04405), minibuf=XIL(0), all_frames=XIL(0x30)) at ../../src/window.c:3023
#6 0x000000000068b298 in funcall_subr (subr=0xc4b6e0 <Snext_window>, numargs=3, args=0x7fffffffa9d0) at ../../src/eval.c:2996
#7 0x000000000068ad15 in Ffuncall (nargs=4, args=0x7fffffffa9c8) at ../../src/eval.c:2918
#8 0x00000000006e4865 in exec_byte_code (bytestr=XIL(0x7ffff3cc5764), vector=XIL(0x7ffff3cc5255), maxdepth=make_fixnum(12), args_template=make_fixnum(769), nargs=2, args=0x7fffffffaf68) at ../../src/bytecode.c:632
#9 0x000000000068b4cd in fetch_and_exec_byte_code (fun=XIL(0x7ffff3cc51fd), syms_left=make_fixnum(769), nargs=2, args=0x7fffffffaf58) at ../../src/eval.c:3040
#10 0x000000000068b953 in funcall_lambda (fun=XIL(0x7ffff3cc51fd), nargs=2, arg_vector=0x7fffffffaf58) at ../../src/eval.c:3121
#11 0x000000000068ad59 in Ffuncall (nargs=3, args=0x7fffffffaf50) at ../../src/eval.c:2920
#12 0x00000000006e4865 in exec_byte_code (bytestr=XIL(0x1b2c854), vector=XIL(0x1a0010d), maxdepth=make_fixnum(7), args_template=make_fixnum(256), nargs=0, args=0x7fffffffb4a0) at ../../src/bytecode.c:632
#13 0x000000000068b4cd in fetch_and_exec_byte_code (fun=XIL(0x1a001ad), syms_left=make_fixnum(256), nargs=0, args=0x7fffffffb4a0) at ../../src/eval.c:3040
#14 0x000000000068b953 in funcall_lambda (fun=XIL(0x1a001ad), nargs=0, arg_vector=0x7fffffffb4a0) at ../../src/eval.c:3121
#15 0x000000000068ad59 in Ffuncall (nargs=1, args=0x7fffffffb498) at ../../src/eval.c:2920
#16 0x00000000006e4865 in exec_byte_code (bytestr=XIL(0x1b09454), vector=XIL(0x1988f85), maxdepth=make_fixnum(9), args_template=make_fixnum(514), nargs=2, args=0x7fffffffba68) at ../../src/bytecode.c:632
#17 0x000000000068b4cd in fetch_and_exec_byte_code (fun=XIL(0x198906d), syms_left=make_fixnum(514), nargs=2, args=0x7fffffffba58) at ../../src/eval.c:3040
#18 0x000000000068b953 in funcall_lambda (fun=XIL(0x198906d), nargs=2, arg_vector=0x7fffffffba58) at ../../src/eval.c:3121
#19 0x000000000068ad59 in Ffuncall (nargs=3, args=0x7fffffffba50) at ../../src/eval.c:2920
#20 0x00000000006e4865 in exec_byte_code (bytestr=XIL(0x1b08c04), vector=XIL(0x1988ba5), maxdepth=make_fixnum(8), args_template=make_fixnum(771), nargs=3, args=0x7fffffffbfc0) at ../../src/bytecode.c:632
#21 0x000000000068b4cd in fetch_and_exec_byte_code (fun=XIL(0x1988c45), syms_left=make_fixnum(771), nargs=3, args=0x7fffffffbfa8) at ../../src/eval.c:3040
#22 0x000000000068b953 in funcall_lambda (fun=XIL(0x1988c45), nargs=3, arg_vector=0x7fffffffbfa8) at ../../src/eval.c:3121
#23 0x000000000068ad59 in Ffuncall (nargs=4, args=0x7fffffffbfa0) at ../../src/eval.c:2920
#24 0x00000000006e4865 in exec_byte_code (bytestr=XIL(0x1b41884), vector=XIL(0x1a037f5), maxdepth=make_fixnum(17), args_template=make_fixnum(2312), nargs=9, args=0x7fffffffcb10) at ../../src/bytecode.c:632
#25 0x000000000068b4cd in fetch_and_exec_byte_code (fun=XIL(0x1aa7c75), syms_left=make_fixnum(2312), nargs=9, args=0x7fffffffcac8) at ../../src/eval.c:3040
#26 0x000000000068b953 in funcall_lambda (fun=XIL(0x1aa7c75), nargs=9, arg_vector=0x7fffffffcac8) at ../../src/eval.c:3121
#27 0x000000000068ad59 in Ffuncall (nargs=10, args=0x7fffffffcac0) at ../../src/eval.c:2920
#28 0x00000000006e4865 in exec_byte_code (bytestr=XIL(0x1a187b4), vector=XIL(0x1123095), maxdepth=make_fixnum(25), args_template=make_fixnum(1541), nargs=5, args=0x7fffffffd0f8) at ../../src/bytecode.c:632
#29 0x000000000068b4cd in fetch_and_exec_byte_code (fun=XIL(0x112310d), syms_left=make_fixnum(1541), nargs=5, args=0x7fffffffd0d0) at ../../src/eval.c:3040
#30 0x000000000068b953 in funcall_lambda (fun=XIL(0x112310d), nargs=5, arg_vector=0x7fffffffd0d0) at ../../src/eval.c:3121
#31 0x000000000068ad59 in Ffuncall (nargs=6, args=0x7fffffffd0c8) at ../../src/eval.c:2920
#32 0x00000000006e4865 in exec_byte_code (bytestr=XIL(0x1a18a34), vector=XIL(0x1616e2d), maxdepth=make_fixnum(10), args_template=make_fixnum(1026), nargs=2, args=0x7fffffffd540) at ../../src/bytecode.c:632
#33 0x000000000068b4cd in fetch_and_exec_byte_code (fun=XIL(0x1a7257d), syms_left=make_fixnum(1026), nargs=2, args=0x7fffffffd530) at ../../src/eval.c:3040
#34 0x000000000068b953 in funcall_lambda (fun=XIL(0x1a7257d), nargs=2, arg_vector=0x7fffffffd530) at ../../src/eval.c:3121
#35 0x000000000068b677 in apply_lambda (fun=XIL(0x1a7257d), args=XIL(0x1afad93), count=9) at ../../src/eval.c:3065
#36 0x00000000006897c1 in eval_sub (form=XIL(0x1afadd3)) at ../../src/eval.c:2440
#37 0x000000000068391a in Fprogn (body=XIL(0)) at ../../src/eval.c:462
#38 0x000000000068be0a in funcall_lambda (fun=XIL(0x1afab83), nargs=0, arg_vector=0x0) at ../../src/eval.c:3188
#39 0x000000000068ae6c in Ffuncall (nargs=1, args=0x7fffffffda88) at ../../src/eval.c:2932
#40 0x000000000067ef12 in Ffuncall_interactively (nargs=1, args=0x7fffffffda88) at ../../src/callint.c:260
#41 0x000000000068b13f in funcall_subr (subr=0xc570a0 <Sfuncall_interactively>, numargs=1, args=0x7fffffffda88) at ../../src/eval.c:2971
#42 0x000000000068ad15 in Ffuncall (nargs=2, args=0x7fffffffda80) at ../../src/eval.c:2918
#43 0x0000000000689b16 in Fapply (nargs=3, args=0x7fffffffda80) at ../../src/eval.c:2501
#44 0x000000000067f39a in Fcall_interactively (function=XIL(0xd1edf0), record_flag=XIL(0), keys=XIL(0x7ffff437c805)) at ../../src/callint.c:353
#45 0x000000000068b298 in funcall_subr (subr=0xc570e0 <Scall_interactively>, numargs=3, args=0x7fffffffdd40) at ../../src/eval.c:2996
#46 0x000000000068ad15 in Ffuncall (nargs=4, args=0x7fffffffdd38) at ../../src/eval.c:2918
#47 0x00000000006e4865 in exec_byte_code (bytestr=XIL(0x7ffff3d7c80c), vector=XIL(0x7ffff3d7c125), maxdepth=make_fixnum(13), args_template=make_fixnum(1025), nargs=1, args=0x7fffffffe2b0) at ../../src/bytecode.c:632
#48 0x000000000068b4cd in fetch_and_exec_byte_code (fun=XIL(0x7ffff3d7c0f5), syms_left=make_fixnum(1025), nargs=1, args=0x7fffffffe2a8) at ../../src/eval.c:3040
#49 0x000000000068b953 in funcall_lambda (fun=XIL(0x7ffff3d7c0f5), nargs=1, arg_vector=0x7fffffffe2a8) at ../../src/eval.c:3121
#50 0x000000000068ad59 in Ffuncall (nargs=2, args=0x7fffffffe2a0) at ../../src/eval.c:2920
#51 0x000000000068a645 in call1 (fn=XIL(0x4230), arg1=XIL(0xd1edf0)) at ../../src/eval.c:2778
#52 0x00000000005ade1b in command_loop_1 () at ../../src/keyboard.c:1466
#53 0x0000000000686b71 in internal_condition_case (bfun=0x5ad5c2 <command_loop_1>, handlers=XIL(0x90), hfun=0x5acbd1 <cmd_error>) at ../../src/eval.c:1443
#54 0x00000000005ad1a7 in command_loop_2 (ignore=XIL(0)) at ../../src/keyboard.c:1094
#55 0x0000000000685f7d in internal_catch (tag=XIL(0xd6b0), func=0x5ad17a <command_loop_2>, arg=XIL(0)) at ../../src/eval.c:1193
#56 0x00000000005ad145 in command_loop () at ../../src/keyboard.c:1073
#57 0x00000000005ac6b8 in recursive_edit_1 () at ../../src/keyboard.c:720
#58 0x00000000005ac8b0 in Frecursive_edit () at ../../src/keyboard.c:789
#59 0x00000000005a8787 in main (argc=1, argv=0x7fffffffe7c8) at ../../src/emacs.c:2050
Lisp Backtrace:
"next-window" (0xffffa9d0)
"other-window" (0xffffaf58)
"ediff-skip-unsuitable-frames" (0xffffb4a0)
"ediff-prepare-error-list" (0xffffba58)
"ediff-setup-diff-regions" (0xffffbfa8)
"ediff-setup" (0xffffcac8)
"ediff-buffers-internal" (0xffffd0d0)
"ediff-buffers" (0xffffd530)
"my-diffs-b" (0xffffda90)
"funcall-interactively" (0xffffda88)
"call-interactively" (0xffffdd40)
"command-execute" (0xffffe2a8)
(gdb) frame 3
#3 0x00000000004c6a4d in decode_next_wMajor mode: Text
Minor modes in effect:
pop-up-mini-mode: t
shell-dirtrack-mode: t
scroll-restore-mode: t
show-paren-mode: t
tooltip-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
temp-buffer-resize-mode: t
column-number-mode: t
line-number-mode: t
auto-fill-function: do-auto-fill
transient-mark-mode: t
Load-path shadows:
None found.
Features:
(shadow mail-extr warnings emacsbug message rmc puny rfc822 mml mml-sec
epa derived epg epg-config gnus-util rmail rmail-loaddefs auth-source
password-cache json map mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils smerge-mode diff mule-util eieio-opt
cl-extra speedbar ezimage dframe dabbrev etags fileloop generator xref
cl-seq project eieio eieio-core eieio-loaddefs minibuf-eldef time-date
subr-x shortdoc thingatpt help-fns radix-tree help-mode speck cl-macs
pop-up-mini vc cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles
cc-align cc-engine cc-vars cc-defs vc-git diff-mode vc-dispatcher
bug-reference elp ediff-vers ediff ediff-merg ediff-mult ediff-wind
ediff-diff ediff-help ediff-init ediff-util local-tags info-look
find-func elinfo-support elinfo texinfo info shell pcomplete comint
ansi-color ring sidebar bookmark seq byte-opt bytecomp byte-compile
cconv text-property-search sort m&d scroll-restore regexp-lock
time-stamp eldoc-tooltip pcase easy-mmode find-dired dired
dired-loaddefs cus-edit pp cus-start cus-load wid-edit cl-loaddefs
cl-lib jka-compr paren ls-lisp gv iso-transl tooltip eldoc electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
timer select scroll-bar mouse jit-lock font-lock syntax facemenu
font-core term/tty-colors frame minibuffer cl-generic cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote threads dbusbind
inotify dynamic-setting system-font-setting font-render-setting cairo
move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)
Memory information:
((conses 16 328334 70021)
(symbols 48 17143 1)
(strings 32 52277 4856)
(string-bytes 1 1699127)
(vectors 16 33942)
(vector-slots 8 1202337 161897)
(floats 8 170 554)
(intervals 56 19456 1549)
(buffers 1008 42))
indow_args (window=0x7fffffffa808, minibuf=0x7fffffffa800, all_frames=0x7fffffffa7f8) at ../../src/window.c:2891
2891 *minibuf = this_minibuffer_depth (XWINDOW (miniwin)->contents)
(gdb) p miniwin
$1 = XIL(0)
(gdb) frame 5
#5 0x00000000004c7086 in Fnext_window (window=XIL(0x2b04405), minibuf=XIL(0), all_frames=XIL(0x30)) at ../../src/window.c:3023
3023 return next_window (window, minibuf, all_frames, true);
(gdb) p window
$4 = XIL(0x2b04405)
(gdb) p XWINDOW (window)->contents
$5 = XIL(0x2d46a85)
(gdb) xpr
Lisp_Vectorlike
PVEC_BUFFER
$6 = (struct buffer *) 0x2d46a80
0x1fadde8 " *tip*"
(gdb)
Presumably, commit c7c154bb5756e0ae71d342c5d8aabf725877f186 is directly
responsible for the crash. It's triggered by the
(other-window 1 t)
call in `ediff-skip-unsuitable-frames' which selects the tooltip window
which has no minibuffer. Patch attached, but we probably should decide
whether to consider tooltip windows in `next-window' or `other-window'
at all. See also
https://lists.gnu.org/archive/html/emacs-devel/2018-02/msg00694.html
martin
[-- Attachment #2: window.c.diff --]
[-- Type: text/x-patch, Size: 972 bytes --]
diff --git a/src/window.c b/src/window.c
index eb16e2a433..6da804bbd9 100644
--- a/src/window.c
+++ b/src/window.c
@@ -2668,7 +2668,7 @@ decode_next_window_args (Lisp_Object *window, Lisp_Object *minibuf, Lisp_Object
XSETWINDOW (*window, w);
/* MINIBUF nil may or may not include minibuffers. Decide if it
does. */
- if (NILP (*minibuf))
+ if (WINDOWP (miniwin) & NILP (*minibuf))
*minibuf = this_minibuffer_depth (XWINDOW (miniwin)->contents)
? miniwin
: Qlambda;
@@ -2682,9 +2682,7 @@ decode_next_window_args (Lisp_Object *window, Lisp_Object *minibuf, Lisp_Object
/* ALL_FRAMES nil doesn't specify which frames to include. */
if (NILP (*all_frames))
*all_frames
- = (!EQ (*minibuf, Qlambda)
- ? FRAME_MINIBUF_WINDOW (XFRAME (w->frame))
- : Qnil);
+ = (WINDOWP (miniwin) && !EQ (*minibuf, Qlambda)) ? miniwin : Qnil;
else if (EQ (*all_frames, Qvisible))
;
else if (EQ (*all_frames, make_fixnum (0)))
next reply other threads:[~2021-03-17 8:45 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-17 8:45 martin rudalics [this message]
2021-03-17 13:29 ` bug#47207: 28.0.50; decode_next_window_args crash Eli Zaretskii
2021-03-17 15:36 ` martin rudalics
2021-03-17 15:48 ` Eli Zaretskii
2021-03-17 17:06 ` martin rudalics
2021-03-17 17:47 ` Eli Zaretskii
2021-03-17 18:01 ` martin rudalics
2021-03-17 18:15 ` Eli Zaretskii
2021-03-18 8:43 ` martin rudalics
2021-03-18 9:38 ` Eli Zaretskii
2021-03-18 15:51 ` martin rudalics
2021-03-18 16:49 ` Eli Zaretskii
2021-04-13 15:54 ` martin rudalics
2021-04-13 17:06 ` Alan Mackenzie
2021-04-13 17:12 ` martin rudalics
2021-04-15 13:07 ` Alan Mackenzie
2021-04-15 14:45 ` martin rudalics
2021-04-16 0:15 ` Gregory Heytings
2021-04-16 11:28 ` Alan Mackenzie
2021-04-16 14:42 ` martin rudalics
2021-04-18 8:01 ` martin rudalics
2021-04-13 17:37 ` Gregory Heytings
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c8442033-ac9b-f9e0-d5f5-3d649a874c3f@gmx.at \
--to=rudalics@gmx.at \
--cc=47207@debbugs.gnu.org \
--cc=acm@muc.de \
/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 public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).