The question was asked, 'without a socket timeout in pg8000, how can we tell if there's been a network failure or similar problem?'.
The reason the socket timeout was removed was this sentence in the docs for socket.makefile():
The socket must be in blocking mode (it can not have a timeout).
However in the Python 3.4 docs it says:
The socket must be in blocking mode; it can have a timeout, but the file object’s internal buffer may end up in a inconsistent state if a timeout occurs.
So as long as we throw away the file object if a timeout occurs, we're okay to have a timeout under 3.4.