[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs
From: |
martin rudalics |
Subject: |
bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs |
Date: |
Thu, 8 Apr 2021 17:48:23 +0200 |
> Okay, close, but not quite. What seems to be happening is this:
> list_windows()
This is a local rewrite. You really intend window_list() here. Right?
> is called while Vwindow_list is nil, and the if branch is
> taken. Something causes list_windows() to exit without reaching the end
> of the if block. This leaves Vwindow_list partially created.
OK. If you really get out of this after the first
Vwindow_list = nconc2 (Vwindow_list, arglist);
then we have one recorded frame, the length of Vwindow_list is 2 but we
did not record it in the earlier length-based experiment and the 2 won't
show up in the list of lengths. So the explanation is valid and a bit
gruesome too. This might hit us anywhere ...
> The next
> time list_windows() is called it returns the partially created list.
>
> To determine this I put a breakpoint at the beginning of the if block
> that sets a gdb convenience variable called $in_list_windows to one and
> continues. I put a breakpoint at the end of that block that sets it to
> zero and continues. I put a third condition breakpoint at the entrance
> to list_windows() that only triggers if $in_list_windows is one. This
> triggered with the included backtrace.
>
> Once again, the state triggered when, due to the VPN state changing, a
> background gnus demon hung trying to fetch mail. The trigger was me
> hitting C-g twice rapidly in succession to regain interactivity.
>
> Can anyone recommend a means to check if this my theory is true? Does
> list_windows() need to be protected against quit?
Try with
block_input ();
...
unblock_input ();
around it.
martin
- bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs, (continued)
- bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs, martin rudalics, 2021/04/08
- bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs, Gregory Heytings, 2021/04/08
- bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs, Michael Welsh Duggan, 2021/04/08
- bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs, Michael Welsh Duggan, 2021/04/08
- bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs, Eli Zaretskii, 2021/04/08
- bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs, Andreas Schwab, 2021/04/08
- bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs, Michael Welsh Duggan, 2021/04/08
- bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs, Michael Welsh Duggan, 2021/04/08
- bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs,
martin rudalics <=
- bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs, Michael Welsh Duggan, 2021/04/08
- bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs, martin rudalics, 2021/04/08
- bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs, Eli Zaretskii, 2021/04/08
- bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs, Michael Welsh Duggan, 2021/04/08
- bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs, Eli Zaretskii, 2021/04/08
- bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs, Michael Welsh Duggan, 2021/04/08
- bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs, Eli Zaretskii, 2021/04/08
- bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs, Michael Welsh Duggan, 2021/04/08
- bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs, Eli Zaretskii, 2021/04/08
- bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs, Michael Welsh Duggan, 2021/04/08