[443] in Athena Bugs
Bug in X11 (R1) and csh
daemon@ATHENA.MIT.EDU (John Carr)
Wed Jun 15 13:22:01 1988
To: bugs@ATHENA.MIT.EDU
Date: Wed, 15 Jun 88 13:19:54 EDT
From: John Carr <jfc@ATHENA.MIT.EDU>
Short summary: multiple calls to XCopyArea, with Pixmap as destination, can
cause the connection to the X server to break without any
indication of error.
csh does not have an error message for signal #13
Long summary:
(reference: files ~sgs/xt (executable) and xt.c (source)
This is a stripped down version of the program in which I noticed this bug.
Note that it should print "Am I here?" before exiting, and does not.
All of this has only been checked on a Vax (VS2000, 5.5).)
There is a critical number, 100, which appears to be the maximum number of
consecutive XCopyArea() calls to a destination Pixmap. If this number is
exceeded, the connection to the X server is broken (and the window [and,
presumably, all resources] destroyed). This is independent of the position
arguments to XCopyArea and of the source bitmap [the original program copied
from 3 different bitmaps into the same destination] and of intermediate calls
to XFlush(). The same effect is observed when interpreting in saber, so it is
not timing dependent.
When this program is run from the shell, there is NO ERROR MESSAGE despite
abnormal termination both of X and the program. When run in the background
the "done" message looks like this:
[2] xt
[there is no message for that signal, this is the other bug. Try kill -13 on
a program to see this.]
Running from saber produces the following error messages:
Connection #3 to server broken
XIO: broken pipe
in the program output window, and
Signal 13: SIGPIPE /* write on a pipe with no one to read it */
in the saber window.
If there turns out to be a bug in my program (I left it in OLC for two days
for comment, and got none) there is still a bug in Xlib, since the connection
is closed without any sort of error indication.
Speculation: are Pixmap writes buffered until the Pixmap is next read? This
could be an overflow of such a buffer space.
Untested: XCopyArea from window to pixmap, what calls other than the XCopyArea
with pixmap as source will restart the count, dependence on size of
copied area.
--John Carr