all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Paul Pogonyshev <pogonyshev@gmail.com>
To: Gregory Heytings <gregory@heytings.org>
Cc: Eli Zaretskii <eliz@gnu.org>,
	57804@debbugs.gnu.org, Lars Ingebrigtsen <larsi@gnus.org>
Subject: bug#57804: An infinite loop in a `fontify-region' function causes Emacs to hang indefinitely
Date: Thu, 15 Sep 2022 23:17:25 +0200	[thread overview]
Message-ID: <CAG7Bpapf5xz_jdLyGOPJQ1+7wcn+Nn7KT7oFDfR1JQvqiFOZrA@mail.gmail.com> (raw)
In-Reply-To: <b24128855b4ee2a1d23e@heytings.org>

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

>>> No, if your function is called inside fontification-functions, you will
>>> not have to monitor Emacs sources, your code will use a single tag,
>>> namely 'fontification-functions.
>>
>> So, I will be able to unlock?
>
> Yes.

Good.

> > Wouldn't something like [...] not be much more robust?
>
> Definitely not.

But why? If you allow to lift restrictions, why not make it easy to
do? Call the variable/function that achieves this with a 100-character
name, brand the programmer an idiot in the name or documentation -
whatever. Don't advertise it in the manual, maybe add two lines
somewhere in a dark corner, repeating that only morons would use
it. But please, add something generic and simple to use.

Logview needs to temporarily cancel restrictions in _practically all_
its function. In the branch I see code like this:

    narrow_to_region_locked (make_fixnum (get_narrowed_begv (w, PT)),
                             make_fixnum (get_narrowed_zv (w, PT)),
                             hook);
                             ^^^^

So, suppose something in that hook (maybe even not installed by
Logview itself, e.g. by a minor mode or by the user: it is common to
have `add-hook' in Emacs initialization code) calls a function from
Logview. Now, that function from Logview does

    (please-widen-i-cant-work-with-locked-narrowing ...)

It, presumably, cannot know the tag used to install locked narrowing.
Will it be able to temporarily lift _any and all_ locked narrowing or
not? It probably won't freeze Emacs even if falling into an infinite
loop, likely there are not so many non-bugs like the one in this
thread, where misbehaving code can make Emacs hang irrepairably. But
still, if restrictions are not lifted, Logview function will likely
produce some incorrect result, require C-g to abort, or die with an
error.

Will the knowledge of the tag be required, as a sort of a "password",
to lift narrowing restrictions, or not?

Paul

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

>
> >> No, if your function is called inside fontification-functions, you will
> >> not have to monitor Emacs sources, your code will use a single tag,
> >> namely 'fontification-functions.
> >
> > So, I will be able to unlock?
> >
>
> Yes.
>
> >
> > Let Logview behave against your recommendations. And then, when the
> > users discover how crappy and unresponsive it is, as a result, compared
> > to everything else, they will just uninstall the package and use
> > something better.
> >
>
> Given that you will be able to unlock, that will be possible.
>

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

  reply	other threads:[~2022-09-15 21:17 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 [this message]
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
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

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

  git send-email \
    --in-reply-to=CAG7Bpapf5xz_jdLyGOPJQ1+7wcn+Nn7KT7oFDfR1JQvqiFOZrA@mail.gmail.com \
    --to=pogonyshev@gmail.com \
    --cc=57804@debbugs.gnu.org \
    --cc=eliz@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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.