sarutak opened a new pull request #28359:
URL: https://github.com/apache/spark/pull/28359


   ### What changes were proposed in this pull request?
   This PR backports #28317 which escapes text for tooltip for DAG Viz and 
Timeline View.
   
   ### Why are the changes needed?
   
   This is a bug.
   Normally, DAG Viz and Timeline View show tooltip like as follows.
   
   <img width="278" alt="dag-viz-tooltip" 
src="https://user-images.githubusercontent.com/4736016/80127481-5a6c6880-85cf-11ea-8daf-cfd59aa3ba09.png";>
   <img width="477" alt="timeline-tooltip" 
src="https://user-images.githubusercontent.com/4736016/80127500-60624980-85cf-11ea-9b0f-cce301019e3a.png";>
   
   They contain a callsite properly.
   However, if a callsite contains characters which should be escaped for HTML 
without escaping , the corresponding tooltips wouldn't show the callsite and 
its following text properly.
   <img width="179" alt="dag-viz-tooltip-before-fixed" 
src="https://user-images.githubusercontent.com/4736016/80128480-b1267200-85d0-11ea-8035-ad68ae5fbcab.png";>
   <img width="261" alt="timeline-tooltip-before-fixed" 
src="https://user-images.githubusercontent.com/4736016/80128492-b5eb2600-85d0-11ea-9556-c48490110244.png";>
   
   The reason of this issue is that the source texts of the tooltip texts are 
not escaped.
   
   ### Does this PR introduce any user-facing change?
   
   No.
   
   ### How was this patch tested?
   
   I tested manually.
   First, I ran a job `sc.parallelize(1 to 10).collect` in Spark Shell then, 
visited AllJobsPage and JobPage and confirmed tooltip texts.
   <img width="277" alt="timeline-tooltip-fixed-3 0" 
src="https://user-images.githubusercontent.com/4736016/80332616-41411180-8886-11ea-8d93-28e1c5265115.png";>
   <img width="191" alt="dag-tooltip-fixed-3 0" 
src="https://user-images.githubusercontent.com/4736016/80332625-44d49880-8886-11ea-8f2e-de8df1369e62.png";>
   And I confirmed that the appearance of the label of DAG-viz in StagePage is 
not changed. 
   <img width="313" alt="stage-page-dag" 
src="https://user-images.githubusercontent.com/4736016/80332725-9b41d700-8886-11ea-9adb-40d50ad29f86.png";>
   
   I also added a testcase.
   With this testcase, an error message related to JavaScript is shown.
   
   `TypeError: Cannot call method "indexOf" of undefined 
(http://192.168.1.209:59376/static/spark-dag-viz.js#378)`
   
   This is thrown from `interpretLineBreak` in `spark-dag-viz.js`.
   HtmlUnit seems not to support `innerHTML` for text content (I tried 
replacing it with `textContent` and the error message is not shown).
   But DOMs which is needed by the testcase added is already rendered before 
`interpretLineBreak` is called. So the testcase successfully passes.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to