Some time ago, Greg Klanderman wrote...
|+
|  
|  I applied it and the assert fail went away.  So I un-applied it and it
|  is still gone.  BTW, is this patch correct in the case that an error
|  occurs?  The XSETFRAME will have taken place, whereas previously it
|  hadn't?
Yes it is. XSETFRAME is just an assignment with a cast, plus some extra
error checking in debug build. GC protect stack is unwound on signal.
I have been able to get 100% crashes by adding (garbage-collect) to
make-initial-minibuffer-frame, which is called to create that
floating nimibuffer frame.
Another topic is that this frame should not be created at all...
|  Anyway, is anyone else seeing the incorrect minibuffer-only frame
|  creation the second time ediff-buffers is run after xemacs -q?
I do on Solaris. Here's a lisp code I used for testing:
(while t
  (let ((gc-cons-threshold 1)
	f)
    (condition-case nil
	(progn 
	  (setq f (make-frame '(minibuffer nil)))
	  (sleep-for 0.5)
	  (delete-frame f)
	  (sleep-for 0.5))
      (error nil))))
This when run stably caused crashes without my patch, and does not with it.
Although, crash happens not on the first iteration, the range is 2 to 6.
With my patch, after this runs for some time, there are dozens of minibuffer
only frames. delete-frame signals spurious errors that it cannot delete a
frame whose minibuffer is used in another frame.
When I run this in 20.3, no abandoned minibuffers are floating around.
There is no crash, but the setting (gc-cons-threshold 1) does not
work when DEBUG_XEMACS is undefined: it is adjusted to be no less than
15000 or something. 
Also, with 21.0, there is the same symptom as Martin seen, lots of these
messages. They are so numerous so only C-\ works in xterm, no luck
with C-g or C-c. This happens spontaneously, and sleep-for calls in
the above code are helping a bit against this flood (but again not
in 100% cases).
This happens both with my patch and without it.
xemacs: X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  61 (X_ClearArea)
  Resource id in failed request:  0x0
  Serial number of failed request:  3046
  Current serial number in output stream:  15281
 
xemacs: X Error of failed request:  BadDrawable (invalid Pixmap or Window parameter)
  Major opcode of failed request:  70 (X_PolyFillRectangle)
  Resource id in failed request:  0x0
  Serial number of failed request:  3047
  Current serial number in output stream:  15281
Kirill