Subject: Re: bug#20825: 25.0.50; Cannot view info docs anymore (100% CPU)

From: Robert Pluim <[email-masked]>
Date: Tue, 16 Jun 2015 14:18:33 +0200

Tassilo Horn <[email-masked]> writes:

> With emacs HEAD e80225000dda3f1deac5ea95a9253301b05fbed7, emacs starts
> using up 100% CPU time when trying to view some info documentation.
>
>   1. emacs -Q
>   2. C-h i
>      The info index is shown properly
>   3. m emacs RET
>

I see this as well.

> Now emacs starts using up 100% CPU, and the emacs info docs aren't
> shown.  With `debug-on-quit' I obtain the following backtrace during the
> hang.
>
> Debugger entered--Lisp error: (quit)
>   count-lines(1 1)
>   line-number-at-pos(70)
>   filepos-to-bufferpos(1116 approximate)
>   Info-find-node-2("/home/horn/Repos/el/emacs/info/emacs" "Top" nil nil)
>   Info-find-node("emacs" "Top" nil nil)
>   Info-goto-node("(emacs)" nil)
>   Info-menu("Emacs" nil)
>   funcall-interactively(Info-menu "Emacs" nil)
>   call-interactively(Info-menu nil nil)
>   command-execute(Info-menu)
>

Not unsurprisingly, git bisect points at this commit as the culprit:

commit b95f53f0383b5df82e0b711f5027881950893f4f
Author: Stefan Monnier <[email-masked]>
Date:   Mon Jun 15 18:48:08 2015 -0400

    * lisp/info.el: Cleanup bytepos/charpos issues
    
    * lisp/international/mule-util.el: Use lexical-binding.
    (filepos-to-bufferpos): New function.
    * lisp/info.el (Info-find-in-tag-table-1): Use 0-based file positions.
    (Info-find-node-2): Use filepos-to-bufferpos (bug#20704).
    (Info-read-subfile, Info-search): Use 0-based file positions.

and updating to the commit just before makes the issue go away.

Robert