Skip to content

Bump socket.create_connection() timeout to 10 seconds

The tcp Pytest on OpenBSD fairly reliably fails when receive_tcp() on a socket is attempted:

>           (response, rtime) = dns.query.receive_tcp(sock, timeout())

tests-tcp.py:50:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.9/site-packages/dns/query.py:659: in receive_tcp
    ldata = _net_read(sock, 2, expiration)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

sock = <socket.socket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6>
count = 2, expiration = 1662719959.8106785

    def _net_read(sock, count, expiration):
        """Read the specified number of bytes from sock.  Keep trying until we
        either get the desired amount, or we hit EOF.
        A Timeout exception will be raised if the operation is not completed
        by the expiration time.
        """
        s = b''
        while count > 0:
            try:
>               n = sock.recv(count)
E               socket.timeout: timed out

This is because the socket is already closed.

Bump the socket connection timeout to 10 seconds.


With this change the test did not fail once out of 100 runs on OpenBSD in triggering conditions.


Closes #3427 (closed)

Merge request reports