HADOOP-19061 Capture exception from rpcRequestSender.start() in IPC.Connection.run() (#6519)
* HADOOP-19061 - Capture exception from rpcRequestSender.start() in IPC.Connection.run() and proper cleaning is followed if an exception is thrown. --------- Co-authored-by: Xing Lin <xinglin@linkedin.com>
This commit is contained in:
parent
d278b349f6
commit
d74e5160cd
@ -1081,15 +1081,15 @@ private synchronized void sendPing() throws IOException {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
// Don't start the ipc parameter sending thread until we start this
|
||||
// thread, because the shutdown logic only gets triggered if this
|
||||
// thread is started.
|
||||
rpcRequestThread.start();
|
||||
if (LOG.isDebugEnabled())
|
||||
LOG.debug(getName() + ": starting, having connections "
|
||||
+ connections.size());
|
||||
|
||||
try {
|
||||
// Don't start the ipc parameter sending thread until we start this
|
||||
// thread, because the shutdown logic only gets triggered if this
|
||||
// thread is started.
|
||||
rpcRequestThread.start();
|
||||
if (LOG.isDebugEnabled()) {
|
||||
LOG.debug(getName() + ": starting, having connections " + connections.size());
|
||||
}
|
||||
|
||||
while (waitForWork()) {//wait here for work - read or close connection
|
||||
receiveRpcResponse();
|
||||
}
|
||||
@ -1097,15 +1097,17 @@ public void run() {
|
||||
// This truly is unexpected, since we catch IOException in receiveResponse
|
||||
// -- this is only to be really sure that we don't leave a client hanging
|
||||
// forever.
|
||||
LOG.warn("Unexpected error reading responses on connection " + this, t);
|
||||
markClosed(new IOException("Error reading responses", t));
|
||||
String msg = String.format("Unexpected error on connection %s. Closing it.", this);
|
||||
LOG.warn(msg, t);
|
||||
markClosed(new IOException(msg, t));
|
||||
}
|
||||
|
||||
|
||||
close();
|
||||
|
||||
if (LOG.isDebugEnabled())
|
||||
|
||||
if (LOG.isDebugEnabled()) {
|
||||
LOG.debug(getName() + ": stopped, remaining connections "
|
||||
+ connections.size());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user