Subject: bug#21738: 25.0.50; eww freezes/crashes at times

From: Kaushal Modi <[email-masked]>
Date: Fri, 23 Oct 2015 17:29:27 -0400

I put some debug statements in the fci-redraw-frame () function in
fill-column-indicator:

(defun fci-redraw-frame ()
  "Redraw the fill-column rule in all windows on the selected frame."
  (let* ((wins (window-list (selected-frame) 'no-minibuf))
         (bufs (delete-dups (mapcar #'window-buffer wins))))
    (message "Buffer list: %s" bufs)
    (dolist (buf bufs)
      (with-current-buffer buf
        (when fci-mode
          (message "In buffer %s" buf)
          (fci-delete-unneeded)
          (fci-update-all-windows))))))

After that,
(1) I had the frame with 2 windows.
(2) I had fill-column-indicator.el in one window, and
(3) did M-: (eww "http://www.braveclojure.com/basic-emacs") with point
in the other window.

Emacs of course went into infloop but I was able to get out of it with
C-g, and saw these messages in *Messages* buffer:

Buffer list: (*eww* fill-column-indicator.el)
In buffer fill-column-indicator.el
Contacting host: www.braveclojure.com:80
#<buffer  *http www.braveclojure.com:80*>
Buffer list: ( *temp* fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: (eww fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: ( *temp* fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: (eww fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: ( *temp* fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: (eww fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: ( *temp* fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: (eww fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: ( *temp* fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: (eww fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: ( *temp* fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: (eww fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: ( *temp* fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: (eww fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: ( *temp* fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: (eww fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: ( *temp* fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: (eww fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: ( *temp* fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: (eww fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: ( *temp* fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: (eww fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: ( *temp* fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: (eww fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: ( *temp* fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: (eww fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: ( *temp* fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: (eww fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: ( *temp* fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: (eww fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: ( *temp* fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: (eww fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: ( *temp* fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: (eww fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: ( *temp*-713219 fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: (eww fill-column-indicator.el)
In buffer fill-column-indicator.el
Buffer list: ( *temp*-364654 fill-column-indicator.el)
In buffer fill-column-indicator.el

There were many more of such messages

Does the fci-redraw-frame definition above and the fact that it is
added to window-configuration-change-hook give an idea as to what's
causing this infloop?

--
Kaushal Modi