Subject: Re: bug#11717: 24.1.50; Segmentation fault in Fdelete_other_windows_internal when running Gnus unit tests

From: David Engster <[email-masked]>
Date: Fri, 15 Jun 2012 22:46:31 +0200

Eli Zaretskii writes:
>> From: David Engster <[email-masked]>
>> Cc: [email-masked]
>> Date: Fri, 15 Jun 2012 21:00:29 +0200
>
>> 
>> Regarding MOUSE_HL_INFO, I guess this
>> 
>> (gdb) p f->output_data
>> $6 = {
>>   tty = 0x0,
>>   x = 0x0,
>>   w32 = 0x0,
>>   ns = 0x0,
>>   nothing = 0
>> }
>> 
>> doesn't play well with either expression which might get executed in the
>> macro. FRAME_WINDOW_P(f) is false since output_method is
>> 'output_initial', hence it tries to access
>> output_data.tty->display_info->mouse_highlight.
>
> Does it help to condition the entire portion that accesses and uses
> hlinfo by 'if (!noninteractive)' ?

Yes, when I condition the lines 2650-2663, it works fine.

> But what I don't understand is why are we calling delete-other-windows
> when we are running in batch mode?  Isn't that a bug as well?

I absolutely love it that Emacs can run stuff like Gnus in batch mode
and it Just Works. While this might sound obscure, it makes setting up
automatic testing through continuous integration systems just so much
less painful. Also, besides from testing, I think there's a lot of
interactive code out there which can actually be useful in batch-mode,
and it would be tedious to always have to wrap every window-handling
part in "(unless noninteractive" clauses.

BTW, the Gnus test worked for quite a while in Emacs24 from trunk prior
to the Emacs 24.1 release. If it is of any value, I can probably bisect
the commit which triggers the above crash.

-David