public void fireCompletion() {
            if (e != null) {
                future.raise(e);
            } else if (response.authenticationException() != null) {
                future.raise(response.authenticationException());
            } else if (response.wasDisconnected()) {
                log.debug("Cancelled request with header {} due to node {} being disconnected",
                        response.requestHeader(), response.destination());
                future.raise(DisconnectException.INSTANCE);
            } else if (response.versionMismatch() != null) {
                future.raise(response.versionMismatch());
            } else {
                future.complete(response);
            }
        }
Initiate a connection if currently possible. This is only really useful for resetting the failed
status of a socket. If there is an actual request to send, then {@link #send(Node, AbstractRequest.Builder)}
should be used.
@param node The node to connect to
clients/src/main/java/org/apache/kafka/clients/consumer/internals/ConsumerNetworkClient.java