Subject: bug#63312: 29.0.90; set-frame-parameter sometimes called with dead frame when quitting ediff

From: Tobias Bading <[email-masked]>
Date: Sat, 6 May 2023 09:27:35 +0200

> Can you set debug-on-error non-nil, and post the full Lisp backtrace
> from the error?

Just now I couldn’t reproduce the bug in my tweaked Emacs 29. After a

sudo cpupower frequency-set --max 400MHz

I could. In my clean build of emacs-29 branch 21ec6c1d5c I was able to
reproduce the bug without any CPU throttling. The result is the same:

Debugger entered--Lisp error: (wrong-type-argument frame-live-p #<dead frame Ediff 0x55e8aa9e3760>)
  modify-frame-parameters(#<dead frame Ediff 0x55e8aa9e3760> ((dnd-root-window-position)))
  set-frame-parameter(#<dead frame Ediff 0x55e8aa9e3760> dnd-root-window-position nil)
  x-dnd-after-move-frame(#<dead frame Ediff 0x55e8aa9e3760>)
  run-hook-with-args(x-dnd-after-move-frame #<dead frame Ediff 0x55e8aa9e3760>)
  handle-move-frame((move-frame (#<dead frame Ediff 0x55e8aa9e3760>)))
  funcall-interactively(handle-move-frame (move-frame (#<dead frame Ediff 0x55e8aa9e3760>)))
  call-interactively(handle-move-frame nil [(move-frame (#<dead frame Ediff 0x55e8aa9e3760>))])
  command-execute(handle-move-frame nil [(move-frame (#<dead frame Ediff 0x55e8aa9e3760>))] t)