Subject: 24.3; Infinite loop in x_make_frame_visible

From: Andreas Schwab <[email-masked]>
Date: Mon, 09 Sep 2013 10:49:33 +0200

In a long running Emacs session creating a new frame causes
x_make_frame_visible to hang while waiting for FRAME_VISIBLE_P (f), with
input_signal_count never changing (XTread_socket is never called).  I
can force breaking out of the loop from the debugger and everything
continues to work, including the newly created frame (but the problem
reappears with every new frame).  The syscall trace shows these calls
repeated indefinitely during the hang:

poll([{fd=4, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=4, revents=POLLOUT}])
writev(4, [{"+\10\1\0", 4}, {NULL, 0}, {"", 0}], 3) = 4
poll([{fd=4, events=POLLIN}], 1, 4294967295) = 1 ([{fd=4, revents=POLLIN}])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
recvfrom(4, "\1\1\24\240\0\0\0\0+\0\200\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096, 0, NULL, NULL) = 32
recvfrom(4, 0xc21f34, 4096, 0, 0, 0)    = -1 EAGAIN (Resource temporarily unavailable)
recvfrom(4, 0xc21f34, 4096, 0, 0, 0)    = -1 EAGAIN (Resource temporarily unavailable)

Andreas.

-- 
Andreas Schwab, SUSE Labs, [email-masked]
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."