aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiwei Lin <proflin.me@gmail.com>2016-02-25 15:36:25 -0800
committerShixiong Zhu <shixiong@databricks.com>2016-02-25 15:36:25 -0800
commitdc6c5ea4c91c387deb87764c86c4f40ea71657b7 (patch)
tree8e06c9bf242c881c8b37aa0a8f1ad34a66df0fb8
parent35316cb0b744bef9bcb390411ddc321167f953be (diff)
downloadspark-dc6c5ea4c91c387deb87764c86c4f40ea71657b7.tar.gz
spark-dc6c5ea4c91c387deb87764c86c4f40ea71657b7.tar.bz2
spark-dc6c5ea4c91c387deb87764c86c4f40ea71657b7.zip
[SPARK-13468][WEB UI] Fix a corner case where the Stage UI page should show DAG but it doesn't show
When uses clicks more than one time on any stage in the DAG graph on the *Job* web UI page, many new *Stage* web UI pages are opened, but only half of their DAG graphs are expanded. After this PR's fix, every newly opened *Stage* page's DAG graph is expanded. Before: ![](https://cloud.githubusercontent.com/assets/15843379/13279144/74808e86-db10-11e5-8514-cecf31af8908.png) After: ![](https://cloud.githubusercontent.com/assets/15843379/13279145/77ca5dec-db10-11e5-9457-8e1985461328.png) ## What changes were proposed in this pull request? - Removed the `expandDagViz` parameter for _Stage_ page and related codes - Added a `onclick` function setting `expandDagVizArrowKey(false)` as `true` ## How was this patch tested? Manual tests (with this fix) to verified this fix work: - clicked many times on _Job_ Page's DAG Graph → each newly opened Stage page's DAG graph is expanded Manual tests (with this fix) to verified this fix do not break features we already had: - refreshed many times for a same _Stage_ page (whose DAG already expanded) → DAG remained expanded upon every refresh - refreshed many times for a same _Stage_ page (whose DAG unexpanded) → DAG remained unexpanded upon every refresh - refreshed many times for a same _Job_ page (whose DAG already expanded) → DAG remained expanded upon every refresh - refreshed many times for a same _Job_ page (whose DAG unexpanded) → DAG remained unexpanded upon every refresh Author: Liwei Lin <proflin.me@gmail.com> Closes #11368 from proflin/SPARK-13468.
-rw-r--r--core/src/main/resources/org/apache/spark/ui/static/spark-dag-viz.js3
-rw-r--r--core/src/main/scala/org/apache/spark/ui/UIUtils.scala7
-rw-r--r--core/src/main/scala/org/apache/spark/ui/jobs/StagePage.scala12
3 files changed, 2 insertions, 20 deletions
diff --git a/core/src/main/resources/org/apache/spark/ui/static/spark-dag-viz.js b/core/src/main/resources/org/apache/spark/ui/static/spark-dag-viz.js
index 4337c42087..1b0d4692d9 100644
--- a/core/src/main/resources/org/apache/spark/ui/static/spark-dag-viz.js
+++ b/core/src/main/resources/org/apache/spark/ui/static/spark-dag-viz.js
@@ -222,10 +222,11 @@ function renderDagVizForJob(svgContainer) {
var attemptId = 0
var stageLink = d3.select("#stage-" + stageId + "-" + attemptId)
.select("a.name-link")
- .attr("href") + "&expandDagViz=true";
+ .attr("href");
container = svgContainer
.append("a")
.attr("xlink:href", stageLink)
+ .attr("onclick", "window.localStorage.setItem(expandDagVizArrowKey(false), true)")
.append("g")
.attr("id", containerId);
}
diff --git a/core/src/main/scala/org/apache/spark/ui/UIUtils.scala b/core/src/main/scala/org/apache/spark/ui/UIUtils.scala
index ddd7f713fe..0493513d66 100644
--- a/core/src/main/scala/org/apache/spark/ui/UIUtils.scala
+++ b/core/src/main/scala/org/apache/spark/ui/UIUtils.scala
@@ -408,13 +408,6 @@ private[spark] object UIUtils extends Logging {
</sup>
}
- /** Return a script element that automatically expands the DAG visualization on page load. */
- def expandDagVizOnLoad(forJob: Boolean): Seq[Node] = {
- <script type="text/javascript">
- {Unparsed("$(document).ready(function() { toggleDagViz(" + forJob + ") });")}
- </script>
- }
-
/**
* Returns HTML rendering of a job or stage description. It will try to parse the string as HTML
* and make sure that it only contains anchors with root-relative links. Otherwise,
diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/StagePage.scala b/core/src/main/scala/org/apache/spark/ui/jobs/StagePage.scala
index 0b68b88566..689ab7dd5e 100644
--- a/core/src/main/scala/org/apache/spark/ui/jobs/StagePage.scala
+++ b/core/src/main/scala/org/apache/spark/ui/jobs/StagePage.scala
@@ -107,10 +107,6 @@ private[ui] class StagePage(parent: StagesTab) extends WebUIPage("stage") {
val taskPageSize = Option(parameterTaskPageSize).map(_.toInt).getOrElse(100)
val taskPrevPageSize = Option(parameterTaskPrevPageSize).map(_.toInt).getOrElse(taskPageSize)
- // If this is set, expand the dag visualization by default
- val expandDagVizParam = request.getParameter("expandDagViz")
- val expandDagViz = expandDagVizParam != null && expandDagVizParam.toBoolean
-
val stageId = parameterId.toInt
val stageAttemptId = parameterAttempt.toInt
val stageDataOption = progressListener.stageIdToData.get((stageId, stageAttemptId))
@@ -263,13 +259,6 @@ private[ui] class StagePage(parent: StagesTab) extends WebUIPage("stage") {
val dagViz = UIUtils.showDagVizForStage(
stageId, operationGraphListener.getOperationGraphForStage(stageId))
- val maybeExpandDagViz: Seq[Node] =
- if (expandDagViz) {
- UIUtils.expandDagVizOnLoad(forJob = false)
- } else {
- Seq.empty
- }
-
val accumulableHeaders: Seq[String] = Seq("Accumulable", "Value")
def accumulableRow(acc: AccumulableInfo): Seq[Node] = {
(acc.name, acc.value) match {
@@ -578,7 +567,6 @@ private[ui] class StagePage(parent: StagesTab) extends WebUIPage("stage") {
val content =
summary ++
dagViz ++
- maybeExpandDagViz ++
showAdditionalMetrics ++
makeTimeline(
// Only show the tasks in the table