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 om...@apache.org on 2011/03/04 05:01:43 UTC
svn commit: r1077305 -
/hadoop/common/branches/branch-0.20-security-patches/src/hdfs/org/apache/hadoop/hdfs/server/datanode/DataNode.java
Author: omalley
Date: Fri Mar 4 04:01:43 2011
New Revision: 1077305
URL: http://svn.apache.org/viewvc?rev=1077305&view=rev
Log:
commit 3247d13a436d8997d75c6bd8a5f0d5f993c72e0a
Author: Jitendra Nath Pandey <jitendra@sufferhome-lm.(none)>
Date: Tue Mar 9 23:39:13 2010 -0800
HDFS-992 from https://issues.apache.org/jira/secure/attachment/12438371/h992-BK-0.20-07.1.patch
+++ b/YAHOO-CHANGES.txt
+ HDFS-992. A bug in backport for HDFS-992. (jitendra)
+
Modified:
hadoop/common/branches/branch-0.20-security-patches/src/hdfs/org/apache/hadoop/hdfs/server/datanode/DataNode.java
Modified: hadoop/common/branches/branch-0.20-security-patches/src/hdfs/org/apache/hadoop/hdfs/server/datanode/DataNode.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.20-security-patches/src/hdfs/org/apache/hadoop/hdfs/server/datanode/DataNode.java?rev=1077305&r1=1077304&r2=1077305&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.20-security-patches/src/hdfs/org/apache/hadoop/hdfs/server/datanode/DataNode.java (original)
+++ hadoop/common/branches/branch-0.20-security-patches/src/hdfs/org/apache/hadoop/hdfs/server/datanode/DataNode.java Fri Mar 4 04:01:43 2011
@@ -32,6 +32,7 @@ import java.net.UnknownHostException;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
import java.security.NoSuchAlgorithmException;
+import java.security.PrivilegedExceptionAction;
import java.security.SecureRandom;
import java.util.AbstractList;
import java.util.ArrayList;
@@ -480,14 +481,26 @@ public class DataNode extends Configured
}
public static InterDatanodeProtocol createInterDataNodeProtocolProxy(
- DatanodeID datanodeid, Configuration conf) throws IOException {
- InetSocketAddress addr = NetUtils.createSocketAddr(
+ DatanodeID datanodeid, final Configuration conf) throws IOException {
+ final InetSocketAddress addr = NetUtils.createSocketAddr(
datanodeid.getHost() + ":" + datanodeid.getIpcPort());
if (InterDatanodeProtocol.LOG.isDebugEnabled()) {
InterDatanodeProtocol.LOG.info("InterDatanodeProtocol addr=" + addr);
}
- return (InterDatanodeProtocol)RPC.getProxy(InterDatanodeProtocol.class,
- InterDatanodeProtocol.versionID, addr, conf);
+
+ UserGroupInformation loginUgi = UserGroupInformation.getLoginUser();
+ try {
+ return loginUgi
+ .doAs(new PrivilegedExceptionAction<InterDatanodeProtocol>() {
+ public InterDatanodeProtocol run() throws IOException {
+ return (InterDatanodeProtocol) RPC.getProxy(
+ InterDatanodeProtocol.class, InterDatanodeProtocol.versionID,
+ addr, conf);
+ }
+ });
+ } catch (InterruptedException ie) {
+ throw new IOException(ie.getMessage());
+ }
}
public InetSocketAddress getNameNodeAddr() {