select/threads in 2.0.34 and newer 2.1 kernels

Thorsten Kukuk (kukuk@weber.uni-paderborn.de)
Wed, 17 Jun 1998 11:26:43 +0200 (MET DST)


Hello,

With Linux kernel 2.0.34 and newer 2.1 kernels (since about 2.1.9x),
there is a big problem with select and threads.

The problem is the nscd daemon from the glibc 2.1 snapshot.
(nscd caches the result of getpwby* and getgrby* systemwide, like
the Solaris version).

Until 2.0.33 and 2.1.8x, it works great without problems. With
later kernels, it is no problem to get it to hang. It is easy
to reproduce it on SMP and non-SMP kernels: Untar in 2
different xterms a very big file at the same time, like the glibc or
kernel sources. After some time, nscd will not answer to getpw* or
getgr* queries, but the statistic thread (nscd -g) and the exit
command (nscd -K) does work.
nscd will hang in the select call in connections.c/get_request. This
select handles the established connections.
Somebody told me, that with kernel 2.0.34, there where made changes
to make select thread safe. It seems, it is much more worse then earlier.
I'm not a kernel hacker, so I don't know how to fix that. Does anybody
from the kernel hackers know a solution ?

Thanks,
Thorsten

-- 
Thorsten Kukuk  kukuk@vt.uni-paderborn.de
                http://www-vt.uni-paderborn.de/~kukuk/
Linux is like a Vorlon.  It is incredibly powerful, gives terse,
cryptic answers and has a lot of things going on in the background.

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu