Very slow opening of client connections to localhost with httplib

Martin Fuzzey fuzzey at
Fri Dec 12 18:51:08 CET 2003

I am using xmlrpclib (based on httplib) in Python 2.3 on Mandrake

When my client attempts to connect to a server using a
"http://localhost:port" style URL there is a long delay before the
connection is established (it finally works).

This certainly smells a name resolution problem but ping localhost,
telnet localhost etc all work fine.

Tracking down a bit it appears that the problem comes from the
getaddrinfo() call in  code in HttpConnection.connect() :
    def connect(self):
        """Connect to the host and port specified in __init__."""
        msg = "getaddrinfo returns an empty list"
        for res in socket.getaddrinfo(, self.port, 0,

To test this I did :

import socket
socket.getaddrinfo("localhost", 10000, 0, socket.SOCK_STREAM)

and sure enough it blocked for several seconds before finally

returns immediately

If I remplace the 0 in the getaddrinfo call above by socket.AF_INET
all is fine as well.

So I did a tcpdump to see what it was sending to the nameserver and

18:36:01.790045 X.Y.Z.41.32961 > X.Y.Z.12.53:  42057+ AAAA? (48) (DF)
18:36:01.790526 X.Y.Z.12.53 > X.Y.Z.41.32961:  42057* 0/1/0 (95)
18:36:01.790652 X.Y.Z.41.32961 > X.Y.Z.12.53:  42058+ AAAA? localhost.
(27) (DF)
18:36:06.792898 X.Y.Z.41.32962 > X.Y.Z.215.53:  42058+ AAAA?
localhost. (27) (DF)
18:36:06.793134 X.Y.Z.215.53 > X.Y.Z.41.32962:  42058 ServFail 0/0/0
18:36:06.793301 X.Y.Z.41.32962 > X.Y.Z.12.53:  42058+ AAAA? localhost.
(27) (DF)
18:36:11.802998 X.Y.Z.41.32963 > X.Y.Z.215.53:  42058+ AAAA?
localhost. (27) (DF)
18:36:11.803222 X.Y.Z.215.53 > X.Y.Z.41.32963:  42058 ServFail 0/0/0
18:36:13.356344 X.Y.Z.12.53 > X.Y.Z.41.32959:  42056 ServFail 0/0/0

(my machine is X.Y.Z.41 and the NS is X.Y.Z.12)

When AF_INET or gethostbyname() is used there is no network

This appears to be a problem with IPV6 DNS queries?? (the AAAA
records). We don't use IPV6 but the 0 parameter (AF_UNSPEC) used in
httplib seems to cause them to be sent.

Anyone else had this problem or got any ideas?

The problem does NOT occur under windows.



More information about the Python-list mailing list