all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: 70385@debbugs.gnu.org
Cc: luangruo@yahoo.com, vekazanov@gmail.com, eliz@gnu.org, juri@linkov.net
Subject: bug#70385: Crash in note_fringe_highlight
Date: Mon, 15 Apr 2024 20:04:02 +0300	[thread overview]
Message-ID: <39097.8401921288$1713200721@news.gmane.org> (raw)
In-Reply-To: <87y19ezq14.fsf@yahoo.com> (Po Lu via's message of "Mon, 15 Apr 2024 21:58:15 +0800")

[-- Attachment #1: Type: text/plain, Size: 1318 bytes --]

Po Lu via "Bug reports for GNU Emacs, the Swiss army knife of text
editors" <bug-gnu-emacs@gnu.org> writes:

> Eli Zaretskii <eliz@gnu.org> writes:
>
>> I think this should be
>>
>>   if ((window_outdated (w)
>>        || !w->window_end_valid
>>        || !MATRIX_ROW_DISPLAYS_TEXT_P (MATRIX_ROW (w->current_matrix,
>> 						   vpos)))
>
> Yes, sorry.
>
>> I'm not sure it will help, because it seems the segfault happens in
>> the MATRIX_ROW_DISPLAYS_TEXT_P macro.  So I think we are somehow
>> dealing with w->current_matrix whose 'nrows' is too small.  The
>> mouse-highlight code detects that case in x_y_to_hpos_vpos.
>
> Right.  What about this?
>
> diff --git a/src/xdisp.c b/src/xdisp.c
> index d984c12d1aa..dcecc2b09d4 100644
> --- a/src/xdisp.c
> +++ b/src/xdisp.c
> @@ -35772,6 +35772,7 @@ note_fringe_highlight (struct frame *f, Lisp_Object window, int x, int y,
>    /* Don't access the TEXT_AREA of a row that does not display text, or
>       when the window is outdated.  (bug#70385) */
>    if (window_outdated (w)
> +      || (vpos >= w->current_matrix->nrows)
>        || !MATRIX_ROW_DISPLAYS_TEXT_P (MATRIX_ROW (w->current_matrix,
>  						  vpos)))
>      return;
>
> It's the same test x_y_to_hpos_vpos applies to decide whether to punt
> and return NULL.

Tried the change but it wasn't enough:

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: emacs.gdb.note_fringe.3rd.log --]
[-- Type: text/x-log, Size: 9823 bytes --]

#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007f0ca9294a73 in __pthread_kill_internal (signo=11, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007f0ca9241176 in __GI_raise (sig=sig@entry=11) at ../sysdeps/posix/raise.c:26
#3  0x00005591d8759f70 in terminate_due_to_signal (sig=11, backtrace_limit=<optimized out>) at ../../emacs-30.0.50.5968.24957ea566b/src/emacs.c:479
#4  0x00005591d875a603 in handle_fatal_signal (sig=<optimized out>) at ../../emacs-30.0.50.5968.24957ea566b/src/sysdep.c:1800
#5  0x00005591d8a235e8 in deliver_thread_signal.constprop.0 (sig=sig@entry=11, handler=<optimized out>) at ../../emacs-30.0.50.5968.24957ea566b/src/sysdep.c:1792
#6  0x00005591d88beb29 in deliver_fatal_thread_signal (sig=11) at ../../emacs-30.0.50.5968.24957ea566b/src/sysdep.c:1812
#7  handle_sigsegv (sig=11, siginfo=<optimized out>, arg=<optimized out>) at ../../emacs-30.0.50.5968.24957ea566b/src/sysdep.c:1950
#8  0x00007f0ca9241240 in <signal handler called> () at /lib64/libc.so.6
#9  0x00005591d87d0799 in note_fringe_highlight (part=<optimized out>, y=<optimized out>, x=<optimized out>, window=XIL(0x5591dfb7bc85), f=0x5591dfb7b988) at /usr/src/debug/emacs-30.0.50.5990.9b755244bf0/src/xdisp.c:35776
#10 note_mouse_highlight (f=0x5591dfb7b988, x=<optimized out>, y=<optimized out>) at /usr/src/debug/emacs-30.0.50.5990.9b755244bf0/src/xdisp.c:36037
#11 0x00005591d8859710 in x_note_mouse_movement (frame=0x5591dfb7b988, event=0x7ffc900620e0, device=<optimized out>) at ../../emacs-30.0.50.5986.55a200d7071/src/xterm.c:14667
#12 0x00005591d886470a in handle_one_xevent (dpyinfo=0x5591e83799f0, event=<optimized out>, finish=<optimized out>, hold_quit=0x7ffc90062860) at ../../emacs-30.0.50.5986.55a200d7071/src/xterm.c:23162
#13 0x00005591d885c401 in event_handler_gdk (gxev=0x7ffc900625d0, ev=<optimized out>, data=<optimized out>) at ../../emacs-30.0.50.5986.55a200d7071/src/xterm.c:17890
#14 0x00007f0cb418b82f in gdk_event_apply_filters (xevent=xevent@entry=0x7ffc900625d0, event=event@entry=0x5591de546770, window=window@entry=0x0) at ../gdk/x11/gdkeventsource.c:79
#15 0x00007f0cb419303f in gdk_event_source_translate_event (xevent=0x7ffc900625d0, event_source=0x5591e114da10) at ../gdk/x11/gdkeventsource.c:198
#16 _gdk_x11_display_queue_events (display=0x5591ebef2f00) at ../gdk/x11/gdkeventsource.c:341
#17 0x00007f0cb413b9b9 in gdk_display_get_event (display=0x5591ebef2f00) at ../gdk/gdkdisplay.c:442
#18 0x00007f0cb4193412 in gdk_event_source_dispatch.lto_priv () at ../gdk/x11/gdkeventsource.c:354
#19 0x00007f0cb3ae9710 in  () at /lib64/libglib-2.0.so.0
#20 0x00007f0cb3aeb358 in  () at /lib64/libglib-2.0.so.0
#21 0x00007f0cb3aeba0c in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#22 0x00007f0cb43f6b95 in gtk_main_iteration () at ../gtk/gtkmain.c:1433
#23 0x00005591d886c022 in XTread_socket (terminal=<optimized out>, hold_quit=0x7ffc90062860) at ../../emacs-30.0.50.5986.55a200d7071/src/xterm.c:25657
#24 0x00005591d88ae662 in gobble_input () at ../../emacs-30.0.50.5968.24957ea566b/src/keyboard.c:7898
#25 0x00005591d88ae965 in handle_async_input () at ../../emacs-30.0.50.5968.24957ea566b/src/keyboard.c:8137
#26 process_pending_signals () at ../../emacs-30.0.50.5968.24957ea566b/src/keyboard.c:8151
#27 unblock_input_to (level=<optimized out>) at ../../emacs-30.0.50.5968.24957ea566b/src/keyboard.c:8166
#28 unblock_input_to (level=<optimized out>) at ../../emacs-30.0.50.5968.24957ea566b/src/keyboard.c:8160
#29 unblock_input () at ../../emacs-30.0.50.5968.24957ea566b/src/keyboard.c:8185
#30 0x00005591d891f163 in garbage_collect () at ../../emacs-30.0.50.5968.24957ea566b/src/alloc.c:6685
#31 0x00005591d891f685 in maybe_garbage_collect () at ../../emacs-30.0.50.5968.24957ea566b/src/alloc.c:6507
#32 0x00005591d8999842 in maybe_gc () at /usr/src/debug/emacs-30.0.50.5990.9b755244bf0/src/lisp.h:5891
#33 exec_byte_code (fun=<optimized out>, args_template=<optimized out>, nargs=<optimized out>, args=<optimized out>) at /usr/src/debug/emacs-30.0.50.5990.9b755244bf0/src/bytecode.c:789
#34 0x00005591d894614a in funcall_lambda (fun=fun@entry=XIL(0x5591dcada08d), nargs=nargs@entry=0, arg_vector=arg_vector@entry=0x7ffc90062b20) at ../../emacs-30.0.50.5986.55a200d7071/src/eval.c:3190
#35 0x00005591d89462d9 in apply_lambda (fun=<optimized out>, args=<optimized out>, count=count@entry=...) at ../../emacs-30.0.50.5986.55a200d7071/src/eval.c:3144
#36 0x00005591d89439fb in eval_sub (form=form@entry=XIL(0x7f0ca217a4a3)) at ../../emacs-30.0.50.5986.55a200d7071/src/eval.c:2615
#37 0x00005591d8945baf in Feval (form=XIL(0x7f0ca217a4a3), lexical=<optimized out>) at ../../emacs-30.0.50.5986.55a200d7071/src/eval.c:2389
#38 0x00005591d894340d in funcall_subr (subr=0x5591d8fa1760 <Seval>, numargs=numargs@entry=2, args=args@entry=0x7ffc90062e68) at ../../emacs-30.0.50.5986.55a200d7071/src/eval.c:3092
#39 0x00005591d8940ad0 in funcall_general (fun=<optimized out>, numargs=numargs@entry=2, args=args@entry=0x7ffc90062e68) at ../../emacs-30.0.50.5986.55a200d7071/src/lisp.h:2242
#40 0x00005591d8940cc6 in Ffuncall (nargs=nargs@entry=3, args=args@entry=0x7ffc90062e60) at ../../emacs-30.0.50.5986.55a200d7071/src/eval.c:3022
#41 0x00005591d89401a1 in internal_condition_case_n (bfun=0x5591d8940bd0 <Ffuncall>, nargs=3, args=0x7ffc90062e60, handlers=<optimized out>, hfun=0x5591d8787420 <dsafe_eval_handler>) at ../../emacs-30.0.50.5986.55a200d7071/src/eval.c:1617
#42 0x00005591d87d4c54 in dsafe__call.part.0.lto_priv.0 (inhibit_quit=true, f=0x5591d8940bd0 <Ffuncall>, nargs=3, args=0x7ffc90062e60) at /usr/src/debug/emacs-30.0.50.5990.9b755244bf0/src/xdisp.c:3067
#43 0x00005591d87c3c04 in dsafe__call (args=0x7ffc90062e60, nargs=3, f=<optimized out>, inhibit_quit=true) at /usr/src/debug/emacs-30.0.50.5990.9b755244bf0/src/xdisp.c:3056
#44 dsafe_eval (sexpr=<optimized out>) at /usr/src/debug/emacs-30.0.50.5990.9b755244bf0/src/xdisp.c:3103
#45 display_mode_element (it=it@entry=0x7ffc90063020, depth=2, depth@entry=1, field_width=0, precision=precision@entry=0, elt=XIL(0x7f0ca217a4c3), props=props@entry=XIL(0), risky=false) at /usr/src/debug/emacs-30.0.50.5990.9b755244bf0/src/xdisp.c:27876
#46 0x00005591d87c3cdc in display_mode_element (it=0x7ffc90063020, depth=1, field_width=0, precision=0, elt=<optimized out>, props=XIL(0), risky=false) at /usr/src/debug/emacs-30.0.50.5990.9b755244bf0/src/xdisp.c:27962
#47 0x00005591d87b92ca in display_mode_line (w=w@entry=0x5591dfb7bc80, face_id=MODE_LINE_ACTIVE_FACE_ID, format=XIL(0x7f0ca217a4e3)) at /usr/src/debug/emacs-30.0.50.5990.9b755244bf0/src/xdisp.c:27387
#48 0x00005591d87b9b12 in display_mode_lines (w=0x5591dfb7bc80) at /usr/src/debug/emacs-30.0.50.5990.9b755244bf0/src/xdisp.c:27300
#49 0x00005591d87abdd9 in redisplay_window (window=<optimized out>, just_this_one_p=just_this_one_p@entry=false) at /usr/src/debug/emacs-30.0.50.5990.9b755244bf0/src/xdisp.c:20921
#50 0x00005591d87af5fb in redisplay_window_0 (window=window@entry=XIL(0x5591dfb7bc85)) at /usr/src/debug/emacs-30.0.50.5990.9b755244bf0/src/xdisp.c:18012
#51 0x00005591d894004c in internal_condition_case_1 (bfun=0x5591d87af5d0 <redisplay_window_0>, arg=XIL(0x5591dfb7bc85), handlers=<optimized out>, hfun=0x5591d87a2890 <redisplay_window_error>) at ../../emacs-30.0.50.5986.55a200d7071/src/eval.c:1561
#52 0x00005591d87a2a09 in redisplay_windows (window=XIL(0x5591dfb7bc85)) at /usr/src/debug/emacs-30.0.50.5990.9b755244bf0/src/xdisp.c:17981
#53 0x00005591d87a5d8e in redisplay_internal () at /usr/src/debug/emacs-30.0.50.5990.9b755244bf0/src/xdisp.c:17381
#54 0x00005591d87a726a in redisplay_preserve_echo_area (from_where=<optimized out>) at /usr/src/debug/emacs-30.0.50.5990.9b755244bf0/src/xdisp.c:17740
#55 0x00005591d89ae509 in wait_reading_process_output (time_limit=<optimized out>, nsecs=<optimized out>, read_kbd=<optimized out>, do_display=<optimized out>, wait_for_cell=<optimized out>, wait_proc=<optimized out>, just_wait_proc=<optimized out>) at ../../emacs-30.0.50.5968.24957ea566b/src/process.c:5434
#56 0x00005591d876ffb6 in sit_for (timeout=<optimized out>, reading=true, display_option=<optimized out>) at ../../emacs-30.0.50.5986.55a200d7071/src/dispnew.c:6318
#57 0x00005591d88aaac2 in read_char (commandflag=1, map=XIL(0x5591f0dda9f3), prev_event=XIL(0), used_mouse_menu=0x7ffc90068cfb, end_time=0x0) at ../../emacs-30.0.50.5968.24957ea566b/src/keyboard.c:2922
#58 0x00005591d88bbc3f in read_key_sequence (keybuf=0x7ffc90068e90, prompt=XIL(0), dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false, disable_text_conversion_p=false) at ../../emacs-30.0.50.5968.24957ea566b/src/keyboard.c:10722
#59 0x00005591d88a2fe7 in command_loop_1 () at ../../emacs-30.0.50.5968.24957ea566b/src/keyboard.c:1428
#60 0x00005591d893ffb7 in internal_condition_case (bfun=0x5591d88a2e10 <command_loop_1>, handlers=<optimized out>, hfun=0x5591d88a1ef0 <cmd_error>) at ../../emacs-30.0.50.5986.55a200d7071/src/eval.c:1537
#61 0x00005591d88a232e in command_loop_2 (handlers=handlers@entry=XIL(0x90)) at ../../emacs-30.0.50.5968.24957ea566b/src/keyboard.c:1167
#62 0x00005591d893fec1 in internal_catch (tag=<optimized out>, func=0x5591d88a2300 <command_loop_2>, arg=XIL(0x90)) at ../../emacs-30.0.50.5986.55a200d7071/src/eval.c:1217
#63 0x00005591d88a0e99 in command_loop () at ../../emacs-30.0.50.5968.24957ea566b/src/keyboard.c:1145
#64 0x00005591d88a19d6 in recursive_edit_1 () at ../../emacs-30.0.50.5968.24957ea566b/src/keyboard.c:753
#65 0x00005591d88a1dec in Frecursive_edit () at ../../emacs-30.0.50.5968.24957ea566b/src/keyboard.c:836
#66 0x00005591d8764adc in main (argc=2, argv=0x7ffc90069348) at ../../emacs-30.0.50.5968.24957ea566b/src/emacs.c:2626
You can't do that without a process to debug.
quit

  parent reply	other threads:[~2024-04-15 17:04 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-14 16:10 bug#70385: Crash in note_fringe_highlight Juri Linkov
2024-04-14 16:40 ` Eli Zaretskii
2024-04-14 16:41   ` Vladimir Kazanov
2024-04-15 16:39   ` Juri Linkov
2024-04-18 11:08     ` Eli Zaretskii
2024-04-18 17:10       ` Juri Linkov
2024-04-18 17:55         ` Eli Zaretskii
2024-04-14 16:40 ` Vladimir Kazanov
2024-04-14 20:13   ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
     [not found]   ` <87zftv7leb.fsf@>
2024-04-14 20:22     ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-04-14 20:22     ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
     [not found]   ` <87edb73d9u.fsf@>
2024-04-15  1:32     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-04-15  6:29       ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-04-15  6:29       ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-04-15  6:31       ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
     [not found]       ` <87bk6b16ii.fsf@>
2024-04-15  6:49         ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-04-15 11:06           ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
     [not found]           ` <661d0a70.0c0a0220.5de8.ce32SMTPIN_ADDED_BROKEN@mx.google.com>
2024-04-15 11:09             ` Vladimir Kazanov
     [not found]           ` <875xwiubq5.fsf@>
2024-04-15 11:26             ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-04-15 12:55               ` Eli Zaretskii
2024-04-18 11:06             ` Eli Zaretskii
2024-04-18 14:34               ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
     [not found]               ` <87edb2buyu.fsf@>
2024-04-18 14:48                 ` Eli Zaretskii
2024-04-15 11:30       ` Eli Zaretskii
2024-04-15 11:57         ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-04-15 13:03           ` Eli Zaretskii
2024-04-15 13:58             ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-04-15 14:39               ` Eli Zaretskii
2024-04-15 17:04               ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-04-15 17:04               ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
     [not found]               ` <87ttk2sgl9.fsf@>
2024-04-15 18:23                 ` Eli Zaretskii
2024-04-15 19:20                   ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
     [not found]                   ` <87mspuph44.fsf@>
2024-04-16  6:52                     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-04-16 10:56                       ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-04-15  6:49   ` Juri Linkov
2024-04-15  8:22     ` Vladimir Kazanov
2024-04-15 11:55       ` 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='39097.8401921288$1713200721@news.gmane.org' \
    --to=bug-gnu-emacs@gnu.org \
    --cc=70385@debbugs.gnu.org \
    --cc=bjorn.bidar@thaodan.de \
    --cc=eliz@gnu.org \
    --cc=juri@linkov.net \
    --cc=luangruo@yahoo.com \
    --cc=vekazanov@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.