From bf49fad2d70dc08bd04336cbf998730a40fd6af4 Mon Sep 17 00:00:00 2001 From: Shixiong Zhu Date: Mon, 22 Feb 2016 12:19:31 -0800 Subject: [PATCH 1/2] Escape "label" to avoid DAG being broken by some special character --- .../org/apache/spark/ui/scope/RDDOperationGraph.scala | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/core/src/main/scala/org/apache/spark/ui/scope/RDDOperationGraph.scala b/core/src/main/scala/org/apache/spark/ui/scope/RDDOperationGraph.scala index 003c218aada9c..9f1c8f8f31c97 100644 --- a/core/src/main/scala/org/apache/spark/ui/scope/RDDOperationGraph.scala +++ b/core/src/main/scala/org/apache/spark/ui/scope/RDDOperationGraph.scala @@ -20,10 +20,11 @@ package org.apache.spark.ui.scope import scala.collection.mutable import scala.collection.mutable.{ListBuffer, StringBuilder} +import org.apache.commons.lang.StringEscapeUtils + import org.apache.spark.Logging import org.apache.spark.scheduler.StageInfo import org.apache.spark.storage.StorageLevel -import org.apache.spark.util.CallSite /** * A representation of a generic cluster graph used for storing information on RDD operations. @@ -183,7 +184,7 @@ private[ui] object RDDOperationGraph extends Logging { /** Return the dot representation of a node in an RDDOperationGraph. */ private def makeDotNode(node: RDDOperationNode): String = { val label = s"${node.name} [${node.id}]\n${node.callsite}" - s"""${node.id} [label="$label"]""" + s"""${node.id} [label="${StringEscapeUtils.escapeJava(label)}"]""" } /** Update the dot representation of the RDDOperationGraph in cluster to subgraph. */ @@ -192,7 +193,7 @@ private[ui] object RDDOperationGraph extends Logging { cluster: RDDOperationCluster, indent: String): Unit = { subgraph.append(indent).append(s"subgraph cluster${cluster.id} {\n") - subgraph.append(indent).append(s""" label="${cluster.name}";\n""") + .append(indent).append(s""" label="${StringEscapeUtils.escapeJava(cluster.name)}";\n""") cluster.childNodes.foreach { node => subgraph.append(indent).append(s" ${makeDotNode(node)};\n") } From 813be50ae04878d3195ff7f20598c11bab104aed Mon Sep 17 00:00:00 2001 From: Shixiong Zhu Date: Mon, 22 Feb 2016 14:38:14 -0800 Subject: [PATCH 2/2] lang -> lang3 --- .../scala/org/apache/spark/ui/scope/RDDOperationGraph.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/scala/org/apache/spark/ui/scope/RDDOperationGraph.scala b/core/src/main/scala/org/apache/spark/ui/scope/RDDOperationGraph.scala index 9f1c8f8f31c97..cb2827199853a 100644 --- a/core/src/main/scala/org/apache/spark/ui/scope/RDDOperationGraph.scala +++ b/core/src/main/scala/org/apache/spark/ui/scope/RDDOperationGraph.scala @@ -20,7 +20,7 @@ package org.apache.spark.ui.scope import scala.collection.mutable import scala.collection.mutable.{ListBuffer, StringBuilder} -import org.apache.commons.lang.StringEscapeUtils +import org.apache.commons.lang3.StringEscapeUtils import org.apache.spark.Logging import org.apache.spark.scheduler.StageInfo