HDFS-7367. HDFS short-circuit read cannot negotiate shared memory slot and file descriptors when SASL is enabled on DataTransferProtocol. Contributed by Chris Nauroth.

This commit is contained in:
Haohui Mai 2014-11-05 20:29:17 -08:00
parent 240cb59b9f
commit 8e33d4bdb3
2 changed files with 10 additions and 1 deletions

View File

@ -1027,9 +1027,13 @@ Release 2.6.0 - UNRELEASED
HDFS-7218. FSNamesystem ACL operations should write to audit log on HDFS-7218. FSNamesystem ACL operations should write to audit log on
failure. (clamb via yliu) failure. (clamb via yliu)
HDFS-7199. DFSOutputStream should not silently drop data if DataStreamer HDFS-7199. DFSOutputStream should not silently drop data if DataStreamer
crashes with an unchecked exception (rushabhs via cmccabe) crashes with an unchecked exception (rushabhs via cmccabe)
HDFS-7367. HDFS short-circuit read cannot negotiate shared memory slot and
file descriptors when SASL is enabled on DataTransferProtocol.
(Chris Nauroth via wheat9)
BREAKDOWN OF HDFS-6134 AND HADOOP-10150 SUBTASKS AND RELATED JIRAS BREAKDOWN OF HDFS-6134 AND HADOOP-10150 SUBTASKS AND RELATED JIRAS
HDFS-6387. HDFS CLI admin tool for creating & deleting an HDFS-6387. HDFS CLI admin tool for creating & deleting an

View File

@ -277,6 +277,11 @@ public class SaslDataTransferServer {
*/ */
private IOStreamPair getSaslStreams(Peer peer, OutputStream underlyingOut, private IOStreamPair getSaslStreams(Peer peer, OutputStream underlyingOut,
InputStream underlyingIn, final DatanodeID datanodeId) throws IOException { InputStream underlyingIn, final DatanodeID datanodeId) throws IOException {
if (peer.hasSecureChannel() ||
dnConf.getTrustedChannelResolver().isTrusted(getPeerAddress(peer))) {
return new IOStreamPair(underlyingIn, underlyingOut);
}
SaslPropertiesResolver saslPropsResolver = dnConf.getSaslPropsResolver(); SaslPropertiesResolver saslPropsResolver = dnConf.getSaslPropsResolver();
Map<String, String> saslProps = saslPropsResolver.getServerProperties( Map<String, String> saslProps = saslPropsResolver.getServerProperties(
getPeerAddress(peer)); getPeerAddress(peer));