GNU bug report logs - #14161
assertion failed: EQ (selected_window, XFRAME (selected_frame)->selected_window)

Previous Next

Package: emacs;

Reported by: Stefan Monnier <monnier <at> iro.umontreal.ca>

Date: Mon, 8 Apr 2013 17:45:01 UTC

Severity: normal

Done: Glenn Morris <rgm <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 14161 in the body.
You can then email your comments to 14161 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to dmantipov <at> yandex.ru, bug-gnu-emacs <at> gnu.org:
bug#14161; Package emacs. (Mon, 08 Apr 2013 17:45:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Stefan Monnier <monnier <at> iro.umontreal.ca>:
New bug report received and forwarded. Copy sent to dmantipov <at> yandex.ru, bug-gnu-emacs <at> gnu.org. (Mon, 08 Apr 2013 17:45:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: bug-gnu-emacs <at> gnu.org
Subject: assertion failed: EQ (selected_window,
	XFRAME (selected_frame)->selected_window)
Date: Mon, 08 Apr 2013 13:40:22 -0400
[Message part 1 (text/plain, inline)]
Making it into a bug report.

[Message part 2 (message/rfc822, inline)]
From: Dmitry Antipov <dmantipov <at> yandex.ru>
To: Emacs development discussions <emacs-devel <at> gnu.org>
Cc: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
Subject: Hit eassert introduced in r110971
Date: Sat, 06 Apr 2013 20:35:10 +0400
Found 100% method to hit eassert introduced in r110971 within update_tool_bar:

1) ./src/emacs -nw -Q
2) M-x make-frame-on-display :0
3) Move mouse to new X frame and left-click;
4) Move mouse back to TTY frame and left-click;
5) Press C-g staying in TTY frame ==>

#0  0x0000003daf40eedb in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/pt-raise.c:41
#1  0x00000000005a1cf2 in terminate_due_to_signal (sig=6, backtrace_limit=2147483647)
     at src/emacs.c:343
#2  0x000000000065d92d in die (msg=0x79db98 "assertion failed: EQ (selected_window, XFRAME (selected_frame)->selected_window)", file=
     0x79b560 "src/xdisp.c", line=11427) at src/alloc.c:6522
#3  0x000000000044c6b5 in update_tool_bar (f=f <at> entry=0x14a29d8, save_match_data=save_match_data <at> entry=0)
     at src/xdisp.c:11424
#4  0x000000000045fd3a in update_tool_bar (save_match_data=0, f=0x14a29d8) at src/xdisp.c:11094
#5  prepare_menu_bars () at src/xdisp.c:11123
#6  0x000000000046beea in redisplay_internal () at src/xdisp.c:12929
#7  0x00000000005aa3eb in read_char (commandflag=1, map=..., prev_event=..., used_mouse_menu=0x7fffb36ebbff, end_time=0x0)
     at src/keyboard.c:2417
#8  0x00000000005c0a59 in read_decoded_char (commandflag=1, map=..., prev_event=..., used_mouse_menu=0x7fffb36ebbff)
     at src/keyboard.c:8712
#9  0x00000000005c17ad in read_key_sequence (keybuf=0x7fffb36ebdc0, bufsize=30, prompt=..., dont_downcase_last=false,
     can_return_switch_frame=true, fix_current_buffer=true) at src/keyboard.c:9044
#10 0x00000000005a71ca in command_loop_1 () at src/keyboard.c:1452
#11 0x0000000000681f1b in internal_condition_case (bfun=0x5a6c44 <command_loop_1>, handlers=..., hfun=0x5a634a <cmd_error>)
     at src/eval.c:1193
#12 0x00000000005a6861 in command_loop_2 (ignore=...) at src/keyboard.c:1167
#13 0x00000000006817cb in internal_catch (tag=..., func=0x5a683e <command_loop_2>, arg=...)
     at src/eval.c:964
#14 0x00000000005a6815 in command_loop () at src/keyboard.c:1146
#15 0x00000000005a5b9a in recursive_edit_1 () at src/keyboard.c:779
#16 0x00000000005a5f77 in Frecursive_edit () at src/keyboard.c:843
#17 0x00000000005a367f in main (argc=3, argv=0x7fffb36ec488) at src/emacs.c:1531

Dmitry

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#14161; Package emacs. (Mon, 08 Apr 2013 18:10:01 GMT) Full text and rfc822 format available.

Message #8 received at 14161 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: 14161 <at> debbugs.gnu.org
Cc: Dmitry Antipov <dmantipov <at> yandex.ru>
Subject: Re: bug#14161: assertion failed: EQ (selected_window,
	XFRAME (selected_frame)->selected_window)
Date: Mon, 08 Apr 2013 14:06:22 -0400
> 1) ./src/emacs -nw -Q
> 2) M-x make-frame-on-display :0
> 3) Move mouse to new X frame and left-click;
> 4) Move mouse back to TTY frame and left-click;
> 5) Press C-g staying in TTY frame ==>

> #2  0x000000000065d92d in die (msg=0x79db98 "assertion failed: EQ
> (selected_window, XFRAME (selected_frame)->selected_window)", file=
>      0x79b560 "src/xdisp.c", line=11427) at src/alloc.c:6522

I've installed the patch below which seems to fix this problem for me.


        Stefan


=== modified file 'src/window.c'
--- src/window.c	2013-04-02 01:54:56 +0000
+++ src/window.c	2013-04-08 17:58:36 +0000
@@ -485,12 +485,6 @@
   w = XWINDOW (window);
   w->frozen_window_start_p = 0;
 
-  if (NILP (norecord))
-    {
-      w->use_time = ++window_select_count;
-      record_buffer (w->contents);
-    }
-
   /* Make the selected window's buffer current.  */
   Fset_buffer (w->contents);
 
@@ -515,6 +509,15 @@
 
   select_window_1 (window, inhibit_point_swap);
 
+  /* record_buffer can run QUIT, so make sure it is run only after we have
+     re-established the invariant between selected_window and selected_frame,
+     otherwise the temporary broken invariant might "escape" (bug#14161).  */
+  if (NILP (norecord))
+    {
+      w->use_time = ++window_select_count;
+      record_buffer (w->contents);
+    }
+
   bset_last_selected_window (XBUFFER (w->contents), window);
   windows_or_buffers_changed++;
   return window;





bug closed, send any further explanations to 14161 <at> debbugs.gnu.org and Stefan Monnier <monnier <at> iro.umontreal.ca> Request was from Glenn Morris <rgm <at> gnu.org> to control <at> debbugs.gnu.org. (Fri, 26 Apr 2013 23:57:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 25 May 2013 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 12 years and 31 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.