Subject: bug#11081: 24.0.94; "emacsclient --create-frame" occasionally crashes daemon or causes daemon to hang

From: Jan Djärv <[email-masked]>
Date: Sun, 1 Apr 2012 11:33:28 +0200

31 mar 2012 kl. 20:00 skrev Eli Zaretskii:

>> From: Jan Djärv <[email-masked]>
>> Date: Sat, 31 Mar 2012 19:16:55 +0200
>> Cc: [email-masked]
>> 
>> The crash happens because of the abort in the SELECTED_FRAME macro:
>> 
>> #define SELECTED_FRAME()				\
>>     ((FRAMEP (selected_frame)				\
>>       && FRAME_LIVE_P (XFRAME (selected_frame)))	\
>>      ? XFRAME (selected_frame)				\
>>      : (abort (), (struct frame *) 0))
>> 
>> FRAME_LIVE_P return false.  There is some timing issue here, but I dont easily see it yet.  Anybody got a clue?
> 
> You are saying that the selected frame was already deleted when the
> code in update_tool_bar gets to its last lines, is that it?

No, the new frame that is being created is not live when this code is executed.  The crash happens when emacsclient --create-frame is run, not when exiting the frame.  The f->terminal is indeed NULL, and x_display_list is NULL.

	Jan D.