Subject: 24.3.50: Failed select: resource temporarily unavailable

From: Dmitry Antipov <[email-masked]>
Date: Mon, 03 Mar 2014 14:30:11 +0400

While working on http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16069,
I've used the following test function:

(defun bloat-font-frame ()
   (interactive)
   (while t
     (let ((fonts (progn (select-frame (make-frame-on-display ":0.0"))
                         (x-list-fonts "*"))))
       (while fonts
         (delete-frame)
         (select-frame (make-frame-on-display ":0.0"))
         (with-current-buffer "*scratch*"
           (erase-buffer)
           (condition-case nil
               (progn (set-frame-font (car fonts))
                      (set-frame-size nil 40 20))
             (error nil))
           (insert (format "This is %S" (car fonts))))
         (setq fonts (cdr fonts))
         (redisplay)
         (sleep-for 1.0)))))

Running with:

./src/emacs -Q -nw -l ../misc/bloat-font-frame.el

and then M-x bloat-font-frame, this works as expected with GTK and
--with-x-toolkit=no builds.  But with Lucid/Motif, it always fails
with error message "Failed select: resource temporarily unavailable", which
happens at process.c:4664 (as of trunk revision 116642).  100% reproducible,
with the backtrace pointed to Fsleep_for.

In GNU Emacs 24.3.50.2 (x86_64-unknown-linux-gnu, Motif Version 2.3.4)
  of 2014-03-03 on localhost.localdomain
Repository revision: 116642 [email-masked]
Windowing system distributor `Fedora Project', version 11.0.11404000
System Description:	Fedora release 20 (Heisenbug)

Configured using:
  `configure --prefix=/not/exists --with-x-toolkit=motif
  --enable-checking 'CFLAGS=-O0 -g3''

Important settings:
   value of $LANG: en_US.UTF-8
   locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
   tooltip-mode: t
   electric-indent-mode: t
   mouse-wheel-mode: t
   tool-bar-mode: t
   menu-bar-mode: t
   file-name-shadow-mode: t
   global-font-lock-mode: t
   font-lock-mode: t
   auto-composition-mode: t
   auto-encryption-mode: t
   auto-compression-mode: t
   line-number-mode: t
   transient-mark-mode: t

Recent input:
ESC x b l o a t - f o TAB RET <help-echo> M-x r e p
o r <tab> <return>

Recent messages:
("/home/dima/work/emacs/build-motif/src/emacs" "-l" "../misc/bloat-font-frame.el")
For information about GNU Emacs and the GNU system, type C-h C-a.
while: Failed select: resource temporarily unavailable

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util help-fns mail-prsvr mail-utils time-date tooltip electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar
dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-bar
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
minibuffer nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
dbusbind gfilenotify dynamic-setting system-font-setting
font-render-setting motif x-toolkit x multi-tty emacs)