Subject: bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs

From: Michael Welsh Duggan <[email-masked]>
Date: Wed, 07 Apr 2021 08:42:59 -0400

martin rudalics <[email-masked]> writes:

>> Just a shot in the dark here.  The only way I can think of this
>> occurring (Vwindow_list being too small), is that something modified
>> Vwindow_list when we don't expect it to be modified.  I looked through
>> all the uses of Vwindow_list and window_list(), and they all look
>> kosher.  The only modification seems to be setting Vwindow_list to nil.
>> But window_list() does call into lisp (nconc2, which calls Fnconc) when
>> constructing Vwindow_list, and it uses Vwindow_list as a temporary in
>> the process.  Is it possible that during that call something happens
>> asynchronously (via gc?) that calls something that sets Vwindow_list
>> to nil again, while Vwindow_list is being constructed?
>
> Improbable but I attached some code that could detect such an
> incidence.  Put a breakpoint at the
>
> 	Vwindow_list = window_list_2;
>
> line.
>
>> I don't think
>> so, off hand, but I'm grasping at straws.
>
> I also added a variable called `window-list-lengths' which records the
> last 20 or so last changes in the number of windows seen by window_list.
> Maybe you can detect some strange 2 ~> 6 or 6 ~> 2 change while running
> Gnus.  I'm still not sure whether your daemon setup could be involved
> somehow.

I can run with this, but I am uncertain how I should be using it.  What
should I be trapping on and looking at?  I'm guessing the same process
as I used before, but we get another variable we can look at in the
process?

-- 
Michael Welsh Duggan
([email-masked])