[229] in SIPB_Linux_Development

home help back first fref pref prev next nref lref last post

Console problem solved

daemon@ATHENA.MIT.EDU (ghudson@MIT.EDU)
Fri Nov 26 15:40:53 1993

From: ghudson@MIT.EDU
Date: Fri, 26 Nov 93 15:40:15 EST
To: linux-dev@MIT.EDU


Okay, after a considerable amount of diving into source, I found out
that the Linux kernel's Unix domain socket code was setting errno to
EINTR on a write to a closing socket, instead of EPIPE.  (The pipe
code and the tcp code both set errno to EPIPE, so I know that this is
morally wrong.)  Thus, even though I'd fixed the Xlib bug that was
retrying on failures other than EINTR, it was still retrying, because
it was falsely getting a report of EINTR.

So I fixed the kernel sources in /usr/src/linux, and put the patch in
/usr/athena/src/src/kernel-fix.  I renamed the old
/usr/src/linux/net/unix/sock.c to sock.c.old.

I rebuilt the kernel and installed it, renaming the old kernel to
/vmlinuz.unfixed.

There are no longer spinning console processes when people log out.

So, the upshot:

/usr/src/usr.X386/XFree86-1.3 is now XFree86-2.0 (I applied the
diffs).  There's a build of libX11 (around 10MB) in /usr/src, which
I'm going to leave there for a while just so I don't have to build it
from scratch if I wind up changing it in the next few days.  Feel free
to make clean if you need the room.  Also, 1.3-2.0.diff can be removed
from /usr/src/usr.X386/XFree86-2.0 for another 4MB or so.  I'll do
this eventually myself.

The installed kernel and the installed Xlib are fixed, and the sources
in /usr/src reflect the installed kernel and Xlib.

I have gone back to the old dynamically-linked console, since there
weren't any bugs in console related to this problem.

I will file a bug report to the X Consortium about the Xlib bug.

Where do I send bug reports about the Linux kernel?  This is
technically net code, but I think Linus wrote the Unix domain socket
stuff.  I'm not on any linux-activists channels and only follow
c.o.l.announce.

--GBH
Gotta love them easy bugs


home help back first fref pref prev next nref lref last post