set low-level timeouts on socket, and now retry on Errno::ETIMEDOUT.