GNU bug report logs - #29789
25.1; Emacs blocks user input when using visual-fill-column in wide terminals

Previous Next

Package: emacs;

Reported by: Luis Gerhorst <privat <at> luisgerhorst.de>

Date: Wed, 20 Dec 2017 19:33:02 UTC

Severity: normal

Found in version 25.1

Fixed in version 26.0.91

Done: Glenn Morris <rgm <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 29789 in the body.
You can then email your comments to 29789 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#29789; Package emacs. (Wed, 20 Dec 2017 19:33:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Luis Gerhorst <privat <at> luisgerhorst.de>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 20 Dec 2017 19:33:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Luis Gerhorst <privat <at> luisgerhorst.de>
To: bug-gnu-emacs <at> gnu.org
Subject: 25.1; Emacs blocks user input when using visual-fill-column in wide
 terminals
Date: Wed, 20 Dec 2017 20:28:27 +0100
1. Run Emacs in a wide terminal (about 150 characters, 100 isn't
enough): emacs -nw -Q

2. Load a arbitrary theme: M-x load-theme adwaita

3. Load visual-fill-column. E.g. by copying
https://raw.githubusercontent.com/joostkremers/visual-fill-column/c0e5ec8f88a7598f7afdee565978410bee0de2a0/visual-fill-column.el
into the scratch buffer and typing M-x eval-buffer.

There is nothing suspicious about the code, regular lisp code should not
be able to block Emacs (I believe). It does not seem to contain any loops that block the main thread. The maintainer knows about the issue but say's it may be an issue with low-level code. In GUI Emacs it works.

4. Open a buffer and enable visual-fill-column-mode: M-x
visual-fill-column-mode

5. Your Emacs is now blocked. In ZSH when I type C-g C-g I'm back in my
shell which displays the message "zsh: suspended emacs -nw -Q".

This bug has been encountered by multiple users on different operating
systems (Debian, Ubuntu and macOS) running different versions of Emacs
(24.5 to 26.0), some reported it here:
https://github.com/joostkremers/visual-fill-column/issues/1



In GNU Emacs 25.1.1 (x86_64-pc-linux-gnu, GTK+ Version 3.22.11)
 of 2017-09-15, modified by Debian built on trouble
System Description:	Debian GNU/Linux 9.3 (stretch)

Configured using:
 'configure --build x86_64-linux-gnu --prefix=/usr
 --sharedstatedir=/var/lib --libexecdir=/usr/lib
 --localstatedir=/var/lib --infodir=/usr/share/info
 --mandir=/usr/share/man --with-pop=yes
 --enable-locallisppath=/etc/emacs25:/etc/emacs:/usr/local/share/emacs/25.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/25.1/site-lisp:/usr/share/emacs/site-lisp
 --with-sound=alsa --build x86_64-linux-gnu --prefix=/usr
 --sharedstatedir=/var/lib --libexecdir=/usr/lib
 --localstatedir=/var/lib --infodir=/usr/share/info
 --mandir=/usr/share/man --with-pop=yes
 --enable-locallisppath=/etc/emacs25:/etc/emacs:/usr/local/share/emacs/25.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/25.1/site-lisp:/usr/share/emacs/site-lisp
 --with-sound=alsa --with-x=yes --with-x-toolkit=gtk3
 --with-toolkit-scroll-bars 'CFLAGS=-g -O2
 -fdebug-prefix-map=/build/emacs25-wN2qS3/emacs25-25.1+1=. -fstack-protector-strong
 -Wformat -Werror=format-security -Wall' 'CPPFLAGS=-Wdate-time
 -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS
NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11

Important settings:
  value of $LC_ALL: en_US.UTF-8
  value of $LC_CTYPE: C.UTF-8
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: GFM

Minor modes in effect:
  luis-text-wrap-mode: t
  visual-fill-column-mode: t
  adaptive-wrap-prefix-mode: t
  diff-auto-refine-mode: t
  shell-dirtrack-mode: t
  ws-butler-mode: t
  show-paren-mode: t
  frame-restore-mode: t
  winner-mode: t
  global-company-mode: t
  company-mode: t
  which-key-mode: t
  flx-ido-mode: t
  ido-vertical-mode: t
  crm-custom-mode: t
  ido-ubiquitous-mode: t
  ido-everywhere: t
  projectile-global-mode: t
  projectile-mode: t
  recentf-mode: t
  global-auto-revert-mode: t
  override-global-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  visual-line-mode: t
  transient-mark-mode: t

Recent messages:
Source file ‘/home/cip/2016/un65esoq/.emacs.d/elpa/bind-key-2.3/bind-key.el’ newer than byte-compiled file
Loading /home/cip/2016/un65esoq/.emacs.d/recentf...done
Cleaning up the recentf list...done (0 removed)
Source file ‘/home/cip/2016/un65esoq/.emacs.d/elpa/s-1.12.0/s.el’ newer than byte-compiled file
Source file ‘/home/cip/2016/un65esoq/.emacs.d/elpa/company-0.9.4/company-dabbrev.el’ newer than byte-compiled file
Unable to load color "brightgreen" [12 times]
For information about GNU Emacs and the GNU system, type C-h C-a.
Mark saved where search started
Visual-Fill-Column mode enabled in current buffer
GNU Emacs 25.1.1 (x86_64-pc-linux-gnu, GTK+ Version 3.22.11) of 2017-09-15, modified by Debian

Load-path shadows:
/home/cip/2016/un65esoq/.emacs.d/elpa/magit-2.11.0/magit-popup hides /home/cip/2016/un65esoq/.emacs.d/elpa/magit-popup-2.12.0/magit-popup
/home/cip/2016/un65esoq/.emacs.d/elpa/lua-mode-20151025/lua-mode hides /usr/share/emacs25/site-lisp/lua-mode/lua-mode
/home/cip/2016/un65esoq/.emacs.d/elpa/apache-mode-2.1/apache-mode hides /usr/share/emacs25/site-lisp/emacs-goodies-el/apache-mode
/home/cip/2016/un65esoq/.emacs.d/elpa/diminish-0.45/diminish hides /usr/share/emacs25/site-lisp/emacs-goodies-el/diminish
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/tex-ispell hides /usr/share/emacs25/site-lisp/auctex/tex-ispell
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/context hides /usr/share/emacs25/site-lisp/auctex/context
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/tex-buf hides /usr/share/emacs25/site-lisp/auctex/tex-buf
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/font-latex hides /usr/share/emacs25/site-lisp/auctex/font-latex
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/preview hides /usr/share/emacs25/site-lisp/auctex/preview
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/tex-jp hides /usr/share/emacs25/site-lisp/auctex/tex-jp
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/tex hides /usr/share/emacs25/site-lisp/auctex/tex
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/latex hides /usr/share/emacs25/site-lisp/auctex/latex
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/context-en hides /usr/share/emacs25/site-lisp/auctex/context-en
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/context-nl hides /usr/share/emacs25/site-lisp/auctex/context-nl
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/tex-info hides /usr/share/emacs25/site-lisp/auctex/tex-info
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/bib-cite hides /usr/share/emacs25/site-lisp/auctex/bib-cite
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/tex-mik hides /usr/share/emacs25/site-lisp/auctex/tex-mik
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/tex-style hides /usr/share/emacs25/site-lisp/auctex/tex-style
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/plain-tex hides /usr/share/emacs25/site-lisp/auctex/plain-tex
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/tex-bar hides /usr/share/emacs25/site-lisp/auctex/tex-bar
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/multi-prompt hides /usr/share/emacs25/site-lisp/auctex/multi-prompt
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/tex-font hides /usr/share/emacs25/site-lisp/auctex/tex-font
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/tex-fold hides /usr/share/emacs25/site-lisp/auctex/tex-fold
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/toolbar-x hides /usr/share/emacs25/site-lisp/auctex/toolbar-x
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/texmathp hides /usr/share/emacs25/site-lisp/auctex/texmathp
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/prv-emacs hides /usr/share/emacs25/site-lisp/auctex/prv-emacs
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/auctex hides /usr/share/emacs/site-lisp/auctex
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/tex-site hides /usr/share/emacs/site-lisp/tex-site
/usr/share/emacs/25.1/site-lisp/debian-startup hides /usr/share/emacs/site-lisp/debian-startup
/usr/share/emacs/25.1/site-lisp/why3 hides /usr/share/emacs/site-lisp/why3
/usr/share/emacs25/site-lisp/cmake-data/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode
/home/cip/2016/un65esoq/.emacs.d/elpa/dsvn-20130120.1257/dsvn hides /usr/share/emacs/site-lisp/dsvn
/usr/share/emacs/site-lisp/rst hides /usr/share/emacs/25.1/lisp/textmodes/rst
/home/cip/2016/un65esoq/.emacs.d/elpa/scala-mode-1.0.0/ob-scala hides /usr/share/emacs/25.1/lisp/org/ob-scala
/usr/share/emacs25/site-lisp/latex-cjk-thai/thai-word hides /usr/share/emacs/25.1/lisp/language/thai-word
/usr/share/emacs/25.1/site-lisp/slime/lib/ert-x hides /usr/share/emacs/25.1/lisp/emacs-lisp/ert-x
/usr/share/emacs/25.1/site-lisp/slime/lib/ert hides /usr/share/emacs/25.1/lisp/emacs-lisp/ert
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/tex-ispell hides /usr/share/emacs/site-lisp/auctex/tex-ispell
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/preview hides /usr/share/emacs/site-lisp/auctex/preview
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/tex hides /usr/share/emacs/site-lisp/auctex/tex
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/context-en hides /usr/share/emacs/site-lisp/auctex/context-en
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/context hides /usr/share/emacs/site-lisp/auctex/context
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/bib-cite hides /usr/share/emacs/site-lisp/auctex/bib-cite
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/tex-buf hides /usr/share/emacs/site-lisp/auctex/tex-buf
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/plain-tex hides /usr/share/emacs/site-lisp/auctex/plain-tex
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/tex-mik hides /usr/share/emacs/site-lisp/auctex/tex-mik
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/tex-bar hides /usr/share/emacs/site-lisp/auctex/tex-bar
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/latex hides /usr/share/emacs/site-lisp/auctex/latex
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/tex-font hides /usr/share/emacs/site-lisp/auctex/tex-font
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/tex-info hides /usr/share/emacs/site-lisp/auctex/tex-info
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/tex-fold hides /usr/share/emacs/site-lisp/auctex/tex-fold
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/context-nl hides /usr/share/emacs/site-lisp/auctex/context-nl
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/tex-jp hides /usr/share/emacs/site-lisp/auctex/tex-jp
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/font-latex hides /usr/share/emacs/site-lisp/auctex/font-latex
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/multi-prompt hides /usr/share/emacs/site-lisp/auctex/multi-prompt
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/tex-style hides /usr/share/emacs/site-lisp/auctex/tex-style
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/texmathp hides /usr/share/emacs/site-lisp/auctex/texmathp
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/toolbar-x hides /usr/share/emacs/site-lisp/auctex/toolbar-x
/home/cip/2016/un65esoq/.emacs.d/elpa/auctex-12.1.0/prv-emacs hides /usr/share/emacs/site-lisp/auctex/prv-emacs

Features:
(shadow sort mail-extr emacsbug message rfc822 mml mml-sec epg mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
sendmail rfc2047 rfc2045 ietf-drums mail-utils smex luis-text-wrap
visual-fill-column adaptive-wrap markdown-mode derived url-parse
url-vars noutline outline misearch multi-isearch dired-aux
minibuffer-complete-cycle vc-git diff-mode bookmark pp xcscope dired
term/xterm xterm paredit aggressive-indent lisp-mnt
luis-comment-auto-fill fillcode python tramp-sh tramp tramp-compat
auth-source eieio eieio-core gnus-util mm-util help-fns mail-prsvr
password-cache tramp-loaddefs trampver ucs-normalize shell pcomplete
format-spec json map cc-mode cc-fonts cc-guess cc-menus cc-styles
cc-align cc-cmds cc-engine cc-vars cc-defs cc-bytecomp ws-butler
elec-pair cap-words superword subword fic-mode company-jedi jedi-core
python-environment epc ctable concurrent deferred subr-x luis-iterm
luis-apps luis-mail luis-modes luis-terminal luis-xml luis-make
luis-scala luis-sbt luis-java luis-lua luis-asm luis-org luis-c luis-nxc
luis-python luis-apache luis-swift luis-css luis-shell luis-latex
luis-markdown luis-elisp luis-look paren solarized-dark-theme solarized
powerline cl-macs powerline-separators color powerline-themes
luis-user-interaction luis-misc desktop frameset frame-restore
luis-compile luis-movement saveplace winner luis-modification
whole-line-or-region company-keywords company-css company-dabbrev-code
company-dabbrev company-elisp find-func company luis-interactive
time-date which-key flx-ido flx ido-vertical-mode crm-custom
ido-completing-read+ warnings memoize s cus-edit cus-start cus-load ido
luis-files projectile grep compile comint ansi-color ring ibuf-ext
ibuffer dash thingatpt recentf tree-widget wid-edit autorevert
filenotify luis-integration use-package diminish bind-key luis-packages
cl-seq cl finder-inf edmacro kmacro info package epg-config seq byte-opt
gv bytecomp byte-compile cl-extra help-mode easymenu cconv luis-private
luis-machine-local benchmark-init advice cl-loaddefs pcase cl-lib
benchmark-init-loaddefs slime-autoloads haskell-mode-autoloads
erlang-start emacs-goodies-el emacs-goodies-custom
emacs-goodies-loaddefs easy-mmode devhelp preview-latex tex-site
auto-loads mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel x-win term/common-win x-dnd tool-bar dnd fontset
image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame 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 charscript case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice
loaddefs button faces cus-face macroexp files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote dbusbind inotify dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty make-network-process emacs)

Memory information:
((conses 16 647388 21245)
 (symbols 48 43035 0)
 (miscs 40 574 465)
 (strings 32 104884 16016)
 (string-bytes 1 3270643)
 (vectors 16 79586)
 (vector-slots 8 1717257 54052)
 (floats 8 8003 1977)
 (intervals 56 1023 0)
 (buffers 976 440))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#29789; Package emacs. (Wed, 20 Dec 2017 20:30:02 GMT) Full text and rfc822 format available.

Message #8 received at 29789 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Luis Gerhorst <privat <at> luisgerhorst.de>
Cc: 29789 <at> debbugs.gnu.org
Subject: Re: bug#29789: 25.1;
 Emacs blocks user input when using visual-fill-column in wide
 terminals
Date: Wed, 20 Dec 2017 22:29:27 +0200
> From: Luis Gerhorst <privat <at> luisgerhorst.de>
> Date: Wed, 20 Dec 2017 20:28:27 +0100
> 
> 
> 1. Run Emacs in a wide terminal (about 150 characters, 100 isn't
> enough): emacs -nw -Q
> 
> 2. Load a arbitrary theme: M-x load-theme adwaita
> 
> 3. Load visual-fill-column. E.g. by copying
> https://raw.githubusercontent.com/joostkremers/visual-fill-column/c0e5ec8f88a7598f7afdee565978410bee0de2a0/visual-fill-column.el
> into the scratch buffer and typing M-x eval-buffer.
> 
> There is nothing suspicious about the code, regular lisp code should not
> be able to block Emacs (I believe). It does not seem to contain any loops that block the main thread. The maintainer knows about the issue but say's it may be an issue with low-level code. In GUI Emacs it works.
> 
> 4. Open a buffer and enable visual-fill-column-mode: M-x
> visual-fill-column-mode
> 
> 5. Your Emacs is now blocked.

I tried to reproduce this on GNU/Linux and on MS-Windows, but failed
both times, both with Emacs 25.1 and the current emacs-26 release
branch.

What I see is that after enabling the mode, Emacs becomes somewhat
sluggish in cursor motion (hardly surprising, given what the mode
does), but it certainly doesn't hang.

I wonder what's different on your system, or on that of those who
confirmed the problem.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#29789; Package emacs. (Wed, 20 Dec 2017 20:46:01 GMT) Full text and rfc822 format available.

Message #11 received at 29789 <at> debbugs.gnu.org (full text, mbox):

From: Luis Gerhorst <privat <at> luisgerhorst.de>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 29789 <at> debbugs.gnu.org
Subject: Re: bug#29789: 25.1;
 Emacs blocks user input when using visual-fill-column in wide
 terminals
Date: Wed, 20 Dec 2017 21:45:36 +0100
I'm usually using iTerm 3.1.5 and just tried again with the native
Terminal.app from macOS 10.13.2 (same issue). It also occured on a
Debian system I was running Emacs on over SSH.

I was not able to test with a non-macOS terminal emulator. I can do that
tomorrow however.

With 'hang' I meant that Emacs does not respond to user input at
all. The whole screen is frozen.

Eli Zaretskii writes:

>> From: Luis Gerhorst <privat <at> luisgerhorst.de>
>> Date: Wed, 20 Dec 2017 20:28:27 +0100
>>
>>
>> 1. Run Emacs in a wide terminal (about 150 characters, 100 isn't
>> enough): emacs -nw -Q
>>
>> 2. Load a arbitrary theme: M-x load-theme adwaita
>>
>> 3. Load visual-fill-column. E.g. by copying
>> https://raw.githubusercontent.com/joostkremers/visual-fill-column/c0e5ec8f88a7598f7afdee565978410bee0de2a0/visual-fill-column.el
>> into the scratch buffer and typing M-x eval-buffer.
>>
>> There is nothing suspicious about the code, regular lisp code should not
>> be able to block Emacs (I believe). It does not seem to contain any loops that block the main thread. The maintainer knows about the issue but say's it may be an issue with low-level code. In GUI Emacs it works.
>>
>> 4. Open a buffer and enable visual-fill-column-mode: M-x
>> visual-fill-column-mode
>>
>> 5. Your Emacs is now blocked.
>
> I tried to reproduce this on GNU/Linux and on MS-Windows, but failed
> both times, both with Emacs 25.1 and the current emacs-26 release
> branch.
>
> What I see is that after enabling the mode, Emacs becomes somewhat
> sluggish in cursor motion (hardly surprising, given what the mode
> does), but it certainly doesn't hang.
>
> I wonder what's different on your system, or on that of those who
> confirmed the problem.





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#29789; Package emacs. (Wed, 20 Dec 2017 21:36:02 GMT) Full text and rfc822 format available.

Message #14 received at 29789 <at> debbugs.gnu.org (full text, mbox):

From: Vasilij Schneidermann <v.schneidermann <at> gmail.com>
To: 29789 <at> debbugs.gnu.org
Subject: Re: bug#29789: 25.1; Emacs blocks user input when using
 visual-fill-column in wide terminals
Date: Wed, 20 Dec 2017 22:35:30 +0100
[Message part 1 (text/plain, inline)]
I can reproduce this on Arch Linux, with Emacs master and Termite.  I've
tried making a full backtrace in gdb, let me know if there's anything
else I can do to help debugging this issue.
[gdb.txt (text/plain, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#29789; Package emacs. (Thu, 21 Dec 2017 03:38:02 GMT) Full text and rfc822 format available.

Message #17 received at 29789 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Vasilij Schneidermann <v.schneidermann <at> gmail.com>
Cc: 29789 <at> debbugs.gnu.org
Subject: Re: bug#29789: 25.1;
 Emacs blocks user input when using visual-fill-column in wide
 terminals
Date: Thu, 21 Dec 2017 05:37:10 +0200
> Date: Wed, 20 Dec 2017 22:35:30 +0100
> From: Vasilij Schneidermann <v.schneidermann <at> gmail.com>
> 
> I can reproduce this on Arch Linux, with Emacs master and Termite.  I've
> tried making a full backtrace in gdb, let me know if there's anything
> else I can do to help debugging this issue.

Thanks.

> Thread 1 "emacs" received signal SIGTSTP, Stopped (user).
> 0x00007f5ccb9f9b47 in kill () from /usr/lib/libc.so.6
> Continuing.
> 
> Thread 1 "emacs" hit Breakpoint 1, terminate_due_to_signal (sig=6, 
>     backtrace_limit=40) at emacs.c:364
> 364	{
> #0  0x0000000000569e7a in terminate_due_to_signal (sig=6, backtrace_limit=40)
>     at emacs.c:364
> #1  0x00000000005919c8 in emacs_abort () at sysdep.c:2426
> #2  0x00000000005829d2 in handle_interrupt (in_signal_handler=true)
>     at keyboard.c:10501
> #3  0x0000000000582795 in handle_interrupt_signal (sig=2) at keyboard.c:10371
> #4  0x0000000000590f88 in deliver_process_signal (sig=2, handler=0x582743 <handle_interrupt_signal>) at sysdep.c:1709
> #5  0x00000000005827b4 in deliver_interrupt_signal (sig=2) at keyboard.c:10378
> #6  0x00007f5ccc8a9da0 in <signal handler called> () at /usr/lib/libpthread.so.0
> #7  0x00000000005083c0 in append_glyph (it=0x7ffcb39bc150) at term.c:1476
> #8  0x00000000005087d5 in produce_glyphs (it=0x7ffcb39bc150) at term.c:1584
> #9  0x00000000004722e7 in extend_face_to_end_of_line (it=0x7ffcb39bc150)
>     at xdisp.c:20318
> #10 0x00000000004773eb in display_line (it=0x7ffcb39bc150, cursor_vpos=3)
>     at xdisp.c:21740
> #11 0x0000000000469edf in try_window (window=XIL(0xd7f9a5), pos=..., flags=1)
>     at xdisp.c:17610
> #12 0x000000000046799c in redisplay_window (window=XIL(0xd7f9a5), just_this_one_p=false) at xdisp.c:17057
> #13 0x0000000000460734 in redisplay_window_0 (window=XIL(0xd7f9a5))
>     at xdisp.c:14814
> #14 0x000000000061975f in internal_condition_case_1 (bfun=0x4606f2 <redisplay_window_0>, arg=XIL(0xd7f9a5), handlers=XIL(0xd6bf13), hfun=0x4606ba <redisplay_window_error>) at eval.c:1356
> #15 0x000000000046068c in redisplay_windows (window=XIL(0xd7f9a5)) at xdisp.c:14794
> #16 0x000000000045f4b8 in redisplay_internal () at xdisp.c:14283
> #17 0x000000000045ff5e in redisplay_preserve_echo_area (from_where=2)
>     at xdisp.c:14613
> #18 0x0000000000426d03 in Fredisplay (force=XIL(0)) at dispnew.c:5828
> #19 0x000000000061d47a in funcall_subr (subr=0x951720 <Sredisplay>, numargs=0, args=Quit
> #0  0x0000000000569e7a in terminate_due_to_signal (sig=6, backtrace_limit=40)
>     at emacs.c:364
> #1  0x00000000005919c8 in emacs_abort () at sysdep.c:2426
> #2  0x00000000005829d2 in handle_interrupt (in_signal_handler=true)
>     at keyboard.c:10501
>         c = 121 'y'
> #3  0x0000000000582795 in handle_interrupt_signal (sig=2) at keyboard.c:10371
>         terminal = 0x12cfe40 <bss_sbrk_buffer+6086848>
> #4  0x0000000000590f88 in deliver_process_signal (sig=2, handler=0x582743 <handle_interrupt_signal>) at sysdep.c:1709
>         old_errno = 22
>         on_main_thread = true
> #5  0x00000000005827b4 in deliver_interrupt_signal (sig=2) at keyboard.c:10378
> #6  0x00007f5ccc8a9da0 in <signal handler called> () at /usr/lib/libpthread.so.0
> #7  0x00000000005083c0 in append_glyph (it=0x7ffcb39bc150) at term.c:1476
>         glyph = 0x7f5cd4622fd0
>         end = 0x7f5cd4622fd0
>         i = 0

This says Emacs got SIGINT and then aborted.  Did you type C-g more
then once and then answered YES to the question whether to abort and
dump core?

> #8  0x00000000005087d5 in produce_glyphs (it=0x7ffcb39bc150) at term.c:1584
> #9  0x00000000004722e7 in extend_face_to_end_of_line (it=0x7ffcb39bc150)
>     at xdisp.c:20318

The "hang" sounds like some infloop in redisplay.  It will be helpful
if instead of trying to interrupt Emacs with C-g, you could attach the
debugger, produce a backtrace from the place where Emacs was caught,
and then use the technique described in etc/DEBUG under "If the
symptom of the bug is that Emacs fails to respond", starting at "If
Emacs is in an infinite loop", to find out where it loops.

Also, I need to know what version of Emacs is that, to match line
numbers in the backtrace to the sources.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#29789; Package emacs. (Thu, 21 Dec 2017 05:02:02 GMT) Full text and rfc822 format available.

Message #20 received at 29789 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Vasilij Schneidermann <v.schneidermann <at> gmail.com>
Cc: 29789 <at> debbugs.gnu.org
Subject: Re: bug#29789: 25.1;
 Emacs blocks user input when using visual-fill-column in
 wide	terminals
Date: Thu, 21 Dec 2017 07:01:39 +0200
On December 21, 2017 5:37:10 AM GMT+02:00, Eli Zaretskii <eliz <at> gnu.org> wrote:
> > Date: Wed, 20 Dec 2017 22:35:30 +0100
> > From: Vasilij Schneidermann <v.schneidermann <at> gmail.com>
> > 
> > I can reproduce this on Arch Linux, with Emacs master and Termite. 
> I've
> > tried making a full backtrace in gdb, let me know if there's
> anything
> > else I can do to help debugging this issue.
> 
> Thanks.
> 
> > Thread 1 "emacs" received signal SIGTSTP, Stopped (user).
> > 0x00007f5ccb9f9b47 in kill () from /usr/lib/libc.so.6
> > Continuing.
> > 
> > Thread 1 "emacs" hit Breakpoint 1, terminate_due_to_signal (sig=6, 
> >     backtrace_limit=40) at emacs.c:364
> > 364	{
> > #0  0x0000000000569e7a in terminate_due_to_signal (sig=6,
> backtrace_limit=40)
> >     at emacs.c:364
> > #1  0x00000000005919c8 in emacs_abort () at sysdep.c:2426
> > #2  0x00000000005829d2 in handle_interrupt (in_signal_handler=true)
> >     at keyboard.c:10501
> > #3  0x0000000000582795 in handle_interrupt_signal (sig=2) at
> keyboard.c:10371
> > #4  0x0000000000590f88 in deliver_process_signal (sig=2,
> handler=0x582743 <handle_interrupt_signal>) at sysdep.c:1709
> > #5  0x00000000005827b4 in deliver_interrupt_signal (sig=2) at
> keyboard.c:10378
> > #6  0x00007f5ccc8a9da0 in <signal handler called> () at
> /usr/lib/libpthread.so.0
> > #7  0x00000000005083c0 in append_glyph (it=0x7ffcb39bc150) at
> term.c:1476
> > #8  0x00000000005087d5 in produce_glyphs (it=0x7ffcb39bc150) at
> term.c:1584
> > #9  0x00000000004722e7 in extend_face_to_end_of_line
> (it=0x7ffcb39bc150)
> >     at xdisp.c:20318
> > #10 0x00000000004773eb in display_line (it=0x7ffcb39bc150,
> cursor_vpos=3)
> >     at xdisp.c:21740
> > #11 0x0000000000469edf in try_window (window=XIL(0xd7f9a5), pos=...,
> flags=1)
> >     at xdisp.c:17610
> > #12 0x000000000046799c in redisplay_window (window=XIL(0xd7f9a5),
> just_this_one_p=false) at xdisp.c:17057
> > #13 0x0000000000460734 in redisplay_window_0 (window=XIL(0xd7f9a5))
> >     at xdisp.c:14814
> > #14 0x000000000061975f in internal_condition_case_1 (bfun=0x4606f2
> <redisplay_window_0>, arg=XIL(0xd7f9a5), handlers=XIL(0xd6bf13),
> hfun=0x4606ba <redisplay_window_error>) at eval.c:1356
> > #15 0x000000000046068c in redisplay_windows (window=XIL(0xd7f9a5))
> at xdisp.c:14794
> > #16 0x000000000045f4b8 in redisplay_internal () at xdisp.c:14283
> > #17 0x000000000045ff5e in redisplay_preserve_echo_area
> (from_where=2)
> >     at xdisp.c:14613
> > #18 0x0000000000426d03 in Fredisplay (force=XIL(0)) at
> dispnew.c:5828
> > #19 0x000000000061d47a in funcall_subr (subr=0x951720 <Sredisplay>,
> numargs=0, args=Quit
> > #0  0x0000000000569e7a in terminate_due_to_signal (sig=6,
> backtrace_limit=40)
> >     at emacs.c:364
> > #1  0x00000000005919c8 in emacs_abort () at sysdep.c:2426
> > #2  0x00000000005829d2 in handle_interrupt (in_signal_handler=true)
> >     at keyboard.c:10501
> >         c = 121 'y'
> > #3  0x0000000000582795 in handle_interrupt_signal (sig=2) at
> keyboard.c:10371
> >         terminal = 0x12cfe40 <bss_sbrk_buffer+6086848>
> > #4  0x0000000000590f88 in deliver_process_signal (sig=2,
> handler=0x582743 <handle_interrupt_signal>) at sysdep.c:1709
> >         old_errno = 22
> >         on_main_thread = true
> > #5  0x00000000005827b4 in deliver_interrupt_signal (sig=2) at
> keyboard.c:10378
> > #6  0x00007f5ccc8a9da0 in <signal handler called> () at
> /usr/lib/libpthread.so.0
> > #7  0x00000000005083c0 in append_glyph (it=0x7ffcb39bc150) at
> term.c:1476
> >         glyph = 0x7f5cd4622fd0
> >         end = 0x7f5cd4622fd0
> >         i = 0
> 
> This says Emacs got SIGINT and then aborted.  Did you type C-g more
> then once and then answered YES to the question whether to abort and
> dump core?
> 
> > #8  0x00000000005087d5 in produce_glyphs (it=0x7ffcb39bc150) at
> term.c:1584
> > #9  0x00000000004722e7 in extend_face_to_end_of_line
> (it=0x7ffcb39bc150)
> >     at xdisp.c:20318
> 
> The "hang" sounds like some infloop in redisplay.  It will be helpful
> if instead of trying to interrupt Emacs with C-g, you could attach the
> debugger, produce a backtrace from the place where Emacs was caught,
> and then use the technique described in etc/DEBUG under "If the
> symptom of the bug is that Emacs fails to respond", starting at "If
> Emacs is in an infinite loop", to find out where it loops.
> 
> Also, I need to know what version of Emacs is that, to match line
> numbers in the backtrace to the sources.

Forget it, I've succeeded in reproducing this.  The reason I couldn't before is because most themes do nothing if the terminal supports less than 89 colors (looks like their authors are just copying that condition from one another for no good reason), so I needed to find a theme which does work with fewer colors.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#29789; Package emacs. (Thu, 21 Dec 2017 17:50:02 GMT) Full text and rfc822 format available.

Message #23 received at 29789 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Luis Gerhorst <privat <at> luisgerhorst.de>
Cc: v.schneidermann <at> gmail.com, 29789 <at> debbugs.gnu.org
Subject: Re: bug#29789: 25.1;
 Emacs blocks user input when using visual-fill-column in
 wide	terminals
Date: Thu, 21 Dec 2017 19:49:13 +0200
> Date: Thu, 21 Dec 2017 07:01:39 +0200
> From: Eli Zaretskii <eliz <at> gnu.org>
> Cc: 29789 <at> debbugs.gnu.org
> 
> Forget it, I've succeeded in reproducing this.  The reason I
> couldn't before is because most themes do nothing if the terminal
> supports less than 89 colors (looks like their authors are just
> copying that condition from one another for no good reason), so I
> needed to find a theme which does work with fewer colors.

Ouch, what an embarrassingly stupid bug...

Should be fixed now on the emacs-26 branch.

Thanks.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#29789; Package emacs. (Thu, 21 Dec 2017 17:53:02 GMT) Full text and rfc822 format available.

Message #26 received at 29789 <at> debbugs.gnu.org (full text, mbox):

From: Luis Gerhorst <privat <at> luisgerhorst.de>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: v.schneidermann <at> gmail.com, 29789 <at> debbugs.gnu.org
Subject: Re: bug#29789: 25.1; Emacs blocks user input when using
 visual-fill-column in wide	terminals
Date: Thu, 21 Dec 2017 18:52:50 +0100
Great, big thanks to all of you!




bug marked as fixed in version 26.0.91, send any further explanations to 29789 <at> debbugs.gnu.org and Luis Gerhorst <privat <at> luisgerhorst.de> Request was from Glenn Morris <rgm <at> gnu.org> to control <at> debbugs.gnu.org. (Thu, 21 Dec 2017 18:58:01 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 19 Jan 2018 12:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 7 years and 154 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.