Description of problem: If I run thread-enabled applications (mozilla, identd for example), they clone several threads that are then busylooping doing ioctls (parameters say something about futexes) and contstantly getting errors in return (sure, vanilla 2.4 kernels do not have this support) (observed with strace). This is both with glibc-3.2.1 from Phoebe beta and with current rawhide release 2.3.1-30 How reproducible: Easily Steps to Reproduce: Just boot into vanilla 2.4 kernel and try to start identd Actual results: several threads are started and start to eat all the CPU they can get. These threads are only observable using m switch to "ps" command. Expected results: identd is supposed to sit idle waiting for requests.
I have glibc-2.3.1-30 installed and I don't see this with Mozilla or identd. I don't remember seeing it after installing Phoebe either. I would think people would have noticed very quickly if processes started eatting the cpu.
As I already have said, this CPU-eating can only be observed if one uses vanilla 2.4 kernel with glibc-2.3.1. Here is example from my box: [root@car root]# uname -a Linux car.linuxhacker.ru 2.4.20 #2 SMP Sun Dec 1 20:13:04 MSK 2002 i686 i686 i386 GNU/Linux [root@car root]# /etc/rc.d/init.d/identd start [root@car root]# ps axm | grep ident 1523 ? S 0:00 identd 1526 ? R 1:24 identd 1528 ? R 1:24 identd 1525 ? R 1:22 identd [root@car root]# strace -p 1526 futex(0x8052b20, FUTEX_WAKE, 1, NULL) = -1 ENOSYS (Function not implemented) futex(0x8052b2c, FUTEX_WAIT, 0, NULL) = -1 ENOSYS (Function not implemented) futex(0x8052b2c, FUTEX_WAIT, 0, NULL) = -1 ENOSYS (Function not implemented) futex(0x8052b2c, FUTEX_WAIT, 0, NULL) = -1 ENOSYS (Function not implemented) futex(0x8052b20, FUTEX_WAIT, 2, NULL) = -1 ENOSYS (Function not implemented) ...
I just read the comment, and not the full summary. Bugzilla cuts off the summary when listing bug reports in a search. You might want to be more clear in the comment next time, though I should have read the summary in full.
I could see this being a major problem for people that load vanilla kernels without knowing better. It would seem if RedHat plans to include the new glibc in 8.1 they better convince Marco to include the futex patch in the vanilla kernel, and be sure to make a big comment in the release notes.
Or can glibc have a fall-back mechanism to use the old threads model? Many people will have problems because they *must* use vanilla kernels with some proprietary or non-standard OSS kernel patch. While they aren't supported, they were able to use their own kernels in all previous Red Hat versions but they suddenly wont be able to do so in RH8.1+. Phoebe rpm initially had a similar problem to this but a fallback mechanism was added later in Rawhide, if I understand correctly.
glibc-2.3.1-32 and later conditionalize use of NPTL and TLS on AT_SYSINFO tag.