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

From: Eli Zaretskii <[email-masked]>
Date: Mon, 28 Feb 2022 19:14:50 +0200

> From: Gustavo Barros <[email-masked]>
> Cc: [email-masked]
> Date: Mon, 28 Feb 2022 12:47:05 -0300
> 
> >    thread apply all bt
> >
> > Then post here everything that command produces.
> 
> The results are bellow.  Now, I know that, thus far, I had built Emacs 
> with my regular options, not the ones recommended by `etc/DEBUG'. 
> Should I add them now?  Any other options/flags, you'd like me to 
> include in the configure call?

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

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

> 
> 
> (gdb) continue
> Continuing.
> [Switching to thread 4 (Thread 0x7f23f2a69700 (LWP 21650))](running)
> [Detaching after vfork from child process 22054]
> [Detaching after vfork from child process 22055]
> [Detaching after vfork from child process 22056]
> [Detaching after vfork from child process 22057]
> [Detaching after vfork from child process 22058]
> [Detaching after vfork from child process 22072]
> [Detaching after vfork from child process 22073]
> [Detaching after vfork from child process 22074]
> [Detaching after vfork from child process 22075]
> [Detaching after vfork from child process 22083]
> [Detaching after vfork from child process 22084]
> [Detaching after vfork from child process 22085]
> [Detaching after vfork from child process 22086]
> [Detaching after vfork from child process 22089]
> [Detaching after vfork from child process 22090]
> [Detaching after vfork from child process 22091]
> [Detaching after vfork from child process 22092]
> [Detaching after vfork from child process 22093]
> [Detaching after vfork from child process 22094]
> [Detaching after vfork from child process 22095]
> [Detaching after vfork from child process 22096]
> 
> Thread 1 "emacs" received signal SIGSEGV, Segmentation fault.
> 0x00007f2402c2c104 in cairo_pattern_get_surface () from 
> /lib/x86_64-linux-gnu/libcairo.so.2
> (gdb) thread apply all bt
> 
> Thread 4 (Thread 0x7f23f2a69700 (LWP 21650)):
> #0  deliver_input_available_signal (sig=29) at keyboard.c:7284
> #1  0x00007f23fbf7a420 in <signal handler called> () at 
>  /lib/x86_64-linux-gnu/libpthread.so.0
> #2  0x00007f23fa20faff in __GI___poll (fds=0x5649a37e7900, nfds=1, 
>  timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
> #3  0x00007f240289236e in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #4  0x00007f24028924a3 in g_main_context_iteration () at 
>  /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #5  0x00007f23f2ab999d in  () at 
>  /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so
> #6  0x00007f24028bbad1 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #7  0x00007f23fbf6e609 in start_thread (arg=<optimized out>) at 
>  pthread_create.c:477
> #8  0x00007f23fa21c293 in clone () at 
>  ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> 
> Thread 3 (Thread 0x7f23f331a700 (LWP 21649)):
> #0  0x00007f23fa20faff in __GI___poll (fds=0x5649a378a910, nfds=2, 
>  timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
> #1  0x00007f240289236e in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #2  0x00007f24028926f3 in g_main_loop_run () at 
>  /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #3  0x00007f2402ae9f8a in  () at /lib/x86_64-linux-gnu/libgio-2.0.so.0
> #4  0x00007f24028bbad1 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #5  0x00007f23fbf6e609 in start_thread (arg=<optimized out>) at 
>  pthread_create.c:477
> #6  0x00007f23fa21c293 in clone () at 
>  ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> 
> Thread 2 (Thread 0x7f23f418d700 (LWP 21648)):
> #0  0x00007f23fa20faff in __GI___poll (fds=0x5649a2ea4bc0, nfds=1, 
>  timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
> #1  0x00007f240289236e in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #2  0x00007f24028924a3 in g_main_context_iteration () at 
>  /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #3  0x00007f24028924f1 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #4  0x00007f24028bbad1 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #5  0x00007f23fbf6e609 in start_thread (arg=<optimized out>) at 
>  pthread_create.c:477
> #6  0x00007f23fa21c293 in clone () at 
>  ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> 
> Thread 1 (Thread 0x7f23f6107400 (LWP 21647)):
> #0  0x00007f2402c2c104 in cairo_pattern_get_surface () at 
>  /lib/x86_64-linux-gnu/libcairo.so.2
> #1  0x00005649a1a9da9b in x_cr_draw_image (f=f@entry=0x5649a2f3abe0, 
>  gc=gc@entry=0x5649a767f500, 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  0x00005649a1a9dd3d in x_draw_fringe_bitmap (w=<optimized out>, 
>  row=<optimized out>, p=0x7ffd84adc250) at xterm.c:1439
> #3  0x00005649a1bd1906 in draw_fringe_bitmap_1 
>  (w=w@entry=0x5649a32d4fd0, row=row@entry=0x5649a5060410, 
>  left_p=left_p@entry=1, overlay=<optimized out>, which=<optimized out>, 
>  which@entry=0) at fringe.c:692
> #4  0x00005649a1bd25c7 in draw_fringe_bitmap (w=w@entry=0x5649a32d4fd0, 
>  row=row@entry=0x5649a5060410, left_p=left_p@entry=1) at fringe.c:861
> #5  0x00005649a1bd27a3 in draw_row_fringe_bitmaps 
>  (w=w@entry=0x5649a32d4fd0, row=row@entry=0x5649a5060410) at 
>  fringe.c:882
> #6  0x00005649a1bd28c1 in draw_window_fringes (w=w@entry=0x5649a32d4fd0, 
>  no_fringe_p=no_fringe_p@entry=true) at fringe.c:930
> #7  0x00005649a19e92f8 in gui_update_window_end (w=0x5649a32d4fd0, 
>  cursor_on_p=<optimized out>, mouse_face_overwritten_p=<optimized out>) 
>  at dispnew.c:3853
> #8  0x00005649a19e9a4c in update_window (w=w@entry=0x5649a32d4fd0, 
>  force_p=<optimized out>, force_p@entry=true) at dispnew.c:3777
> #9  0x00005649a19ea3e1 in update_window_tree (w=w@entry=0x5649a32d4fd0, 
>  force_p=force_p@entry=true) at dispnew.c:3407
> #10 0x00005649a19ea60b in update_frame (f=f@entry=0x5649a2f3abe0, 
>  force_p=true, force_p@entry=false, 
>  inhibit_hairy_id_p=inhibit_hairy_id_p@entry=false) at dispnew.c:3242
> #11 0x00005649a1a24895 in redisplay_internal () at xdisp.c:16189
> #12 0x00005649a1ad4e37 in read_char (commandflag=1, map=0x5649a433a493, 
>  prev_event=0x0, used_mouse_menu=0x7ffd84addeab, end_time=0x0) at 
>  keyboard.c:2555
> #13 0x00005649a1ad7883 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 0x00005649a1ad919c in command_loop_1 () at lisp.h:1008
> #15 0x00005649a1b482a7 in internal_condition_case 
>  (bfun=bfun@entry=0x5649a1ad8fa0 <command_loop_1>, 
>  handlers=handlers@entry=0x90, hfun=hfun@entry=0x5649a1acfa60 
>  <cmd_error>) at eval.c:1450
> #16 0x00005649a1ac9d0a in command_loop_2 (handlers=handlers@entry=0x90) 
>  at keyboard.c:1133
> #17 0x00005649a1b481e9 in internal_catch (tag=tag@entry=0xe880, 
>  func=func@entry=0x5649a1ac9ce0 <command_loop_2>, arg=arg@entry=0x90) at 
>  eval.c:1181
> #18 0x00005649a1ac9ca6 in command_loop () at lisp.h:1008
> #19 0x00005649a1acf650 in recursive_edit_1 () at keyboard.c:720
> #20 0x00005649a1acf9a6 in Frecursive_edit () at keyboard.c:803
> #21 0x00005649a19e1d65 in main (argc=2, argv=<optimized out>) at 
>  emacs.c:2354
> (gdb) 

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.