HADOOP-17068. Client fails forever when namenode ipaddr changed. Contributed by Sean Chow.
This commit is contained in:
parent
7c02d1889b
commit
fa14e4bc00
|
@ -649,6 +649,7 @@ public class Client implements AutoCloseable {
|
||||||
|
|
||||||
private synchronized void setupConnection(
|
private synchronized void setupConnection(
|
||||||
UserGroupInformation ticket) throws IOException {
|
UserGroupInformation ticket) throws IOException {
|
||||||
|
LOG.debug("Setup connection to " + server.toString());
|
||||||
short ioFailures = 0;
|
short ioFailures = 0;
|
||||||
short timeoutFailures = 0;
|
short timeoutFailures = 0;
|
||||||
while (true) {
|
while (true) {
|
||||||
|
@ -711,8 +712,16 @@ public class Client implements AutoCloseable {
|
||||||
} catch (IOException ie) {
|
} catch (IOException ie) {
|
||||||
if (updateAddress()) {
|
if (updateAddress()) {
|
||||||
timeoutFailures = ioFailures = 0;
|
timeoutFailures = ioFailures = 0;
|
||||||
|
try {
|
||||||
|
// HADOOP-17068: when server changed, ignore the exception.
|
||||||
|
handleConnectionFailure(ioFailures++, ie);
|
||||||
|
} catch (IOException ioe) {
|
||||||
|
LOG.warn("Exception when handle ConnectionFailure: "
|
||||||
|
+ ioe.getMessage());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
handleConnectionFailure(ioFailures++, ie);
|
||||||
}
|
}
|
||||||
handleConnectionFailure(ioFailures++, ie);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1277,7 +1286,7 @@ public class Client implements AutoCloseable {
|
||||||
cleanupCalls();
|
cleanupCalls();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// log the info
|
// Log the newest server information if update address.
|
||||||
if (LOG.isDebugEnabled()) {
|
if (LOG.isDebugEnabled()) {
|
||||||
LOG.debug("closing ipc connection to " + server + ": " +
|
LOG.debug("closing ipc connection to " + server + ": " +
|
||||||
closeException.getMessage(),closeException);
|
closeException.getMessage(),closeException);
|
||||||
|
|
Loading…
Reference in New Issue