Subject: Re: bug#54183: 28.0.91; Emacs crashes on bookmark-jump

From: Gustavo Barros <[email-masked]>
Date: Mon, 28 Feb 2022 15:33:27 -0300

On Mon, 28 Feb 2022 at 19:14, Eli Zaretskii <[email-masked]> wrote:

> Let's see what we can learn from what we have until now.

Let me know, at any point, if you need otherwise.

> I hope you didn't kill this session and didn't quit GDB, did you?

Oops... sorry, Eli, first thing I did.  I did not even consider not 
doing it.

What follows is from a different session/crash, but I included the first 
info anew. I'll try to keep this session alive this time (I've used a 
named server for this, since it's my main computer and I'd like to keep 
using Emacs regularly in it in the meantime).

>
> At this point, please type the following commands (without the "(gdb)"
> part -- that just shows the GDB prompt at which you type):
>
>   (gdb) thread 1
>   (gdb) frame 2
>   (gdb) print p->which
>   (gdb) print max_fringe_bmp
>   (gdb) print fringe_bmp[p->which]
>
> Please post here everything that the above produces.

The output from all commands you've asked so far for this session is:

Thread 1 "emacs" received signal SIGSEGV, Segmentation fault.
0x00007f8881a7e104 in cairo_pattern_get_surface () from 
/lib/x86_64-linux-gnu/libcairo.so.2
(gdb) thread apply all bt

Thread 4 (Thread 0x7f88718bb700 (LWP 27653)):
#0  0x00007f8879061aff in __GI___poll (fds=0x55746712b050, nfds=1, 
 timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f88816e436e in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f88816e44a3 in g_main_context_iteration () at 
 /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f887190b99d in  () at 
 /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so
#4  0x00007f888170dad1 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f887adc0609 in start_thread (arg=<optimized out>) at 
 pthread_create.c:477
#6  0x00007f887906e293 in clone () at 
 ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7f887216c700 (LWP 27652)):
#0  0x00007f8879061aff in __GI___poll (fds=0x55746705f440, nfds=2, 
 timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f88816e436e in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f88816e46f3 in g_main_loop_run () at 
 /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f888193bf8a in  () at /lib/x86_64-linux-gnu/libgio-2.0.so.0
#4  0x00007f888170dad1 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f887adc0609 in start_thread (arg=<optimized out>) at 
 pthread_create.c:477
#6  0x00007f887906e293 in clone () at 
 ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f8872fdf700 (LWP 27651)):
#0  0x00007f8879061aff in __GI___poll (fds=0x55746677a680, nfds=1, 
 timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f88816e436e in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f88816e44a3 in g_main_context_iteration () at 
 /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f88816e44f1 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f888170dad1 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f887adc0609 in start_thread (arg=<optimized out>) at 
 pthread_create.c:477
#6  0x00007f887906e293 in clone () at 
 ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f8874f59400 (LWP 27650)):
#0  0x00007f8881a7e104 in cairo_pattern_get_surface () at 
 /lib/x86_64-linux-gnu/libcairo.so.2
#1  0x00005574652b7a9b in x_cr_draw_image (f=f@entry=0x557467fba5d8, 
 gc=gc@entry=0x55746785e8b0, image=0x0, src_x=src_x@entry=0, src_y=0, 
 width=8, height=8, dest_x=0, dest_y=5, overlay_p=false) at xterm.c:624
#2  0x00005574652b7d3d in x_draw_fringe_bitmap (w=<optimized out>, 
 row=<optimized out>, p=0x7ffede9f6730) at xterm.c:1439
#3  0x00005574653eb906 in draw_fringe_bitmap_1 
 (w=w@entry=0x5574675c1f60, row=row@entry=0x557468c72410, 
 left_p=left_p@entry=1, overlay=<optimized out>, which=<optimized out>, 
 which@entry=0) at fringe.c:692
#4  0x00005574653ec5c7 in draw_fringe_bitmap (w=w@entry=0x5574675c1f60, 
 row=row@entry=0x557468c72410, left_p=left_p@entry=1) at fringe.c:861
#5  0x00005574653ec7a3 in draw_row_fringe_bitmaps 
 (w=w@entry=0x5574675c1f60, row=row@entry=0x557468c72410) at 
 fringe.c:882
#6  0x00005574653ec8c1 in draw_window_fringes (w=w@entry=0x5574675c1f60, 
 no_fringe_p=no_fringe_p@entry=true) at fringe.c:930
#7  0x00005574652032f8 in gui_update_window_end (w=0x5574675c1f60, 
 cursor_on_p=<optimized out>, mouse_face_overwritten_p=<optimized out>) 
 at dispnew.c:3853
#8  0x0000557465203a4c in update_window (w=w@entry=0x5574675c1f60, 
 force_p=<optimized out>, force_p@entry=true) at dispnew.c:3777
#9  0x00005574652043e1 in update_window_tree (w=w@entry=0x5574675c1f60, 
 force_p=force_p@entry=true) at dispnew.c:3407
#10 0x000055746520460b in update_frame (f=f@entry=0x557467fba5d8, 
 force_p=true, force_p@entry=false, 
 inhibit_hairy_id_p=inhibit_hairy_id_p@entry=false) at dispnew.c:3242
#11 0x000055746523e895 in redisplay_internal () at xdisp.c:16189
#12 0x00005574652eee37 in read_char (commandflag=1, map=0x55746b05d6a3, 
 prev_event=0x0, used_mouse_menu=0x7ffede9f838b, end_time=0x0) at 
 keyboard.c:2555
#13 0x00005574652f1883 in read_key_sequence (keybuf=<optimized out>, 
 prompt=0x0, dont_downcase_last=<optimized out>, 
 can_return_switch_frame=true, fix_current_buffer=true, 
 prevent_redisplay=<optimized out>) at keyboard.c:9635
#14 0x00005574652f319c in command_loop_1 () at lisp.h:1008
#15 0x00005574653622a7 in internal_condition_case 
 (bfun=bfun@entry=0x5574652f2fa0 <command_loop_1>, 
 handlers=handlers@entry=0x90, hfun=hfun@entry=0x5574652e9a60 
 <cmd_error>) at eval.c:1450
#16 0x00005574652e3d0a in command_loop_2 (handlers=handlers@entry=0x90) 
 at keyboard.c:1133
#17 0x00005574653621e9 in internal_catch (tag=tag@entry=0xe880, 
 func=func@entry=0x5574652e3ce0 <command_loop_2>, arg=arg@entry=0x90) at 
 eval.c:1181
#18 0x00005574652e3ca6 in command_loop () at lisp.h:1008
#19 0x00005574652e9650 in recursive_edit_1 () at keyboard.c:720
#20 0x00005574652e99a6 in Frecursive_edit () at keyboard.c:803
#21 0x00005574651fbd65 in main (argc=2, argv=<optimized out>) at 
 emacs.c:2354
(gdb) thread 1
[Switching to thread 1 (Thread 0x7f8874f59400 (LWP 27650))]
#0  0x00007f8881a7e104 in cairo_pattern_get_surface () from 
 /lib/x86_64-linux-gnu/libcairo.so.2
(gdb) frame 2
#2  0x00005574652b7d3d in x_draw_fringe_bitmap (w=<optimized out>, 
 row=<optimized out>, p=0x7ffede9f6730) at xterm.c:1439
1439	      x_cr_draw_image (f, gc, fringe_bmp[p->which], 0, p->dh,
(gdb) print p->which
$1 = 24
(gdb) print max_fringe_bmp
$2 = 41
(gdb) print fringe_bmp[p->which]
$3 = (cairo_pattern_t *) 0x0
(gdb) print max_used_fringe_bitmap
$4 = 30
(gdb)