HDFS-7714. Simultaneous restart of HA NameNodes and DataNode can cause DataNode to register successfully with only one NameNode.(Contributed by Vinayakumar B)
(cherry picked from commit3d15728ff5
) (cherry picked from commita1bf7aecf7
) (cherry picked from commit c1e65de57e8ef760586e28cd37397ea9a7ac7944)
This commit is contained in:
parent
a703952d39
commit
6154abfeda
|
@ -70,6 +70,9 @@ Release 2.6.1 - UNRELEASED
|
||||||
HDFS-7707. Edit log corruption due to delayed block removal again.
|
HDFS-7707. Edit log corruption due to delayed block removal again.
|
||||||
(Yongjun Zhang via kihwal)
|
(Yongjun Zhang via kihwal)
|
||||||
|
|
||||||
|
HDFS-7714. Simultaneous restart of HA NameNodes and DataNode can cause
|
||||||
|
DataNode to register successfully with only one NameNode.(vinayakumarb)
|
||||||
|
|
||||||
Release 2.6.0 - 2014-11-18
|
Release 2.6.0 - 2014-11-18
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
|
|
@ -19,6 +19,7 @@ package org.apache.hadoop.hdfs.server.datanode;
|
||||||
|
|
||||||
import static org.apache.hadoop.util.Time.now;
|
import static org.apache.hadoop.util.Time.now;
|
||||||
|
|
||||||
|
import java.io.EOFException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.InetSocketAddress;
|
import java.net.InetSocketAddress;
|
||||||
import java.net.SocketTimeoutException;
|
import java.net.SocketTimeoutException;
|
||||||
|
@ -802,6 +803,10 @@ class BPServiceActor implements Runnable {
|
||||||
// Use returned registration from namenode with updated fields
|
// Use returned registration from namenode with updated fields
|
||||||
bpRegistration = bpNamenode.registerDatanode(bpRegistration);
|
bpRegistration = bpNamenode.registerDatanode(bpRegistration);
|
||||||
break;
|
break;
|
||||||
|
} 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
|
} catch(SocketTimeoutException e) { // namenode is busy
|
||||||
LOG.info("Problem connecting to server: " + nnAddr);
|
LOG.info("Problem connecting to server: " + nnAddr);
|
||||||
sleepAndLogInterrupts(1000, "connecting to server");
|
sleepAndLogInterrupts(1000, "connecting to server");
|
||||||
|
|
Loading…
Reference in New Issue