Subject: bug#24662: 24.5; Markdown mode freezes Emacs when using TeX input method in a header

From: Christophe Troestler <[email-masked]>
Date: Mon, 10 Oct 2016 20:02:52 +0200

Elpa Markdown mode makes Emacs use 100% CPU and be unresponsive (C-g has 
no effect) when using TeX input method in a header followed by an URL.

Steps to reproduce:

- Run: emacs -q
- Execute (if you are using Debian or derivatives and installed 
  elpa-markdown-mode — otherwise see 
  http://jblevins.org/projects/markdown-mode/):

(load
"/usr/share/emacs/site-lisp/elpa-src/markdown-mode-2.1/markdown-mode.el")

- Create a file, say a.md, containing

#

http://

- Place the cursor after "#".

- Switch to TeX input method (C-\ and select TeX)

- Type \  (then Emacs freezes)

emacs-25.1.50.1 and emacs-26.0.50.1 (compiled from the Git repository)
have the same problem.

In GNU Emacs 24.5.1 (x86_64-pc-linux-gnu, GTK+ Version 3.21.5)
 of 2016-09-05 on trouble, modified by Debian
Windowing system distributor `The X.Org Foundation', version 
11.0.11804000
System Description:	Debian GNU/Linux testing (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/emacs24:/etc/emacs:/usr/local/share/emacs/24.5/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.5/site-lisp:/usr/share/emacs/site-lisp
 --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/emacs24:/etc/emacs:/usr/local/share/emacs/24.5/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.5/site-lisp:/usr/share/emacs/site-lisp
 --with-x=yes --with-x-toolkit=gtk3 --with-toolkit-scroll-bars
 'CFLAGS=-g -O2
 -fdebug-prefix-map=/build/emacs24-24.5+1=. -fstack-protector-strong
 -Wformat -Werror=format-security -Wall' 'CPPFLAGS=-Wdate-time
 -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro'
Important settings:
  value of $LC_MESSAGES: en_US.UTF-8
  value of $LC_MONETARY: en_GB.UTF-8
  value of $LC_NUMERIC: en_GB.UTF-8
  value of $LC_TIME: en_GB.UTF-8
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Tuareg

Minor modes in effect:
  shell-dirtrack-mode: t
  flyspell-mode: t
  TeX-PDF-mode: t
  merlin-mode: t
  erc-list-mode: t
  erc-menu-mode: t
  erc-autojoin-mode: t
  erc-ring-mode: t
  erc-networks-mode: t
  erc-pcomplete-mode: t
  erc-track-mode: t
  erc-match-mode: t
  erc-button-mode: t
  erc-fill-mode: t
  erc-stamp-mode: t
  erc-netsplit-mode: t
  erc-irccontrols-mode: t
  erc-noncommands-mode: t
  erc-move-to-prompt-mode: t
  erc-readonly-mode: t
  desktop-save-mode: t
  show-paren-mode: t
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-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
  transient-mark-mode: t

Recent messages:
Sending email done
Mark set
Saving file 
/home/trch/Maildir/UMONS/sent/cur/1476121349.6f874b458517dc17.poincare:2,S...
Wrote 
/home/trch/Maildir/UMONS/sent/cur/1476121349.6f874b458517dc17.poincare:2,S
Sending...done
[mu4e] Message sent
[mu4e] Found 150 matching messages
[mu4e] Found 38 matching messages
byte-code: End of buffer
Making completion list... [3 times]

Load-path shadows:
/home/trch/software/mu/mu4e/mu4e-meta hides 
/usr/share/emacs24/site-lisp/mu4e/mu4e-meta
/home/trch/software/mu/mu4e/mu4e-vars hides 
/usr/share/emacs24/site-lisp/mu4e/mu4e-vars
/home/trch/software/mu/mu4e/mu4e-message hides 
/usr/share/emacs24/site-lisp/mu4e/mu4e-message
/home/trch/software/mu/mu4e/mu4e-actions hides 
/usr/share/emacs24/site-lisp/mu4e/mu4e-actions
/home/trch/software/mu/mu4e/mu4e-compose hides 
/usr/share/emacs24/site-lisp/mu4e/mu4e-compose
/home/trch/software/mu/mu4e/mu4e-utils hides 
/usr/share/emacs24/site-lisp/mu4e/mu4e-utils
/home/trch/software/mu/mu4e/mu4e-mark hides 
/usr/share/emacs24/site-lisp/mu4e/mu4e-mark
/home/trch/software/mu/mu4e/mu4e-headers hides 
/usr/share/emacs24/site-lisp/mu4e/mu4e-headers
/home/trch/software/mu/mu4e/mu4e-contrib hides 
/usr/share/emacs24/site-lisp/mu4e/mu4e-contrib
/home/trch/software/mu/mu4e/mu4e-lists hides 
/usr/share/emacs24/site-lisp/mu4e/mu4e-lists
/home/trch/software/mu/mu4e/mu4e-main hides 
/usr/share/emacs24/site-lisp/mu4e/mu4e-main
/home/trch/software/mu/mu4e/mu4e-proc hides 
/usr/share/emacs24/site-lisp/mu4e/mu4e-proc
/home/trch/software/mu/mu4e/mu4e-context hides 
/usr/share/emacs24/site-lisp/mu4e/mu4e-context
/home/trch/software/mu/mu4e/mu4e hides 
/usr/share/emacs24/site-lisp/mu4e/mu4e
/home/trch/software/mu/mu4e/mu4e-view hides 
/usr/share/emacs24/site-lisp/mu4e/mu4e-view
/home/trch/software/mu/mu4e/mu4e-draft hides 
/usr/share/emacs24/site-lisp/mu4e/mu4e-draft
/home/trch/software/mu/mu4e/org-mu4e hides 
/usr/share/emacs24/site-lisp/mu4e/org-mu4e
/home/trch/software/mu/mu4e/mu4e-speedbar hides 
/usr/share/emacs24/site-lisp/mu4e/mu4e-speedbar
/home/trch/software/mu/mu4e/org-old-mu4e hides 
/usr/share/emacs24/site-lisp/mu4e/org-old-mu4e
/home/trch/.emacs.d/elpa/ntlm-2.0.0/ntlm hides 
/usr/share/emacs24/site-lisp/flim/ntlm
/usr/share/emacs/24.5/site-lisp/debian-startup hides 
/usr/share/emacs/site-lisp/debian-startup
/usr/share/emacs24/site-lisp/flim/hex-util hides 
/usr/share/emacs/24.5/lisp/hex-util
/usr/share/emacs24/site-lisp/flim/md4 hides 
/usr/share/emacs/24.5/lisp/md4
/usr/share/emacs24/site-lisp/flim/hmac-md5 hides 
/usr/share/emacs/24.5/lisp/net/hmac-md5
/home/trch/.emacs.d/elpa/ntlm-2.0.0/ntlm hides 
/usr/share/emacs/24.5/lisp/net/ntlm
/home/trch/.emacs.d/elpa/soap-client-3.1.1/soap-client hides 
/usr/share/emacs/24.5/lisp/net/soap-client
/usr/share/emacs24/site-lisp/flim/sasl hides 
/usr/share/emacs/24.5/lisp/net/sasl
/usr/share/emacs24/site-lisp/flim/sasl-cram hides 
/usr/share/emacs/24.5/lisp/net/sasl-cram
/home/trch/.emacs.d/elpa/soap-client-3.1.1/soap-inspect hides 
/usr/share/emacs/24.5/lisp/net/soap-inspect
/usr/share/emacs24/site-lisp/flim/sasl-ntlm hides 
/usr/share/emacs/24.5/lisp/net/sasl-ntlm
/usr/share/emacs24/site-lisp/flim/hmac-def hides 
/usr/share/emacs/24.5/lisp/net/hmac-def
/usr/share/emacs24/site-lisp/flim/sasl-digest hides 
/usr/share/emacs/24.5/lisp/net/sasl-digest
/usr/share/emacs24/site-lisp/auctex/context hides 
/usr/share/emacs/site-lisp/auctex/context
/usr/share/emacs24/site-lisp/auctex/tex-buf hides 
/usr/share/emacs/site-lisp/auctex/tex-buf
/usr/share/emacs24/site-lisp/auctex/tex-info hides 
/usr/share/emacs/site-lisp/auctex/tex-info
/usr/share/emacs24/site-lisp/auctex/tex-mik hides 
/usr/share/emacs/site-lisp/auctex/tex-mik
/usr/share/emacs24/site-lisp/auctex/tex-bar hides 
/usr/share/emacs/site-lisp/auctex/tex-bar
/usr/share/emacs24/site-lisp/auctex/tex-font hides 
/usr/share/emacs/site-lisp/auctex/tex-font
/usr/share/emacs24/site-lisp/auctex/tex-jp hides 
/usr/share/emacs/site-lisp/auctex/tex-jp
/usr/share/emacs24/site-lisp/auctex/tex hides 
/usr/share/emacs/site-lisp/auctex/tex
/usr/share/emacs24/site-lisp/auctex/toolbar-x hides 
/usr/share/emacs/site-lisp/auctex/toolbar-x
/usr/share/emacs24/site-lisp/auctex/plain-tex hides 
/usr/share/emacs/site-lisp/auctex/plain-tex
/usr/share/emacs24/site-lisp/auctex/latex hides 
/usr/share/emacs/site-lisp/auctex/latex
/usr/share/emacs24/site-lisp/auctex/tex-style hides 
/usr/share/emacs/site-lisp/auctex/tex-style
/usr/share/emacs24/site-lisp/auctex/preview hides 
/usr/share/emacs/site-lisp/auctex/preview
/usr/share/emacs24/site-lisp/auctex/context-en hides 
/usr/share/emacs/site-lisp/auctex/context-en
/usr/share/emacs24/site-lisp/auctex/texmathp hides 
/usr/share/emacs/site-lisp/auctex/texmathp
/usr/share/emacs24/site-lisp/auctex/context-nl hides 
/usr/share/emacs/site-lisp/auctex/context-nl
/usr/share/emacs24/site-lisp/auctex/bib-cite hides 
/usr/share/emacs/site-lisp/auctex/bib-cite
/usr/share/emacs24/site-lisp/auctex/multi-prompt hides 
/usr/share/emacs/site-lisp/auctex/multi-prompt
/usr/share/emacs24/site-lisp/auctex/tex-fold hides 
/usr/share/emacs/site-lisp/auctex/tex-fold
/usr/share/emacs24/site-lisp/auctex/font-latex hides 
/usr/share/emacs/site-lisp/auctex/font-latex
/usr/share/emacs24/site-lisp/auctex/prv-emacs hides 
/usr/share/emacs/site-lisp/auctex/prv-emacs

Features:
(shadow emacsbug network-stream starttls tls mailalias flow-fill
mail-extr sort face-remap reporter debian-bug w3m-form org-element
org-rmail org-mhe org-irc org-info org-gnus org-docview org-bibtex
org-bbdb org-w3m latexenc reftex-auc preview prv-emacs tex-buf
reftex-dcr reftex reftex-vars latex tex-style tex-mode shell mule-util
caml tuareg_indent tuareg compile smie caml-help vc-git flyspell ispell
markdown-mode font-latex tex dbus crm bibtex merlin-compat merlin-cap
merlin caml-types caml-emacs tq log-edit pcvs-util add-log erc-list
erc-menu erc-join erc-ring erc-networks erc-pcomplete erc-track
erc-match erc-button erc-fill erc-stamp erc-netsplit erc-goodies erc
erc-backend erc-compat pp twittering-mode url url-proxy url-privacy
url-expand url-methods url-history url-cookie url-domsuf url-util
mailcap xml org-mu4e org org-macro org-footnote org-pcomplete pcomplete
org-list org-faces org-entities noutline outline easy-mmode org-version
ob-emacs-lisp ob ob-tangle ob-ref ob-lob ob-table ob-exp org-src ob-keys
ob-comint ob-core ob-eval org-compat org-macs org-loaddefs find-func
mu-cite alist std11 pccl pccl-20 advice pcustom poem poem-e20 poem-e20_3
pces pces-e20 pces-20 broken poe pym static apel-ver product mu4e-w3m
mu4e-contrib mu4e desktop frameset mu4e-speedbar speedbar sb-image
ezimage dframe mu4e-main mu4e-context mu4e-view thingatpt comint
ansi-color ring mu4e-headers mu4e-compose mu4e-draft mu4e-actions ido
rfc2368 smtpmail sendmail mu4e-mark mu4e-message html2text mu4e-proc
mu4e-utils mu4e-lists mu4e-vars message cl-macs format-spec rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045
ietf-drums mailabbrev mail-utils gmm-utils mailheader hl-line mu4e-meta
w3m browse-url doc-view jka-compr dired image-mode timezone w3m-hist
w3m-fb bookmark-w3m w3m-ems wid-edit w3m-ccl ccl w3m-favicon w3m-image
w3m-proc w3m-util epa-file epa derived epg cl gv quail help-mode edmacro
kmacro paren icalendar diary-lib diary-loaddefs cal-menu calendar
cal-loaddefs server url-auth url-parse auth-source eieio byte-opt
bytecomp byte-compile cl-extra cl-loaddefs cl-lib cconv eieio-core
gnus-util mm-util help-fns mail-prsvr password-cache url-vars info
easymenu package epg-config debian-el debian-el-loaddefs w3m-load
preview-latex tex-site auto-loads time-date tooltip electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd
fontset image regexp-opt fringe tabulated-list newcomment lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer 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 make-network-process
dbusbind gfilenotify dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs)

Memory information:
((conses 16 451168 55712)
 (symbols 48 52854 0)
 (miscs 40 799 513)
 (strings 32 132784 18744)
 (string-bytes 1 3771065)
 (vectors 16 46858)
 (vector-slots 8 909914 38174)
 (floats 8 278 288)
 (intervals 56 4582 746)
 (buffers 960 59))