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 @@ private synchronized boolean updateAddress() throws IOException {
|
|||||||
|
|
||||||
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) {
|
||||||
@ -712,8 +713,16 @@ private synchronized void setupConnection(
|
|||||||
} 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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1279,7 +1288,7 @@ private synchronized void close() {
|
|||||||
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
Block a user