Author: cnauroth
Date: Wed Jan 8 23:10:02 2014
New Revision: 1556665
URL: http://svn.apache.org/r1556665
Log:
Merge trunk to HDFS-4685.
Modified:
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/CHANGES.txt
(contents, props changed)
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/main/docs/
(props changed)
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/main/java/
(props changed)
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ha/ActiveStandbyElector.java
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/StringUtils.java
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/test/core/
(props changed)
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/mount/MountdBase.java
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/Nfs3Base.java
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/oncrpc/RpcProgram.java
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/portmap/PortmapRequest.java
Modified:
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/CHANGES.txt?rev=1556665&r1=1556664&r2=1556665&view=diff
==============================================================================
---
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/CHANGES.txt
(original)
+++
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/CHANGES.txt
Wed Jan 8 23:10:02 2014
@@ -412,6 +412,9 @@ Release 2.4.0 - UNRELEASED
HADOOP-10198. DomainSocket: add support for socketpair.
(Colin Patrick McCabe via wang)
+ HADOOP-10208. Remove duplicate initialization in
StringUtils.getStringCollection.
+ (Benoy Antony via jing9)
+
OPTIMIZATIONS
HADOOP-9748. Reduce blocking on UGI.ensureInitialized (daryn)
Propchange:
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/CHANGES.txt
------------------------------------------------------------------------------
Merged
/hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt:r1556097-1556663
Propchange:
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/main/docs/
------------------------------------------------------------------------------
Merged
/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/docs:r1556097-1556663
Propchange:
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/main/java/
------------------------------------------------------------------------------
Merged
/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java:r1556097-1556663
Modified:
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ha/ActiveStandbyElector.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ha/ActiveStandbyElector.java?rev=1556665&r1=1556664&r2=1556665&view=diff
==============================================================================
---
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ha/ActiveStandbyElector.java
(original)
+++
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ha/ActiveStandbyElector.java
Wed Jan 8 23:10:02 2014
@@ -766,8 +766,9 @@ public class ActiveStandbyElector implem
zkClient = getNewZooKeeper();
LOG.debug("Created new connection for " + this);
}
-
- void terminateConnection() {
+
+ @InterfaceAudience.Private
+ public void terminateConnection() {
if (zkClient == null) {
return;
}
Modified:
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/StringUtils.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/StringUtils.java?rev=1556665&r1=1556664&r2=1556665&view=diff
==============================================================================
---
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/StringUtils.java
(original)
+++
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/StringUtils.java
Wed Jan 8 23:10:02 2014
@@ -343,7 +343,6 @@ public class StringUtils {
if (str == null)
return values;
StringTokenizer tokenizer = new StringTokenizer(str, delim);
- values = new ArrayList<String>();
while (tokenizer.hasMoreTokens()) {
values.add(tokenizer.nextToken());
}
Propchange:
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/test/core/
------------------------------------------------------------------------------
Merged
/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/core:r1556097-1556663
Modified:
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/mount/MountdBase.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/mount/MountdBase.java?rev=1556665&r1=1556664&r2=1556665&view=diff
==============================================================================
---
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/mount/MountdBase.java
(original)
+++
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/mount/MountdBase.java
Wed Jan 8 23:10:02 2014
@@ -23,6 +23,7 @@ import org.apache.hadoop.oncrpc.RpcProgr
import org.apache.hadoop.oncrpc.SimpleTcpServer;
import org.apache.hadoop.oncrpc.SimpleUdpServer;
import org.apache.hadoop.portmap.PortmapMapping;
+import org.apache.hadoop.util.ShutdownHookManager;
/**
* Main class for starting mountd daemon. This daemon implements the NFS
@@ -71,8 +72,24 @@ abstract public class MountdBase {
startUDPServer();
startTCPServer();
if (register) {
+ ShutdownHookManager.get().addShutdownHook(new Unregister(),
+ SHUTDOWN_HOOK_PRIORITY);
rpcProgram.register(PortmapMapping.TRANSPORT_UDP, udpBoundPort);
rpcProgram.register(PortmapMapping.TRANSPORT_TCP, tcpBoundPort);
}
}
+
+ /**
+ * Priority of the mountd shutdown hook.
+ */
+ public static final int SHUTDOWN_HOOK_PRIORITY = 10;
+
+ private class Unregister implements Runnable {
+ @Override
+ public synchronized void run() {
+ rpcProgram.unregister(PortmapMapping.TRANSPORT_UDP, udpBoundPort);
+ rpcProgram.unregister(PortmapMapping.TRANSPORT_TCP, tcpBoundPort);
+ }
+ }
+
}
Modified:
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/Nfs3Base.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/Nfs3Base.java?rev=1556665&r1=1556664&r2=1556665&view=diff
==============================================================================
---
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/Nfs3Base.java
(original)
+++
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/Nfs3Base.java
Wed Jan 8 23:10:02 2014
@@ -23,6 +23,7 @@ import org.apache.hadoop.conf.Configurat
import org.apache.hadoop.oncrpc.RpcProgram;
import org.apache.hadoop.oncrpc.SimpleTcpServer;
import org.apache.hadoop.portmap.PortmapMapping;
+import org.apache.hadoop.util.ShutdownHookManager;
/**
* Nfs server. Supports NFS v3 using {@link RpcProgram}.
@@ -50,6 +51,8 @@ public abstract class Nfs3Base {
startTCPServer(); // Start TCP server
if (register) {
+ ShutdownHookManager.get().addShutdownHook(new Unregister(),
+ SHUTDOWN_HOOK_PRIORITY);
rpcProgram.register(PortmapMapping.TRANSPORT_TCP, nfsBoundPort);
}
}
@@ -61,4 +64,16 @@ public abstract class Nfs3Base {
tcpServer.run();
nfsBoundPort = tcpServer.getBoundPort();
}
+
+ /**
+ * Priority of the nfsd shutdown hook.
+ */
+ public static final int SHUTDOWN_HOOK_PRIORITY = 10;
+
+ private class Unregister implements Runnable {
+ @Override
+ public synchronized void run() {
+ rpcProgram.unregister(PortmapMapping.TRANSPORT_TCP, nfsBoundPort);
+ }
+ }
}
Modified:
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/oncrpc/RpcProgram.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/oncrpc/RpcProgram.java?rev=1556665&r1=1556664&r2=1556665&view=diff
==============================================================================
---
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/oncrpc/RpcProgram.java
(original)
+++
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/oncrpc/RpcProgram.java
Wed Jan 8 23:10:02 2014
@@ -78,23 +78,41 @@ public abstract class RpcProgram extends
for (int vers = lowProgVersion; vers <= highProgVersion; vers++) {
PortmapMapping mapEntry = new PortmapMapping(progNumber, vers, transport,
port);
- register(mapEntry);
+ register(mapEntry, true);
+ }
+ }
+
+ /**
+ * Unregister this program with the local portmapper.
+ */
+ public void unregister(int transport, int boundPort) {
+ if (boundPort != port) {
+ LOG.info("The bound port is " + boundPort
+ + ", different with configured port " + port);
+ port = boundPort;
+ }
+ // Unregister all the program versions with portmapper for a given
transport
+ for (int vers = lowProgVersion; vers <= highProgVersion; vers++) {
+ PortmapMapping mapEntry = new PortmapMapping(progNumber, vers, transport,
+ port);
+ register(mapEntry, false);
}
}
/**
* Register the program with Portmap or Rpcbind
*/
- protected void register(PortmapMapping mapEntry) {
- XDR mappingRequest = PortmapRequest.create(mapEntry);
+ protected void register(PortmapMapping mapEntry, boolean set) {
+ XDR mappingRequest = PortmapRequest.create(mapEntry, set);
SimpleUdpClient registrationClient = new SimpleUdpClient(host, RPCB_PORT,
mappingRequest);
try {
registrationClient.run();
} catch (IOException e) {
- LOG.error("Registration failure with " + host + ":" + port
+ String request = set ? "Registration" : "Unregistration";
+ LOG.error(request + " failure with " + host + ":" + port
+ ", portmap entry: " + mapEntry);
- throw new RuntimeException("Registration failure");
+ throw new RuntimeException(request + " failure");
}
}
Modified:
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/portmap/PortmapRequest.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/portmap/PortmapRequest.java?rev=1556665&r1=1556664&r2=1556665&view=diff
==============================================================================
---
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/portmap/PortmapRequest.java
(original)
+++
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/portmap/PortmapRequest.java
Wed Jan 8 23:10:02 2014
@@ -31,13 +31,14 @@ public class PortmapRequest {
return PortmapMapping.deserialize(xdr);
}
- public static XDR create(PortmapMapping mapping) {
+ public static XDR create(PortmapMapping mapping, boolean set) {
XDR request = new XDR();
+ int procedure = set ? RpcProgramPortmap.PMAPPROC_SET
+ : RpcProgramPortmap.PMAPPROC_UNSET;
RpcCall call = RpcCall.getInstance(
RpcUtil.getNewXid(String.valueOf(RpcProgramPortmap.PROGRAM)),
- RpcProgramPortmap.PROGRAM, RpcProgramPortmap.VERSION,
- RpcProgramPortmap.PMAPPROC_SET, new CredentialsNone(),
- new VerifierNone());
+ RpcProgramPortmap.PROGRAM, RpcProgramPortmap.VERSION, procedure,
+ new CredentialsNone(), new VerifierNone());
call.write(request);
return mapping.serialize(request);
}