You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by br...@apache.org on 2014/07/14 23:54:48 UTC
svn commit: r1610545 - in
/hadoop/common/branches/branch-2/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop:
mount/MountdBase.java nfs/nfs3/Nfs3Base.java oncrpc/RpcProgram.java
oncrpc/SimpleUdpClient.java
Author: brandonli
Date: Mon Jul 14 21:54:48 2014
New Revision: 1610545
URL: http://svn.apache.org/r1610545
Log:
HDFS-6378. Merging change r1610543 from trunk
Modified:
hadoop/common/branches/branch-2/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/mount/MountdBase.java
hadoop/common/branches/branch-2/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/Nfs3Base.java
hadoop/common/branches/branch-2/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/oncrpc/RpcProgram.java
hadoop/common/branches/branch-2/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/oncrpc/SimpleUdpClient.java
Modified: hadoop/common/branches/branch-2/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/mount/MountdBase.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/mount/MountdBase.java?rev=1610545&r1=1610544&r2=1610545&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/mount/MountdBase.java (original)
+++ hadoop/common/branches/branch-2/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/mount/MountdBase.java Mon Jul 14 21:54:48 2014
@@ -19,12 +19,16 @@ package org.apache.hadoop.mount;
import java.io.IOException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.oncrpc.RpcProgram;
import org.apache.hadoop.oncrpc.SimpleTcpServer;
import org.apache.hadoop.oncrpc.SimpleUdpServer;
import org.apache.hadoop.portmap.PortmapMapping;
import org.apache.hadoop.util.ShutdownHookManager;
+import static org.apache.hadoop.util.ExitUtil.terminate;
+
/**
* Main class for starting mountd daemon. This daemon implements the NFS
* mount protocol. When receiving a MOUNT request from an NFS client, it checks
@@ -33,6 +37,7 @@ import org.apache.hadoop.util.ShutdownHo
* handle for requested directory and returns it to the client.
*/
abstract public class MountdBase {
+ public static final Log LOG = LogFactory.getLog(MountdBase.class);
private final RpcProgram rpcProgram;
private int udpBoundPort; // Will set after server starts
private int tcpBoundPort; // Will set after server starts
@@ -40,11 +45,11 @@ abstract public class MountdBase {
public RpcProgram getRpcProgram() {
return rpcProgram;
}
-
+
/**
* Constructor
* @param program
- * @throws IOException
+ * @throws IOException
*/
public MountdBase(RpcProgram program) throws IOException {
rpcProgram = program;
@@ -74,11 +79,16 @@ abstract public class MountdBase {
if (register) {
ShutdownHookManager.get().addShutdownHook(new Unregister(),
SHUTDOWN_HOOK_PRIORITY);
- rpcProgram.register(PortmapMapping.TRANSPORT_UDP, udpBoundPort);
- rpcProgram.register(PortmapMapping.TRANSPORT_TCP, tcpBoundPort);
+ try {
+ rpcProgram.register(PortmapMapping.TRANSPORT_UDP, udpBoundPort);
+ rpcProgram.register(PortmapMapping.TRANSPORT_TCP, tcpBoundPort);
+ } catch (Throwable e) {
+ LOG.fatal("Failed to start the server. Cause:", e);
+ terminate(1, e);
+ }
}
}
-
+
/**
* Priority of the mountd shutdown hook.
*/
@@ -91,5 +101,5 @@ abstract public class MountdBase {
rpcProgram.unregister(PortmapMapping.TRANSPORT_TCP, tcpBoundPort);
}
}
-
+
}
Modified: hadoop/common/branches/branch-2/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/Nfs3Base.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/Nfs3Base.java?rev=1610545&r1=1610544&r2=1610545&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/Nfs3Base.java (original)
+++ hadoop/common/branches/branch-2/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/Nfs3Base.java Mon Jul 14 21:54:48 2014
@@ -25,6 +25,8 @@ import org.apache.hadoop.oncrpc.SimpleTc
import org.apache.hadoop.portmap.PortmapMapping;
import org.apache.hadoop.util.ShutdownHookManager;
+import static org.apache.hadoop.util.ExitUtil.terminate;
+
/**
* Nfs server. Supports NFS v3 using {@link RpcProgram}.
* Currently Mountd program is also started inside this class.
@@ -34,7 +36,7 @@ public abstract class Nfs3Base {
public static final Log LOG = LogFactory.getLog(Nfs3Base.class);
private final RpcProgram rpcProgram;
private int nfsBoundPort; // Will set after server starts
-
+
public RpcProgram getRpcProgram() {
return rpcProgram;
}
@@ -46,11 +48,16 @@ public abstract class Nfs3Base {
public void start(boolean register) {
startTCPServer(); // Start TCP server
-
+
if (register) {
ShutdownHookManager.get().addShutdownHook(new Unregister(),
SHUTDOWN_HOOK_PRIORITY);
- rpcProgram.register(PortmapMapping.TRANSPORT_TCP, nfsBoundPort);
+ try {
+ rpcProgram.register(PortmapMapping.TRANSPORT_TCP, nfsBoundPort);
+ } catch (Throwable e) {
+ LOG.fatal("Failed to start the server. Cause:", e);
+ terminate(1, e);
+ }
}
}
@@ -61,7 +68,7 @@ public abstract class Nfs3Base {
tcpServer.run();
nfsBoundPort = tcpServer.getBoundPort();
}
-
+
/**
* Priority of the nfsd shutdown hook.
*/
Modified: hadoop/common/branches/branch-2/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/oncrpc/RpcProgram.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/oncrpc/RpcProgram.java?rev=1610545&r1=1610544&r2=1610545&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/oncrpc/RpcProgram.java (original)
+++ hadoop/common/branches/branch-2/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/oncrpc/RpcProgram.java Mon Jul 14 21:54:48 2014
@@ -131,7 +131,7 @@ public abstract class RpcProgram extends
} catch (IOException e) {
String request = set ? "Registration" : "Unregistration";
LOG.error(request + " failure with " + host + ":" + port
- + ", portmap entry: " + mapEntry, e);
+ + ", portmap entry: " + mapEntry);
throw new RuntimeException(request + " failure", e);
}
}
Modified: hadoop/common/branches/branch-2/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/oncrpc/SimpleUdpClient.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/oncrpc/SimpleUdpClient.java?rev=1610545&r1=1610544&r2=1610545&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/oncrpc/SimpleUdpClient.java (original)
+++ hadoop/common/branches/branch-2/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/oncrpc/SimpleUdpClient.java Mon Jul 14 21:54:48 2014
@@ -60,6 +60,7 @@ public class SimpleUdpClient {
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length,
IPAddress, port);
socket.send(sendPacket);
+ socket.setSoTimeout(500);
DatagramPacket receivePacket = new DatagramPacket(receiveData,
receiveData.length);
socket.receive(receivePacket);