YARN-7320. Duplicate LiteralByteStrings in SystemCredentialsForAppsProto.credentialsForApp_ ([email protected] via rkanter)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/5da295a3 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/5da295a3 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/5da295a3 Branch: refs/heads/HDFS-9806 Commit: 5da295a34e39b507e8291073782e0576cd06896a Parents: c904d60 Author: Robert Kanter <[email protected]> Authored: Mon Oct 23 17:56:56 2017 -0700 Committer: Robert Kanter <[email protected]> Committed: Mon Oct 23 17:56:56 2017 -0700 ---------------------------------------------------------------------- .../impl/pb/NodeHeartbeatResponsePBImpl.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/5da295a3/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/NodeHeartbeatResponsePBImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/NodeHeartbeatResponsePBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/NodeHeartbeatResponsePBImpl.java index bbd1294..ccc4191 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/NodeHeartbeatResponsePBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/NodeHeartbeatResponsePBImpl.java @@ -26,6 +26,10 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import com.google.common.collect.Interner; +import com.google.common.collect.Interners; +import com.google.protobuf.ByteString; + import org.apache.hadoop.security.proto.SecurityProtos.TokenProto; import org.apache.hadoop.yarn.api.protocolrecords.SignalContainerRequest; import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.SignalContainerRequestPBImpl; @@ -84,6 +88,9 @@ public class NodeHeartbeatResponsePBImpl extends NodeHeartbeatResponse { private List<Container> containersToDecrease = null; private List<SignalContainerRequest> containersToSignal = null; + private static final Interner<ByteString> BYTE_STRING_INTERNER = + Interners.newWeakInterner(); + public NodeHeartbeatResponsePBImpl() { builder = NodeHeartbeatResponseProto.newBuilder(); } @@ -148,8 +155,8 @@ public class NodeHeartbeatResponsePBImpl extends NodeHeartbeatResponse { for (Map.Entry<ApplicationId, ByteBuffer> entry : systemCredentials.entrySet()) { builder.addSystemCredentialsForApps(SystemCredentialsForAppsProto.newBuilder() .setAppId(convertToProtoFormat(entry.getKey())) - .setCredentialsForApp(ProtoUtils.convertToProtoFormat( - entry.getValue().duplicate()))); + .setCredentialsForApp(BYTE_STRING_INTERNER.intern( + ProtoUtils.convertToProtoFormat(entry.getValue())))); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
