Re: processes stuck in skb_recv_datagram

Adam D. Bradley (artdodge@cs.bu.edu)
Fri, 23 Jul 1999 16:24:21 -0400 (EDT)


Rob Riggs wrote:
> Multiple threads calling gethostbyname_r() (and using DNS
> to resolve) ends up with threads stuck in skb_recv_datagram.

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/~artdodge

Hi! 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/