unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Paul Pogonyshev <pogonyshev@gmail.com>
To: Gregory Heytings <gregory@heytings.org>
Cc: Lars Ingebrigtsen <larsi@gnus.org>, 57804@debbugs.gnu.org
Subject: bug#57804: An infinite loop in a `fontify-region' function causes Emacs to hang indefinitely
Date: Thu, 15 Sep 2022 22:07:24 +0200	[thread overview]
Message-ID: <CAG7BparY1wkR+xiHSwN_SUg2_9U6_eB012uFButnZ4dse9WamQ@mail.gmail.com> (raw)
In-Reply-To: <b24128855ba82feb25a7@heytings.org>

[-- Attachment #1: Type: text/plain, Size: 3128 bytes --]

> Why did you immediately set it to nil instead of trying to making it
> sufficiently large?  You said that some lines in the Logview buffer
> are long, but I bet they are never longer than, say, 100000
> characters.

How do I decide what is sufficiently large? With this optimization
Logview can fall into that infloop in fontification code, at which
point Emacs becomes completely frozen, with the only way out to
restart it. As have been determined in this thread, this is not a
bug. I still kinda want to avoid this non-bug, because it is a bit
disruptive to my work.

With long lines I can suffer slow and not-quite-responsive (but still
not hung to death) Emacs, which is much more bearable. Usually that
only happens when I open or grep something like a minified JS file by
mistake anyway.

For you this long-line optimization is probably very important, maybe
you often work with files that trigger this and make using Emacs a
pain without it. But for me it's a minor feature that I have barely
noticed, but that incidentally completely broke my normal workflow by
making Emacs seemingly randomly freeze (until I found time to debug
it, which was not easy as Emacs would not respond to anything).

> As I told you, the general fix will be to adapt Logview to handle locked
> narrowing, by explicitly unlocking the locked narrowing when it needs to
> access a larger portion of the buffer.  You were somewhat reluctant at
> that idea.

Maybe I misunderstood you. If I have to add a one-time adjustment to
the code to the effect of "unlock the narrowing it inside this block",
then it is fine for me. Now that I reread:

    > the "fully cooked" narrowing will not magically solve that
    > problem, though.  Logview will have to be adapted to deal with
    > the possibility of a locked narrowing.

I don't see implications that unlocking would be impossible. If I only
would have to use sth. like sketched (I don't insist on it looking
like this):

    (let ((disable-locked-narrowing-yes-i-know-this-is-bad-but-still t))
      (widen)
      ...
      )

once the branch is finished and merged (and that it would work for all
kinds of tags or whatever at once), then sorry for misunderstanding
and starting a heated discussion for nothing.

Paul

On Thu, 15 Sept 2022 at 21:44, Gregory Heytings <gregory@heytings.org>
wrote:

>
> >> already told you thrice that a simple way to fix your problem is to set
> >> long-line-threshold to a larger value (or to nil).
> >
> > Thanks, I added  `(setf long-line-threshold nil)' to Emacs startup
> > configuration file a couple of days before. But unless I'm missing
> > something, this is not a fix, only a workaround.
> >
>
> Why did you immediately set it to nil instead of trying to making it
> sufficiently large?  You said that some lines in the Logview buffer are
> long, but I bet they are never longer than, say, 100000 characters.
>
> As I told you, the general fix will be to adapt Logview to handle locked
> narrowing, by explicitly unlocking the locked narrowing when it needs to
> access a larger portion of the buffer.  You were somewhat reluctant at
> that idea.

[-- Attachment #2: Type: text/html, Size: 3775 bytes --]

  reply	other threads:[~2022-09-15 20:07 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-14 15:05 bug#57804: An infinite loop in a `fontify-region' function causes Emacs to hang indefinitely Paul Pogonyshev
2022-09-14 16:00 ` dick
2022-09-14 16:06   ` Paul Pogonyshev
2022-09-14 16:14 ` dick
2022-09-14 17:52   ` Lars Ingebrigtsen
2022-09-14 18:18     ` Eli Zaretskii
2022-09-14 16:41 ` Lars Ingebrigtsen
2022-09-14 16:57   ` Paul Pogonyshev
2022-09-14 17:25     ` Lars Ingebrigtsen
2022-09-14 17:30       ` Paul Pogonyshev
2022-09-14 17:43       ` Eli Zaretskii
2022-09-14 17:45         ` Lars Ingebrigtsen
2022-09-14 17:49           ` Eli Zaretskii
2022-09-15  2:17             ` Ihor Radchenko
2022-09-14 17:34     ` Gregory Heytings
2022-09-15 14:47       ` Paul Pogonyshev
2022-09-15 15:10         ` Gregory Heytings
2022-09-15 15:37           ` Paul Pogonyshev
2022-09-15 16:08             ` Gregory Heytings
2022-09-15 16:19               ` Paul Pogonyshev
2022-09-15 16:44                 ` Gregory Heytings
2022-09-15 18:49                   ` Paul Pogonyshev
2022-09-15 19:16                     ` Eli Zaretskii
2022-09-15 19:36                       ` Paul Pogonyshev
2022-09-15 19:45                         ` Eli Zaretskii
2022-09-15 20:18                         ` Gregory Heytings
2022-09-15 20:22                           ` Lars Ingebrigtsen
2022-09-15 20:40                           ` Paul Pogonyshev
2022-09-15 20:44                             ` Gregory Heytings
2022-09-15 21:17                               ` Paul Pogonyshev
2022-09-15 21:32                                 ` Gregory Heytings
2022-09-15 21:49                                   ` Paul Pogonyshev
2022-09-15 22:16                                     ` Gregory Heytings
2022-09-15 22:53                                       ` Paul Pogonyshev
2022-09-15 23:13                                         ` Gregory Heytings
2022-09-16  6:40                                         ` Eli Zaretskii
2022-09-16 10:08                                           ` Paul Pogonyshev
2022-09-16 10:44                                             ` Eli Zaretskii
2022-09-16  6:31                             ` Eli Zaretskii
     [not found]                               ` <1260fd38-d4b3-5ca1-5b15-78f59c0255b6@yandex.ru>
     [not found]                                 ` <83o7t9k8fr.fsf@gnu.org>
     [not found]                                   ` <CAG7Bpaow570a8Qrq6VxU+=MNF55UmnCMFFXT2Eg=vQUTgrxeoQ@mail.gmail.com>
     [not found]                                     ` <34e17bf2a6bdd269fba7@heytings.org>
     [not found]                                       ` <CAG7BpapFE0HEwi8iUoStz9EyAwH-QdZ_CxOUNtdUeKDmzCrZaQ@mail.gmail.com>
     [not found]                                         ` <338f50d421074805735f@heytings.org>
     [not found]                                           ` <831qpnngeg.fsf@gnu.org>
     [not found]                                             ` <338f50d421b672315145@heytings.org>
2022-11-28 18:32                                               ` Eli Zaretskii
2022-09-16  1:17                           ` Ihor Radchenko
2022-09-16  5:35                           ` Eli Zaretskii
2022-09-15 19:44                     ` Gregory Heytings
2022-09-15 20:07                       ` Paul Pogonyshev [this message]
2022-09-15 20:26                         ` Gregory Heytings
2022-09-16  5:37                           ` Eli Zaretskii
2022-09-15 22:20                       ` dick
2022-09-15 22:38                         ` Gregory Heytings
2022-09-16  6:19                         ` Eli Zaretskii
2022-09-16  7:44                         ` Gerd Möllmann
2022-09-14 17:02 ` Eli Zaretskii
2022-09-14 17:25   ` Paul Pogonyshev
2022-09-14 17:32     ` Eli Zaretskii
2022-09-14 17:38   ` Lars Ingebrigtsen
2022-09-14 17:44     ` Eli Zaretskii
2022-09-14 17:46       ` Lars Ingebrigtsen
2022-09-14 17:51         ` Eli Zaretskii
2022-09-15  5:20     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-15  6:27       ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAG7BparY1wkR+xiHSwN_SUg2_9U6_eB012uFButnZ4dse9WamQ@mail.gmail.com \
    --to=pogonyshev@gmail.com \
    --cc=57804@debbugs.gnu.org \
    --cc=gregory@heytings.org \
    --cc=larsi@gnus.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).