[Python-Dev] Re: Re: mysterious hangs in socket code (original) (raw)
Mats Wichmann mats@laplaza.org
Fri, 20 Sep 2002 10:12:33 -0600
- Previous message: [Python-Dev] ReST-ing Misc/NEWS
- Next message: [Python-Dev] Re: Re: mysterious hangs in socket code
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Martin:
I think that part is already settled: getaddrinfo, on Linux, is thread-safe.
The latest Posix/Single UNIX spec in fact require getaddrinfo (and getnameinfo) to be thread-safe.
and Guido:
I tried to read the glibc getaddrinfo() source, but it looks like it would be a term project... It could be that it's just doing a lot more interaction with a DNS server.
I believe that Jeremy suspects that the test program isn't just slow, but that one slow thread actually blocks all other threads from making progress. If that's the case (we don't know for sure), we're looking for a bottleneck in the getaddrinfo() code that somehow holds a resource needed by all threads calling getaddrinfo().
Gives me a headache, too, especially once it vectors off into the glibc nss code. These routines (__gethostbyname2_r is the likely suspect, __gethostbyaddr_r and __getservbyname_r might also get called) do have paths that could twiddle a glibc internal lock so it's not impossible there's an issue here, although at something less than a term-paper-depth look it doesn't SEEM like it should ever be able to block for very long.
- Previous message: [Python-Dev] ReST-ing Misc/NEWS
- Next message: [Python-Dev] Re: Re: mysterious hangs in socket code
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]