Subject: bug#4856: 23.1.50; menu-updating-frame stays set to dead frame

From: Rob Giardina <[email-masked]>
Date: Mon, 2 Nov 2009 16:12:18 -0400

Please write in English if possible, because the Emacs maintainers
usually do not have translators to read other languages for them.

Your bug report will be posted to the [email-masked] mailing
list.

Please describe exactly what actions triggered the bug
and the precise symptoms of the bug:

1) created second frame
2) killed second frame after some random editing
3) in first frame, on attempt to kill buffer saw:

menu-bar-non-minibuffer-window-p: Wrong type argument: frame-live-p, #<dead
frame [Gnu/Linux:robcvm] /home/rgiardina/emacs/rg-mac.el 0xaedc088>

checked that function, it checks the value of menu-updating-frame and uses
it here:

1564:(let ((menu-frame (or menu-updating-frame (selected-frame))))
1565:  (not (window-minibuffer-p (frame-selected-window menu-frame)))))

4) workaround: (setq menu-updating-frame nil)

perhaps menu-updating-frame needs to be nil'd on delete-frame near
frame.c:1436:

> /* Don't allow minibuf_window to remain on a deleted frame.  */
> if (EQ (f->minibuffer_window, minibuf_window))

regards,
rob

If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
    `bt full' and `xbacktrace'.
If you would like to further debug the crash, please read the file
/usr/local/share/emacs/23.1.50/etc/DEBUG for instructions.

In GNU Emacs 23.1.50.1 (i686-pc-linux-gnu, GTK+ Version 2.10.4)
 of 2009-10-19 on robcvm
Windowing system distributor `The X.Org Foundation', version 11.0.70101000
configured using `configure  '--with-x-toolkit=gtk''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=none
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Fundamental

Minor modes in effect:
  which-function-mode: t
  shell-dirtrack-mode: t
  minibuffer-depth-indicate-mode: t
  diff-auto-refine-mode: t
  savehist-mode: t
  auto-insert-mode: t
  icomplete-mode: t
  recentf-mode: t
  delete-selection-mode: t
  global-highlight-changes-mode: t
  highlight-changes-visible-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  blink-cursor-mode: t
  global-auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
<help-echo> <down-mouse-1> <mouse-1> C-g C-x o C-x
1 <down-mouse-1> <mouse-1> <down-mouse-1> <mouse-1>
C-g C-x 5 0 C-x 5 C-g C-x b C-g C-x k M-x s c r <return>
( f r a m e - l i s t ) <return> C-u C-x C-e <return>
<return> C-x 2 C-p C-p C-p C-e C-x o C-x b <return>
C-x o C-u C-x C-e C-_ C-a C-n C-n <return> ( b u f
f e r - l i s t ) C-x C-e C-a ( m a p c a r SPC C-h
C-g C-h f b u f f e r SPC f r a m e C-g C-h f f r a
m e C-g C-h C-a C-h a f r a m e <return> C-x o C-x
1 C-s b u f f e r C-s C-s C-s C-s C-s C-s C-s C-s C-s
C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s
C-s C-s C-s C-s C-s C-s C-s C-s C-s C-r C-r C-s C-s
C-s C-s C-s C-s C-s C-s C-s C-a C-M-k C-x k C-x C-g
M-x r g SPC d e b u g <return> C-x k C-x o C-x o C-n
C-n C-n M-f M-. <return> C-g <return> <down> <down>
<down> <down> <down> C-n C-e M-z C-x C-e C-x o C-M-k
q C-x k SPC SPC C-h v <return> C-x o M-: ( s e t q
SPC m e n u - u p d a t i n g - f r a m e SPC n i l
) <return> C-x k C-M-k C-x o C-p C-p C-n C-n C-SPC
M-b M-b M-b M-w <down-mouse-1> <mouse-1> M-x r e p
o r t SPC b u g <backspace> <backspace> <backspace>
e m SPC SPC <return>

Recent messages:
unzipping menu-bar.el.gz...done
Edebug: menu-bar-non-minibuffer-window-p
menu-bar-non-minibuffer-window-p
Entering debugger...
Back to top level.
 [2 times]
Result: #<dead frame [Gnu/Linux:robcvm] /home/rgiardina/emacs/rg-mac.el
0xaedc088>
Type M-x display-buffer RET to restore the other window.
nil
Mark set

Load-path shadows:
/usr/share/emacs/site-lisp/python-mode hides ~/emacs/main/python-mode
/usr/share/emacs/site-lisp/psvn hides ~/emacs/main/psvn
~/emacs/main/u-color-cycle hides ~/emacs/games/u-color-cycle
/usr/share/emacs/site-lisp/t-mouse hides
/usr/local/share/emacs/23.1.50/lisp/t-mouse
~/emacs/main/dired-x hides /usr/local/share/emacs/23.1.50/lisp/dired-x
~/emacs/main/remember hides
/usr/local/share/emacs/23.1.50/lisp/textmodes/remember
~/emacs/experimental/css-mode hides
/usr/local/share/emacs/23.1.50/lisp/textmodes/css-mode
~/emacs/main/sgml-mode hides
/usr/local/share/emacs/23.1.50/lisp/textmodes/sgml-mode
~/emacs/main/ruby-mode hides
/usr/local/share/emacs/23.1.50/lisp/progmodes/ruby-mode
~/emacs/games/tetris hides /usr/local/share/emacs/23.1.50/lisp/play/tetris
~/emacs/experimental/html2text hides
/usr/local/share/emacs/23.1.50/lisp/gnus/html2text
~/emacs/experimental/elp hides
/usr/local/share/emacs/23.1.50/lisp/emacs-lisp/elp

Features:
(shadow emacsbug apropos ibuf-ext cl-specs edebug vc-git hideshow
which-func imenu jdok tempo cc-mode cc-fonts cc-menus cc-styles cc-align
find-func tabify man hippie-exp rect sh-script executable mail-extr
newcomment etags tramp-imap epa epg epg-config imap-hash sendmail imap
message idna ecomplete rfc822 mml mml-sec mm-decode mm-bodies mm-encode
mailcap mail-parse rfc2231 rfc2047 rfc2045 qp ietf-drums mailabbrev
nnheader mm-util mail-prsvr gmm-utils mailheader canlock sha1 hex-util
hashcash mail-utils assoc tramp-gw tramp-fish tramp-smb tramp-cache
tramp-ftp tramp-cmds tramp auth-source gnus-util netrc password-cache
format-spec tramp-compat trampver ansi-color shell cc-subword face-remap
debug multi-isearch dired-sort date-parse cl-compat dired-x dired-aux
dired-details dired eldoc mb-depth mouse-drag filladapt scala-mode-auto
chop psvn log-edit pcvs-util add-log diff-mode savehist paren mic-paren
pgg pgg-parse pgg-def darcs winner escreen autoinsert icomplete time
cus-start cus-load recentf tree-widget edmacro kmacro jka-compr
bookmark-popmenu bookmark pp cc-cmds cc-engine cc-vars cc-defs delsel
disp-table server ffap ido browse-kill-ring ibuffer remember
org-remember solar cal-dst regexp-opt cal-menu calendar cal-loaddefs
hilit-chg wid-edit screen-lines org byte-opt bytecomp byte-compile
org-footnote org-src org-list org-faces org-compat org-macs time-date
noutline outline easy-mmode hl-line info-look info rg-todo derived
comint-popup comint ring switch-to-shell rg-compress seek-indent advice
help-fns help-mode easymenu view advice-preload rg-util cl cl-19 tooltip
ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd
fontset image fringe lisp-mode register page menu-bar rfn-eshadow timer
select scroll-bar mldrag mouse jit-lock font-lock syntax facemenu
font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan
thai tai-viet lao korean japanese hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev loaddefs button minibuffer faces
cus-face text-properties overlay md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
gtk x-toolkit x multi-tty emacs)