Strange behaviour of X Driver
Robert Lunnon
bobl at optushome.com.au
Fri Oct 8 18:21:26 CDT 2004
I have some strange behaviour occurring on Solaris 10 I am getting XIO errors
I Did a syscal trace and got this in part \
uname(0x7FD5EA54) = 1
uname(0x7FD5EB24) = 1
xstat(2, "/tmp/.X11-pipe/X0", 0x7FD5EF64) = 0
open("/tmp/.X11-pipe/X0", O_RDWR) = 11
ioctl(11, I_CANPUT, 0x00000000) = 1
uname(0x7FD5EA94) = 1
uname(0x7FD5EAC4) = 1
fcntl(11, F_SETFD, 0x00000001) = 0
access("/usr2/robert/.Xauthority", R_OK) = 0
open("/usr2/robert/.Xauthority", O_RDONLY) = 14
fstat64(14, 0x7FD5EC40) = 0
fstat64(14, 0x7FD5EB80) = 0
ioctl(14, TCGETA, 0x7FD5EC14) Err#25 ENOTTY
read(14, "\0\0\004C0A80305\001 0\0".., 8192) = 1174
read(14, 0x080C413C, 8192) = 0
llseek(14, 0, SEEK_CUR) = 1174
close(14) = 0
writev(11, 0x7FD5F6F4, 4) = 48
fcntl(11, F_GETFL) = 2
fcntl(11, F_SETFL, FWRITE|FNONBLOCK) = 0
read(11, 0x7FD5F7AC, 8) Err#11 EAGAIN
XIO: fatal IO error write(2, " X I O : f a t a l ".., 21) = 21
0 (write(2, " 0 (", 3) = 3
Error 0write(2, " E r r o r 0", 7) = 7
) on X server "write(2, " ) o n X s e r v e".., 15) = 15
:0.0write(2, " : 0 . 0", 4) = 4
"
write(2, " "\r\n", 3) = 3
after write(2, " a f t e r ", 12) = 12
0write(2, " 0", 1) = 1
requests (write(2, " r e q u e s t s (", 11) = 11
0write(2, " 0", 1) = 1
known processed) with write(2, " k n o w n p r o c e".., 23) = 23
0write(2, " 0", 1) = 1
events remaining.
write(2, " e v e n t s r e m a".., 20) = 20
_exit(1)
The last X IO operation before the fatal error was called was a read n the X
pipe which return error EAGAIN
The Man page for read(2) says the following
When attempting to read from an empty pipe (or FIFO):
o If no process has the pipe open for writing, read()
returns 0 to indicate end-of-file.
o If some process has the pipe open for writing and
O_NDELAY is set, read() returns 0.
o If some process has the pipe open for writing and
O_NONBLOCK is set, read() returns -1 and sets errno to
EAGAIN.
So, Its quite possible, likely that the X Server has the pipe open for
writing but the pipe is empty which would return EAGAIN, why is this then
treated as an error ???
More later....
Bob
More information about the wine-devel
mailing list