HADOOP-17068. Client fails forever when namenode ipaddr changed. Contributed by Sean Chow.
(cherry picked from commit fa14e4bc00
)
This commit is contained in:
parent
faf26f70aa
commit
3a860e876e
|
@ -650,6 +650,7 @@ public class Client implements AutoCloseable {
|
|||
|
||||
private synchronized void setupConnection(
|
||||
UserGroupInformation ticket) throws IOException {
|
||||
LOG.debug("Setup connection to " + server.toString());
|
||||
short ioFailures = 0;
|
||||
short timeoutFailures = 0;
|
||||
while (true) {
|
||||
|
@ -712,8 +713,16 @@ public class Client implements AutoCloseable {
|
|||
} catch (IOException ie) {
|
||||
if (updateAddress()) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1279,7 +1288,7 @@ public class Client implements AutoCloseable {
|
|||
cleanupCalls();
|
||||
}
|
||||
} else {
|
||||
// log the info
|
||||
// Log the newest server information if update address.
|
||||
if (LOG.isDebugEnabled()) {
|
||||
LOG.debug("closing ipc connection to " + server + ": " +
|
||||
closeException.getMessage(),closeException);
|
||||
|
|
Loading…
Reference in New Issue