Confirmed, I had to put a horrendously ugly hack into my threaded web
server to work around this.
All the userspace code appears correct; basically, libresolv (glibc 2.1)
checks the UDP socket with poll(), which indicates data is waiting; it
then calls some variant of recv(), which blocks indefinitely. I've only
ever been able to re-produce it under heavy load, which leads me to wildly
speculate it's a race condition in the UDP code somewhere. (Wow, Adam,
that's really helpful.) I'll try to reproduce the problem tonight on my
laptop and provide more precise information... (sure wish I could ptrace a
linuxthreads program...)
Adam
-- Your lives aren't small, but \ Adam Davenport Bradley, Grad Student you're living them in a small \ Boston University Computer Science way. Live openly and expansively! \ artdodge@cs.bu.edu 353-8921/MCS211 II Cor 6:12-13 (The Message) <>< \ http://www.netwinder.org/~artdodgeHi! I'm a signature virus! Copy me into your signature so I can spread!
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/