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

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

I updated and rebuilt (without imagemagick).
I still get the same problem if I load eww in a 2-window frame, with fci loaded.
eww loads that webpage fine after I do C-x 1.

Backtrace after C-g and debug-on-quit set to t:

window-end(#<window 3 on *Backtrace*> updated)
  #[(w) "\301 !\302 \303\"B\207" [w window-start window-end updated]
4](#<window 3 on *Backtrace*>)
  mapcar(#[(w) "\301 !\302 \303\"B\207" [w window-start window-end
updated] 4] (#<window 3 on *Backtrace*>))
  fci-delete-unneeded()
  fci-redraw-frame()
  set-window-buffer(nil #<buffer  *temp*-411462>)
  shr-render-td-1((td ((class . "Body") (shr-td-cache-natural . 222)
(shr-td-cache-10-nil 217 222 1 (#("Yank." 0 1 (face variable-pitch
shr-indentation nil) 1 5 (face variable-pitch))) 1 nil nil)) "\n
Yank.\n    ") 268 t)
  shr-render-td((td ((class . "Body") (shr-td-cache-natural . 222)
(shr-td-cache-10-nil 217 222 1 (#("Yank." 0 1 (face variable-pitch
shr-indentation nil) 1 5 (face variable-pitch))) 1 nil nil)) "\n
Yank.\n    ") 268 t)

--
Kaushal Modi

On Fri, Oct 23, 2015 at 4:43 PM, Kaushal Modi <[email-masked]> wrote:
>> The bug is nasty.. probably in the package or my config (need to yet
>> figure that out).
>
> I am pretty sure, it is this piece of code in fill-column-indicator.el!
>
> ;; Hooks we use.
> (defconst fci-hook-assignments
>   '((after-change-functions fci-redraw-region t t)
>     (before-change-functions fci-extend-rule-for-deletion nil t)
>     (window-scroll-functions fci-update-window-for-scroll nil t)
>     (window-configuration-change-hook  fci-redraw-frame)   ;
> <--------------------------------------------------------------
>     (post-command-hook  fci-post-command-check nil t)
>     (change-major-mode-hook turn-off-fci-mode nil t)
>     (longlines-mode-hook fci-update-all-windows nil t)))
>
> But the definition of fci-redraw-frame has "(when fci-mode" too
>
> (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))))
>     (dolist (buf bufs)
>       (with-current-buffer buf
>         (when fci-mode
>           (fci-delete-unneeded)
>           (fci-update-all-windows))))))
>
> So I am at loss why it is freezing eww if one of the other windows has
> fci enabled. I checked that "C-h v fci-mode" returns nil in the eww
> buffer.