When `parseVersion2` gets an error from the `bufio.Reader`, it throws it away. This makes it tricky to recover the source failure on network error. Instead, it should wrap the underlying error with its own.