Package: emacs;
Reported by: "Jay Berkenbilt" <ejb <at> ql.org>
Date: Mon, 30 May 2022 13:00:03 UTC
Severity: normal
Found in version 28.1
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: "Jay Berkenbilt" <ejb <at> ql.org> To: bug-gnu-emacs <at> gnu.org Subject: 28.1; emacs becomes unresponsive to input Date: Mon, 30 May 2022 08:58:26 -0400
X-Debbugs-CC: ejb <at> ql.org I must apologize in advance for what is going to be a vague bug report. Please understand that I am a developer and an advanced emacs user, and with some prompting, I'm sure I will be able to provide more helpful information. I ask you to bear with me and help me help you figure out what's going on. Problem description: I'm typing along, and all of a sudden, emacs becomes completely unresponsive to mouse and keyboard events. It still refreshes properly. I haven't been able to find any way out of this other than to kill the process. At this time, I haven't been able to discern any pattern of when emacs gets into this state, so I don't have a recipe to reproduce it from emacs -Q or from my environment. I have been unable to reproduce it on demand. I have been running emacs 28.1 since a day or two after it was released, and I have had this happen maybe half a dozen times since then. I am in emacs all day most days, so this happens infrequently. My hunch is that is a race condition that gets triggered when I am typing as buffers, windows, or frames are being rearranged in some way. I have been using gnu emacs since 1987 and move around in it very fast. A lot of my emacs usage is somewhat beneath the level of conscious awareness. Typically when this happens, I'm in the midst of some operation and don't notice for a few seconds that emacs is not responsive, so there's no way for me to be sure exactly what I was doing at the moment that it became unresponsive. Just now when this happened, I had taken two sections of a buffer and copied them into two temporary buffers, then run M-x ediff-buffers on those buffers. When I got what I wanted, I exited the ediff session, killed the two buffers one after the other, did C-x 1 to make the original file the single buffer in its window (and frame), and started typing in and navigating around the buffer only to see that emacs had become unresponsive. All this manipulation probably happened within one or two seconds. (q y C-x k C-x k C-x 1 typie-typie-typie) My emacs is built from source using default configure options, so I was able to attach my running emacs process in gdb and get a stack trace. Here is the stack trace: #0 pselect64_syscall (sigmask=<optimized out>, timeout=<optimized out>, exceptfds=0x0, writefds=0x7fff68e9c1f0, readfds=0x7fff68e9c170, nfds=15) at ../sysdeps/unix/sysv/linux/pselect.c:34 #1 __pselect (nfds=15, readfds=0x7fff68e9c170, writefds=0x7fff68e9c1f0, exceptfds=0x0, timeout=<optimized out>, sigmask=<optimized out>) at ../sysdeps/unix/sysv/linux/pselect.c:56 #2 0x000055c1bad0f035 in really_call_select (arg=0x7fff68e9c060) at thread.c:596 #3 0x000055c1bad0fe73 in flush_stack_call_func (arg=0x7fff68e9c060, func=0x55c1bad0efc0 <really_call_select>) at /home/ejb/tmp/net/emacs-28.1/src/lisp.h:3834 #4 thread_select (func=<optimized out>, max_fds=max_fds <at> entry=15, rfds=rfds <at> entry=0x7fff68e9c170, wfds=wfds <at> entry=0x7fff68e9c1f0, efds=efds <at> entry=0x0, timeout=timeout <at> entry=0x7fff68e9c7b0, sigmask=0x0) at thread.c:628 #5 0x000055c1bad2d8d1 in xg_select (fds_lim=15, rfds=rfds <at> entry=0x7fff68e9c8c0, wfds=wfds <at> entry=0x7fff68e9c940, efds=efds <at> entry=0x0, timeout=timeout <at> entry=0x7fff68e9c7b0, sigmask=sigmask <at> entry=0x0) at xgselect.c:147 #6 0x000055c1bacecb15 in wait_reading_process_output (time_limit=time_limit <at> entry=0, nsecs=nsecs <at> entry=0, read_kbd=read_kbd <at> entry=-1, do_display=true, wait_for_cell=wait_for_cell <at> entry=0x0, wait_proc=wait_proc <at> entry=0x0, just_wait_proc=0) at process.c:5591 #7 0x000055c1bac2de6c in kbd_buffer_get_event (end_time=0x0, used_mouse_menu=0x7fff68e9d14b, kbp=<synthetic pointer>) at keyboard.c:3926 #8 read_event_from_main_queue (used_mouse_menu=0x7fff68e9d14b, local_getcjmp=0x7fff68e9cd50, end_time=0x0) at keyboard.c:2198 #9 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:2262 #10 read_char (commandflag=1, map=0x55c1bc5e5ae3, prev_event=0x0, used_mouse_menu=0x7fff68e9d14b, end_time=0x0) at keyboard.c:2892 #11 0x000055c1bac304d4 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 #12 0x000055c1bac31e9c in command_loop_1 () at keyboard.c:1392 #13 0x000055c1baca1a47 in internal_condition_case (bfun=bfun <at> entry=0x55c1bac31ca0 <command_loop_1>, handlers=handlers <at> entry=0x90, hfun=hfun <at> entry=0x55c1bac28490 <cmd_error>) at eval.c:1450 #14 0x000055c1bac224be in command_loop_2 (handlers=handlers <at> entry=0x90) at keyboard.c:1133 #15 0x000055c1baca1989 in internal_catch (tag=tag <at> entry=0xe850, func=func <at> entry=0x55c1bac22490 <command_loop_2>, arg=arg <at> entry=0x90) at eval.c:1181 #16 0x000055c1bac22459 in command_loop () at keyboard.c:1111 #17 0x000055c1bac28080 in recursive_edit_1 () at keyboard.c:720 #18 0x000055c1bac283d9 in Frecursive_edit () at keyboard.c:803 #19 0x000055c1bab37054 in main (argc=1, argv=<optimized out>) at emacs.c:2354 I'm hoping you can give me some advice as to how to help track this down including other information I can capture next time, possible commands I can run in gdb to get it unstuck, etc. The information below was generated from the emacs I used to create this bug report, not the one that crashed (obviously). They are the same emacs executable with my same emacs lisp environment, but the runtime information will be different. I had not been in emacs very long today when this happened, and I had just a handful of C++ source files loaded up and some text files. I had run M-x compile a few times and M-x ediff a few times. ----- In GNU Emacs 28.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.33, cairo version 1.16.0) of 2022-04-23 built on soup Windowing system distributor 'The X.Org Foundation', version 11.0.12101003 System Description: Ubuntu 22.04 LTS Configured using: 'configure --prefix=/usr/local/emacs-28.1' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS X11 XDBE XIM XPM GTK3 ZLIB Important settings: value of $LANG: en_US.UTF-8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix Major mode: Text Minor modes in effect: pyvenv-mode: t shell-dirtrack-mode: t tooltip-mode: t global-eldoc-mode: t show-paren-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t auto-fill-function: do-auto-fill Load-path shadows: /home/ejb/elisp/startup hides /usr/local/emacs-28.1/share/emacs/28.1/lisp/startup /usr/local/emacs-28.1/share/emacs/28.1/lisp/net/sasl hides /usr/share/emacs/site-lisp/flim/sasl Features: (shadow sort flyspell ispell mail-extr emacsbug sendmail yasnippet highlight-indentation flymake-proc flymake warnings thingatpt company-capf company pcase help-fns radix-tree elpy edmacro kmacro elpy-rpc pyvenv eshell esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg esh-module esh-groups esh-util elpy-shell elpy-profile elpy-django s elpy-refactor python tramp-sh tramp tramp-loaddefs trampver tramp-integration tramp-compat shell pcomplete parse-time iso8601 ls-lisp format-spec ido grep files-x etags fileloop generator xref project cus-edit pp wid-edit cl-extra help-mode use-package-ensure use-package-core clang-format xml w3m-load vc-svn vc vc-dispatcher qmime qmime-compose qmime-view filecache server compile-eslint rx compile ange-ftp comint ansi-color ring message rmc puny dired dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util rmail rmail-loaddefs text-property-search time-date mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader cc-styles cc-align cc-engine cc-vars cc-defs jka-compr cus-load advice info package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json subr-x map url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib iso-transl tooltip eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 173419 10743) (symbols 48 19029 1) (strings 32 58491 3447) (string-bytes 1 1986291) (vectors 16 31087) (vector-slots 8 343387 21026) (floats 8 88 47) (intervals 56 266 0) (buffers 992 11))
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.