[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#39962: 27.0.90; Crash in Emacs 27.0.90
From: |
Pip Cet |
Subject: |
bug#39962: 27.0.90; Crash in Emacs 27.0.90 |
Date: |
Thu, 12 Mar 2020 10:32:16 +0000 |
On Wed, Mar 11, 2020 at 7:34 PM Eli Zaretskii <eliz@gnu.org> wrote:
> > > Did you audit all the users of this function, both direct and
> > > indirect? Some of them are outside of GC.
> >
> > Thanks for the comment; I just re-checked, and they look fine to me.
>
> ??? Fine in what way?
It doesn't affect visible behavior of any callers, except in the case
where the previous behavior was buggy.
> One of the callers is live_buffer_p, which is
> called by valid_lisp_object_p, which is expected to return a special
> value for dead buffers. Your change will break that, no?
Who's expecting valid_lisp_object_p to return a special value for dead buffers?
The only calls to it that I see check merely whether the return value
is != 0 or > 0, both of which tests remain invariant. Am I missing
something?
What confused me is that live_buffer and live_buffer_p both exist and
do wildly different things. But as you correctly point out, we
shouldn't fix that on the release branch.
> IOW, you are changing the semantics of "live buffer", for a reason
> that can hardly justify that.
I'm most certainly not changing the semantics of live_buffer, if
that's what you're worried about. I am changing the semantics of
live_buffer_p, which is an internal function, and my initial patch
also changed the return value of valid_lisp_object_p, to another value
that would be treated equivalently. If there are objections to that,
we can easily distinguish the two cases.
And I think "so we don't collect reachable objects" is a fairly good
reason, generally.
> That doesn't sound economical to me; it
> will certainly make it much harder for me to agree to make the change
> on the release branch.
I think you've made perfectly clear that you don't want this patch on
the release branch, though I'm not sure I understand the reasoning for
that.
> The problem you are trying to solve is rare
I think it would become much less rare with lexical binding in effect,
at least when the code's byte-compiled.
> and obscure,
IME, test cases often are, even if they test for real and common problems.
> since this code was with us since 20 years ago without
> anyone bumping into it,
That we know of. They might have just accrued it to random Emacs crashes.
- bug#39962: 27.0.90; Crash in Emacs 27.0.90, (continued)
- bug#39962: 27.0.90; Crash in Emacs 27.0.90, Pip Cet, 2020/03/10
- bug#39962: 27.0.90; Crash in Emacs 27.0.90, Pieter van Oostrum, 2020/03/10
- bug#39962: 27.0.90; Crash in Emacs 27.0.90, Pip Cet, 2020/03/11
- bug#39962: 27.0.90; Crash in Emacs 27.0.90, Pieter van Oostrum, 2020/03/11
- bug#39962: 27.0.90; Crash in Emacs 27.0.90, Pip Cet, 2020/03/11
- bug#39962: 27.0.90; Crash in Emacs 27.0.90, Paul Eggert, 2020/03/11
- bug#39962: 27.0.90; Crash in Emacs 27.0.90, Eli Zaretskii, 2020/03/11
- bug#39962: 27.0.90; Crash in Emacs 27.0.90, Eli Zaretskii, 2020/03/11
- bug#39962: 27.0.90; Crash in Emacs 27.0.90, Pip Cet, 2020/03/11
- bug#39962: 27.0.90; Crash in Emacs 27.0.90, Eli Zaretskii, 2020/03/11
- bug#39962: 27.0.90; Crash in Emacs 27.0.90,
Pip Cet <=
- bug#39962: 27.0.90; Crash in Emacs 27.0.90, Eli Zaretskii, 2020/03/12
- bug#39962: 27.0.90; Crash in Emacs 27.0.90, Pip Cet, 2020/03/12
- bug#39962: 27.0.90; Crash in Emacs 27.0.90, Eli Zaretskii, 2020/03/13
- bug#39962: 27.0.90; Crash in Emacs 27.0.90, Pip Cet, 2020/03/13
- bug#39962: 27.0.90; Crash in Emacs 27.0.90, Eli Zaretskii, 2020/03/13
- bug#39962: 27.0.90; Crash in Emacs 27.0.90, Pip Cet, 2020/03/14
- bug#39962: 27.0.90; Crash in Emacs 27.0.90, Pip Cet, 2020/03/14
- bug#39962: 27.0.90; Crash in Emacs 27.0.90, Paul Eggert, 2020/03/14
- bug#39962: 27.0.90; Crash in Emacs 27.0.90, Pip Cet, 2020/03/14
- bug#39962: 27.0.90; Crash in Emacs 27.0.90, Eli Zaretskii, 2020/03/14