On 08/09/2024 18:51, João Távora wrote:
Looking at minibuffer-tests.el, the above might be a solution, but it
gets me a core dump instead:

diff --git a/test/lisp/progmodes/eglot-tests.el
b/test/lisp/progmodes/eglot-tests.el
index e0168baee54..fa3b63b38dc 100644
--- a/test/lisp/progmodes/eglot-tests.el
+++ b/test/lisp/progmodes/eglot-tests.el
@@ -711,7 +711,8 @@ eglot-test-rust-completion-exit-function
         (search-forward "v.count_on")
         (let ((minibuffer-message-timeout 0)
               ;; Fail at (ding) if completion fails.
-            (executing-kbd-macro t))
+            (executing-kbd-macro t)
+            (redisplay-skip-initial-frame nil))
           (when (buffer-live-p "*Completions*")
             (kill-buffer "*Completions*"))
           ;; The design is pretty brittle, we'll need to monitor the


Will follow up later if nobody beats me to it (can others reproduce the
crash?)
This now aborts (segfault?).  At least something different.

So, for the record, before this patch with the latest emacs-30, I get the
results in failure1.txt and with your last redisplay-skip-initial-frame patch
I get failure2.txt.

I've produced these files with

make -C test eglot-tests SELECTOR=\"rust-completion\" 2>&1 | tee failure1.txt

So it's reproducible. Great!

Could someone look into the segfault? The repro steps are simple:

1) apply the patch above,
2) run 'make -C test eglot-tests' or the longer command above which executes just one test from that file.

The backtrace that I managed to generate is attached.
Core was generated by `../src/emacs --module-assertions --no-init-file --no-site-file --no-site-lisp -'.
Program terminated with signal SIGABRT, Aborted.
#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
Download failed: Invalid argument.  Continuing without source file ./nptl/./nptl/pthread_kill.c.                                                                                              
44	./nptl/pthread_kill.c: No such file or directory.
(gdb) bt
#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
#1  __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3  0x0000794b524428e6 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4  0x0000557cbe936774 in terminate_due_to_signal (sig=sig@entry=6, backtrace_limit=backtrace_limit@entry=40) at emacs.c:480
#5  0x0000557cbe959e9f in emacs_abort () at sysdep.c:2391
#6  0x0000557cbe8793fb in try_window_id (w=0x557cc05f09e8) at xdisp.c:22092
#7  redisplay_window (window=0x557cc05f09ed, just_this_one_p=just_this_one_p@entry=false) at xdisp.c:20444
#8  0x0000557cbe87d13e in redisplay_window_0 (window=window@entry=0x557cc05f09ed) at xdisp.c:18020
#9  0x0000557cbe9bff71 in internal_condition_case_1
    (bfun=bfun@entry=0x557cbe87d10b <redisplay_window_0>, arg=arg@entry=0x557cc05f09ed, handlers=<optimized out>, hfun=hfun@entry=0x557cbe835eac <redisplay_window_error>) at eval.c:1637
#10 0x0000557cbe833d83 in redisplay_windows (window=0x557cc05f09ed) at xdisp.c:17989
#11 0x0000557cbe867eeb in redisplay_internal () at xdisp.c:17388
#12 0x0000557cbe86853d in redisplay () at xdisp.c:16563
#13 0x0000557cbe947be0 in read_char
    (commandflag=commandflag@entry=0, map=map@entry=0x0, prev_event=prev_event@entry=0x30, used_mouse_menu=used_mouse_menu@entry=0x0, end_time=0x7fff70418740) at keyboard.c:2678
#14 0x0000557cbe9ebec0 in read_filtered_event
    (no_switch_frame=no_switch_frame@entry=false, ascii_required=ascii_required@entry=false, error_nonascii=error_nonascii@entry=false, input_method=input_method@entry=false, seconds=seconds@entry=0x794b4e67024f) at lread.c:791
#15 0x0000557cbe9ec0fa in Fread_event (prompt=0x0, inherit_input_method=0x0, seconds=0x794b4e67024f) at lread.c:941
#16 0x0000557cbe9c47e8 in eval_sub (form=<optimized out>) at eval.c:2604
#17 0x0000557cbe9c4df0 in Fprogn (body=<optimized out>) at eval.c:439
#18 0x0000557cbe9c55a9 in Fcond (args=0x794b4da7fd93) at eval.c:419
#19 0x0000557cbe9c45b2 in eval_sub (form=<optimized out>) at eval.c:2549
#20 0x0000557cbe9c4df0 in Fprogn (body=<optimized out>) at eval.c:439
#21 0x0000557cbe9c45b2 in eval_sub (form=<optimized out>) at eval.c:2549
#22 0x0000557cbe9c5545 in Fif (args=0x794b4d932be3) at eval.c:394
#23 0x0000557cbe9c45b2 in eval_sub (form=<optimized out>) at eval.c:2549
#24 0x0000557cbe9c4df0 in Fprogn (body=<optimized out>, body@entry=0x794b4d932e53) at eval.c:439
#25 0x0000557cbe9c597f in prog_ignore (body=0x794b4d932e53) at eval.c:450
#26 Fwhile (args=<optimized out>) at eval.c:1130
#27 0x0000557cbe9c45b2 in eval_sub (form=<optimized out>) at eval.c:2549
#28 0x0000557cbe9c4df0 in Fprogn (body=<optimized out>) at eval.c:439
#29 0x0000557cbe9c6210 in FletX (args=<optimized out>) at /home/dgutov/vc/emacs/src/lisp.h:1539
#30 0x0000557cbe9c45b2 in eval_sub (form=<optimized out>) at eval.c:2549
#31 0x0000557cbe9c5d5b in Flet (args=<optimized out>) at eval.c:1080
#32 0x0000557cbe9c45b2 in eval_sub (form=<optimized out>) at eval.c:2549
#33 0x0000557cbe9c4df0 in Fprogn (body=<optimized out>) at eval.c:439
#34 0x0000557cbe9c517b in funcall_lambda (fun=<optimized out>, nargs=nargs@entry=0, arg_vector=arg_vector@entry=0x7fff70418f88) at eval.c:3350
#35 0x0000557cbe9c5302 in funcall_general (fun=<optimized out>, numargs=numargs@entry=0, args=args@entry=0x7fff70418f88) at eval.c:3044
#36 0x0000557cbe9c155c in Ffuncall (nargs=1, args=0x7fff70418f80) at eval.c:3093
#37 0x0000557cbe9c46f9 in eval_sub (form=<optimized out>) at eval.c:2570
#38 0x0000557cbe9c4df0 in Fprogn (body=<optimized out>, body@entry=0x794b4da82c63) at eval.c:439
--Type <RET> for more, q to quit, c to continue without paging--c
#39 0x0000557cbe9bfe25 in internal_catch (tag=<optimized out>, func=func@entry=0x557cbe9c4dc4 <Fprogn>, arg=0x794b4da82c63) at eval.c:1292
#40 0x0000557cbe9c59cd in Fcatch (args=0x794b4da82c53) at /home/dgutov/vc/emacs/src/lisp.h:1539
#41 0x0000557cbe9c45b2 in eval_sub (form=<optimized out>) at eval.c:2549
#42 0x0000557cbe9c566f in Fsetq (args=<optimized out>) at eval.c:486
#43 0x0000557cbe9c45b2 in eval_sub (form=<optimized out>) at eval.c:2549
#44 0x0000557cbe9c635d in Funwind_protect (args=0x794b4da82d23) at /home/dgutov/vc/emacs/src/lisp.h:1533
#45 0x0000557cbe9c45b2 in eval_sub (form=<optimized out>) at eval.c:2549
#46 0x0000557cbe9c4df0 in Fprogn (body=<optimized out>) at eval.c:439
#47 0x0000557cbe9c6210 in FletX (args=<optimized out>) at /home/dgutov/vc/emacs/src/lisp.h:1539
#48 0x0000557cbe9c45b2 in eval_sub (form=<optimized out>) at eval.c:2549
#49 0x0000557cbe9c4df0 in Fprogn (body=<optimized out>) at eval.c:439
#50 0x0000557cbe9c517b in funcall_lambda (fun=fun@entry=0x557cc0aecc05, nargs=nargs@entry=2, arg_vector=arg_vector@entry=0x7fff704194f0) at eval.c:3350
#51 0x0000557cbe9c5af6 in apply_lambda (fun=fun@entry=0x557cc0aecc05, args=<optimized out>, count=count@entry=...) at eval.c:3215
#52 0x0000557cbe9c48e2 in eval_sub (form=<optimized out>) at eval.c:2645
#53 0x0000557cbe9c4df0 in Fprogn (body=<optimized out>) at eval.c:439
#54 0x0000557cbe9c45b2 in eval_sub (form=<optimized out>) at eval.c:2549
#55 0x0000557cbe9c635d in Funwind_protect (args=0x794b4d9345f3) at /home/dgutov/vc/emacs/src/lisp.h:1533
#56 0x0000557cbe9c45b2 in eval_sub (form=<optimized out>) at eval.c:2549
#57 0x0000557cbe9c4df0 in Fprogn (body=<optimized out>) at eval.c:439
#58 0x0000557cbe9c45b2 in eval_sub (form=<optimized out>) at eval.c:2549
#59 0x0000557cbe9c4df0 in Fprogn (body=<optimized out>) at eval.c:439
#60 0x0000557cbe9c6210 in FletX (args=<optimized out>) at /home/dgutov/vc/emacs/src/lisp.h:1539
#61 0x0000557cbe9c45b2 in eval_sub (form=<optimized out>) at eval.c:2549
#62 0x0000557cbe9c4df0 in Fprogn (body=<optimized out>) at eval.c:439
#63 0x0000557cbe9c6210 in FletX (args=<optimized out>) at /home/dgutov/vc/emacs/src/lisp.h:1539
#64 0x0000557cbe9c45b2 in eval_sub (form=<optimized out>) at eval.c:2549
#65 0x0000557cbe9c4df0 in Fprogn (body=<optimized out>) at eval.c:439
#66 0x0000557cbe9c517b in funcall_lambda (fun=fun@entry=0x557cc0b25a75, nargs=nargs@entry=0, arg_vector=arg_vector@entry=0x7fff70419bd0) at eval.c:3350
#67 0x0000557cbe9c5af6 in apply_lambda (fun=fun@entry=0x557cc0b25a75, args=<optimized out>, count=count@entry=...) at eval.c:3215
#68 0x0000557cbe9c48e2 in eval_sub (form=<optimized out>) at eval.c:2645
#69 0x0000557cbe9c4df0 in Fprogn (body=<optimized out>) at eval.c:439
#70 0x0000557cbe9c5ebf in Flet (args=<optimized out>) at /home/dgutov/vc/emacs/src/lisp.h:1539
#71 0x0000557cbe9c45b2 in eval_sub (form=<optimized out>) at eval.c:2549
#72 0x0000557cbe9c4df0 in Fprogn (body=<optimized out>, body@entry=0x794b4d8f3193) at eval.c:439
#73 0x0000557cbe9b2a66 in Fsave_current_buffer (args=0x794b4d8f3193) at editfns.c:852
#74 0x0000557cbe9c45b2 in eval_sub (form=<optimized out>) at eval.c:2549
#75 0x0000557cbe9c4df0 in Fprogn (body=<optimized out>) at eval.c:439
#76 0x0000557cbe9c517b in funcall_lambda (fun=<optimized out>, nargs=nargs@entry=0, arg_vector=arg_vector@entry=0x7fff7041a078) at eval.c:3350
#77 0x0000557cbe9c5302 in funcall_general (fun=<optimized out>, numargs=numargs@entry=0, args=args@entry=0x7fff7041a078) at eval.c:3044
#78 0x0000557cbe9c155c in Ffuncall (nargs=1, args=0x7fff7041a070) at eval.c:3093
#79 0x0000557cbe9c46f9 in eval_sub (form=<optimized out>) at eval.c:2570
#80 0x0000557cbe9c55c6 in Fprog1 (args=0x794b4da8e5c3) at eval.c:460
#81 0x0000557cbe9c45b2 in eval_sub (form=<optimized out>) at eval.c:2549
#82 0x0000557cbe9c4df0 in Fprogn (body=<optimized out>) at eval.c:439
#83 0x0000557cbe9c5ebf in Flet (args=<optimized out>) at /home/dgutov/vc/emacs/src/lisp.h:1539
#84 0x0000557cbe9c45b2 in eval_sub (form=<optimized out>) at eval.c:2549
#85 0x0000557cbe9c635d in Funwind_protect (args=0x794b4da8e663) at /home/dgutov/vc/emacs/src/lisp.h:1533
#86 0x0000557cbe9c45b2 in eval_sub (form=<optimized out>) at eval.c:2549
#87 0x0000557cbe9c4df0 in Fprogn (body=<optimized out>) at eval.c:439
#88 0x0000557cbe9c6210 in FletX (args=<optimized out>) at /home/dgutov/vc/emacs/src/lisp.h:1539
#89 0x0000557cbe9c45b2 in eval_sub (form=<optimized out>) at eval.c:2549
#90 0x0000557cbe9c4df0 in Fprogn (body=<optimized out>) at eval.c:439
#91 0x0000557cbe9c517b in funcall_lambda (fun=fun@entry=0x557cc0aec9b5, nargs=nargs@entry=2, arg_vector=arg_vector@entry=0x7fff7041a620) at eval.c:3350
#92 0x0000557cbe9c5af6 in apply_lambda (fun=fun@entry=0x557cc0aec9b5, args=<optimized out>, count=count@entry=...) at eval.c:3215
#93 0x0000557cbe9c48e2 in eval_sub (form=<optimized out>) at eval.c:2645
#94 0x0000557cbe9c4df0 in Fprogn (body=<optimized out>) at eval.c:439
#95 0x0000557cbe9c517b in funcall_lambda (fun=<optimized out>, nargs=nargs@entry=0, arg_vector=arg_vector@entry=0x794b4dbff4b8) at eval.c:3350
#96 0x0000557cbe9c5302 in funcall_general (fun=<optimized out>, fun@entry=0x557cc0b283f5, numargs=numargs@entry=0, args=args@entry=0x794b4dbff4b8) at eval.c:3044
#97 0x0000557cbea051f6 in exec_byte_code (fun=<optimized out>, fun@entry=0x557cc12fb10d, args_template=<optimized out>, args_template@entry=0, nargs=<optimized out>, 
    nargs@entry=0, args=<optimized out>, args@entry=0x7fff7041a9c8) at bytecode.c:814
#98 0x0000557cbe9c4f27 in funcall_lambda (fun=0x557cc12fb10d, nargs=nargs@entry=0, arg_vector=arg_vector@entry=0x7fff7041a9c8) at eval.c:3252
#99 0x0000557cbe9c5302 in funcall_general (fun=<optimized out>, numargs=numargs@entry=0, args=args@entry=0x7fff7041a9c8) at eval.c:3044
#100 0x0000557cbe9c155c in Ffuncall (nargs=nargs@entry=1, args=args@entry=0x7fff7041a9c0) at eval.c:3093
#101 0x0000557cbe9c362f in call0 (fn=<optimized out>) at /home/dgutov/vc/emacs/src/lisp.h:3515
#102 Fhandler_bind_1 (nargs=<optimized out>, args=0x794b4dbff468) at eval.c:1478
#103 0x0000557cbe9c34d6 in funcall_subr (subr=<optimized out>, numargs=numargs@entry=3, args=args@entry=0x794b4dbff468) at eval.c:3184
#104 0x0000557cbea0516e in exec_byte_code (fun=<optimized out>, fun@entry=0x557cc0712b2d, args_template=<optimized out>, args_template@entry=256, nargs=<optimized out>, 
    nargs@entry=1, args=<optimized out>, args@entry=0x7fff7041ab70) at /home/dgutov/vc/emacs/src/lisp.h:2243
#105 0x0000557cbe9c4f27 in funcall_lambda (fun=fun@entry=0x557cc0712b2d, nargs=nargs@entry=1, arg_vector=arg_vector@entry=0x7fff7041ab70) at eval.c:3252
#106 0x0000557cbe9c5af6 in apply_lambda (fun=fun@entry=0x557cc0712b2d, args=<optimized out>, count=count@entry=...) at eval.c:3215
#107 0x0000557cbe9c48e2 in eval_sub (form=form@entry=0x794b4d5e8d33) at eval.c:2645
#108 0x0000557cbe9c68e7 in Feval (form=0x794b4d5e8d33, lexical=<optimized out>) at eval.c:2462
#109 0x0000557cbe9c33fb in funcall_subr (subr=<optimized out>, numargs=numargs@entry=2, args=args@entry=0x794b4dbff1c0) at eval.c:3163
#110 0x0000557cbea0516e in exec_byte_code (fun=<optimized out>, fun@entry=0x794b4ecd9285, args_template=<optimized out>, args_template@entry=0, nargs=<optimized out>, 
    nargs@entry=0, args=<optimized out>, args@entry=0x7fff7041ae30) at /home/dgutov/vc/emacs/src/lisp.h:2243
#111 0x0000557cbe9c4f27 in funcall_lambda (fun=fun@entry=0x794b4ecd9285, nargs=nargs@entry=0, arg_vector=arg_vector@entry=0x7fff7041ae30) at eval.c:3252
#112 0x0000557cbe9c5af6 in apply_lambda (fun=fun@entry=0x794b4ecd9285, args=<optimized out>, count=count@entry=...) at eval.c:3215
#113 0x0000557cbe9c48e2 in eval_sub (form=form@entry=0x794b4ee99b7b) at eval.c:2645
#114 0x0000557cbe9c68e7 in Feval (form=0x794b4ee99b7b, lexical=lexical@entry=0x30) at eval.c:2462
#115 0x0000557cbe939510 in top_level_2 () at keyboard.c:1184
#116 0x0000557cbe9bfef3 in internal_condition_case (bfun=bfun@entry=0x557cbe9394bc <top_level_2>, handlers=handlers@entry=0x90, hfun=hfun@entry=0x557cbe93e278 <cmd_error>) at eval.c:1613
#117 0x0000557cbe9393fd in top_level_1 (ignore=ignore@entry=0x0) at keyboard.c:1196
#118 0x0000557cbe9bfe25 in internal_catch (tag=tag@entry=0x122d0, func=func@entry=0x557cbe9393d3 <top_level_1>, arg=arg@entry=0x0) at eval.c:1292
#119 0x0000557cbe93936d in command_loop () at keyboard.c:1145
#120 0x0000557cbe93de34 in recursive_edit_1 () at keyboard.c:754
#121 0x0000557cbe93e19a in Frecursive_edit () at keyboard.c:837
#122 0x0000557cbe93872d in main (argc=16, argv=<optimized out>) at emacs.c:2635

Reply via email to