Subject: Re: bug#38109: Updated Emacs to HEAD, consistently not scaling now

From: Adam Sjøgren <[email-masked]>
Date: Sun, 17 Nov 2019 19:49:56 +0100

Adam writes:

>> New patch attached.
>
> After a while with this patch running Gnus, Emacs crashed like this:

Here is a backtrace running Emacs with gdb (I don't really know how to
use gdb, just "run" and "bt"):

  (gdb) run
  Starting program: /usr/src/emacs/src/emacs 
  [Thread debugging using libthread_db enabled]
  Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
  [New Thread 0x7ffff0b32700 (LWP 59023)]
  [New Thread 0x7fffebfff700 (LWP 59024)]
  [New Thread 0x7fffeb7fe700 (LWP 59025)]
  [Detaching after vfork from child process 59026]
  [Detaching after vfork from child process 59027]
  [Detaching after vfork from child process 59028]
  [Detaching after vfork from child process 59030]
  [Detaching after vfork from child process 59031]
  [Detaching after vfork from child process 59032]
  [Detaching after vfork from child process 59033]
  [Detaching after vfork from child process 59034]
  [Detaching after vfork from child process 59035]
  [Detaching after vfork from child process 59036]
  [Detaching after vfork from child process 59037]
  [Detaching after vfork from child process 59039]
  [Detaching after vfork from child process 59040]
  [Detaching after vfork from child process 59041]
  [Detaching after vfork from child process 59042]
  [Detaching after vfork from child process 59043]
  [Detaching after vfork from child process 59044]
  [New Thread 0x7ffff001ee00 (LWP 59046)]
  [Thread 0x7ffff001ee00 (LWP 59046) exited]
  [Detaching after vfork from child process 59073]
  [New Thread 0x7ffff001ee00 (LWP 59098)]
  [New Thread 0x7fffea845700 (LWP 59099)]
  [Thread 0x7fffea845700 (LWP 59099) exited]
  [Thread 0x7ffff001ee00 (LWP 59098) exited]
  [New Thread 0x7ffff001ee00 (LWP 59101)]
  [Thread 0x7ffff001ee00 (LWP 59101) exited]
  [Detaching after vfork from child process 59586]
  [Detaching after vfork from child process 59587]
  Fatal error 6: Aborted

  (emacs:59019): GLib-WARNING **: 19:46:35.390: g_main_context_prepare() called recursively from within a source's check() or prepare() member.

  (emacs:59019): GLib-WARNING **: 19:46:35.390: g_main_context_check() called recursively from within a source's check() or prepare() member.

  Thread 1 "emacs" received signal SIGABRT, Aborted.
  raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
  50	../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
  (gdb) bt
  #0  0x00007ffff51873b1 in raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
  #1  0x0000555555596a2b in terminate_due_to_signal (sig=sig@entry=6, backtrace_limit=backtrace_limit@entry=40)
      at emacs.c:401
  #2  0x0000555555596ecc in emacs_abort () at sysdep.c:2450
  #3  0x0000555555594416 in redisplay_internal () at lisp.h:1032
  #4  0x00005555555dcd32 in redisplay_preserve_echo_area (from_where=from_where@entry=13) at xdisp.c:15938
  #5  0x0000555555720450 in Fdelete_process (process=0x5555580d18d5) at process.c:1095
  #6  0x0000555555727b05 in kill_buffer_processes (buffer=buffer@entry=0x0) at process.c:8007
  #7  0x0000555555672579 in shut_down_emacs (sig=sig@entry=6, stuff=stuff@entry=0x0) at lisp.h:1032
  #8  0x00005555555969f8 in terminate_due_to_signal (sig=sig@entry=6, backtrace_limit=backtrace_limit@entry=40)
      at lisp.h:1032
  #9  0x0000555555596ecc in emacs_abort () at sysdep.c:2450
  #10 0x0000555555594416 in redisplay_internal () at lisp.h:1032
  #11 0x00005555555dcd32 in redisplay_preserve_echo_area (from_where=from_where@entry=13) at xdisp.c:15938
  #12 0x0000555555720450 in Fdelete_process (process=0x555556429155) at process.c:1095
  #13 0x0000555555727b05 in kill_buffer_processes (buffer=buffer@entry=0x0) at process.c:8007
  #14 0x00005555556724bd in shut_down_emacs (sig=sig@entry=0, stuff=stuff@entry=0x0) at lisp.h:1032
  #15 0x0000555555595f93 in x_connection_closed (dpy=dpy@entry=0x555555c570c0, error_message=<optimized out>, 
      error_message@entry=0x7fffffff6820 "X protocol error: RenderBadPicture (invalid Picture parameter) on protocol request 139", ioerror=ioerror@entry=false) at lisp.h:1032
  #16 0x000055555564886a in x_error_quitter
      (display=display@entry=0x555555c570c0, event=<optimized out>, event=<optimized out>) at xterm.c:10153
  #17 0x00005555556488f6 in x_error_handler (display=0x555555c570c0, event=0x7fffffff69e0) at xterm.c:10123
  #18 0x00007ffff685014b in _XError () at /lib/x86_64-linux-gnu/libX11.so.6
  #19 0x00007ffff684cf77 in  () at /lib/x86_64-linux-gnu/libX11.so.6
  #20 0x00007ffff684d015 in  () at /lib/x86_64-linux-gnu/libX11.so.6
  #21 0x00007ffff684d95a in _XEventsQueued () at /lib/x86_64-linux-gnu/libX11.so.6
  #22 0x00007ffff683f511 in XPending () at /lib/x86_64-linux-gnu/libX11.so.6
  #23 0x00007ffff70c6a6f in  () at /lib/x86_64-linux-gnu/libgdk-3.so.0
  #24 0x00007ffff6bc361f in g_main_context_prepare () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
  #25 0x00007ffff6bc3fcb in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
  #26 0x00007ffff6bc4168 in g_main_context_pending () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
  #27 0x00007ffff739776e in gtk_events_pending () at /lib/x86_64-linux-gnu/libgtk-3.so.0
  #28 0x00005555556459ad in XTread_socket (terminal=<optimized out>, hold_quit=0x7fffffff6cd0) at xterm.c:9379
  #29 0x0000555555679462 in gobble_input () at keyboard.c:6874
  #30 0x0000555555679a15 in handle_async_input () at keyboard.c:7111
  #31 0x0000555555679a15 in process_pending_signals () at keyboard.c:7125
  #32 0x00005555555dcd1c in redisplay_preserve_echo_area (from_where=from_where@entry=12) at xdisp.c:15931
  #33 0x000055555572548b in wait_reading_process_output
      (time_limit=<optimized out>, nsecs=<optimized out>, read_kbd=read_kbd@entry=-1, do_display=do_display@entry=true, wait_for_cell=wait_for_cell@entry=0x0, wait_proc=wait_proc@entry=0x0, just_wait_proc=0) at process.c:5786
  #34 0x000055555567d491 in kbd_buffer_get_event (end_time=0x7fffffff7760, used_mouse_menu=0x0, kbp=<synthetic pointer>)
      at lisp.h:1032
  #35 0x000055555567d491 in read_event_from_main_queue
      (used_mouse_menu=0x0, local_getcjmp=0x7fffffff7490, end_time=0x7fffffff7760) at keyboard.c:2151
  #36 0x000055555567d491 in read_decoded_event_from_main_queue
      (used_mouse_menu=<optimized out>, prev_event=<optimized out>, local_getcjmp=<optimized out>, end_time=<optimized out>) at keyboard.c:2215
  #37 0x000055555567d491 in read_char
      (commandflag=commandflag@entry=0, map=map@entry=0x0, prev_event=prev_event@entry=0x0, used_mouse_menu=used_mouse_menu@entry=0x0, end_time=0x7fffffff7760) at keyboard.c:2825
  #38 0x000055555570762e in read_filtered_event
      (no_switch_frame=false, ascii_required=false, error_nonascii=false, input_method=<optimized out>, seconds=0x6)
      at lisp.h:1032
  #39 0x00005555556e6e93 in Ffuncall (nargs=4, args=args@entry=0x7fffffff7830) at lisp.h:2109
  #40 0x000055555571ac18 in exec_byte_code
      (bytestr=<optimized out>, vector=<optimized out>, maxdepth=<optimized out>, args_template=<optimized out>, nargs=<optimized out>, args=<optimized out>) at bytecode.c:633
  #41 0x00005555556e6df7 in Ffuncall (nargs=2, args=args@entry=0x7fffffff7ba8) at eval.c:2808
  #42 0x000055555571ac18 in exec_byte_code
      (bytestr=<optimized out>, vector=<optimized out>, maxdepth=<optimized out>, args_template=<optimized out>, nargs=<optimized out>, args=<optimized out>) at bytecode.c:633
  #43 0x00005555556e6df7 in Ffuncall (nargs=5, args=args@entry=0x7fffffff7ef0) at eval.c:2808
  --Type <RET> for more, q to quit, c to continue without paging--
  #44 0x000055555571ac18 in exec_byte_code
      (bytestr=<optimized out>, vector=<optimized out>, maxdepth=<optimized out>, args_template=<optimized out>, nargs=<optimized out>, args=<optimized out>) at bytecode.c:633
  #45 0x00005555556e6df7 in Ffuncall (nargs=2, args=args@entry=0x7fffffff8270) at eval.c:2808
  #46 0x000055555571ac18 in exec_byte_code
      (bytestr=<optimized out>, vector=<optimized out>, maxdepth=<optimized out>, args_template=<optimized out>, nargs=<optimized out>, args=<optimized out>) at bytecode.c:633
  #47 0x00005555556e6df7 in Ffuncall (nargs=6, args=args@entry=0x7fffffff8678) at eval.c:2808
  #48 0x000055555571ac18 in exec_byte_code
      (bytestr=<optimized out>, vector=<optimized out>, maxdepth=<optimized out>, args_template=args_template@entry=0x0, nargs=nargs@entry=0, args=<optimized out>, args@entry=0x0) at bytecode.c:633
  #49 0x00005555556e91ae in funcall_lambda (fun=0x555558037db5, nargs=2, arg_vector=0x7fffffff8c38) at lisp.h:1852
  #50 0x00005555556e6df7 in Ffuncall (nargs=3, args=args@entry=0x7fffffff8c30) at eval.c:2808
  #51 0x000055555571ac18 in exec_byte_code
      (bytestr=<optimized out>, vector=<optimized out>, maxdepth=<optimized out>, args_template=args_template@entry=0x0, nargs=nargs@entry=0, args=<optimized out>, args@entry=0x0) at bytecode.c:633
  #52 0x00005555556e91ae in funcall_lambda (fun=0x555558033f85, nargs=2, arg_vector=0x7fffffff9060) at lisp.h:1852
  #53 0x00005555556e6df7 in Ffuncall (nargs=3, args=args@entry=0x7fffffff9058) at eval.c:2808
  #54 0x000055555571ac18 in exec_byte_code
      (bytestr=<optimized out>, vector=<optimized out>, maxdepth=<optimized out>, args_template=args_template@entry=0x0, nargs=nargs@entry=0, args=<optimized out>, args@entry=0x0) at bytecode.c:633
  #55 0x00005555556e91ae in funcall_lambda (fun=0x5555580441e5, nargs=6, arg_vector=0x7fffffff9590) at lisp.h:1852
  #56 0x00005555556e6df7 in Ffuncall (nargs=7, args=args@entry=0x7fffffff9588) at eval.c:2808
  #57 0x000055555571ac18 in exec_byte_code
      (bytestr=<optimized out>, vector=<optimized out>, maxdepth=<optimized out>, args_template=args_template@entry=0x0, nargs=nargs@entry=0, args=<optimized out>, args@entry=0x0) at bytecode.c:633
  #58 0x00005555556e91ae in funcall_lambda (fun=0x555558043f15, nargs=4, arg_vector=0x7fffffff9910) at lisp.h:1852
  #59 0x00005555556e6df7 in Ffuncall (nargs=5, args=args@entry=0x7fffffff9908) at eval.c:2808
  #60 0x000055555571ac18 in exec_byte_code
      (bytestr=<optimized out>, vector=<optimized out>, maxdepth=<optimized out>, args_template=args_template@entry=0x0, nargs=nargs@entry=0, args=<optimized out>, args@entry=0x0) at bytecode.c:633
  #61 0x00005555556e91ae in funcall_lambda (fun=0x555557ee73d5, nargs=2, arg_vector=0x7fffffff9cb0) at lisp.h:1852
  #62 0x00005555556e6df7 in Ffuncall (nargs=3, args=args@entry=0x7fffffff9ca8) at eval.c:2808
  #63 0x000055555571ac18 in exec_byte_code
      (bytestr=<optimized out>, vector=<optimized out>, maxdepth=<optimized out>, args_template=args_template@entry=0x0, nargs=nargs@entry=0, args=<optimized out>, args@entry=0x0) at bytecode.c:633
  #64 0x00005555556e91ae in funcall_lambda (fun=0x555557fbb5a5, nargs=2, arg_vector=0x7fffffffa050) at lisp.h:1852
  #65 0x00005555556e6df7 in Ffuncall (nargs=3, args=args@entry=0x7fffffffa048) at eval.c:2808
  #66 0x000055555571ac18 in exec_byte_code
      (bytestr=<optimized out>, vector=<optimized out>, maxdepth=<optimized out>, args_template=args_template@entry=0x0, nargs=nargs@entry=0, args=<optimized out>, args@entry=0x0) at bytecode.c:633
  #67 0x00005555556e91ae in funcall_lambda (fun=0x5555577d3785, nargs=2, arg_vector=0x7fffffffaf10) at lisp.h:1852
  #68 0x00005555556e6df7 in Ffuncall (nargs=3, args=args@entry=0x7fffffffaf08) at eval.c:2808
  #69 0x000055555571ac18 in exec_byte_code
      (bytestr=<optimized out>, vector=<optimized out>, maxdepth=<optimized out>, args_template=args_template@entry=0x0, nargs=nargs@entry=0, args=<optimized out>, args@entry=0x0) at bytecode.c:633
  #70 0x00005555556e91ae in funcall_lambda (fun=0x555558002b25, nargs=3, arg_vector=0x7fffffffb400) at lisp.h:1852
  #71 0x00005555556e6df7 in Ffuncall (nargs=4, args=args@entry=0x7fffffffb3f8) at eval.c:2808
  #72 0x000055555571ac18 in exec_byte_code
      (bytestr=<optimized out>, vector=<optimized out>, maxdepth=<optimized out>, args_template=args_template@entry=0x0, nargs=nargs@entry=0, args=<optimized out>, args@entry=0x0) at bytecode.c:633
  #73 0x00005555556e91ae in funcall_lambda (fun=0x555557f36635, nargs=3, arg_vector=0x7fffffffd270) at lisp.h:1852
  #74 0x00005555556e6df7 in Ffuncall (nargs=4, args=args@entry=0x7fffffffd268) at eval.c:2808
  #75 0x000055555571ac18 in exec_byte_code
      (bytestr=<optimized out>, vector=<optimized out>, maxdepth=<optimized out>, args_template=args_template@entry=0x0, nargs=nargs@entry=0, args=<optimized out>, args@entry=0x0) at bytecode.c:633
  #76 0x00005555556e91ae in funcall_lambda (fun=0x555557ea7d15, nargs=0, arg_vector=0x7fffffffd590) at lisp.h:1852
  #77 0x00005555556e8853 in apply_lambda (fun=0x555557ea7d15, args=<optimized out>, count=count@entry=11) at eval.c:2926
  #78 0x00005555556e8b23 in eval_sub (form=<optimized out>) at eval.c:2348
  #79 0x00005555556e902d in Fprogn (body=0x555557e701e3, body@entry=0x555557e70183) at eval.c:462
  #80 0x00005555556daa0b in Fsave_excursion (args=0x555557e70183) at editfns.c:842
  #81 0x00005555556e8c99 in eval_sub (form=<optimized out>) at lisp.h:2109
  #82 0x00005555556e9305 in Fprogn (body=0x555557e70293) at eval.c:462
  --Type <RET> for more, q to quit, c to continue without paging--
  #83 0x00005555556e9305 in funcall_lambda (fun=0x555557e70323, nargs=0, arg_vector=0x7fffffffda10) at eval.c:3060
  #84 0x00005555556e6df7 in Ffuncall (nargs=nargs@entry=1, args=args@entry=0x7fffffffda08) at eval.c:2808
  #85 0x00005555556e38a1 in Ffuncall_interactively (nargs=1, args=0x7fffffffda08) at callint.c:254
  #86 0x00005555556e6e93 in Ffuncall (nargs=2, args=0x7fffffffda00) at lisp.h:2109
  #87 0x00005555556e719c in Fapply (nargs=nargs@entry=3, args=args@entry=0x7fffffffda00) at eval.c:2377
  #88 0x00005555556e4dba in Fcall_interactively (function=0x23f67c0, record_flag=0x0, keys=0x5555580d22d5)
      at lisp.h:1032
  #89 0x00005555556e6e93 in Ffuncall (nargs=4, args=args@entry=0x7fffffffdaf8) at lisp.h:2109
  #90 0x000055555571ac18 in exec_byte_code
      (bytestr=<optimized out>, vector=<optimized out>, maxdepth=<optimized out>, args_template=<optimized out>, nargs=<optimized out>, args=<optimized out>) at bytecode.c:633
  #91 0x00005555556e6df7 in Ffuncall (nargs=2, args=0x7fffffffde80) at eval.c:2808
  #92 0x00005555556e6f3a in call1 (fn=fn@entry=0x41a0, arg1=<optimized out>) at eval.c:2654
  #93 0x0000555555680f78 in command_loop_1 () at lisp.h:1032
  #94 0x00005555556e61a7 in internal_condition_case
      (bfun=bfun@entry=0x555555680ba0 <command_loop_1>, handlers=handlers@entry=0x90, hfun=hfun@entry=0x555555677d20 <cmd_error>) at eval.c:1355
  #95 0x0000555555672a64 in command_loop_2 (ignore=ignore@entry=0x0) at lisp.h:1032
  #96 0x00005555556e6101 in internal_catch
      (tag=tag@entry=0xd0e0, func=func@entry=0x555555672a40 <command_loop_2>, arg=arg@entry=0x0) at eval.c:1116
  #97 0x0000555555672a0b in command_loop () at lisp.h:1032
  #98 0x0000555555677936 in recursive_edit_1 () at keyboard.c:714
  #99 0x0000555555677c62 in Frecursive_edit () at keyboard.c:786
  #100 0x000055555559d50a in main (argc=1, argv=<optimized out>) at emacs.c:2055
  (gdb) 

I hope it's useful.

  Best regards,

    Adam

-- 
 "I wish *I* was a tiger!"                                     Adam Sjøgren
 "A common lament."                                       [email-masked]