From 071c4a0377853a956da108eae390c9c38ad704dd Mon Sep 17 00:00:00 2001 From: Himanshu Mishra Date: Wed, 30 Mar 2022 16:11:47 +0530 Subject: [PATCH] TEZ-4399: ShuffleHandler fails with SSLHandshakeException not found when SSL is enabled Shuffle handler fails with ClassNotFound org.apache.tez.shaded.javax.net.ssl.SSLHandshakeException when SSL is enabled. Excluding shading of javax.net.** from tez-aux-services uber jar. Few places have hardcoded ssl parameter to generate URL with http. Fixing them to use https when SSL config is enabled. Respect SSL config in Vertex and TaskAttempt runnables --- .../org/apache/tez/dag/app/launcher/DagDeleteRunnable.java | 2 +- .../tez/dag/app/launcher/TaskAttemptFailedDeleteRunnable.java | 2 +- .../org/apache/tez/dag/app/launcher/VertexDeleteRunnable.java | 3 ++- tez-plugins/tez-aux-services/pom.xml | 1 + 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/tez-dag/src/main/java/org/apache/tez/dag/app/launcher/DagDeleteRunnable.java b/tez-dag/src/main/java/org/apache/tez/dag/app/launcher/DagDeleteRunnable.java index eac745e1ff..cbea36b86d 100644 --- a/tez-dag/src/main/java/org/apache/tez/dag/app/launcher/DagDeleteRunnable.java +++ b/tez-dag/src/main/java/org/apache/tez/dag/app/launcher/DagDeleteRunnable.java @@ -54,7 +54,7 @@ public void run() { try { URL baseURL = TezRuntimeUtils.constructBaseURIForShuffleHandlerDagComplete( nodeId.getHost(), shufflePort, - dag.getApplicationId().toString(), dag.getId(), false); + dag.getApplicationId().toString(), dag.getId(), httpConnectionParams.isSslShuffle()); httpConnection = TezRuntimeUtils.getHttpConnection(true, baseURL, httpConnectionParams, "DAGDelete", jobTokenSecretManager); httpConnection.connect(); diff --git a/tez-dag/src/main/java/org/apache/tez/dag/app/launcher/TaskAttemptFailedDeleteRunnable.java b/tez-dag/src/main/java/org/apache/tez/dag/app/launcher/TaskAttemptFailedDeleteRunnable.java index 22c5b26a7c..3a9f5345a0 100644 --- a/tez-dag/src/main/java/org/apache/tez/dag/app/launcher/TaskAttemptFailedDeleteRunnable.java +++ b/tez-dag/src/main/java/org/apache/tez/dag/app/launcher/TaskAttemptFailedDeleteRunnable.java @@ -55,7 +55,7 @@ public void run() { URL baseURL = TezRuntimeUtils.constructBaseURIForShuffleHandlerTaskAttemptFailed( nodeId.getHost(), shufflePort, taskAttemptID.getTaskID().getVertexID().getDAGID(). getApplicationId().toString(), taskAttemptID.getTaskID().getVertexID().getDAGID().getId(), - taskAttemptID.toString(), false); + taskAttemptID.toString(), httpConnectionParams.isSslShuffle()); httpConnection = TezRuntimeUtils.getHttpConnection(true, baseURL, httpConnectionParams, "FailedTaskAttemptDelete", jobTokenSecretManager); httpConnection.connect(); diff --git a/tez-dag/src/main/java/org/apache/tez/dag/app/launcher/VertexDeleteRunnable.java b/tez-dag/src/main/java/org/apache/tez/dag/app/launcher/VertexDeleteRunnable.java index a8d25379a5..3bfec9663a 100644 --- a/tez-dag/src/main/java/org/apache/tez/dag/app/launcher/VertexDeleteRunnable.java +++ b/tez-dag/src/main/java/org/apache/tez/dag/app/launcher/VertexDeleteRunnable.java @@ -56,7 +56,8 @@ public void run() { try { URL baseURL = TezRuntimeUtils.constructBaseURIForShuffleHandlerVertexComplete( nodeId.getHost(), shufflePort, - vertex.getDAGID().getApplicationId().toString(), vertex.getDAGID().getId(), vertexId, false); + vertex.getDAGID().getApplicationId().toString(), vertex.getDAGID().getId(), vertexId, + httpConnectionParams.isSslShuffle()); httpConnection = TezRuntimeUtils.getHttpConnection(true, baseURL, httpConnectionParams, "VertexDelete", jobTokenSecretManager); httpConnection.connect(); diff --git a/tez-plugins/tez-aux-services/pom.xml b/tez-plugins/tez-aux-services/pom.xml index 76f431b3ac..9493bd51dd 100644 --- a/tez-plugins/tez-aux-services/pom.xml +++ b/tez-plugins/tez-aux-services/pom.xml @@ -247,6 +247,7 @@ javax.crypto.* javax.security.** + javax.net.**