HDFS-12749. DN may not send block report to NN after NN restart. Contributed by Xiaoqiao He.
This commit is contained in:
parent
83d148074f
commit
c4e27ef773
@ -797,11 +797,16 @@ void register(NamespaceInfo nsInfo) throws IOException {
|
||||
} catch(EOFException e) { // namenode might have just restarted
|
||||
LOG.info("Problem connecting to server: " + nnAddr + " :"
|
||||
+ e.getLocalizedMessage());
|
||||
sleepAndLogInterrupts(1000, "connecting to server");
|
||||
} catch(SocketTimeoutException e) { // namenode is busy
|
||||
LOG.info("Problem connecting to server: " + nnAddr);
|
||||
sleepAndLogInterrupts(1000, "connecting to server");
|
||||
} catch(RemoteException e) {
|
||||
LOG.warn("RemoteException in register", e);
|
||||
throw e;
|
||||
} catch(IOException e) {
|
||||
LOG.warn("Problem connecting to server: " + nnAddr);
|
||||
}
|
||||
// Try again in a second
|
||||
sleepAndLogInterrupts(1000, "connecting to server");
|
||||
}
|
||||
|
||||
if (bpRegistration == null) {
|
||||
@ -908,6 +913,15 @@ boolean processCommand(DatanodeCommand[] cmds) {
|
||||
if (bpos.processCommandFromActor(cmd, this) == false) {
|
||||
return false;
|
||||
}
|
||||
} catch (RemoteException re) {
|
||||
String reClass = re.getClassName();
|
||||
if (UnregisteredNodeException.class.getName().equals(reClass) ||
|
||||
DisallowedDatanodeException.class.getName().equals(reClass) ||
|
||||
IncorrectVersionException.class.getName().equals(reClass)) {
|
||||
LOG.warn(this + " is shutting down", re);
|
||||
shouldServiceRun = false;
|
||||
return false;
|
||||
}
|
||||
} catch (IOException ioe) {
|
||||
LOG.warn("Error processing datanode Command", ioe);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user